@shipfox/api-runners 4.0.0 → 6.0.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 (414) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/CHANGELOG.md +83 -0
  3. package/dist/config.d.ts +5 -1
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +53 -6
  6. package/dist/config.js.map +1 -1
  7. package/dist/core/capacity-assignments.d.ts +7 -0
  8. package/dist/core/capacity-assignments.d.ts.map +1 -0
  9. package/dist/core/capacity-assignments.js +6 -0
  10. package/dist/core/capacity-assignments.js.map +1 -0
  11. package/dist/core/demand.d.ts +6 -6
  12. package/dist/core/demand.d.ts.map +1 -1
  13. package/dist/core/demand.js +10 -10
  14. package/dist/core/demand.js.map +1 -1
  15. package/dist/core/entities/capacity-assignment.d.ts +9 -0
  16. package/dist/core/entities/capacity-assignment.d.ts.map +1 -0
  17. package/dist/core/entities/capacity-assignment.js +3 -0
  18. package/dist/core/entities/capacity-assignment.js.map +1 -0
  19. package/dist/core/entities/ephemeral-registration-token.d.ts +1 -1
  20. package/dist/core/entities/ephemeral-registration-token.d.ts.map +1 -1
  21. package/dist/core/entities/ephemeral-registration-token.js.map +1 -1
  22. package/dist/core/entities/provisioner-capability-snapshot.d.ts +13 -0
  23. package/dist/core/entities/provisioner-capability-snapshot.d.ts.map +1 -0
  24. package/dist/core/entities/provisioner-capability-snapshot.js +3 -0
  25. package/dist/core/entities/provisioner-capability-snapshot.js.map +1 -0
  26. package/dist/core/entities/provisioner-token.d.ts +10 -2
  27. package/dist/core/entities/provisioner-token.d.ts.map +1 -1
  28. package/dist/core/entities/provisioner-token.js.map +1 -1
  29. package/dist/core/entities/{provisioned-runner.d.ts → runner-instance.d.ts} +6 -6
  30. package/dist/core/entities/runner-instance.d.ts.map +1 -0
  31. package/dist/core/entities/runner-instance.js +3 -0
  32. package/dist/core/entities/runner-instance.js.map +1 -0
  33. package/dist/core/entities/runner-session.d.ts +4 -2
  34. package/dist/core/entities/runner-session.d.ts.map +1 -1
  35. package/dist/core/entities/runner-session.js.map +1 -1
  36. package/dist/core/ephemeral-registration-tokens.d.ts +5 -5
  37. package/dist/core/ephemeral-registration-tokens.d.ts.map +1 -1
  38. package/dist/core/ephemeral-registration-tokens.js +12 -12
  39. package/dist/core/ephemeral-registration-tokens.js.map +1 -1
  40. package/dist/core/errors.d.ts +16 -4
  41. package/dist/core/errors.d.ts.map +1 -1
  42. package/dist/core/errors.js +22 -4
  43. package/dist/core/errors.js.map +1 -1
  44. package/dist/core/index.d.ts +10 -4
  45. package/dist/core/index.d.ts.map +1 -1
  46. package/dist/core/index.js +6 -2
  47. package/dist/core/index.js.map +1 -1
  48. package/dist/core/job-executions.d.ts +2 -0
  49. package/dist/core/job-executions.d.ts.map +1 -1
  50. package/dist/core/job-executions.js +1 -2
  51. package/dist/core/job-executions.js.map +1 -1
  52. package/dist/core/maintenance.d.ts +1 -1
  53. package/dist/core/maintenance.d.ts.map +1 -1
  54. package/dist/core/maintenance.js +5 -5
  55. package/dist/core/maintenance.js.map +1 -1
  56. package/dist/core/provisioner-capability-snapshots.d.ts +5 -0
  57. package/dist/core/provisioner-capability-snapshots.d.ts.map +1 -0
  58. package/dist/core/provisioner-capability-snapshots.js +10 -0
  59. package/dist/core/provisioner-capability-snapshots.js.map +1 -0
  60. package/dist/core/provisioner-tokens.d.ts +10 -0
  61. package/dist/core/provisioner-tokens.d.ts.map +1 -1
  62. package/dist/core/provisioner-tokens.js +23 -1
  63. package/dist/core/provisioner-tokens.js.map +1 -1
  64. package/dist/core/rate-limit.d.ts.map +1 -1
  65. package/dist/core/rate-limit.js +2 -7
  66. package/dist/core/rate-limit.js.map +1 -1
  67. package/dist/core/runner-activation.d.ts +13 -0
  68. package/dist/core/runner-activation.d.ts.map +1 -0
  69. package/dist/core/runner-activation.js +36 -0
  70. package/dist/core/runner-activation.js.map +1 -0
  71. package/dist/core/runner-control-sessions.d.ts +46 -0
  72. package/dist/core/runner-control-sessions.d.ts.map +1 -0
  73. package/dist/core/runner-control-sessions.js +121 -0
  74. package/dist/core/runner-control-sessions.js.map +1 -0
  75. package/dist/core/runner-instances.d.ts +79 -0
  76. package/dist/core/runner-instances.d.ts.map +1 -0
  77. package/dist/core/runner-instances.js +168 -0
  78. package/dist/core/runner-instances.js.map +1 -0
  79. package/dist/core/runner-sessions.d.ts +8 -2
  80. package/dist/core/runner-sessions.d.ts.map +1 -1
  81. package/dist/core/runner-sessions.js +8 -5
  82. package/dist/core/runner-sessions.js.map +1 -1
  83. package/dist/db/capacity-assignments.d.ts +7 -0
  84. package/dist/db/capacity-assignments.d.ts.map +1 -0
  85. package/dist/db/capacity-assignments.js +72 -0
  86. package/dist/db/capacity-assignments.js.map +1 -0
  87. package/dist/db/db.d.ts +2837 -1009
  88. package/dist/db/db.d.ts.map +1 -1
  89. package/dist/db/db.js +11 -2
  90. package/dist/db/db.js.map +1 -1
  91. package/dist/db/ephemeral-registration-tokens.d.ts +2 -2
  92. package/dist/db/ephemeral-registration-tokens.d.ts.map +1 -1
  93. package/dist/db/ephemeral-registration-tokens.js +21 -21
  94. package/dist/db/ephemeral-registration-tokens.js.map +1 -1
  95. package/dist/db/index.d.ts +7 -4
  96. package/dist/db/index.d.ts.map +1 -1
  97. package/dist/db/index.js +5 -2
  98. package/dist/db/index.js.map +1 -1
  99. package/dist/db/job-executions.d.ts +6 -6
  100. package/dist/db/job-executions.d.ts.map +1 -1
  101. package/dist/db/job-executions.js +20 -19
  102. package/dist/db/job-executions.js.map +1 -1
  103. package/dist/db/provisioner-capability-snapshots.d.ts +21 -0
  104. package/dist/db/provisioner-capability-snapshots.d.ts.map +1 -0
  105. package/dist/db/provisioner-capability-snapshots.js +57 -0
  106. package/dist/db/provisioner-capability-snapshots.js.map +1 -0
  107. package/dist/db/provisioner-tokens.d.ts +7 -2
  108. package/dist/db/provisioner-tokens.d.ts.map +1 -1
  109. package/dist/db/provisioner-tokens.js +59 -10
  110. package/dist/db/provisioner-tokens.js.map +1 -1
  111. package/dist/db/reservations.d.ts +18 -0
  112. package/dist/db/reservations.d.ts.map +1 -1
  113. package/dist/db/reservations.js +88 -1
  114. package/dist/db/reservations.js.map +1 -1
  115. package/dist/db/runner-instances.d.ts +91 -0
  116. package/dist/db/runner-instances.d.ts.map +1 -0
  117. package/dist/db/runner-instances.js +511 -0
  118. package/dist/db/runner-instances.js.map +1 -0
  119. package/dist/db/runner-sessions.d.ts +5 -0
  120. package/dist/db/runner-sessions.d.ts.map +1 -1
  121. package/dist/db/runner-sessions.js +48 -2
  122. package/dist/db/runner-sessions.js.map +1 -1
  123. package/dist/db/schema/capacity-assignments.d.ts +113 -0
  124. package/dist/db/schema/capacity-assignments.d.ts.map +1 -0
  125. package/dist/db/schema/capacity-assignments.js +29 -0
  126. package/dist/db/schema/capacity-assignments.js.map +1 -0
  127. package/dist/db/schema/ephemeral-registration-tokens.d.ts +2 -2
  128. package/dist/db/schema/ephemeral-registration-tokens.js +3 -3
  129. package/dist/db/schema/ephemeral-registration-tokens.js.map +1 -1
  130. package/dist/db/schema/provisioner-capability-snapshots.d.ts +207 -0
  131. package/dist/db/schema/provisioner-capability-snapshots.d.ts.map +1 -0
  132. package/dist/db/schema/provisioner-capability-snapshots.js +38 -0
  133. package/dist/db/schema/provisioner-capability-snapshots.js.map +1 -0
  134. package/dist/db/schema/provisioner-tokens.d.ts +19 -1
  135. package/dist/db/schema/provisioner-tokens.d.ts.map +1 -1
  136. package/dist/db/schema/provisioner-tokens.js +29 -3
  137. package/dist/db/schema/provisioner-tokens.js.map +1 -1
  138. package/dist/db/schema/runner-activation-tokens.d.ts +161 -0
  139. package/dist/db/schema/runner-activation-tokens.d.ts.map +1 -0
  140. package/dist/db/schema/runner-activation-tokens.js +27 -0
  141. package/dist/db/schema/runner-activation-tokens.js.map +1 -0
  142. package/dist/db/schema/runner-control-sessions.d.ts +338 -0
  143. package/dist/db/schema/runner-control-sessions.d.ts.map +1 -0
  144. package/dist/db/schema/runner-control-sessions.js +52 -0
  145. package/dist/db/schema/runner-control-sessions.js.map +1 -0
  146. package/dist/db/schema/{provisioned-runners.d.ts → runner-instances.d.ts} +88 -34
  147. package/dist/db/schema/runner-instances.d.ts.map +1 -0
  148. package/dist/db/schema/{provisioned-runners.js → runner-instances.js} +19 -14
  149. package/dist/db/schema/runner-instances.js.map +1 -0
  150. package/dist/db/schema/runner-sessions.d.ts +39 -5
  151. package/dist/db/schema/runner-sessions.d.ts.map +1 -1
  152. package/dist/db/schema/runner-sessions.js +13 -6
  153. package/dist/db/schema/runner-sessions.js.map +1 -1
  154. package/dist/db/schema/running-job-executions.d.ts +2 -2
  155. package/dist/db/schema/running-job-executions.js +4 -4
  156. package/dist/db/schema/running-job-executions.js.map +1 -1
  157. package/dist/index.d.ts +7 -2
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js +45 -38
  160. package/dist/index.js.map +1 -1
  161. package/dist/installation-provisioning.d.ts +14 -0
  162. package/dist/installation-provisioning.d.ts.map +1 -0
  163. package/dist/installation-provisioning.js +7 -0
  164. package/dist/installation-provisioning.js.map +1 -0
  165. package/dist/metrics/index.d.ts +1 -1
  166. package/dist/metrics/index.d.ts.map +1 -1
  167. package/dist/metrics/index.js +1 -1
  168. package/dist/metrics/index.js.map +1 -1
  169. package/dist/metrics/instance.d.ts +11 -7
  170. package/dist/metrics/instance.d.ts.map +1 -1
  171. package/dist/metrics/instance.js +13 -7
  172. package/dist/metrics/instance.js.map +1 -1
  173. package/dist/presentation/auth/index.d.ts +1 -0
  174. package/dist/presentation/auth/index.d.ts.map +1 -1
  175. package/dist/presentation/auth/index.js +1 -0
  176. package/dist/presentation/auth/index.js.map +1 -1
  177. package/dist/presentation/auth/provisioner-token-auth.d.ts.map +1 -1
  178. package/dist/presentation/auth/provisioner-token-auth.js +5 -1
  179. package/dist/presentation/auth/provisioner-token-auth.js.map +1 -1
  180. package/dist/presentation/auth/runner-control-session-auth.d.ts +4 -0
  181. package/dist/presentation/auth/runner-control-session-auth.d.ts.map +1 -0
  182. package/dist/presentation/auth/runner-control-session-auth.js +29 -0
  183. package/dist/presentation/auth/runner-control-session-auth.js.map +1 -0
  184. package/dist/presentation/auth/runner-registration-token-auth.d.ts +5 -1
  185. package/dist/presentation/auth/runner-registration-token-auth.d.ts.map +1 -1
  186. package/dist/presentation/auth/runner-registration-token-auth.js +21 -1
  187. package/dist/presentation/auth/runner-registration-token-auth.js.map +1 -1
  188. package/dist/presentation/dto/index.d.ts +2 -2
  189. package/dist/presentation/dto/index.d.ts.map +1 -1
  190. package/dist/presentation/dto/index.js +2 -2
  191. package/dist/presentation/dto/index.js.map +1 -1
  192. package/dist/presentation/dto/mint-registration-tokens.d.ts +5 -3
  193. package/dist/presentation/dto/mint-registration-tokens.d.ts.map +1 -1
  194. package/dist/presentation/dto/mint-registration-tokens.js +4 -4
  195. package/dist/presentation/dto/mint-registration-tokens.js.map +1 -1
  196. package/dist/presentation/dto/poll-demand.d.ts.map +1 -1
  197. package/dist/presentation/dto/poll-demand.js +7 -1
  198. package/dist/presentation/dto/poll-demand.js.map +1 -1
  199. package/dist/presentation/dto/provisioner-token.d.ts +1 -0
  200. package/dist/presentation/dto/provisioner-token.d.ts.map +1 -1
  201. package/dist/presentation/dto/provisioner-token.js +5 -1
  202. package/dist/presentation/dto/provisioner-token.js.map +1 -1
  203. package/dist/presentation/dto/{provisioned-runners.d.ts → runner-instances.d.ts} +9 -9
  204. package/dist/presentation/dto/runner-instances.d.ts.map +1 -0
  205. package/dist/presentation/dto/{provisioned-runners.js → runner-instances.js} +6 -6
  206. package/dist/presentation/dto/runner-instances.js.map +1 -0
  207. package/dist/presentation/index.d.ts +2 -2
  208. package/dist/presentation/index.d.ts.map +1 -1
  209. package/dist/presentation/index.js +2 -2
  210. package/dist/presentation/index.js.map +1 -1
  211. package/dist/presentation/inter-module.d.ts +5 -0
  212. package/dist/presentation/inter-module.d.ts.map +1 -0
  213. package/dist/presentation/inter-module.js +43 -0
  214. package/dist/presentation/inter-module.js.map +1 -0
  215. package/dist/presentation/routes/assign-capacity.d.ts +2 -0
  216. package/dist/presentation/routes/assign-capacity.d.ts.map +1 -0
  217. package/dist/presentation/routes/assign-capacity.js +44 -0
  218. package/dist/presentation/routes/assign-capacity.js.map +1 -0
  219. package/dist/presentation/routes/get-provisioner-me.d.ts.map +1 -1
  220. package/dist/presentation/routes/get-provisioner-me.js +5 -1
  221. package/dist/presentation/routes/get-provisioner-me.js.map +1 -1
  222. package/dist/presentation/routes/heartbeat.d.ts +2 -1
  223. package/dist/presentation/routes/heartbeat.d.ts.map +1 -1
  224. package/dist/presentation/routes/heartbeat.js +60 -50
  225. package/dist/presentation/routes/heartbeat.js.map +1 -1
  226. package/dist/presentation/routes/index.d.ts +3 -1
  227. package/dist/presentation/routes/index.d.ts.map +1 -1
  228. package/dist/presentation/routes/index.js +83 -50
  229. package/dist/presentation/routes/index.js.map +1 -1
  230. package/dist/presentation/routes/mint-registration-tokens.d.ts.map +1 -1
  231. package/dist/presentation/routes/mint-registration-tokens.js +5 -5
  232. package/dist/presentation/routes/mint-registration-tokens.js.map +1 -1
  233. package/dist/presentation/routes/planned-capacity.d.ts +3 -0
  234. package/dist/presentation/routes/planned-capacity.d.ts.map +1 -0
  235. package/dist/presentation/routes/planned-capacity.js +54 -0
  236. package/dist/presentation/routes/planned-capacity.js.map +1 -0
  237. package/dist/presentation/routes/poll-demand.d.ts +2 -0
  238. package/dist/presentation/routes/poll-demand.d.ts.map +1 -1
  239. package/dist/presentation/routes/poll-demand.js +86 -45
  240. package/dist/presentation/routes/poll-demand.js.map +1 -1
  241. package/dist/presentation/routes/reconcile-runner-instances.d.ts +2 -0
  242. package/dist/presentation/routes/reconcile-runner-instances.d.ts.map +1 -0
  243. package/dist/presentation/routes/reconcile-runner-instances.js +27 -0
  244. package/dist/presentation/routes/reconcile-runner-instances.js.map +1 -0
  245. package/dist/presentation/routes/register.d.ts +2 -1
  246. package/dist/presentation/routes/register.d.ts.map +1 -1
  247. package/dist/presentation/routes/register.js +55 -52
  248. package/dist/presentation/routes/register.js.map +1 -1
  249. package/dist/presentation/routes/report-runner-instances.d.ts +2 -0
  250. package/dist/presentation/routes/report-runner-instances.d.ts.map +1 -0
  251. package/dist/presentation/routes/report-runner-instances.js +37 -0
  252. package/dist/presentation/routes/report-runner-instances.js.map +1 -0
  253. package/dist/presentation/routes/request-job.d.ts +2 -1
  254. package/dist/presentation/routes/request-job.d.ts.map +1 -1
  255. package/dist/presentation/routes/request-job.js +39 -36
  256. package/dist/presentation/routes/request-job.js.map +1 -1
  257. package/dist/presentation/routes/runner-enrollment.d.ts +7 -0
  258. package/dist/presentation/routes/runner-enrollment.d.ts.map +1 -0
  259. package/dist/presentation/routes/runner-enrollment.js +185 -0
  260. package/dist/presentation/routes/runner-enrollment.js.map +1 -0
  261. package/dist/temporal/activities/index.d.ts +2 -2
  262. package/dist/temporal/activities/index.d.ts.map +1 -1
  263. package/dist/temporal/activities/index.js +2 -2
  264. package/dist/temporal/activities/index.js.map +1 -1
  265. package/dist/temporal/activities/maintenance-activities.d.ts +1 -1
  266. package/dist/temporal/activities/maintenance-activities.d.ts.map +1 -1
  267. package/dist/temporal/activities/maintenance-activities.js +3 -3
  268. package/dist/temporal/activities/maintenance-activities.js.map +1 -1
  269. package/dist/temporal/workflows/index.bundle.js +3 -3
  270. package/dist/temporal/workflows/stuck-job-detector.js +2 -2
  271. package/dist/temporal/workflows/stuck-job-detector.js.map +1 -1
  272. package/dist/tsconfig.test.tsbuildinfo +1 -1
  273. package/drizzle/0000_initial.sql +102 -24
  274. package/drizzle/meta/0000_snapshot.json +483 -63
  275. package/package.json +31 -36
  276. package/src/config.test.ts +0 -26
  277. package/src/config.ts +47 -6
  278. package/src/core/capacity-assignments.ts +10 -0
  279. package/src/core/demand.test.ts +29 -29
  280. package/src/core/demand.ts +22 -22
  281. package/src/core/entities/capacity-assignment.ts +8 -0
  282. package/src/core/entities/ephemeral-registration-token.ts +1 -1
  283. package/src/core/entities/provisioner-capability-snapshot.ts +12 -0
  284. package/src/core/entities/provisioner-token.ts +8 -2
  285. package/src/core/entities/{provisioned-runner.ts → runner-instance.ts} +5 -5
  286. package/src/core/entities/runner-session.ts +4 -2
  287. package/src/core/ephemeral-registration-tokens.test.ts +11 -11
  288. package/src/core/ephemeral-registration-tokens.ts +18 -20
  289. package/src/core/errors.ts +23 -4
  290. package/src/core/index.ts +39 -17
  291. package/src/core/job-executions.ts +3 -2
  292. package/src/core/maintenance.test.ts +13 -17
  293. package/src/core/maintenance.ts +5 -5
  294. package/src/core/provisioner-capability-snapshots.test.ts +35 -0
  295. package/src/core/provisioner-capability-snapshots.ts +12 -0
  296. package/src/core/provisioner-tokens.test.ts +20 -0
  297. package/src/core/provisioner-tokens.ts +33 -0
  298. package/src/core/rate-limit.test.ts +11 -27
  299. package/src/core/rate-limit.ts +3 -11
  300. package/src/core/runner-activation.ts +72 -0
  301. package/src/core/runner-control-sessions.ts +190 -0
  302. package/src/core/{provisioned-runners.test.ts → runner-instances.test.ts} +24 -24
  303. package/src/core/runner-instances.ts +310 -0
  304. package/src/core/runner-sessions.test.ts +112 -22
  305. package/src/core/runner-sessions.ts +25 -14
  306. package/src/db/capacity-assignments.test.ts +159 -0
  307. package/src/db/capacity-assignments.ts +116 -0
  308. package/src/db/db.ts +11 -2
  309. package/src/db/ephemeral-registration-tokens.test.ts +9 -9
  310. package/src/db/ephemeral-registration-tokens.ts +26 -26
  311. package/src/db/index.ts +31 -21
  312. package/src/db/job-executions.test.ts +13 -11
  313. package/src/db/job-executions.ts +33 -27
  314. package/src/db/provisioner-capability-snapshots.test.ts +175 -0
  315. package/src/db/provisioner-capability-snapshots.ts +130 -0
  316. package/src/db/provisioner-tokens.test.ts +139 -2
  317. package/src/db/provisioner-tokens.ts +123 -15
  318. package/src/db/reservations.test.ts +49 -0
  319. package/src/db/reservations.ts +146 -1
  320. package/src/db/{provisioned-runners.test.ts → runner-instances.test.ts} +429 -353
  321. package/src/db/runner-instances.ts +942 -0
  322. package/src/db/runner-sessions.test.ts +19 -6
  323. package/src/db/runner-sessions.ts +78 -2
  324. package/src/db/schema/capacity-assignments.ts +34 -0
  325. package/src/db/schema/ephemeral-registration-tokens.ts +4 -4
  326. package/src/db/schema/provisioner-capability-snapshots.ts +46 -0
  327. package/src/db/schema/provisioner-tokens.ts +33 -2
  328. package/src/db/schema/runner-activation-tokens.ts +22 -0
  329. package/src/db/schema/runner-control-sessions.ts +46 -0
  330. package/src/db/schema/{provisioned-runners.ts → runner-instances.ts} +26 -27
  331. package/src/db/schema/runner-sessions.ts +11 -7
  332. package/src/db/schema/running-job-executions.ts +5 -5
  333. package/src/index.test.ts +26 -0
  334. package/src/index.ts +39 -19
  335. package/src/installation-provisioning.ts +14 -0
  336. package/src/metrics/index.ts +5 -5
  337. package/src/metrics/instance.ts +25 -14
  338. package/src/presentation/auth/index.ts +4 -0
  339. package/src/presentation/auth/provisioner-token-auth.ts +8 -4
  340. package/src/presentation/auth/runner-control-session-auth.ts +31 -0
  341. package/src/presentation/auth/runner-registration-token-auth.ts +39 -3
  342. package/src/presentation/dto/index.ts +5 -5
  343. package/src/presentation/dto/mint-registration-tokens.ts +8 -15
  344. package/src/presentation/dto/poll-demand.ts +3 -1
  345. package/src/presentation/dto/provisioner-token.ts +5 -0
  346. package/src/presentation/dto/{provisioned-runners.ts → runner-instances.ts} +13 -15
  347. package/src/presentation/index.ts +2 -1
  348. package/src/presentation/inter-module.test.ts +15 -0
  349. package/src/presentation/inter-module.ts +53 -0
  350. package/src/presentation/routes/assign-capacity.ts +48 -0
  351. package/src/presentation/routes/get-provisioner-me.ts +3 -4
  352. package/src/presentation/routes/heartbeat.test.ts +4 -3
  353. package/src/presentation/routes/heartbeat.ts +67 -64
  354. package/src/presentation/routes/index.ts +93 -43
  355. package/src/presentation/routes/list-active-runners.test.ts +23 -23
  356. package/src/presentation/routes/manual-registration-tokens.test.ts +4 -3
  357. package/src/presentation/routes/mint-registration-tokens.test.ts +12 -12
  358. package/src/presentation/routes/mint-registration-tokens.ts +5 -7
  359. package/src/presentation/routes/planned-capacity.ts +49 -0
  360. package/src/presentation/routes/poll-demand-release.test.ts +4 -4
  361. package/src/presentation/routes/poll-demand.test.ts +161 -22
  362. package/src/presentation/routes/poll-demand.ts +105 -45
  363. package/src/presentation/routes/provisioner-me.test.ts +37 -3
  364. package/src/presentation/routes/{reconcile-provisioned-runners.test.ts → reconcile-runner-instances.test.ts} +66 -61
  365. package/src/presentation/routes/reconcile-runner-instances.ts +30 -0
  366. package/src/presentation/routes/register.test.ts +9 -5
  367. package/src/presentation/routes/register.ts +61 -57
  368. package/src/presentation/routes/{report-provisioned-runners.test.ts → report-runner-instances.test.ts} +28 -28
  369. package/src/presentation/routes/{report-provisioned-runners.ts → report-runner-instances.ts} +14 -14
  370. package/src/presentation/routes/request-job.test.ts +5 -3
  371. package/src/presentation/routes/request-job.ts +41 -37
  372. package/src/presentation/routes/runner-enrollment.test.ts +259 -0
  373. package/src/presentation/routes/runner-enrollment.ts +174 -0
  374. package/src/temporal/activities/index.ts +2 -2
  375. package/src/temporal/activities/maintenance-activities.test.ts +7 -7
  376. package/src/temporal/activities/maintenance-activities.ts +3 -3
  377. package/src/temporal/workflows/stuck-job-detector.test.ts +3 -3
  378. package/src/temporal/workflows/stuck-job-detector.ts +2 -2
  379. package/test/env.ts +1 -3
  380. package/test/factories/ephemeral-registration-token.ts +2 -2
  381. package/test/factories/provisioner-token.ts +3 -1
  382. package/test/factories/runner-instance.ts +57 -0
  383. package/test/factories/runner-session.ts +3 -1
  384. package/test/fixtures/auth-inter-module.ts +30 -0
  385. package/test/globalSetup.ts +5 -1
  386. package/test/index.ts +2 -1
  387. package/tsconfig.build.tsbuildinfo +1 -1
  388. package/dist/core/entities/provisioned-runner.d.ts.map +0 -1
  389. package/dist/core/entities/provisioned-runner.js +0 -3
  390. package/dist/core/entities/provisioned-runner.js.map +0 -1
  391. package/dist/core/provisioned-runners.d.ts +0 -67
  392. package/dist/core/provisioned-runners.d.ts.map +0 -1
  393. package/dist/core/provisioned-runners.js +0 -162
  394. package/dist/core/provisioned-runners.js.map +0 -1
  395. package/dist/db/provisioned-runners.d.ts +0 -79
  396. package/dist/db/provisioned-runners.d.ts.map +0 -1
  397. package/dist/db/provisioned-runners.js +0 -466
  398. package/dist/db/provisioned-runners.js.map +0 -1
  399. package/dist/db/schema/provisioned-runners.d.ts.map +0 -1
  400. package/dist/db/schema/provisioned-runners.js.map +0 -1
  401. package/dist/presentation/dto/provisioned-runners.d.ts.map +0 -1
  402. package/dist/presentation/dto/provisioned-runners.js.map +0 -1
  403. package/dist/presentation/routes/reconcile-provisioned-runners.d.ts +0 -2
  404. package/dist/presentation/routes/reconcile-provisioned-runners.d.ts.map +0 -1
  405. package/dist/presentation/routes/reconcile-provisioned-runners.js +0 -27
  406. package/dist/presentation/routes/reconcile-provisioned-runners.js.map +0 -1
  407. package/dist/presentation/routes/report-provisioned-runners.d.ts +0 -2
  408. package/dist/presentation/routes/report-provisioned-runners.d.ts.map +0 -1
  409. package/dist/presentation/routes/report-provisioned-runners.js +0 -37
  410. package/dist/presentation/routes/report-provisioned-runners.js.map +0 -1
  411. package/src/core/provisioned-runners.ts +0 -301
  412. package/src/db/provisioned-runners.ts +0 -886
  413. package/src/presentation/routes/reconcile-provisioned-runners.ts +0 -30
  414. package/test/factories/provisioned-runner.ts +0 -78
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/entities/provisioner-capability-snapshot.ts"],"sourcesContent":["export interface ProvisionerCapabilitySnapshot {\n id: string;\n workspaceId: string;\n provisionerId: string;\n templateKey: string;\n labels: string[];\n availableSlots: number;\n starting: number;\n running: number;\n advertisedAt: Date;\n createdAt: Date;\n}\n"],"names":[],"mappings":"AAAA,WAWC"}
@@ -1,6 +1,7 @@
1
- export interface ProvisionerToken {
1
+ export type ProvisionerScope = 'installation' | 'workspace';
2
+ export interface ProvisionerTokenBase {
2
3
  id: string;
3
- workspaceId: string;
4
+ scope: ProvisionerScope;
4
5
  hashedToken: string;
5
6
  prefix: string;
6
7
  name: string | null;
@@ -12,6 +13,13 @@ export interface ProvisionerToken {
12
13
  createdAt: Date;
13
14
  updatedAt: Date;
14
15
  }
16
+ export type ProvisionerToken = (ProvisionerTokenBase & {
17
+ scope: 'installation';
18
+ workspaceId: null;
19
+ }) | (ProvisionerTokenBase & {
20
+ scope: 'workspace';
21
+ workspaceId: string;
22
+ });
15
23
  export type ActiveProvisionerToken = ProvisionerToken & {
16
24
  lastSeenAt: Date;
17
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"provisioner-token.d.ts","sourceRoot":"","sources":["../../../src/core/entities/provisioner-token.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG;IAAC,UAAU,EAAE,IAAI,CAAA;CAAC,CAAC"}
1
+ {"version":3,"file":"provisioner-token.d.ts","sourceRoot":"","sources":["../../../src/core/entities/provisioner-token.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,WAAW,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GACxB,CAAC,oBAAoB,GAAG;IAAC,KAAK,EAAE,cAAc,CAAC;IAAC,WAAW,EAAE,IAAI,CAAA;CAAC,CAAC,GACnE,CAAC,oBAAoB,GAAG;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAEvE,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG;IAAC,UAAU,EAAE,IAAI,CAAA;CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/entities/provisioner-token.ts"],"sourcesContent":["export interface ProvisionerToken {\n id: string;\n workspaceId: string;\n hashedToken: string;\n prefix: string;\n name: string | null;\n createdByUserId: string;\n revokedByUserId: string | null;\n expiresAt: Date | null;\n revokedAt: Date | null;\n lastSeenAt: Date | null;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport type ActiveProvisionerToken = ProvisionerToken & {lastSeenAt: Date};\n"],"names":[],"mappings":"AAeA,WAA2E"}
1
+ {"version":3,"sources":["../../../src/core/entities/provisioner-token.ts"],"sourcesContent":["export type ProvisionerScope = 'installation' | 'workspace';\n\nexport interface ProvisionerTokenBase {\n id: string;\n scope: ProvisionerScope;\n hashedToken: string;\n prefix: string;\n name: string | null;\n createdByUserId: string;\n revokedByUserId: string | null;\n expiresAt: Date | null;\n revokedAt: Date | null;\n lastSeenAt: Date | null;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport type ProvisionerToken =\n | (ProvisionerTokenBase & {scope: 'installation'; workspaceId: null})\n | (ProvisionerTokenBase & {scope: 'workspace'; workspaceId: string});\n\nexport type ActiveProvisionerToken = ProvisionerToken & {lastSeenAt: Date};\n"],"names":[],"mappings":"AAqBA,WAA2E"}
@@ -1,13 +1,13 @@
1
- export type ProvisionedRunnerState = 'starting' | 'running' | 'stopping' | 'stopped' | 'failed' | 'terminated';
2
- export interface ProvisionedRunner {
1
+ export type RunnerInstanceState = 'starting' | 'running' | 'stopping' | 'stopped' | 'failed' | 'terminated';
2
+ export interface RunnerInstance {
3
3
  id: string;
4
- workspaceId: string;
4
+ workspaceId: string | null;
5
5
  provisionerId: string;
6
- provisionedRunnerId: string;
6
+ providerRunnerId: string;
7
7
  reservationId: string | null;
8
8
  templateKey: string | null;
9
9
  labels: string[];
10
- state: ProvisionedRunnerState;
10
+ state: RunnerInstanceState;
11
11
  reason: string | null;
12
12
  runnerSessionId: string | null;
13
13
  providerKind: string | null;
@@ -21,4 +21,4 @@ export interface ProvisionedRunner {
21
21
  createdAt: Date;
22
22
  updatedAt: Date;
23
23
  }
24
- //# sourceMappingURL=provisioned-runner.d.ts.map
24
+ //# sourceMappingURL=runner-instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-instance.d.ts","sourceRoot":"","sources":["../../../src/core/entities/runner-instance.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=runner-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/entities/runner-instance.ts"],"sourcesContent":["export type RunnerInstanceState =\n | 'starting'\n | 'running'\n | 'stopping'\n | 'stopped'\n | 'failed'\n | 'terminated';\n\nexport interface RunnerInstance {\n id: string;\n workspaceId: string | null;\n provisionerId: string;\n providerRunnerId: string;\n reservationId: string | null;\n templateKey: string | null;\n labels: string[];\n state: RunnerInstanceState;\n reason: string | null;\n runnerSessionId: string | null;\n providerKind: string | null;\n reportedAt: Date;\n startedAt: Date | null;\n stoppingAt: Date | null;\n stoppedAt: Date | null;\n failedAt: Date | null;\n terminatedAt: Date | null;\n reservationReleasedAt: Date | null;\n createdAt: Date;\n updatedAt: Date;\n}\n"],"names":[],"mappings":"AAQA,WAqBC"}
@@ -4,14 +4,16 @@ export interface RunnerSession {
4
4
  workspaceId: string;
5
5
  scope: 'workspace';
6
6
  registrationTokenId: string;
7
- registrationTokenKind: 'manual' | 'ephemeral';
7
+ registrationTokenKind: 'manual' | 'ephemeral' | 'activation';
8
+ runnerInstanceId: string | null;
8
9
  provisionerId: string | null;
9
- provisionedRunnerId: string | null;
10
+ providerRunnerId: string | null;
10
11
  labels: string[];
11
12
  toolCapabilities: RunnerToolCapabilitiesDto | null;
12
13
  toolCapabilitiesReportedAt: Date | null;
13
14
  maxClaims: number | null;
14
15
  claimsUsed: number;
16
+ revokedAt: Date | null;
15
17
  createdAt: Date;
16
18
  updatedAt: Date;
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner-session.d.ts","sourceRoot":"","sources":["../../../src/core/entities/runner-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACnD,0BAA0B,EAAE,IAAI,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"runner-session.d.ts","sourceRoot":"","sources":["../../../src/core/entities/runner-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;IAC7D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACnD,0BAA0B,EAAE,IAAI,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/entities/runner-session.ts"],"sourcesContent":["import type {RunnerToolCapabilitiesDto} from '@shipfox/api-runners-dto';\n\nexport interface RunnerSession {\n id: string;\n workspaceId: string;\n scope: 'workspace';\n registrationTokenId: string;\n registrationTokenKind: 'manual' | 'ephemeral';\n provisionerId: string | null;\n provisionedRunnerId: string | null;\n labels: string[];\n toolCapabilities: RunnerToolCapabilitiesDto | null;\n toolCapabilitiesReportedAt: Date | null;\n maxClaims: number | null;\n claimsUsed: number;\n createdAt: Date;\n updatedAt: Date;\n}\n"],"names":[],"mappings":"AAEA,WAeC"}
1
+ {"version":3,"sources":["../../../src/core/entities/runner-session.ts"],"sourcesContent":["import type {RunnerToolCapabilitiesDto} from '@shipfox/api-runners-dto';\n\nexport interface RunnerSession {\n id: string;\n workspaceId: string;\n scope: 'workspace';\n registrationTokenId: string;\n registrationTokenKind: 'manual' | 'ephemeral' | 'activation';\n runnerInstanceId: string | null;\n provisionerId: string | null;\n providerRunnerId: string | null;\n labels: string[];\n toolCapabilities: RunnerToolCapabilitiesDto | null;\n toolCapabilitiesReportedAt: Date | null;\n maxClaims: number | null;\n claimsUsed: number;\n revokedAt: Date | null;\n createdAt: Date;\n updatedAt: Date;\n}\n"],"names":[],"mappings":"AAEA,WAiBC"}
@@ -2,7 +2,7 @@ import type { EphemeralRegistrationToken } from './entities/ephemeral-registrati
2
2
  export interface MintEphemeralRegistrationTokenParams {
3
3
  workspaceId: string;
4
4
  provisionerId: string;
5
- provisionedRunnerId: string;
5
+ providerRunnerId: string;
6
6
  reservationId?: string | null | undefined;
7
7
  ttlSeconds: number;
8
8
  }
@@ -10,19 +10,19 @@ export interface MintEphemeralRegistrationTokenResult {
10
10
  token: EphemeralRegistrationToken;
11
11
  rawToken: string;
12
12
  }
13
- export interface MintEphemeralRegistrationTokensBatchProvisionedRunner {
14
- provisionedRunnerId: string;
13
+ export interface MintEphemeralRegistrationTokensBatchRunnerInstance {
14
+ providerRunnerId: string;
15
15
  }
16
16
  export interface MintEphemeralRegistrationTokensBatchParams {
17
17
  workspaceId: string;
18
18
  provisionerId: string;
19
19
  reservationId: string;
20
- provisionedRunners: MintEphemeralRegistrationTokensBatchProvisionedRunner[];
20
+ providerRunners: MintEphemeralRegistrationTokensBatchRunnerInstance[];
21
21
  ttlSeconds: number;
22
22
  maxBatchSize: number;
23
23
  }
24
24
  export interface MintEphemeralRegistrationTokensBatchResult {
25
- provisionedRunnerId: string;
25
+ providerRunnerId: string;
26
26
  token: EphemeralRegistrationToken;
27
27
  rawToken: string;
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ephemeral-registration-tokens.d.ts","sourceRoot":"","sources":["../../src/core/ephemeral-registration-tokens.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,4CAA4C,CAAC;AAG3F,MAAM,WAAW,oCAAoC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,0BAA0B,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qDAAqD;IACpE,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,0CAA0C;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,qDAAqD,EAAE,CAAC;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0CAA0C;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,0BAA0B,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,oCAAoC,GAC3C,OAAO,CAAC,oCAAoC,CAAC,CAc/C;AAED,wBAAsB,oCAAoC,CACxD,MAAM,EAAE,0CAA0C,GACjD,OAAO,CAAC,0CAA0C,EAAE,CAAC,CAgCvD"}
1
+ {"version":3,"file":"ephemeral-registration-tokens.d.ts","sourceRoot":"","sources":["../../src/core/ephemeral-registration-tokens.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,4CAA4C,CAAC;AAG3F,MAAM,WAAW,oCAAoC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,0BAA0B,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kDAAkD;IACjE,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,0CAA0C;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,kDAAkD,EAAE,CAAC;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0CAA0C;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,0BAA0B,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,oCAAoC,GAC3C,OAAO,CAAC,oCAAoC,CAAC,CAc/C;AAED,wBAAsB,oCAAoC,CACxD,MAAM,EAAE,0CAA0C,GACjD,OAAO,CAAC,0CAA0C,EAAE,CAAC,CA8BvD"}
@@ -3,12 +3,12 @@ import { createEphemeralRegistrationToken, createEphemeralRegistrationTokensBatc
3
3
  import { RegistrationTokenBatchTooLargeError } from './errors.js';
4
4
  export async function mintEphemeralRegistrationToken(params) {
5
5
  const expiresAt = new Date(Date.now() + params.ttlSeconds * 1000);
6
- const row = buildEphemeralTokenRow(params.provisionedRunnerId, expiresAt);
6
+ const row = buildEphemeralTokenRow(params.providerRunnerId, expiresAt);
7
7
  const token = await createEphemeralRegistrationToken({
8
8
  workspaceId: params.workspaceId,
9
9
  provisionerId: params.provisionerId,
10
10
  reservationId: params.reservationId ?? null,
11
- provisionedRunnerId: params.provisionedRunnerId,
11
+ providerRunnerId: params.providerRunnerId,
12
12
  hashedToken: row.hashedToken,
13
13
  prefix: row.prefix,
14
14
  expiresAt: row.expiresAt
@@ -19,11 +19,11 @@ export async function mintEphemeralRegistrationToken(params) {
19
19
  };
20
20
  }
21
21
  export async function mintEphemeralRegistrationTokensBatch(params) {
22
- if (params.provisionedRunners.length > params.maxBatchSize) {
23
- throw new RegistrationTokenBatchTooLargeError(params.provisionedRunners.length, params.maxBatchSize);
22
+ if (params.providerRunners.length > params.maxBatchSize) {
23
+ throw new RegistrationTokenBatchTooLargeError(params.providerRunners.length, params.maxBatchSize);
24
24
  }
25
25
  const expiresAt = new Date(Date.now() + params.ttlSeconds * 1000);
26
- const rows = params.provisionedRunners.map((provisionedRunner)=>buildEphemeralTokenRow(provisionedRunner.provisionedRunnerId, expiresAt));
26
+ const rows = params.providerRunners.map((providerRunner)=>buildEphemeralTokenRow(providerRunner.providerRunnerId, expiresAt));
27
27
  const tokens = await createEphemeralRegistrationTokensBatch({
28
28
  workspaceId: params.workspaceId,
29
29
  provisionerId: params.provisionerId,
@@ -31,26 +31,26 @@ export async function mintEphemeralRegistrationTokensBatch(params) {
31
31
  expiresAt,
32
32
  rows
33
33
  });
34
- const tokensByProvisionedRunnerId = new Map(tokens.map((token)=>[
35
- token.provisionedRunnerId,
34
+ const tokensByRunnerInstanceId = new Map(tokens.map((token)=>[
35
+ token.providerRunnerId,
36
36
  token
37
37
  ]));
38
38
  return rows.map((row)=>{
39
- const token = tokensByProvisionedRunnerId.get(row.provisionedRunnerId);
39
+ const token = tokensByRunnerInstanceId.get(row.providerRunnerId);
40
40
  if (!token) {
41
- throw new Error(`Inserted token not returned for provisioned runner: ${row.provisionedRunnerId}`);
41
+ throw new Error(`Inserted token not returned for provisioned runner: ${row.providerRunnerId}`);
42
42
  }
43
43
  return {
44
- provisionedRunnerId: row.provisionedRunnerId,
44
+ providerRunnerId: row.providerRunnerId,
45
45
  rawToken: row.rawToken,
46
46
  token
47
47
  };
48
48
  });
49
49
  }
50
- function buildEphemeralTokenRow(provisionedRunnerId, expiresAt) {
50
+ function buildEphemeralTokenRow(providerRunnerId, expiresAt) {
51
51
  const rawToken = generateOpaqueToken('ephemeralRegistrationToken');
52
52
  return {
53
- provisionedRunnerId,
53
+ providerRunnerId,
54
54
  rawToken,
55
55
  hashedToken: hashOpaqueToken(rawToken),
56
56
  prefix: extractDisplayPrefix(rawToken),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/ephemeral-registration-tokens.ts"],"sourcesContent":["import {extractDisplayPrefix, generateOpaqueToken, hashOpaqueToken} from '@shipfox/node-tokens';\nimport {\n createEphemeralRegistrationToken,\n createEphemeralRegistrationTokensBatch,\n} from '#db/ephemeral-registration-tokens.js';\nimport type {EphemeralRegistrationToken} from './entities/ephemeral-registration-token.js';\nimport {RegistrationTokenBatchTooLargeError} from './errors.js';\n\nexport interface MintEphemeralRegistrationTokenParams {\n workspaceId: string;\n provisionerId: string;\n provisionedRunnerId: string;\n reservationId?: string | null | undefined;\n ttlSeconds: number;\n}\n\nexport interface MintEphemeralRegistrationTokenResult {\n token: EphemeralRegistrationToken;\n rawToken: string;\n}\n\nexport interface MintEphemeralRegistrationTokensBatchProvisionedRunner {\n provisionedRunnerId: string;\n}\n\nexport interface MintEphemeralRegistrationTokensBatchParams {\n workspaceId: string;\n provisionerId: string;\n reservationId: string;\n provisionedRunners: MintEphemeralRegistrationTokensBatchProvisionedRunner[];\n ttlSeconds: number;\n maxBatchSize: number;\n}\n\nexport interface MintEphemeralRegistrationTokensBatchResult {\n provisionedRunnerId: string;\n token: EphemeralRegistrationToken;\n rawToken: string;\n}\n\nexport async function mintEphemeralRegistrationToken(\n params: MintEphemeralRegistrationTokenParams,\n): Promise<MintEphemeralRegistrationTokenResult> {\n const expiresAt = new Date(Date.now() + params.ttlSeconds * 1000);\n const row = buildEphemeralTokenRow(params.provisionedRunnerId, expiresAt);\n const token = await createEphemeralRegistrationToken({\n workspaceId: params.workspaceId,\n provisionerId: params.provisionerId,\n reservationId: params.reservationId ?? null,\n provisionedRunnerId: params.provisionedRunnerId,\n hashedToken: row.hashedToken,\n prefix: row.prefix,\n expiresAt: row.expiresAt,\n });\n\n return {token, rawToken: row.rawToken};\n}\n\nexport async function mintEphemeralRegistrationTokensBatch(\n params: MintEphemeralRegistrationTokensBatchParams,\n): Promise<MintEphemeralRegistrationTokensBatchResult[]> {\n if (params.provisionedRunners.length > params.maxBatchSize) {\n throw new RegistrationTokenBatchTooLargeError(\n params.provisionedRunners.length,\n params.maxBatchSize,\n );\n }\n\n const expiresAt = new Date(Date.now() + params.ttlSeconds * 1000);\n const rows = params.provisionedRunners.map((provisionedRunner) =>\n buildEphemeralTokenRow(provisionedRunner.provisionedRunnerId, expiresAt),\n );\n const tokens = await createEphemeralRegistrationTokensBatch({\n workspaceId: params.workspaceId,\n provisionerId: params.provisionerId,\n reservationId: params.reservationId,\n expiresAt,\n rows,\n });\n const tokensByProvisionedRunnerId = new Map(\n tokens.map((token) => [token.provisionedRunnerId, token]),\n );\n\n return rows.map((row) => {\n const token = tokensByProvisionedRunnerId.get(row.provisionedRunnerId);\n if (!token) {\n throw new Error(\n `Inserted token not returned for provisioned runner: ${row.provisionedRunnerId}`,\n );\n }\n return {provisionedRunnerId: row.provisionedRunnerId, rawToken: row.rawToken, token};\n });\n}\n\ninterface EphemeralTokenRow {\n provisionedRunnerId: string;\n rawToken: string;\n hashedToken: string;\n prefix: string;\n expiresAt: Date;\n}\n\nfunction buildEphemeralTokenRow(provisionedRunnerId: string, expiresAt: Date): EphemeralTokenRow {\n const rawToken = generateOpaqueToken('ephemeralRegistrationToken');\n return {\n provisionedRunnerId,\n rawToken,\n hashedToken: hashOpaqueToken(rawToken),\n prefix: extractDisplayPrefix(rawToken),\n expiresAt,\n };\n}\n"],"names":["extractDisplayPrefix","generateOpaqueToken","hashOpaqueToken","createEphemeralRegistrationToken","createEphemeralRegistrationTokensBatch","RegistrationTokenBatchTooLargeError","mintEphemeralRegistrationToken","params","expiresAt","Date","now","ttlSeconds","row","buildEphemeralTokenRow","provisionedRunnerId","token","workspaceId","provisionerId","reservationId","hashedToken","prefix","rawToken","mintEphemeralRegistrationTokensBatch","provisionedRunners","length","maxBatchSize","rows","map","provisionedRunner","tokens","tokensByProvisionedRunnerId","Map","get","Error"],"mappings":"AAAA,SAAQA,oBAAoB,EAAEC,mBAAmB,EAAEC,eAAe,QAAO,uBAAuB;AAChG,SACEC,gCAAgC,EAChCC,sCAAsC,QACjC,uCAAuC;AAE9C,SAAQC,mCAAmC,QAAO,cAAc;AAkChE,OAAO,eAAeC,+BACpBC,MAA4C;IAE5C,MAAMC,YAAY,IAAIC,KAAKA,KAAKC,GAAG,KAAKH,OAAOI,UAAU,GAAG;IAC5D,MAAMC,MAAMC,uBAAuBN,OAAOO,mBAAmB,EAAEN;IAC/D,MAAMO,QAAQ,MAAMZ,iCAAiC;QACnDa,aAAaT,OAAOS,WAAW;QAC/BC,eAAeV,OAAOU,aAAa;QACnCC,eAAeX,OAAOW,aAAa,IAAI;QACvCJ,qBAAqBP,OAAOO,mBAAmB;QAC/CK,aAAaP,IAAIO,WAAW;QAC5BC,QAAQR,IAAIQ,MAAM;QAClBZ,WAAWI,IAAIJ,SAAS;IAC1B;IAEA,OAAO;QAACO;QAAOM,UAAUT,IAAIS,QAAQ;IAAA;AACvC;AAEA,OAAO,eAAeC,qCACpBf,MAAkD;IAElD,IAAIA,OAAOgB,kBAAkB,CAACC,MAAM,GAAGjB,OAAOkB,YAAY,EAAE;QAC1D,MAAM,IAAIpB,oCACRE,OAAOgB,kBAAkB,CAACC,MAAM,EAChCjB,OAAOkB,YAAY;IAEvB;IAEA,MAAMjB,YAAY,IAAIC,KAAKA,KAAKC,GAAG,KAAKH,OAAOI,UAAU,GAAG;IAC5D,MAAMe,OAAOnB,OAAOgB,kBAAkB,CAACI,GAAG,CAAC,CAACC,oBAC1Cf,uBAAuBe,kBAAkBd,mBAAmB,EAAEN;IAEhE,MAAMqB,SAAS,MAAMzB,uCAAuC;QAC1DY,aAAaT,OAAOS,WAAW;QAC/BC,eAAeV,OAAOU,aAAa;QACnCC,eAAeX,OAAOW,aAAa;QACnCV;QACAkB;IACF;IACA,MAAMI,8BAA8B,IAAIC,IACtCF,OAAOF,GAAG,CAAC,CAACZ,QAAU;YAACA,MAAMD,mBAAmB;YAAEC;SAAM;IAG1D,OAAOW,KAAKC,GAAG,CAAC,CAACf;QACf,MAAMG,QAAQe,4BAA4BE,GAAG,CAACpB,IAAIE,mBAAmB;QACrE,IAAI,CAACC,OAAO;YACV,MAAM,IAAIkB,MACR,CAAC,oDAAoD,EAAErB,IAAIE,mBAAmB,EAAE;QAEpF;QACA,OAAO;YAACA,qBAAqBF,IAAIE,mBAAmB;YAAEO,UAAUT,IAAIS,QAAQ;YAAEN;QAAK;IACrF;AACF;AAUA,SAASF,uBAAuBC,mBAA2B,EAAEN,SAAe;IAC1E,MAAMa,WAAWpB,oBAAoB;IACrC,OAAO;QACLa;QACAO;QACAF,aAAajB,gBAAgBmB;QAC7BD,QAAQpB,qBAAqBqB;QAC7Bb;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/core/ephemeral-registration-tokens.ts"],"sourcesContent":["import {extractDisplayPrefix, generateOpaqueToken, hashOpaqueToken} from '@shipfox/node-tokens';\nimport {\n createEphemeralRegistrationToken,\n createEphemeralRegistrationTokensBatch,\n} from '#db/ephemeral-registration-tokens.js';\nimport type {EphemeralRegistrationToken} from './entities/ephemeral-registration-token.js';\nimport {RegistrationTokenBatchTooLargeError} from './errors.js';\n\nexport interface MintEphemeralRegistrationTokenParams {\n workspaceId: string;\n provisionerId: string;\n providerRunnerId: string;\n reservationId?: string | null | undefined;\n ttlSeconds: number;\n}\n\nexport interface MintEphemeralRegistrationTokenResult {\n token: EphemeralRegistrationToken;\n rawToken: string;\n}\n\nexport interface MintEphemeralRegistrationTokensBatchRunnerInstance {\n providerRunnerId: string;\n}\n\nexport interface MintEphemeralRegistrationTokensBatchParams {\n workspaceId: string;\n provisionerId: string;\n reservationId: string;\n providerRunners: MintEphemeralRegistrationTokensBatchRunnerInstance[];\n ttlSeconds: number;\n maxBatchSize: number;\n}\n\nexport interface MintEphemeralRegistrationTokensBatchResult {\n providerRunnerId: string;\n token: EphemeralRegistrationToken;\n rawToken: string;\n}\n\nexport async function mintEphemeralRegistrationToken(\n params: MintEphemeralRegistrationTokenParams,\n): Promise<MintEphemeralRegistrationTokenResult> {\n const expiresAt = new Date(Date.now() + params.ttlSeconds * 1000);\n const row = buildEphemeralTokenRow(params.providerRunnerId, expiresAt);\n const token = await createEphemeralRegistrationToken({\n workspaceId: params.workspaceId,\n provisionerId: params.provisionerId,\n reservationId: params.reservationId ?? null,\n providerRunnerId: params.providerRunnerId,\n hashedToken: row.hashedToken,\n prefix: row.prefix,\n expiresAt: row.expiresAt,\n });\n\n return {token, rawToken: row.rawToken};\n}\n\nexport async function mintEphemeralRegistrationTokensBatch(\n params: MintEphemeralRegistrationTokensBatchParams,\n): Promise<MintEphemeralRegistrationTokensBatchResult[]> {\n if (params.providerRunners.length > params.maxBatchSize) {\n throw new RegistrationTokenBatchTooLargeError(\n params.providerRunners.length,\n params.maxBatchSize,\n );\n }\n\n const expiresAt = new Date(Date.now() + params.ttlSeconds * 1000);\n const rows = params.providerRunners.map((providerRunner) =>\n buildEphemeralTokenRow(providerRunner.providerRunnerId, expiresAt),\n );\n const tokens = await createEphemeralRegistrationTokensBatch({\n workspaceId: params.workspaceId,\n provisionerId: params.provisionerId,\n reservationId: params.reservationId,\n expiresAt,\n rows,\n });\n const tokensByRunnerInstanceId = new Map(tokens.map((token) => [token.providerRunnerId, token]));\n\n return rows.map((row) => {\n const token = tokensByRunnerInstanceId.get(row.providerRunnerId);\n if (!token) {\n throw new Error(\n `Inserted token not returned for provisioned runner: ${row.providerRunnerId}`,\n );\n }\n return {providerRunnerId: row.providerRunnerId, rawToken: row.rawToken, token};\n });\n}\n\ninterface EphemeralTokenRow {\n providerRunnerId: string;\n rawToken: string;\n hashedToken: string;\n prefix: string;\n expiresAt: Date;\n}\n\nfunction buildEphemeralTokenRow(providerRunnerId: string, expiresAt: Date): EphemeralTokenRow {\n const rawToken = generateOpaqueToken('ephemeralRegistrationToken');\n return {\n providerRunnerId,\n rawToken,\n hashedToken: hashOpaqueToken(rawToken),\n prefix: extractDisplayPrefix(rawToken),\n expiresAt,\n };\n}\n"],"names":["extractDisplayPrefix","generateOpaqueToken","hashOpaqueToken","createEphemeralRegistrationToken","createEphemeralRegistrationTokensBatch","RegistrationTokenBatchTooLargeError","mintEphemeralRegistrationToken","params","expiresAt","Date","now","ttlSeconds","row","buildEphemeralTokenRow","providerRunnerId","token","workspaceId","provisionerId","reservationId","hashedToken","prefix","rawToken","mintEphemeralRegistrationTokensBatch","providerRunners","length","maxBatchSize","rows","map","providerRunner","tokens","tokensByRunnerInstanceId","Map","get","Error"],"mappings":"AAAA,SAAQA,oBAAoB,EAAEC,mBAAmB,EAAEC,eAAe,QAAO,uBAAuB;AAChG,SACEC,gCAAgC,EAChCC,sCAAsC,QACjC,uCAAuC;AAE9C,SAAQC,mCAAmC,QAAO,cAAc;AAkChE,OAAO,eAAeC,+BACpBC,MAA4C;IAE5C,MAAMC,YAAY,IAAIC,KAAKA,KAAKC,GAAG,KAAKH,OAAOI,UAAU,GAAG;IAC5D,MAAMC,MAAMC,uBAAuBN,OAAOO,gBAAgB,EAAEN;IAC5D,MAAMO,QAAQ,MAAMZ,iCAAiC;QACnDa,aAAaT,OAAOS,WAAW;QAC/BC,eAAeV,OAAOU,aAAa;QACnCC,eAAeX,OAAOW,aAAa,IAAI;QACvCJ,kBAAkBP,OAAOO,gBAAgB;QACzCK,aAAaP,IAAIO,WAAW;QAC5BC,QAAQR,IAAIQ,MAAM;QAClBZ,WAAWI,IAAIJ,SAAS;IAC1B;IAEA,OAAO;QAACO;QAAOM,UAAUT,IAAIS,QAAQ;IAAA;AACvC;AAEA,OAAO,eAAeC,qCACpBf,MAAkD;IAElD,IAAIA,OAAOgB,eAAe,CAACC,MAAM,GAAGjB,OAAOkB,YAAY,EAAE;QACvD,MAAM,IAAIpB,oCACRE,OAAOgB,eAAe,CAACC,MAAM,EAC7BjB,OAAOkB,YAAY;IAEvB;IAEA,MAAMjB,YAAY,IAAIC,KAAKA,KAAKC,GAAG,KAAKH,OAAOI,UAAU,GAAG;IAC5D,MAAMe,OAAOnB,OAAOgB,eAAe,CAACI,GAAG,CAAC,CAACC,iBACvCf,uBAAuBe,eAAed,gBAAgB,EAAEN;IAE1D,MAAMqB,SAAS,MAAMzB,uCAAuC;QAC1DY,aAAaT,OAAOS,WAAW;QAC/BC,eAAeV,OAAOU,aAAa;QACnCC,eAAeX,OAAOW,aAAa;QACnCV;QACAkB;IACF;IACA,MAAMI,2BAA2B,IAAIC,IAAIF,OAAOF,GAAG,CAAC,CAACZ,QAAU;YAACA,MAAMD,gBAAgB;YAAEC;SAAM;IAE9F,OAAOW,KAAKC,GAAG,CAAC,CAACf;QACf,MAAMG,QAAQe,yBAAyBE,GAAG,CAACpB,IAAIE,gBAAgB;QAC/D,IAAI,CAACC,OAAO;YACV,MAAM,IAAIkB,MACR,CAAC,oDAAoD,EAAErB,IAAIE,gBAAgB,EAAE;QAEjF;QACA,OAAO;YAACA,kBAAkBF,IAAIE,gBAAgB;YAAEO,UAAUT,IAAIS,QAAQ;YAAEN;QAAK;IAC/E;AACF;AAUA,SAASF,uBAAuBC,gBAAwB,EAAEN,SAAe;IACvE,MAAMa,WAAWpB,oBAAoB;IACrC,OAAO;QACLa;QACAO;QACAF,aAAajB,gBAAgBmB;QAC7BD,QAAQpB,qBAAqBqB;QAC7Bb;IACF;AACF"}
@@ -29,8 +29,8 @@ export declare class RegistrationTokenWorkspaceMismatchError extends Error {
29
29
  export declare class ActiveEphemeralRegistrationTokenExistsError extends Error {
30
30
  readonly workspaceId: string;
31
31
  readonly provisionerId: string;
32
- readonly provisionedRunnerId: string;
33
- constructor(workspaceId: string, provisionerId: string, provisionedRunnerId: string);
32
+ readonly providerRunnerId: string;
33
+ constructor(workspaceId: string, provisionerId: string, providerRunnerId: string);
34
34
  }
35
35
  export declare class ReservationNotFoundError extends Error {
36
36
  readonly reservationId: string;
@@ -40,6 +40,18 @@ export declare class ReservationExpiredError extends Error {
40
40
  readonly reservationId: string;
41
41
  constructor(reservationId: string);
42
42
  }
43
+ export declare class CapacityNotAssignableError extends Error {
44
+ readonly capacityId: string;
45
+ constructor(capacityId: string);
46
+ }
47
+ export declare class CapacityAlreadyAssignedError extends Error {
48
+ readonly capacityId: string;
49
+ constructor(capacityId: string);
50
+ }
51
+ export declare class ReservationAlreadyAssignedError extends Error {
52
+ readonly reservationId: string;
53
+ constructor(reservationId: string);
54
+ }
43
55
  export declare class RegistrationTokenBatchTooLargeError extends Error {
44
56
  readonly requested: number;
45
57
  readonly max: number;
@@ -52,8 +64,8 @@ export declare class RegistrationTokenBatchExceedsReservationError extends Error
52
64
  constructor(requested: number, reservationCount: number, alreadyMinted?: number);
53
65
  }
54
66
  export declare class ActiveEphemeralRegistrationTokensExistError extends Error {
55
- readonly provisionedRunnerIds: string[];
56
- constructor(provisionedRunnerIds: string[]);
67
+ readonly providerRunnerIds: string[];
68
+ constructor(providerRunnerIds: string[]);
57
69
  }
58
70
  export declare class RunnerSessionExhaustedError extends Error {
59
71
  readonly runnerSessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,gCAAiC,SAAQ,KAAK;gBAC7C,cAAc,EAAE,MAAM;CAInC;AAED,qBAAa,oCAAqC,SAAQ,KAAK;gBACjD,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,sBAAuB,SAAQ,KAAK;;CAKhD;AAED,qBAAa,wBAAyB,SAAQ,KAAK;;CAKlD;AAED,qBAAa,8BAA+B,SAAQ,KAAK;aAC3B,gBAAgB,EAAE,MAAM;gBAAxB,gBAAgB,EAAE,MAAM;CAIrD;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAC1B,gBAAgB,EAAE,MAAM;gBAAxB,gBAAgB,EAAE,MAAM;CAIrD;AAED,qBAAa,uCAAwC,SAAQ,KAAK;aAE9C,gBAAgB,EAAE,MAAM;aACxB,WAAW,EAAE,MAAM;gBADnB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM;CAOtC;AAED,qBAAa,2CAA4C,SAAQ,KAAK;aAElD,WAAW,EAAE,MAAM;aACnB,aAAa,EAAE,MAAM;aACrB,mBAAmB,EAAE,MAAM;gBAF3B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM;CAO9C;AAED,qBAAa,wBAAyB,SAAQ,KAAK;aACrB,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;CAIlD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aACpB,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;CAIlD;AAED,qBAAa,mCAAoC,SAAQ,KAAK;aAE1C,SAAS,EAAE,MAAM;aACjB,GAAG,EAAE,MAAM;gBADX,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM;CAO9B;AAED,qBAAa,6CAA8C,SAAQ,KAAK;aAEpD,SAAS,EAAE,MAAM;aACjB,gBAAgB,EAAE,MAAM;aACxB,aAAa,EAAE,MAAM;gBAFrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,aAAa,GAAE,MAAU;CAO5C;AAED,qBAAa,2CAA4C,SAAQ,KAAK;aACxC,oBAAoB,EAAE,MAAM,EAAE;gBAA9B,oBAAoB,EAAE,MAAM,EAAE;CAM3D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;aACxB,eAAe,EAAE,MAAM;gBAAvB,eAAe,EAAE,MAAM;CAIpD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,gCAAiC,SAAQ,KAAK;gBAC7C,cAAc,EAAE,MAAM;CAInC;AAED,qBAAa,oCAAqC,SAAQ,KAAK;gBACjD,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,sBAAuB,SAAQ,KAAK;;CAKhD;AAED,qBAAa,wBAAyB,SAAQ,KAAK;;CAKlD;AAED,qBAAa,8BAA+B,SAAQ,KAAK;aAC3B,gBAAgB,EAAE,MAAM;gBAAxB,gBAAgB,EAAE,MAAM;CAIrD;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAC1B,gBAAgB,EAAE,MAAM;gBAAxB,gBAAgB,EAAE,MAAM;CAIrD;AAED,qBAAa,uCAAwC,SAAQ,KAAK;aAE9C,gBAAgB,EAAE,MAAM;aACxB,WAAW,EAAE,MAAM;gBADnB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM;CAOtC;AAED,qBAAa,2CAA4C,SAAQ,KAAK;aAElD,WAAW,EAAE,MAAM;aACnB,aAAa,EAAE,MAAM;aACrB,gBAAgB,EAAE,MAAM;gBAFxB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM;CAO3C;AAED,qBAAa,wBAAyB,SAAQ,KAAK;aACrB,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;CAIlD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aACpB,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;CAIlD;AAED,qBAAa,0BAA2B,SAAQ,KAAK;aACvB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM;CAI/C;AACD,qBAAa,4BAA6B,SAAQ,KAAK;aACzB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM;CAI/C;AACD,qBAAa,+BAAgC,SAAQ,KAAK;aAC5B,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;CAIlD;AAED,qBAAa,mCAAoC,SAAQ,KAAK;aAE1C,SAAS,EAAE,MAAM;aACjB,GAAG,EAAE,MAAM;gBADX,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM;CAO9B;AAED,qBAAa,6CAA8C,SAAQ,KAAK;aAEpD,SAAS,EAAE,MAAM;aACjB,gBAAgB,EAAE,MAAM;aACxB,aAAa,EAAE,MAAM;gBAFrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,aAAa,GAAE,MAAU;CAO5C;AAED,qBAAa,2CAA4C,SAAQ,KAAK;aACxC,iBAAiB,EAAE,MAAM,EAAE;gBAA3B,iBAAiB,EAAE,MAAM,EAAE;CAMxD;AAED,qBAAa,2BAA4B,SAAQ,KAAK;aACxB,eAAe,EAAE,MAAM;gBAAvB,eAAe,EAAE,MAAM;CAIpD"}
@@ -47,8 +47,8 @@ export class RegistrationTokenWorkspaceMismatchError extends Error {
47
47
  }
48
48
  }
49
49
  export class ActiveEphemeralRegistrationTokenExistsError extends Error {
50
- constructor(workspaceId, provisionerId, provisionedRunnerId){
51
- super(`Active ephemeral registration token already exists for provisioned runner ${provisionedRunnerId} in workspace ${workspaceId}`), this.workspaceId = workspaceId, this.provisionerId = provisionerId, this.provisionedRunnerId = provisionedRunnerId;
50
+ constructor(workspaceId, provisionerId, providerRunnerId){
51
+ super(`Active ephemeral registration token already exists for provisioned runner ${providerRunnerId} in workspace ${workspaceId}`), this.workspaceId = workspaceId, this.provisionerId = provisionerId, this.providerRunnerId = providerRunnerId;
52
52
  this.name = 'ActiveEphemeralRegistrationTokenExistsError';
53
53
  }
54
54
  }
@@ -64,6 +64,24 @@ export class ReservationExpiredError extends Error {
64
64
  this.name = 'ReservationExpiredError';
65
65
  }
66
66
  }
67
+ export class CapacityNotAssignableError extends Error {
68
+ constructor(capacityId){
69
+ super(`Capacity cannot be assigned: ${capacityId}`), this.capacityId = capacityId;
70
+ this.name = 'CapacityNotAssignableError';
71
+ }
72
+ }
73
+ export class CapacityAlreadyAssignedError extends Error {
74
+ constructor(capacityId){
75
+ super(`Capacity is already assigned: ${capacityId}`), this.capacityId = capacityId;
76
+ this.name = 'CapacityAlreadyAssignedError';
77
+ }
78
+ }
79
+ export class ReservationAlreadyAssignedError extends Error {
80
+ constructor(reservationId){
81
+ super(`Reservation is already assigned: ${reservationId}`), this.reservationId = reservationId;
82
+ this.name = 'ReservationAlreadyAssignedError';
83
+ }
84
+ }
67
85
  export class RegistrationTokenBatchTooLargeError extends Error {
68
86
  constructor(requested, max){
69
87
  super(`Registration token batch requested ${requested} provisioned runners, exceeding max ${max}`), this.requested = requested, this.max = max;
@@ -77,8 +95,8 @@ export class RegistrationTokenBatchExceedsReservationError extends Error {
77
95
  }
78
96
  }
79
97
  export class ActiveEphemeralRegistrationTokensExistError extends Error {
80
- constructor(provisionedRunnerIds){
81
- super(`Active ephemeral registration tokens already exist for provisioned runners: ${provisionedRunnerIds.join(', ')}`), this.provisionedRunnerIds = provisionedRunnerIds;
98
+ constructor(providerRunnerIds){
99
+ super(`Active ephemeral registration tokens already exist for provisioned runners: ${providerRunnerIds.join(', ')}`), this.providerRunnerIds = providerRunnerIds;
82
100
  this.name = 'ActiveEphemeralRegistrationTokensExistError';
83
101
  }
84
102
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/errors.ts"],"sourcesContent":["export class RunningJobExecutionNotFoundError extends Error {\n constructor(jobExecutionId: string) {\n super(`Running job execution not found: ${jobExecutionId}`);\n this.name = 'RunningJobExecutionNotFoundError';\n }\n}\n\nexport class ManualRegistrationTokenNotFoundError extends Error {\n constructor(tokenId: string) {\n super(`Manual registration token not found: ${tokenId}`);\n this.name = 'ManualRegistrationTokenNotFoundError';\n }\n}\n\nexport class ProvisionerTokenNotFoundError extends Error {\n constructor(tokenId: string) {\n super(`Provisioner token not found: ${tokenId}`);\n this.name = 'ProvisionerTokenNotFoundError';\n }\n}\n\nexport class EmptyRunnerLabelsError extends Error {\n constructor() {\n super('Runner labels cannot be empty');\n this.name = 'EmptyRunnerLabelsError';\n }\n}\n\nexport class EmptyRequiredLabelsError extends Error {\n constructor() {\n super('Required labels cannot be empty');\n this.name = 'EmptyRequiredLabelsError';\n }\n}\n\nexport class RegistrationTokenConsumedError extends Error {\n constructor(public readonly ephemeralTokenId: string) {\n super(`Ephemeral registration token has already been consumed: ${ephemeralTokenId}`);\n this.name = 'RegistrationTokenConsumedError';\n }\n}\n\nexport class RegistrationTokenExpiredError extends Error {\n constructor(public readonly ephemeralTokenId: string) {\n super(`Ephemeral registration token has expired: ${ephemeralTokenId}`);\n this.name = 'RegistrationTokenExpiredError';\n }\n}\n\nexport class RegistrationTokenWorkspaceMismatchError extends Error {\n constructor(\n public readonly ephemeralTokenId: string,\n public readonly workspaceId: string,\n ) {\n super(\n `Ephemeral registration token ${ephemeralTokenId} does not belong to workspace ${workspaceId}`,\n );\n this.name = 'RegistrationTokenWorkspaceMismatchError';\n }\n}\n\nexport class ActiveEphemeralRegistrationTokenExistsError extends Error {\n constructor(\n public readonly workspaceId: string,\n public readonly provisionerId: string,\n public readonly provisionedRunnerId: string,\n ) {\n super(\n `Active ephemeral registration token already exists for provisioned runner ${provisionedRunnerId} in workspace ${workspaceId}`,\n );\n this.name = 'ActiveEphemeralRegistrationTokenExistsError';\n }\n}\n\nexport class ReservationNotFoundError extends Error {\n constructor(public readonly reservationId: string) {\n super(`Reservation not found: ${reservationId}`);\n this.name = 'ReservationNotFoundError';\n }\n}\n\nexport class ReservationExpiredError extends Error {\n constructor(public readonly reservationId: string) {\n super(`Reservation has expired: ${reservationId}`);\n this.name = 'ReservationExpiredError';\n }\n}\n\nexport class RegistrationTokenBatchTooLargeError extends Error {\n constructor(\n public readonly requested: number,\n public readonly max: number,\n ) {\n super(\n `Registration token batch requested ${requested} provisioned runners, exceeding max ${max}`,\n );\n this.name = 'RegistrationTokenBatchTooLargeError';\n }\n}\n\nexport class RegistrationTokenBatchExceedsReservationError extends Error {\n constructor(\n public readonly requested: number,\n public readonly reservationCount: number,\n public readonly alreadyMinted: number = 0,\n ) {\n super(\n `Registration token batch requested ${requested} provisioned runners with ${alreadyMinted} already minted, exceeding reservation count ${reservationCount}`,\n );\n this.name = 'RegistrationTokenBatchExceedsReservationError';\n }\n}\n\nexport class ActiveEphemeralRegistrationTokensExistError extends Error {\n constructor(public readonly provisionedRunnerIds: string[]) {\n super(\n `Active ephemeral registration tokens already exist for provisioned runners: ${provisionedRunnerIds.join(', ')}`,\n );\n this.name = 'ActiveEphemeralRegistrationTokensExistError';\n }\n}\n\nexport class RunnerSessionExhaustedError extends Error {\n constructor(public readonly runnerSessionId: string) {\n super(`Runner session claim limit exhausted: ${runnerSessionId}`);\n this.name = 'RunnerSessionExhaustedError';\n }\n}\n"],"names":["RunningJobExecutionNotFoundError","Error","jobExecutionId","name","ManualRegistrationTokenNotFoundError","tokenId","ProvisionerTokenNotFoundError","EmptyRunnerLabelsError","EmptyRequiredLabelsError","RegistrationTokenConsumedError","ephemeralTokenId","RegistrationTokenExpiredError","RegistrationTokenWorkspaceMismatchError","workspaceId","ActiveEphemeralRegistrationTokenExistsError","provisionerId","provisionedRunnerId","ReservationNotFoundError","reservationId","ReservationExpiredError","RegistrationTokenBatchTooLargeError","requested","max","RegistrationTokenBatchExceedsReservationError","reservationCount","alreadyMinted","ActiveEphemeralRegistrationTokensExistError","provisionedRunnerIds","join","RunnerSessionExhaustedError","runnerSessionId"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/core/errors.ts"],"sourcesContent":["export class RunningJobExecutionNotFoundError extends Error {\n constructor(jobExecutionId: string) {\n super(`Running job execution not found: ${jobExecutionId}`);\n this.name = 'RunningJobExecutionNotFoundError';\n }\n}\n\nexport class ManualRegistrationTokenNotFoundError extends Error {\n constructor(tokenId: string) {\n super(`Manual registration token not found: ${tokenId}`);\n this.name = 'ManualRegistrationTokenNotFoundError';\n }\n}\n\nexport class ProvisionerTokenNotFoundError extends Error {\n constructor(tokenId: string) {\n super(`Provisioner token not found: ${tokenId}`);\n this.name = 'ProvisionerTokenNotFoundError';\n }\n}\n\nexport class EmptyRunnerLabelsError extends Error {\n constructor() {\n super('Runner labels cannot be empty');\n this.name = 'EmptyRunnerLabelsError';\n }\n}\n\nexport class EmptyRequiredLabelsError extends Error {\n constructor() {\n super('Required labels cannot be empty');\n this.name = 'EmptyRequiredLabelsError';\n }\n}\n\nexport class RegistrationTokenConsumedError extends Error {\n constructor(public readonly ephemeralTokenId: string) {\n super(`Ephemeral registration token has already been consumed: ${ephemeralTokenId}`);\n this.name = 'RegistrationTokenConsumedError';\n }\n}\n\nexport class RegistrationTokenExpiredError extends Error {\n constructor(public readonly ephemeralTokenId: string) {\n super(`Ephemeral registration token has expired: ${ephemeralTokenId}`);\n this.name = 'RegistrationTokenExpiredError';\n }\n}\n\nexport class RegistrationTokenWorkspaceMismatchError extends Error {\n constructor(\n public readonly ephemeralTokenId: string,\n public readonly workspaceId: string,\n ) {\n super(\n `Ephemeral registration token ${ephemeralTokenId} does not belong to workspace ${workspaceId}`,\n );\n this.name = 'RegistrationTokenWorkspaceMismatchError';\n }\n}\n\nexport class ActiveEphemeralRegistrationTokenExistsError extends Error {\n constructor(\n public readonly workspaceId: string,\n public readonly provisionerId: string,\n public readonly providerRunnerId: string,\n ) {\n super(\n `Active ephemeral registration token already exists for provisioned runner ${providerRunnerId} in workspace ${workspaceId}`,\n );\n this.name = 'ActiveEphemeralRegistrationTokenExistsError';\n }\n}\n\nexport class ReservationNotFoundError extends Error {\n constructor(public readonly reservationId: string) {\n super(`Reservation not found: ${reservationId}`);\n this.name = 'ReservationNotFoundError';\n }\n}\n\nexport class ReservationExpiredError extends Error {\n constructor(public readonly reservationId: string) {\n super(`Reservation has expired: ${reservationId}`);\n this.name = 'ReservationExpiredError';\n }\n}\n\nexport class CapacityNotAssignableError extends Error {\n constructor(public readonly capacityId: string) {\n super(`Capacity cannot be assigned: ${capacityId}`);\n this.name = 'CapacityNotAssignableError';\n }\n}\nexport class CapacityAlreadyAssignedError extends Error {\n constructor(public readonly capacityId: string) {\n super(`Capacity is already assigned: ${capacityId}`);\n this.name = 'CapacityAlreadyAssignedError';\n }\n}\nexport class ReservationAlreadyAssignedError extends Error {\n constructor(public readonly reservationId: string) {\n super(`Reservation is already assigned: ${reservationId}`);\n this.name = 'ReservationAlreadyAssignedError';\n }\n}\n\nexport class RegistrationTokenBatchTooLargeError extends Error {\n constructor(\n public readonly requested: number,\n public readonly max: number,\n ) {\n super(\n `Registration token batch requested ${requested} provisioned runners, exceeding max ${max}`,\n );\n this.name = 'RegistrationTokenBatchTooLargeError';\n }\n}\n\nexport class RegistrationTokenBatchExceedsReservationError extends Error {\n constructor(\n public readonly requested: number,\n public readonly reservationCount: number,\n public readonly alreadyMinted: number = 0,\n ) {\n super(\n `Registration token batch requested ${requested} provisioned runners with ${alreadyMinted} already minted, exceeding reservation count ${reservationCount}`,\n );\n this.name = 'RegistrationTokenBatchExceedsReservationError';\n }\n}\n\nexport class ActiveEphemeralRegistrationTokensExistError extends Error {\n constructor(public readonly providerRunnerIds: string[]) {\n super(\n `Active ephemeral registration tokens already exist for provisioned runners: ${providerRunnerIds.join(', ')}`,\n );\n this.name = 'ActiveEphemeralRegistrationTokensExistError';\n }\n}\n\nexport class RunnerSessionExhaustedError extends Error {\n constructor(public readonly runnerSessionId: string) {\n super(`Runner session claim limit exhausted: ${runnerSessionId}`);\n this.name = 'RunnerSessionExhaustedError';\n }\n}\n"],"names":["RunningJobExecutionNotFoundError","Error","jobExecutionId","name","ManualRegistrationTokenNotFoundError","tokenId","ProvisionerTokenNotFoundError","EmptyRunnerLabelsError","EmptyRequiredLabelsError","RegistrationTokenConsumedError","ephemeralTokenId","RegistrationTokenExpiredError","RegistrationTokenWorkspaceMismatchError","workspaceId","ActiveEphemeralRegistrationTokenExistsError","provisionerId","providerRunnerId","ReservationNotFoundError","reservationId","ReservationExpiredError","CapacityNotAssignableError","capacityId","CapacityAlreadyAssignedError","ReservationAlreadyAssignedError","RegistrationTokenBatchTooLargeError","requested","max","RegistrationTokenBatchExceedsReservationError","reservationCount","alreadyMinted","ActiveEphemeralRegistrationTokensExistError","providerRunnerIds","join","RunnerSessionExhaustedError","runnerSessionId"],"mappings":"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"}
@@ -1,14 +1,20 @@
1
+ export { assignCapacityBatch } from './capacity-assignments.js';
2
+ export type { CapacityAssignment } from './entities/capacity-assignment.js';
1
3
  export type { EphemeralRegistrationToken } from './entities/ephemeral-registration-token.js';
2
4
  export type { ManualRegistrationToken } from './entities/manual-registration-token.js';
3
- export type { ProvisionedRunner, ProvisionedRunnerState, } from './entities/provisioned-runner.js';
4
- export type { ActiveProvisionerToken, ProvisionerToken } from './entities/provisioner-token.js';
5
+ export type { ProvisionerCapabilitySnapshot } from './entities/provisioner-capability-snapshot.js';
6
+ export type { ActiveProvisionerToken, ProvisionerScope, ProvisionerToken, } from './entities/provisioner-token.js';
7
+ export type { RunnerInstance, RunnerInstanceState, } from './entities/runner-instance.js';
5
8
  export type { RunnerSession } from './entities/runner-session.js';
6
9
  export { type MintEphemeralRegistrationTokenParams, type MintEphemeralRegistrationTokenResult, mintEphemeralRegistrationToken, } from './ephemeral-registration-tokens.js';
7
10
  export { EmptyRunnerLabelsError, ManualRegistrationTokenNotFoundError, ProvisionerTokenNotFoundError, RegistrationTokenConsumedError, RegistrationTokenExpiredError, RunnerSessionExhaustedError, RunningJobExecutionNotFoundError, } from './errors.js';
8
11
  export { type ClaimJobExecutionResult, claimJobExecution } from './job-executions.js';
9
12
  export { createWorkspaceManualRegistrationToken, listUsableManualRegistrationTokens, revokeWorkspaceManualRegistrationToken, } from './manual-registration-tokens.js';
10
- export { type ActiveRunner, listActiveRunners, type ReconcileDesiredIntent, type ReconciledBoundJobExecution, type ReconciledProvisionedRunner, type ReconcileProvisionedRunnersParams, type ReconcileProvisionedRunnersResult, type ReportProvisionedRunnersParams, type ReportProvisionedRunnersResult, reconcileProvisionedRunners, reportProvisionedRunners, } from './provisioned-runners.js';
11
- export { createWorkspaceProvisionerToken, listActiveProvisioners, listUsableProvisionerTokens, revokeWorkspaceProvisionerToken, } from './provisioner-tokens.js';
13
+ export { hasActiveWorkspaceProvisionerCapability } from './provisioner-capability-snapshots.js';
14
+ export { createInstallationProvisionerToken, createWorkspaceProvisionerToken, listActiveProvisioners, listUsableProvisionerTokens, revokeInstallationProvisionerToken, revokeWorkspaceProvisionerToken, } from './provisioner-tokens.js';
15
+ export { getRunnerAssignment, issueRunnerActivationToken } from './runner-activation.js';
16
+ export { attachRunnerControlProviderId, createRunnerInstancesWithBootstrapTokens, enrollRunnerControlSession, exchangeRunnerBootstrapToken, RunnerBootstrapTokenInvalidError, RunnerControlSessionInvalidError, touchRunnerControlSession, } from './runner-control-sessions.js';
17
+ export { type ActiveRunner, attachProviderRunnerId, createPlannedProvisionedCapacity, listActiveRunners, type ReconcileDesiredIntent, type ReconciledBoundJobExecution, type ReconciledRunnerInstance, type ReconcileRunnerInstancesParams, type ReconcileRunnerInstancesResult, type ReportRunnerInstancesParams, type ReportRunnerInstancesResult, reconcileRunnerInstances, reportRunnerInstances, } from './runner-instances.js';
12
18
  export { type RegisterRunnerSessionResult, type RunnerRegistrationCredential, registerRunnerSession, } from './runner-sessions.js';
13
19
  export { EMPTY_RUNNER_TOOL_CAPABILITIES, effectiveRunnerToolCapabilities, } from './runner-tool-capabilities.js';
14
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,0BAA0B,EAAC,MAAM,4CAA4C,CAAC;AAC3F,YAAY,EAAC,uBAAuB,EAAC,MAAM,yCAAyC,CAAC;AACrF,YAAY,EACV,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAC,sBAAsB,EAAE,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAC9F,YAAY,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,KAAK,oCAAoC,EACzC,KAAK,oCAAoC,EACzC,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,oCAAoC,EACpC,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,KAAK,uBAAuB,EAAE,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACpF,OAAO,EACL,sCAAsC,EACtC,kCAAkC,EAClC,sCAAsC,GACvC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,YAAY,EACjB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACnC,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,EACtB,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AAC1E,YAAY,EAAC,0BAA0B,EAAC,MAAM,4CAA4C,CAAC;AAC3F,YAAY,EAAC,uBAAuB,EAAC,MAAM,yCAAyC,CAAC;AACrF,YAAY,EAAC,6BAA6B,EAAC,MAAM,+CAA+C,CAAC;AACjG,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,cAAc,EACd,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,KAAK,oCAAoC,EACzC,KAAK,oCAAoC,EACzC,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,oCAAoC,EACpC,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,KAAK,uBAAuB,EAAE,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACpF,OAAO,EACL,sCAAsC,EACtC,kCAAkC,EAClC,sCAAsC,GACvC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,uCAAuC,EAAC,MAAM,uCAAuC,CAAC;AAC9F,OAAO,EACL,kCAAkC,EAClC,+BAA+B,EAC/B,sBAAsB,EACtB,2BAA2B,EAC3B,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,mBAAmB,EAAE,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AACvF,OAAO,EACL,6BAA6B,EAC7B,wCAAwC,EACxC,0BAA0B,EAC1B,4BAA4B,EAC5B,gCAAgC,EAChC,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,YAAY,EACjB,sBAAsB,EACtB,gCAAgC,EAChC,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,+BAA+B,CAAC"}
@@ -1,9 +1,13 @@
1
+ export { assignCapacityBatch } from './capacity-assignments.js';
1
2
  export { mintEphemeralRegistrationToken } from './ephemeral-registration-tokens.js';
2
3
  export { EmptyRunnerLabelsError, ManualRegistrationTokenNotFoundError, ProvisionerTokenNotFoundError, RegistrationTokenConsumedError, RegistrationTokenExpiredError, RunnerSessionExhaustedError, RunningJobExecutionNotFoundError } from './errors.js';
3
4
  export { claimJobExecution } from './job-executions.js';
4
5
  export { createWorkspaceManualRegistrationToken, listUsableManualRegistrationTokens, revokeWorkspaceManualRegistrationToken } from './manual-registration-tokens.js';
5
- export { listActiveRunners, reconcileProvisionedRunners, reportProvisionedRunners } from './provisioned-runners.js';
6
- export { createWorkspaceProvisionerToken, listActiveProvisioners, listUsableProvisionerTokens, revokeWorkspaceProvisionerToken } from './provisioner-tokens.js';
6
+ export { hasActiveWorkspaceProvisionerCapability } from './provisioner-capability-snapshots.js';
7
+ export { createInstallationProvisionerToken, createWorkspaceProvisionerToken, listActiveProvisioners, listUsableProvisionerTokens, revokeInstallationProvisionerToken, revokeWorkspaceProvisionerToken } from './provisioner-tokens.js';
8
+ export { getRunnerAssignment, issueRunnerActivationToken } from './runner-activation.js';
9
+ export { attachRunnerControlProviderId, createRunnerInstancesWithBootstrapTokens, enrollRunnerControlSession, exchangeRunnerBootstrapToken, RunnerBootstrapTokenInvalidError, RunnerControlSessionInvalidError, touchRunnerControlSession } from './runner-control-sessions.js';
10
+ export { attachProviderRunnerId, createPlannedProvisionedCapacity, listActiveRunners, reconcileRunnerInstances, reportRunnerInstances } from './runner-instances.js';
7
11
  export { registerRunnerSession } from './runner-sessions.js';
8
12
  export { EMPTY_RUNNER_TOOL_CAPABILITIES, effectiveRunnerToolCapabilities } from './runner-tool-capabilities.js';
9
13
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/index.ts"],"sourcesContent":["export type {EphemeralRegistrationToken} from './entities/ephemeral-registration-token.js';\nexport type {ManualRegistrationToken} from './entities/manual-registration-token.js';\nexport type {\n ProvisionedRunner,\n ProvisionedRunnerState,\n} from './entities/provisioned-runner.js';\nexport type {ActiveProvisionerToken, ProvisionerToken} from './entities/provisioner-token.js';\nexport type {RunnerSession} from './entities/runner-session.js';\nexport {\n type MintEphemeralRegistrationTokenParams,\n type MintEphemeralRegistrationTokenResult,\n mintEphemeralRegistrationToken,\n} from './ephemeral-registration-tokens.js';\nexport {\n EmptyRunnerLabelsError,\n ManualRegistrationTokenNotFoundError,\n ProvisionerTokenNotFoundError,\n RegistrationTokenConsumedError,\n RegistrationTokenExpiredError,\n RunnerSessionExhaustedError,\n RunningJobExecutionNotFoundError,\n} from './errors.js';\nexport {type ClaimJobExecutionResult, claimJobExecution} from './job-executions.js';\nexport {\n createWorkspaceManualRegistrationToken,\n listUsableManualRegistrationTokens,\n revokeWorkspaceManualRegistrationToken,\n} from './manual-registration-tokens.js';\nexport {\n type ActiveRunner,\n listActiveRunners,\n type ReconcileDesiredIntent,\n type ReconciledBoundJobExecution,\n type ReconciledProvisionedRunner,\n type ReconcileProvisionedRunnersParams,\n type ReconcileProvisionedRunnersResult,\n type ReportProvisionedRunnersParams,\n type ReportProvisionedRunnersResult,\n reconcileProvisionedRunners,\n reportProvisionedRunners,\n} from './provisioned-runners.js';\nexport {\n createWorkspaceProvisionerToken,\n listActiveProvisioners,\n listUsableProvisionerTokens,\n revokeWorkspaceProvisionerToken,\n} from './provisioner-tokens.js';\nexport {\n type RegisterRunnerSessionResult,\n type RunnerRegistrationCredential,\n registerRunnerSession,\n} from './runner-sessions.js';\nexport {\n EMPTY_RUNNER_TOOL_CAPABILITIES,\n effectiveRunnerToolCapabilities,\n} from './runner-tool-capabilities.js';\n"],"names":["mintEphemeralRegistrationToken","EmptyRunnerLabelsError","ManualRegistrationTokenNotFoundError","ProvisionerTokenNotFoundError","RegistrationTokenConsumedError","RegistrationTokenExpiredError","RunnerSessionExhaustedError","RunningJobExecutionNotFoundError","claimJobExecution","createWorkspaceManualRegistrationToken","listUsableManualRegistrationTokens","revokeWorkspaceManualRegistrationToken","listActiveRunners","reconcileProvisionedRunners","reportProvisionedRunners","createWorkspaceProvisionerToken","listActiveProvisioners","listUsableProvisionerTokens","revokeWorkspaceProvisionerToken","registerRunnerSession","EMPTY_RUNNER_TOOL_CAPABILITIES","effectiveRunnerToolCapabilities"],"mappings":"AAQA,SAGEA,8BAA8B,QACzB,qCAAqC;AAC5C,SACEC,sBAAsB,EACtBC,oCAAoC,EACpCC,6BAA6B,EAC7BC,8BAA8B,EAC9BC,6BAA6B,EAC7BC,2BAA2B,EAC3BC,gCAAgC,QAC3B,cAAc;AACrB,SAAsCC,iBAAiB,QAAO,sBAAsB;AACpF,SACEC,sCAAsC,EACtCC,kCAAkC,EAClCC,sCAAsC,QACjC,kCAAkC;AACzC,SAEEC,iBAAiB,EAQjBC,2BAA2B,EAC3BC,wBAAwB,QACnB,2BAA2B;AAClC,SACEC,+BAA+B,EAC/BC,sBAAsB,EACtBC,2BAA2B,EAC3BC,+BAA+B,QAC1B,0BAA0B;AACjC,SAGEC,qBAAqB,QAChB,uBAAuB;AAC9B,SACEC,8BAA8B,EAC9BC,+BAA+B,QAC1B,gCAAgC"}
1
+ {"version":3,"sources":["../../src/core/index.ts"],"sourcesContent":["export {assignCapacityBatch} from './capacity-assignments.js';\nexport type {CapacityAssignment} from './entities/capacity-assignment.js';\nexport type {EphemeralRegistrationToken} from './entities/ephemeral-registration-token.js';\nexport type {ManualRegistrationToken} from './entities/manual-registration-token.js';\nexport type {ProvisionerCapabilitySnapshot} from './entities/provisioner-capability-snapshot.js';\nexport type {\n ActiveProvisionerToken,\n ProvisionerScope,\n ProvisionerToken,\n} from './entities/provisioner-token.js';\nexport type {\n RunnerInstance,\n RunnerInstanceState,\n} from './entities/runner-instance.js';\nexport type {RunnerSession} from './entities/runner-session.js';\nexport {\n type MintEphemeralRegistrationTokenParams,\n type MintEphemeralRegistrationTokenResult,\n mintEphemeralRegistrationToken,\n} from './ephemeral-registration-tokens.js';\nexport {\n EmptyRunnerLabelsError,\n ManualRegistrationTokenNotFoundError,\n ProvisionerTokenNotFoundError,\n RegistrationTokenConsumedError,\n RegistrationTokenExpiredError,\n RunnerSessionExhaustedError,\n RunningJobExecutionNotFoundError,\n} from './errors.js';\nexport {type ClaimJobExecutionResult, claimJobExecution} from './job-executions.js';\nexport {\n createWorkspaceManualRegistrationToken,\n listUsableManualRegistrationTokens,\n revokeWorkspaceManualRegistrationToken,\n} from './manual-registration-tokens.js';\nexport {hasActiveWorkspaceProvisionerCapability} from './provisioner-capability-snapshots.js';\nexport {\n createInstallationProvisionerToken,\n createWorkspaceProvisionerToken,\n listActiveProvisioners,\n listUsableProvisionerTokens,\n revokeInstallationProvisionerToken,\n revokeWorkspaceProvisionerToken,\n} from './provisioner-tokens.js';\nexport {getRunnerAssignment, issueRunnerActivationToken} from './runner-activation.js';\nexport {\n attachRunnerControlProviderId,\n createRunnerInstancesWithBootstrapTokens,\n enrollRunnerControlSession,\n exchangeRunnerBootstrapToken,\n RunnerBootstrapTokenInvalidError,\n RunnerControlSessionInvalidError,\n touchRunnerControlSession,\n} from './runner-control-sessions.js';\nexport {\n type ActiveRunner,\n attachProviderRunnerId,\n createPlannedProvisionedCapacity,\n listActiveRunners,\n type ReconcileDesiredIntent,\n type ReconciledBoundJobExecution,\n type ReconciledRunnerInstance,\n type ReconcileRunnerInstancesParams,\n type ReconcileRunnerInstancesResult,\n type ReportRunnerInstancesParams,\n type ReportRunnerInstancesResult,\n reconcileRunnerInstances,\n reportRunnerInstances,\n} from './runner-instances.js';\nexport {\n type RegisterRunnerSessionResult,\n type RunnerRegistrationCredential,\n registerRunnerSession,\n} from './runner-sessions.js';\nexport {\n EMPTY_RUNNER_TOOL_CAPABILITIES,\n effectiveRunnerToolCapabilities,\n} from './runner-tool-capabilities.js';\n"],"names":["assignCapacityBatch","mintEphemeralRegistrationToken","EmptyRunnerLabelsError","ManualRegistrationTokenNotFoundError","ProvisionerTokenNotFoundError","RegistrationTokenConsumedError","RegistrationTokenExpiredError","RunnerSessionExhaustedError","RunningJobExecutionNotFoundError","claimJobExecution","createWorkspaceManualRegistrationToken","listUsableManualRegistrationTokens","revokeWorkspaceManualRegistrationToken","hasActiveWorkspaceProvisionerCapability","createInstallationProvisionerToken","createWorkspaceProvisionerToken","listActiveProvisioners","listUsableProvisionerTokens","revokeInstallationProvisionerToken","revokeWorkspaceProvisionerToken","getRunnerAssignment","issueRunnerActivationToken","attachRunnerControlProviderId","createRunnerInstancesWithBootstrapTokens","enrollRunnerControlSession","exchangeRunnerBootstrapToken","RunnerBootstrapTokenInvalidError","RunnerControlSessionInvalidError","touchRunnerControlSession","attachProviderRunnerId","createPlannedProvisionedCapacity","listActiveRunners","reconcileRunnerInstances","reportRunnerInstances","registerRunnerSession","EMPTY_RUNNER_TOOL_CAPABILITIES","effectiveRunnerToolCapabilities"],"mappings":"AAAA,SAAQA,mBAAmB,QAAO,4BAA4B;AAe9D,SAGEC,8BAA8B,QACzB,qCAAqC;AAC5C,SACEC,sBAAsB,EACtBC,oCAAoC,EACpCC,6BAA6B,EAC7BC,8BAA8B,EAC9BC,6BAA6B,EAC7BC,2BAA2B,EAC3BC,gCAAgC,QAC3B,cAAc;AACrB,SAAsCC,iBAAiB,QAAO,sBAAsB;AACpF,SACEC,sCAAsC,EACtCC,kCAAkC,EAClCC,sCAAsC,QACjC,kCAAkC;AACzC,SAAQC,uCAAuC,QAAO,wCAAwC;AAC9F,SACEC,kCAAkC,EAClCC,+BAA+B,EAC/BC,sBAAsB,EACtBC,2BAA2B,EAC3BC,kCAAkC,EAClCC,+BAA+B,QAC1B,0BAA0B;AACjC,SAAQC,mBAAmB,EAAEC,0BAA0B,QAAO,yBAAyB;AACvF,SACEC,6BAA6B,EAC7BC,wCAAwC,EACxCC,0BAA0B,EAC1BC,4BAA4B,EAC5BC,gCAAgC,EAChCC,gCAAgC,EAChCC,yBAAyB,QACpB,+BAA+B;AACtC,SAEEC,sBAAsB,EACtBC,gCAAgC,EAChCC,iBAAiB,EAQjBC,wBAAwB,EACxBC,qBAAqB,QAChB,wBAAwB;AAC/B,SAGEC,qBAAqB,QAChB,uBAAuB;AAC9B,SACEC,8BAA8B,EAC9BC,+BAA+B,QAC1B,gCAAgC"}
@@ -1,3 +1,4 @@
1
+ import type { AuthInterModuleClient } from '@shipfox/api-auth-dto/inter-module';
1
2
  export interface ClaimJobExecutionResult {
2
3
  workflowRunId: string;
3
4
  workflowRunAttemptId: string;
@@ -6,6 +7,7 @@ export interface ClaimJobExecutionResult {
6
7
  leaseToken: string;
7
8
  }
8
9
  export declare function claimJobExecution(params: {
10
+ auth: AuthInterModuleClient;
9
11
  workspaceId: string;
10
12
  runnerSessionId: string;
11
13
  sessionLabels: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"job-executions.d.ts","sourceRoot":"","sources":["../../src/core/job-executions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CA4B1C"}
1
+ {"version":3,"file":"job-executions.d.ts","sourceRoot":"","sources":["../../src/core/job-executions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AAK9E,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CA4B1C"}
@@ -1,4 +1,3 @@
1
- import { issueJobLeaseToken } from '@shipfox/api-auth';
2
1
  import { claimPendingJobExecution } from '#db/job-executions.js';
3
2
  import { jobExecutionClaimedCount } from '#metrics/instance.js';
4
3
  import { config } from '../config.js';
@@ -16,7 +15,7 @@ export async function claimJobExecution(params) {
16
15
  jobExecutionClaimedCount.add(1, {
17
16
  outcome: 'claimed'
18
17
  });
19
- const leaseToken = await issueJobLeaseToken({
18
+ const { token: leaseToken } = await params.auth.mintJobLeaseToken({
20
19
  workflowRunId: claimed.workflowRunId,
21
20
  workflowRunAttemptId: claimed.workflowRunAttemptId,
22
21
  jobId: claimed.jobId,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/job-executions.ts"],"sourcesContent":["import {issueJobLeaseToken} from '@shipfox/api-auth';\nimport {claimPendingJobExecution} from '#db/job-executions.js';\nimport {jobExecutionClaimedCount} from '#metrics/instance.js';\nimport {config} from '../config.js';\n\nexport interface ClaimJobExecutionResult {\n workflowRunId: string;\n workflowRunAttemptId: string;\n jobId: string;\n jobExecutionId: string;\n leaseToken: string;\n}\n\nexport async function claimJobExecution(params: {\n workspaceId: string;\n runnerSessionId: string;\n sessionLabels: string[];\n maxClaims: number | null;\n}): Promise<ClaimJobExecutionResult | null> {\n const claimed = await claimPendingJobExecution({\n ...params,\n runnerSessionLivenessThrottleSeconds: config.RUNNER_SESSION_LIVENESS_THROTTLE_SECONDS,\n });\n if (!claimed) {\n jobExecutionClaimedCount.add(1, {outcome: 'empty'});\n return null;\n }\n jobExecutionClaimedCount.add(1, {outcome: 'claimed'});\n\n const leaseToken = await issueJobLeaseToken({\n workflowRunId: claimed.workflowRunId,\n workflowRunAttemptId: claimed.workflowRunAttemptId,\n jobId: claimed.jobId,\n jobExecutionId: claimed.jobExecutionId,\n projectId: claimed.projectId,\n workspaceId: params.workspaceId,\n runnerSessionId: params.runnerSessionId,\n });\n\n return {\n workflowRunId: claimed.workflowRunId,\n workflowRunAttemptId: claimed.workflowRunAttemptId,\n jobId: claimed.jobId,\n jobExecutionId: claimed.jobExecutionId,\n leaseToken,\n };\n}\n"],"names":["issueJobLeaseToken","claimPendingJobExecution","jobExecutionClaimedCount","config","claimJobExecution","params","claimed","runnerSessionLivenessThrottleSeconds","RUNNER_SESSION_LIVENESS_THROTTLE_SECONDS","add","outcome","leaseToken","workflowRunId","workflowRunAttemptId","jobId","jobExecutionId","projectId","workspaceId","runnerSessionId"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,oBAAoB;AACrD,SAAQC,wBAAwB,QAAO,wBAAwB;AAC/D,SAAQC,wBAAwB,QAAO,uBAAuB;AAC9D,SAAQC,MAAM,QAAO,eAAe;AAUpC,OAAO,eAAeC,kBAAkBC,MAKvC;IACC,MAAMC,UAAU,MAAML,yBAAyB;QAC7C,GAAGI,MAAM;QACTE,sCAAsCJ,OAAOK,wCAAwC;IACvF;IACA,IAAI,CAACF,SAAS;QACZJ,yBAAyBO,GAAG,CAAC,GAAG;YAACC,SAAS;QAAO;QACjD,OAAO;IACT;IACAR,yBAAyBO,GAAG,CAAC,GAAG;QAACC,SAAS;IAAS;IAEnD,MAAMC,aAAa,MAAMX,mBAAmB;QAC1CY,eAAeN,QAAQM,aAAa;QACpCC,sBAAsBP,QAAQO,oBAAoB;QAClDC,OAAOR,QAAQQ,KAAK;QACpBC,gBAAgBT,QAAQS,cAAc;QACtCC,WAAWV,QAAQU,SAAS;QAC5BC,aAAaZ,OAAOY,WAAW;QAC/BC,iBAAiBb,OAAOa,eAAe;IACzC;IAEA,OAAO;QACLN,eAAeN,QAAQM,aAAa;QACpCC,sBAAsBP,QAAQO,oBAAoB;QAClDC,OAAOR,QAAQQ,KAAK;QACpBC,gBAAgBT,QAAQS,cAAc;QACtCJ;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/core/job-executions.ts"],"sourcesContent":["import type {AuthInterModuleClient} from '@shipfox/api-auth-dto/inter-module';\nimport {claimPendingJobExecution} from '#db/job-executions.js';\nimport {jobExecutionClaimedCount} from '#metrics/instance.js';\nimport {config} from '../config.js';\n\nexport interface ClaimJobExecutionResult {\n workflowRunId: string;\n workflowRunAttemptId: string;\n jobId: string;\n jobExecutionId: string;\n leaseToken: string;\n}\n\nexport async function claimJobExecution(params: {\n auth: AuthInterModuleClient;\n workspaceId: string;\n runnerSessionId: string;\n sessionLabels: string[];\n maxClaims: number | null;\n}): Promise<ClaimJobExecutionResult | null> {\n const claimed = await claimPendingJobExecution({\n ...params,\n runnerSessionLivenessThrottleSeconds: config.RUNNER_SESSION_LIVENESS_THROTTLE_SECONDS,\n });\n if (!claimed) {\n jobExecutionClaimedCount.add(1, {outcome: 'empty'});\n return null;\n }\n jobExecutionClaimedCount.add(1, {outcome: 'claimed'});\n\n const {token: leaseToken} = await params.auth.mintJobLeaseToken({\n workflowRunId: claimed.workflowRunId,\n workflowRunAttemptId: claimed.workflowRunAttemptId,\n jobId: claimed.jobId,\n jobExecutionId: claimed.jobExecutionId,\n projectId: claimed.projectId,\n workspaceId: params.workspaceId,\n runnerSessionId: params.runnerSessionId,\n });\n\n return {\n workflowRunId: claimed.workflowRunId,\n workflowRunAttemptId: claimed.workflowRunAttemptId,\n jobId: claimed.jobId,\n jobExecutionId: claimed.jobExecutionId,\n leaseToken,\n };\n}\n"],"names":["claimPendingJobExecution","jobExecutionClaimedCount","config","claimJobExecution","params","claimed","runnerSessionLivenessThrottleSeconds","RUNNER_SESSION_LIVENESS_THROTTLE_SECONDS","add","outcome","token","leaseToken","auth","mintJobLeaseToken","workflowRunId","workflowRunAttemptId","jobId","jobExecutionId","projectId","workspaceId","runnerSessionId"],"mappings":"AACA,SAAQA,wBAAwB,QAAO,wBAAwB;AAC/D,SAAQC,wBAAwB,QAAO,uBAAuB;AAC9D,SAAQC,MAAM,QAAO,eAAe;AAUpC,OAAO,eAAeC,kBAAkBC,MAMvC;IACC,MAAMC,UAAU,MAAML,yBAAyB;QAC7C,GAAGI,MAAM;QACTE,sCAAsCJ,OAAOK,wCAAwC;IACvF;IACA,IAAI,CAACF,SAAS;QACZJ,yBAAyBO,GAAG,CAAC,GAAG;YAACC,SAAS;QAAO;QACjD,OAAO;IACT;IACAR,yBAAyBO,GAAG,CAAC,GAAG;QAACC,SAAS;IAAS;IAEnD,MAAM,EAACC,OAAOC,UAAU,EAAC,GAAG,MAAMP,OAAOQ,IAAI,CAACC,iBAAiB,CAAC;QAC9DC,eAAeT,QAAQS,aAAa;QACpCC,sBAAsBV,QAAQU,oBAAoB;QAClDC,OAAOX,QAAQW,KAAK;QACpBC,gBAAgBZ,QAAQY,cAAc;QACtCC,WAAWb,QAAQa,SAAS;QAC5BC,aAAaf,OAAOe,WAAW;QAC/BC,iBAAiBhB,OAAOgB,eAAe;IACzC;IAEA,OAAO;QACLN,eAAeT,QAAQS,aAAa;QACpCC,sBAAsBV,QAAQU,oBAAoB;QAClDC,OAAOX,QAAQW,KAAK;QACpBC,gBAAgBZ,QAAQY,cAAc;QACtCN;IACF;AACF"}
@@ -10,7 +10,7 @@ export declare function deleteExpiredRunnerReservations(params?: {
10
10
  }): Promise<{
11
11
  deleted: number;
12
12
  }>;
13
- export declare function reapStaleProvisionedRunners(params?: {
13
+ export declare function reapStaleRunnerInstances(params?: {
14
14
  thresholdSeconds?: number;
15
15
  limit?: number;
16
16
  }): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/core/maintenance.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,8BAA8B;IAC7C,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,GAAE,8BAAmC,GAC1C,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAO5B;AAED,wBAAsB,+BAA+B,CAAC,MAAM,CAAC,EAAE;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAG7B;AAED,wBAAsB,2BAA2B,CAAC,MAAM,CAAC,EAAE;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAC,CAAC,CAa1D;AAED,wBAAsB,2BAA2B,CAAC,MAAM,CAAC,EAAE;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAQ7B;AAED,wBAAsB,wCAAwC,CAAC,MAAM,CAAC,EAAE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAM7B"}
1
+ {"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/core/maintenance.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,8BAA8B;IAC7C,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,GAAE,8BAAmC,GAC1C,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAO5B;AAED,wBAAsB,+BAA+B,CAAC,MAAM,CAAC,EAAE;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAG7B;AAED,wBAAsB,wBAAwB,CAAC,MAAM,CAAC,EAAE;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAC,CAAC,CAa1D;AAED,wBAAsB,2BAA2B,CAAC,MAAM,CAAC,EAAE;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAQ7B;AAED,wBAAsB,wCAAwC,CAAC,MAAM,CAAC,EAAE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAM7B"}
@@ -1,10 +1,10 @@
1
1
  import { config } from '#config.js';
2
2
  import { deleteExpiredEphemeralRegistrationTokens as deleteExpiredEphemeralRegistrationTokensDb } from '#db/ephemeral-registration-tokens.js';
3
3
  import { expireStuckJobExecutions } from '#db/job-executions.js';
4
- import { reapStaleProvisionedRunners as reapStaleProvisionedRunnersDb } from '#db/provisioned-runners.js';
5
4
  import { deleteExpiredReservations } from '#db/reservations.js';
5
+ import { reapStaleRunnerInstances as reapStaleRunnerInstancesDb } from '#db/runner-instances.js';
6
6
  import { deleteExpiredRunnerSessions as deleteExpiredRunnerSessionsDb } from '#db/runner-sessions.js';
7
- import { provisionedRunnerReapedCount, reservationReleasedCount } from '#metrics/instance.js';
7
+ import { providerRunnerReapedCount, reservationReleasedCount } from '#metrics/instance.js';
8
8
  import { STUCK_JOB_THRESHOLD_SECONDS } from './maintenance-policy.js';
9
9
  export async function detectAndExpireStuckJobs(params = {}) {
10
10
  const reaped = await expireStuckJobExecutions({
@@ -21,12 +21,12 @@ export async function deleteExpiredRunnerReservations(params) {
21
21
  deleted
22
22
  };
23
23
  }
24
- export async function reapStaleProvisionedRunners(params) {
25
- const result = await reapStaleProvisionedRunnersDb({
24
+ export async function reapStaleRunnerInstances(params) {
25
+ const result = await reapStaleRunnerInstancesDb({
26
26
  thresholdSeconds: params?.thresholdSeconds ?? config.RUNNER_STALE_PROVISIONED_RUNNER_THRESHOLD_SECONDS,
27
27
  limit: params?.limit ?? config.RUNNER_STALE_PROVISIONED_RUNNER_REAPER_LIMIT
28
28
  });
29
- if (result.reaped > 0) provisionedRunnerReapedCount.add(result.reaped);
29
+ if (result.reaped > 0) providerRunnerReapedCount.add(result.reaped);
30
30
  if (result.reservationsReleased > 0) {
31
31
  reservationReleasedCount.add(result.reservationsReleased);
32
32
  }