@qlever-llc/trellis 0.10.22 → 0.11.0-rc.1

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 (406) hide show
  1. package/esm/auth/mod.d.ts +1 -1
  2. package/esm/auth/mod.d.ts.map +1 -1
  3. package/esm/auth/mod.js +1 -1
  4. package/esm/auth/protocol.d.ts +55 -0
  5. package/esm/auth/protocol.d.ts.map +1 -1
  6. package/esm/browser.d.ts +3 -3
  7. package/esm/browser.d.ts.map +1 -1
  8. package/esm/browser.js +1 -1
  9. package/esm/client_connect.d.ts +12 -3
  10. package/esm/client_connect.d.ts.map +1 -1
  11. package/esm/client_connect.js +112 -7
  12. package/esm/codec.d.ts +7 -6
  13. package/esm/codec.d.ts.map +1 -1
  14. package/esm/codec.js +125 -6
  15. package/esm/contract_support/canonical.d.ts +3 -0
  16. package/esm/contract_support/canonical.d.ts.map +1 -1
  17. package/esm/contract_support/canonical.js +3 -0
  18. package/esm/contract_support/mod.d.ts +125 -10
  19. package/esm/contract_support/mod.d.ts.map +1 -1
  20. package/esm/contract_support/mod.js +159 -5
  21. package/esm/contract_support/protocol.d.ts +92 -7
  22. package/esm/contract_support/protocol.d.ts.map +1 -1
  23. package/esm/contract_support/protocol.js +41 -7
  24. package/esm/contract_support/runtime.d.ts +4 -1
  25. package/esm/contract_support/runtime.d.ts.map +1 -1
  26. package/esm/errors/SchemaValidationError.d.ts +49 -0
  27. package/esm/errors/SchemaValidationError.d.ts.map +1 -0
  28. package/esm/errors/SchemaValidationError.js +67 -0
  29. package/esm/errors/index.d.ts +38 -9
  30. package/esm/errors/index.d.ts.map +1 -1
  31. package/esm/errors/index.js +16 -0
  32. package/esm/generated-sdk/auth/api.d.ts +33 -605
  33. package/esm/generated-sdk/auth/api.d.ts.map +1 -1
  34. package/esm/generated-sdk/auth/api.js +6 -1
  35. package/esm/generated-sdk/auth/client.d.ts +129 -134
  36. package/esm/generated-sdk/auth/client.d.ts.map +1 -1
  37. package/esm/generated-sdk/auth/contract.d.ts +2 -601
  38. package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
  39. package/esm/generated-sdk/auth/contract.js +310 -93
  40. package/esm/generated-sdk/auth/mod.d.ts +1 -1
  41. package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
  42. package/esm/generated-sdk/auth/owned_api.d.ts +88 -86
  43. package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -1
  44. package/esm/generated-sdk/auth/owned_api.js +6 -0
  45. package/esm/generated-sdk/auth/schemas.d.ts +284 -136
  46. package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
  47. package/esm/generated-sdk/auth/schemas.js +231 -92
  48. package/esm/generated-sdk/auth/types.d.ts +565 -89
  49. package/esm/generated-sdk/auth/types.d.ts.map +1 -1
  50. package/esm/generated-sdk/auth/types.js +1 -1
  51. package/esm/generated-sdk/health/api.d.ts +29 -18
  52. package/esm/generated-sdk/health/api.d.ts.map +1 -1
  53. package/esm/generated-sdk/health/client.d.ts +7 -21
  54. package/esm/generated-sdk/health/client.d.ts.map +1 -1
  55. package/esm/generated-sdk/health/contract.d.ts +2 -15
  56. package/esm/generated-sdk/health/contract.d.ts.map +1 -1
  57. package/esm/generated-sdk/health/contract.js +2 -10
  58. package/esm/generated-sdk/health/mod.d.ts +1 -1
  59. package/esm/generated-sdk/health/mod.d.ts.map +1 -1
  60. package/esm/generated-sdk/health/owned_api.d.ts +2 -2
  61. package/esm/generated-sdk/health/schemas.d.ts +1 -14
  62. package/esm/generated-sdk/health/schemas.d.ts.map +1 -1
  63. package/esm/generated-sdk/health/schemas.js +1 -9
  64. package/esm/generated-sdk/health/types.d.ts +10 -5
  65. package/esm/generated-sdk/health/types.d.ts.map +1 -1
  66. package/esm/generated-sdk/health/types.js +1 -2
  67. package/esm/generated-sdk/jobs/api.d.ts +29 -109
  68. package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
  69. package/esm/generated-sdk/jobs/client.d.ts +21 -33
  70. package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
  71. package/esm/generated-sdk/jobs/contract.d.ts +2 -106
  72. package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
  73. package/esm/generated-sdk/jobs/contract.js +268 -1
  74. package/esm/generated-sdk/jobs/mod.d.ts +1 -1
  75. package/esm/generated-sdk/jobs/mod.d.ts.map +1 -1
  76. package/esm/generated-sdk/jobs/owned_api.d.ts +22 -9
  77. package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  78. package/esm/generated-sdk/jobs/owned_api.js +20 -1
  79. package/esm/generated-sdk/jobs/schemas.d.ts +437 -0
  80. package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
  81. package/esm/generated-sdk/jobs/schemas.js +211 -0
  82. package/esm/generated-sdk/jobs/types.d.ts +195 -12
  83. package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
  84. package/esm/generated-sdk/jobs/types.js +1 -1
  85. package/esm/generated-sdk/state/api.d.ts +29 -68
  86. package/esm/generated-sdk/state/api.d.ts.map +1 -1
  87. package/esm/generated-sdk/state/client.d.ts +17 -31
  88. package/esm/generated-sdk/state/client.d.ts.map +1 -1
  89. package/esm/generated-sdk/state/contract.d.ts +1 -64
  90. package/esm/generated-sdk/state/contract.d.ts.map +1 -1
  91. package/esm/generated-sdk/state/mod.d.ts +1 -1
  92. package/esm/generated-sdk/state/mod.d.ts.map +1 -1
  93. package/esm/generated-sdk/state/owned_api.d.ts +7 -7
  94. package/esm/generated-sdk/state/types.d.ts +52 -9
  95. package/esm/generated-sdk/state/types.d.ts.map +1 -1
  96. package/esm/generated-sdk/trellis-core/api.d.ts +33 -45
  97. package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
  98. package/esm/generated-sdk/trellis-core/api.js +6 -1
  99. package/esm/generated-sdk/trellis-core/client.d.ts +31 -20
  100. package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
  101. package/esm/generated-sdk/trellis-core/contract.d.ts +2 -41
  102. package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  103. package/esm/generated-sdk/trellis-core/contract.js +91 -1
  104. package/esm/generated-sdk/trellis-core/mod.d.ts +1 -1
  105. package/esm/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  106. package/esm/generated-sdk/trellis-core/owned_api.d.ts +4 -4
  107. package/esm/generated-sdk/trellis-core/schemas.d.ts +113 -0
  108. package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  109. package/esm/generated-sdk/trellis-core/schemas.js +81 -0
  110. package/esm/generated-sdk/trellis-core/types.d.ts +54 -7
  111. package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
  112. package/esm/generated-sdk/trellis-core/types.js +1 -1
  113. package/esm/health.d.ts +1 -1
  114. package/esm/health.d.ts.map +1 -1
  115. package/esm/health.js +1 -1
  116. package/esm/index.d.ts +4 -4
  117. package/esm/index.d.ts.map +1 -1
  118. package/esm/index.js +2 -2
  119. package/esm/jobs.d.ts +69 -3
  120. package/esm/jobs.d.ts.map +1 -1
  121. package/esm/jobs.js +92 -3
  122. package/esm/server/health.d.ts +2 -6
  123. package/esm/server/health.d.ts.map +1 -1
  124. package/esm/server/health_schemas.d.ts +0 -8
  125. package/esm/server/health_schemas.d.ts.map +1 -1
  126. package/esm/server/health_schemas.js +0 -5
  127. package/esm/server/internal_jobs/bindings.d.ts +11 -0
  128. package/esm/server/internal_jobs/bindings.d.ts.map +1 -1
  129. package/esm/server/internal_jobs/job-manager.d.ts +58 -2
  130. package/esm/server/internal_jobs/job-manager.d.ts.map +1 -1
  131. package/esm/server/internal_jobs/job-manager.js +429 -55
  132. package/esm/server/internal_jobs/key-coordinator.d.ts +269 -0
  133. package/esm/server/internal_jobs/key-coordinator.d.ts.map +1 -0
  134. package/esm/server/internal_jobs/key-coordinator.js +677 -0
  135. package/esm/server/internal_jobs/projection.d.ts.map +1 -1
  136. package/esm/server/internal_jobs/projection.js +2 -0
  137. package/esm/server/internal_jobs/runtime-worker.d.ts +5 -1
  138. package/esm/server/internal_jobs/runtime-worker.d.ts.map +1 -1
  139. package/esm/server/internal_jobs/runtime-worker.js +14 -2
  140. package/esm/server/internal_jobs/types.d.ts +5 -5
  141. package/esm/server/internal_jobs/types.d.ts.map +1 -1
  142. package/esm/server/internal_jobs/types.js +6 -0
  143. package/esm/server/runtime.d.ts.map +1 -1
  144. package/esm/server/service.d.ts +81 -112
  145. package/esm/server/service.d.ts.map +1 -1
  146. package/esm/server/service.js +372 -130
  147. package/esm/server.d.ts +3 -3
  148. package/esm/server.d.ts.map +1 -1
  149. package/esm/service/deno.d.ts +1 -1
  150. package/esm/service/deno.d.ts.map +1 -1
  151. package/esm/service/drizzle.d.ts +52 -0
  152. package/esm/service/drizzle.d.ts.map +1 -0
  153. package/esm/service/drizzle.js +108 -0
  154. package/esm/service/mod.d.ts +3 -3
  155. package/esm/service/mod.d.ts.map +1 -1
  156. package/esm/service/mod.js +2 -2
  157. package/esm/service/node.d.ts +1 -1
  158. package/esm/service/node.d.ts.map +1 -1
  159. package/esm/service/outbox_inbox.d.ts +76 -22
  160. package/esm/service/outbox_inbox.d.ts.map +1 -1
  161. package/esm/service/outbox_inbox.js +231 -70
  162. package/esm/telemetry/metrics.d.ts +55 -0
  163. package/esm/telemetry/metrics.d.ts.map +1 -1
  164. package/esm/telemetry/metrics.js +86 -0
  165. package/esm/telemetry/mod.d.ts +2 -1
  166. package/esm/telemetry/mod.d.ts.map +1 -1
  167. package/esm/telemetry/mod.js +1 -1
  168. package/esm/trellis.d.ts +62 -30
  169. package/esm/trellis.d.ts.map +1 -1
  170. package/esm/trellis.js +125 -42
  171. package/package.json +14 -2
  172. package/script/auth/mod.d.ts +1 -1
  173. package/script/auth/mod.d.ts.map +1 -1
  174. package/script/auth/mod.js +11 -4
  175. package/script/auth/protocol.d.ts +55 -0
  176. package/script/auth/protocol.d.ts.map +1 -1
  177. package/script/browser.d.ts +3 -3
  178. package/script/browser.d.ts.map +1 -1
  179. package/script/browser.js +3 -2
  180. package/script/client_connect.d.ts +12 -3
  181. package/script/client_connect.d.ts.map +1 -1
  182. package/script/client_connect.js +111 -6
  183. package/script/codec.d.ts +7 -6
  184. package/script/codec.d.ts.map +1 -1
  185. package/script/codec.js +124 -5
  186. package/script/contract_support/canonical.d.ts +3 -0
  187. package/script/contract_support/canonical.d.ts.map +1 -1
  188. package/script/contract_support/canonical.js +3 -0
  189. package/script/contract_support/mod.d.ts +125 -10
  190. package/script/contract_support/mod.d.ts.map +1 -1
  191. package/script/contract_support/mod.js +165 -5
  192. package/script/contract_support/protocol.d.ts +92 -7
  193. package/script/contract_support/protocol.d.ts.map +1 -1
  194. package/script/contract_support/protocol.js +42 -8
  195. package/script/contract_support/runtime.d.ts +4 -1
  196. package/script/contract_support/runtime.d.ts.map +1 -1
  197. package/script/errors/SchemaValidationError.d.ts +49 -0
  198. package/script/errors/SchemaValidationError.d.ts.map +1 -0
  199. package/script/errors/SchemaValidationError.js +74 -0
  200. package/script/errors/index.d.ts +38 -9
  201. package/script/errors/index.d.ts.map +1 -1
  202. package/script/errors/index.js +20 -1
  203. package/script/generated-sdk/auth/api.d.ts +33 -605
  204. package/script/generated-sdk/auth/api.d.ts.map +1 -1
  205. package/script/generated-sdk/auth/api.js +6 -1
  206. package/script/generated-sdk/auth/client.d.ts +129 -134
  207. package/script/generated-sdk/auth/client.d.ts.map +1 -1
  208. package/script/generated-sdk/auth/contract.d.ts +2 -601
  209. package/script/generated-sdk/auth/contract.d.ts.map +1 -1
  210. package/script/generated-sdk/auth/contract.js +310 -93
  211. package/script/generated-sdk/auth/mod.d.ts +1 -1
  212. package/script/generated-sdk/auth/mod.d.ts.map +1 -1
  213. package/script/generated-sdk/auth/owned_api.d.ts +88 -86
  214. package/script/generated-sdk/auth/owned_api.d.ts.map +1 -1
  215. package/script/generated-sdk/auth/owned_api.js +6 -0
  216. package/script/generated-sdk/auth/schemas.d.ts +284 -136
  217. package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
  218. package/script/generated-sdk/auth/schemas.js +231 -92
  219. package/script/generated-sdk/auth/types.d.ts +565 -89
  220. package/script/generated-sdk/auth/types.d.ts.map +1 -1
  221. package/script/generated-sdk/auth/types.js +1 -1
  222. package/script/generated-sdk/health/api.d.ts +29 -18
  223. package/script/generated-sdk/health/api.d.ts.map +1 -1
  224. package/script/generated-sdk/health/client.d.ts +7 -21
  225. package/script/generated-sdk/health/client.d.ts.map +1 -1
  226. package/script/generated-sdk/health/contract.d.ts +2 -15
  227. package/script/generated-sdk/health/contract.d.ts.map +1 -1
  228. package/script/generated-sdk/health/contract.js +2 -10
  229. package/script/generated-sdk/health/mod.d.ts +1 -1
  230. package/script/generated-sdk/health/mod.d.ts.map +1 -1
  231. package/script/generated-sdk/health/owned_api.d.ts +2 -2
  232. package/script/generated-sdk/health/schemas.d.ts +1 -14
  233. package/script/generated-sdk/health/schemas.d.ts.map +1 -1
  234. package/script/generated-sdk/health/schemas.js +1 -9
  235. package/script/generated-sdk/health/types.d.ts +10 -5
  236. package/script/generated-sdk/health/types.d.ts.map +1 -1
  237. package/script/generated-sdk/health/types.js +1 -2
  238. package/script/generated-sdk/jobs/api.d.ts +29 -109
  239. package/script/generated-sdk/jobs/api.d.ts.map +1 -1
  240. package/script/generated-sdk/jobs/client.d.ts +21 -33
  241. package/script/generated-sdk/jobs/client.d.ts.map +1 -1
  242. package/script/generated-sdk/jobs/contract.d.ts +2 -106
  243. package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
  244. package/script/generated-sdk/jobs/contract.js +268 -1
  245. package/script/generated-sdk/jobs/mod.d.ts +1 -1
  246. package/script/generated-sdk/jobs/mod.d.ts.map +1 -1
  247. package/script/generated-sdk/jobs/owned_api.d.ts +22 -9
  248. package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  249. package/script/generated-sdk/jobs/owned_api.js +19 -0
  250. package/script/generated-sdk/jobs/schemas.d.ts +437 -0
  251. package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
  252. package/script/generated-sdk/jobs/schemas.js +212 -1
  253. package/script/generated-sdk/jobs/types.d.ts +195 -12
  254. package/script/generated-sdk/jobs/types.d.ts.map +1 -1
  255. package/script/generated-sdk/jobs/types.js +1 -1
  256. package/script/generated-sdk/state/api.d.ts +29 -68
  257. package/script/generated-sdk/state/api.d.ts.map +1 -1
  258. package/script/generated-sdk/state/client.d.ts +17 -31
  259. package/script/generated-sdk/state/client.d.ts.map +1 -1
  260. package/script/generated-sdk/state/contract.d.ts +1 -64
  261. package/script/generated-sdk/state/contract.d.ts.map +1 -1
  262. package/script/generated-sdk/state/mod.d.ts +1 -1
  263. package/script/generated-sdk/state/mod.d.ts.map +1 -1
  264. package/script/generated-sdk/state/owned_api.d.ts +7 -7
  265. package/script/generated-sdk/state/types.d.ts +52 -9
  266. package/script/generated-sdk/state/types.d.ts.map +1 -1
  267. package/script/generated-sdk/trellis-core/api.d.ts +33 -45
  268. package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
  269. package/script/generated-sdk/trellis-core/api.js +6 -1
  270. package/script/generated-sdk/trellis-core/client.d.ts +31 -20
  271. package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
  272. package/script/generated-sdk/trellis-core/contract.d.ts +2 -41
  273. package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  274. package/script/generated-sdk/trellis-core/contract.js +91 -1
  275. package/script/generated-sdk/trellis-core/mod.d.ts +1 -1
  276. package/script/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  277. package/script/generated-sdk/trellis-core/owned_api.d.ts +4 -4
  278. package/script/generated-sdk/trellis-core/schemas.d.ts +113 -0
  279. package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  280. package/script/generated-sdk/trellis-core/schemas.js +81 -0
  281. package/script/generated-sdk/trellis-core/types.d.ts +54 -7
  282. package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
  283. package/script/generated-sdk/trellis-core/types.js +1 -1
  284. package/script/health.d.ts +1 -1
  285. package/script/health.d.ts.map +1 -1
  286. package/script/health.js +1 -2
  287. package/script/index.d.ts +4 -4
  288. package/script/index.d.ts.map +1 -1
  289. package/script/index.js +2 -2
  290. package/script/jobs.d.ts +69 -3
  291. package/script/jobs.d.ts.map +1 -1
  292. package/script/jobs.js +93 -3
  293. package/script/server/health.d.ts +2 -6
  294. package/script/server/health.d.ts.map +1 -1
  295. package/script/server/health_schemas.d.ts +0 -8
  296. package/script/server/health_schemas.d.ts.map +1 -1
  297. package/script/server/health_schemas.js +1 -6
  298. package/script/server/internal_jobs/bindings.d.ts +11 -0
  299. package/script/server/internal_jobs/bindings.d.ts.map +1 -1
  300. package/script/server/internal_jobs/job-manager.d.ts +58 -2
  301. package/script/server/internal_jobs/job-manager.d.ts.map +1 -1
  302. package/script/server/internal_jobs/job-manager.js +429 -54
  303. package/script/server/internal_jobs/key-coordinator.d.ts +269 -0
  304. package/script/server/internal_jobs/key-coordinator.d.ts.map +1 -0
  305. package/script/server/internal_jobs/key-coordinator.js +690 -0
  306. package/script/server/internal_jobs/projection.d.ts.map +1 -1
  307. package/script/server/internal_jobs/projection.js +2 -0
  308. package/script/server/internal_jobs/runtime-worker.d.ts +5 -1
  309. package/script/server/internal_jobs/runtime-worker.d.ts.map +1 -1
  310. package/script/server/internal_jobs/runtime-worker.js +14 -2
  311. package/script/server/internal_jobs/types.d.ts +5 -5
  312. package/script/server/internal_jobs/types.d.ts.map +1 -1
  313. package/script/server/internal_jobs/types.js +6 -0
  314. package/script/server/runtime.d.ts.map +1 -1
  315. package/script/server/service.d.ts +81 -112
  316. package/script/server/service.d.ts.map +1 -1
  317. package/script/server/service.js +369 -127
  318. package/script/server.d.ts +3 -3
  319. package/script/server.d.ts.map +1 -1
  320. package/script/service/deno.d.ts +1 -1
  321. package/script/service/deno.d.ts.map +1 -1
  322. package/script/service/drizzle.d.ts +52 -0
  323. package/script/service/drizzle.d.ts.map +1 -0
  324. package/script/service/drizzle.js +113 -0
  325. package/script/service/mod.d.ts +3 -3
  326. package/script/service/mod.d.ts.map +1 -1
  327. package/script/service/mod.js +4 -3
  328. package/script/service/node.d.ts +1 -1
  329. package/script/service/node.d.ts.map +1 -1
  330. package/script/service/outbox_inbox.d.ts +76 -22
  331. package/script/service/outbox_inbox.d.ts.map +1 -1
  332. package/script/service/outbox_inbox.js +233 -70
  333. package/script/telemetry/metrics.d.ts +55 -0
  334. package/script/telemetry/metrics.d.ts.map +1 -1
  335. package/script/telemetry/metrics.js +88 -0
  336. package/script/telemetry/mod.d.ts +2 -1
  337. package/script/telemetry/mod.d.ts.map +1 -1
  338. package/script/telemetry/mod.js +3 -1
  339. package/script/trellis.d.ts +62 -30
  340. package/script/trellis.d.ts.map +1 -1
  341. package/script/trellis.js +124 -41
  342. package/src/auth/mod.ts +7 -0
  343. package/src/browser.ts +5 -7
  344. package/src/client_connect.ts +200 -12
  345. package/src/codec.ts +186 -11
  346. package/src/contract_support/canonical.ts +3 -0
  347. package/src/contract_support/mod.ts +380 -9
  348. package/src/contract_support/protocol.ts +57 -10
  349. package/src/contract_support/runtime.ts +7 -0
  350. package/src/errors/SchemaValidationError.ts +67 -0
  351. package/src/errors/index.ts +28 -0
  352. package/src/health.ts +0 -1
  353. package/src/index.ts +7 -8
  354. package/src/jobs.ts +138 -1
  355. package/src/sdk/_generated/auth/api.ts +38 -7
  356. package/src/sdk/_generated/auth/client.ts +168 -530
  357. package/src/sdk/_generated/auth/contract.ts +310 -93
  358. package/src/sdk/_generated/auth/mod.ts +0 -1
  359. package/src/sdk/_generated/auth/owned_api.ts +92 -86
  360. package/src/sdk/_generated/auth/schemas.ts +231 -92
  361. package/src/sdk/_generated/auth/types.ts +1069 -273
  362. package/src/sdk/_generated/core/api.ts +38 -7
  363. package/src/sdk/_generated/core/client.ts +47 -73
  364. package/src/sdk/_generated/core/contract.ts +91 -1
  365. package/src/sdk/_generated/core/mod.ts +0 -1
  366. package/src/sdk/_generated/core/owned_api.ts +4 -4
  367. package/src/sdk/_generated/core/schemas.ts +81 -0
  368. package/src/sdk/_generated/core/types.ts +79 -15
  369. package/src/sdk/_generated/health/api.ts +29 -5
  370. package/src/sdk/_generated/health/client.ts +11 -58
  371. package/src/sdk/_generated/health/contract.ts +2 -10
  372. package/src/sdk/_generated/health/mod.ts +0 -1
  373. package/src/sdk/_generated/health/owned_api.ts +2 -2
  374. package/src/sdk/_generated/health/schemas.ts +1 -9
  375. package/src/sdk/_generated/health/types.ts +23 -2
  376. package/src/sdk/_generated/jobs/api.ts +29 -5
  377. package/src/sdk/_generated/jobs/client.ts +25 -109
  378. package/src/sdk/_generated/jobs/contract.ts +269 -1
  379. package/src/sdk/_generated/jobs/mod.ts +0 -1
  380. package/src/sdk/_generated/jobs/owned_api.ts +30 -9
  381. package/src/sdk/_generated/jobs/schemas.ts +213 -0
  382. package/src/sdk/_generated/jobs/types.ts +252 -18
  383. package/src/sdk/_generated/state/api.ts +29 -5
  384. package/src/sdk/_generated/state/client.ts +18 -95
  385. package/src/sdk/_generated/state/mod.ts +0 -1
  386. package/src/sdk/_generated/state/owned_api.ts +7 -7
  387. package/src/sdk/_generated/state/types.ts +91 -15
  388. package/src/server/health.ts +2 -6
  389. package/src/server/health_schemas.ts +0 -6
  390. package/src/server/internal_jobs/bindings.ts +11 -0
  391. package/src/server/internal_jobs/job-manager.ts +553 -24
  392. package/src/server/internal_jobs/key-coordinator.ts +1080 -0
  393. package/src/server/internal_jobs/projection.ts +2 -0
  394. package/src/server/internal_jobs/runtime-worker.ts +17 -1
  395. package/src/server/internal_jobs/types.ts +6 -0
  396. package/src/server/runtime.ts +4 -0
  397. package/src/server/service.ts +645 -625
  398. package/src/server.ts +14 -7
  399. package/src/service/deno.ts +0 -5
  400. package/src/service/drizzle.ts +184 -0
  401. package/src/service/mod.ts +17 -7
  402. package/src/service/node.ts +0 -5
  403. package/src/service/outbox_inbox.ts +354 -88
  404. package/src/telemetry/metrics.ts +198 -1
  405. package/src/telemetry/mod.ts +6 -0
  406. package/src/trellis.ts +286 -105
@@ -13,7 +13,7 @@ const CONTRACT_MODULE_METADATA = Symbol.for(
13
13
 
14
14
  export const CONTRACT_ID = "trellis.jobs@v1" as const;
15
15
  export const CONTRACT_DIGEST =
16
- "jSB8nKGOQqIxdFDdUqO-gOTt3Dijg--SOXJtJ1ChpoY" as const;
16
+ "xDigtrlrF3n3ZNgHVdwDJFcwi0PEJBiDyBG6FnzFzM8" as const;
17
17
  export const CONTRACT = {
18
18
  "capabilities": {
19
19
  "trellis.jobs::admin.mutate": {
@@ -87,6 +87,21 @@ export const CONTRACT = {
87
87
  "subject": "rpc.v1.Jobs.Get",
88
88
  "version": "v1",
89
89
  },
90
+ "Jobs.GetKey": {
91
+ "capabilities": { "call": ["trellis.jobs::admin.read"] },
92
+ "docs": {
93
+ "markdown":
94
+ "Returns projection-backed keyed concurrency state for one service job key.",
95
+ "summary": "Read keyed job concurrency state.",
96
+ },
97
+ "errors": [{ "type": "UnexpectedError" }, { "type": "ValidationError" }, {
98
+ "type": "NotFoundError",
99
+ }],
100
+ "input": { "schema": "JobsGetKeyRequest" },
101
+ "output": { "schema": "JobsGetKeyResponse" },
102
+ "subject": "rpc.v1.Jobs.GetKey",
103
+ "version": "v1",
104
+ },
90
105
  "Jobs.Health": {
91
106
  "capabilities": { "call": ["trellis.jobs::admin.read"] },
92
107
  "docs": {
@@ -169,6 +184,17 @@ export const CONTRACT = {
169
184
  "Job": {
170
185
  "properties": {
171
186
  "completedAt": { "format": "date-time", "type": "string" },
187
+ "concurrency": {
188
+ "properties": {
189
+ "heartbeatAt": { "format": "date-time", "type": "string" },
190
+ "key": { "minLength": 1, "type": "string" },
191
+ "keyHash": { "minLength": 1, "type": "string" },
192
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
193
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
194
+ },
195
+ "required": ["key", "keyHash"],
196
+ "type": "object",
197
+ },
172
198
  "context": {
173
199
  "properties": {
174
200
  "requestId": { "minLength": 1, "type": "string" },
@@ -214,6 +240,16 @@ export const CONTRACT = {
214
240
  },
215
241
  "type": "object",
216
242
  },
243
+ "queuePolicy": {
244
+ "properties": {
245
+ "existingJobId": { "minLength": 1, "type": "string" },
246
+ "outcome": { "minLength": 1, "type": "string" },
247
+ "reason": { "minLength": 1, "type": "string" },
248
+ "replacedJobId": { "minLength": 1, "type": "string" },
249
+ },
250
+ "required": ["outcome"],
251
+ "type": "object",
252
+ },
217
253
  "result": {},
218
254
  "service": { "minLength": 1, "type": "string" },
219
255
  "startedAt": { "format": "date-time", "type": "string" },
@@ -248,6 +284,17 @@ export const CONTRACT = {
248
284
  ],
249
285
  "type": "object",
250
286
  },
287
+ "JobConcurrencyMetadata": {
288
+ "properties": {
289
+ "heartbeatAt": { "format": "date-time", "type": "string" },
290
+ "key": { "minLength": 1, "type": "string" },
291
+ "keyHash": { "minLength": 1, "type": "string" },
292
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
293
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
294
+ },
295
+ "required": ["key", "keyHash"],
296
+ "type": "object",
297
+ },
251
298
  "JobContext": {
252
299
  "properties": {
253
300
  "requestId": { "minLength": 1, "type": "string" },
@@ -284,6 +331,16 @@ export const CONTRACT = {
284
331
  },
285
332
  "type": "object",
286
333
  },
334
+ "JobQueuePolicyMetadata": {
335
+ "properties": {
336
+ "existingJobId": { "minLength": 1, "type": "string" },
337
+ "outcome": { "minLength": 1, "type": "string" },
338
+ "reason": { "minLength": 1, "type": "string" },
339
+ "replacedJobId": { "minLength": 1, "type": "string" },
340
+ },
341
+ "required": ["outcome"],
342
+ "type": "object",
343
+ },
287
344
  "JobState": {
288
345
  "anyOf": [
289
346
  { "const": "pending", "type": "string" },
@@ -309,6 +366,17 @@ export const CONTRACT = {
309
366
  "job": {
310
367
  "properties": {
311
368
  "completedAt": { "format": "date-time", "type": "string" },
369
+ "concurrency": {
370
+ "properties": {
371
+ "heartbeatAt": { "format": "date-time", "type": "string" },
372
+ "key": { "minLength": 1, "type": "string" },
373
+ "keyHash": { "minLength": 1, "type": "string" },
374
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
375
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
376
+ },
377
+ "required": ["key", "keyHash"],
378
+ "type": "object",
379
+ },
312
380
  "context": {
313
381
  "properties": {
314
382
  "requestId": { "minLength": 1, "type": "string" },
@@ -355,6 +423,16 @@ export const CONTRACT = {
355
423
  },
356
424
  "type": "object",
357
425
  },
426
+ "queuePolicy": {
427
+ "properties": {
428
+ "existingJobId": { "minLength": 1, "type": "string" },
429
+ "outcome": { "minLength": 1, "type": "string" },
430
+ "reason": { "minLength": 1, "type": "string" },
431
+ "replacedJobId": { "minLength": 1, "type": "string" },
432
+ },
433
+ "required": ["outcome"],
434
+ "type": "object",
435
+ },
358
436
  "result": {},
359
437
  "service": { "minLength": 1, "type": "string" },
360
438
  "startedAt": { "format": "date-time", "type": "string" },
@@ -405,6 +483,17 @@ export const CONTRACT = {
405
483
  "job": {
406
484
  "properties": {
407
485
  "completedAt": { "format": "date-time", "type": "string" },
486
+ "concurrency": {
487
+ "properties": {
488
+ "heartbeatAt": { "format": "date-time", "type": "string" },
489
+ "key": { "minLength": 1, "type": "string" },
490
+ "keyHash": { "minLength": 1, "type": "string" },
491
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
492
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
493
+ },
494
+ "required": ["key", "keyHash"],
495
+ "type": "object",
496
+ },
408
497
  "context": {
409
498
  "properties": {
410
499
  "requestId": { "minLength": 1, "type": "string" },
@@ -451,6 +540,16 @@ export const CONTRACT = {
451
540
  },
452
541
  "type": "object",
453
542
  },
543
+ "queuePolicy": {
544
+ "properties": {
545
+ "existingJobId": { "minLength": 1, "type": "string" },
546
+ "outcome": { "minLength": 1, "type": "string" },
547
+ "reason": { "minLength": 1, "type": "string" },
548
+ "replacedJobId": { "minLength": 1, "type": "string" },
549
+ },
550
+ "required": ["outcome"],
551
+ "type": "object",
552
+ },
454
553
  "result": {},
455
554
  "service": { "minLength": 1, "type": "string" },
456
555
  "startedAt": { "format": "date-time", "type": "string" },
@@ -489,6 +588,70 @@ export const CONTRACT = {
489
588
  "required": ["job"],
490
589
  "type": "object",
491
590
  },
591
+ "JobsGetKeyRequest": {
592
+ "properties": {
593
+ "key": { "minLength": 1, "type": "string" },
594
+ "service": { "minLength": 1, "type": "string" },
595
+ "type": { "minLength": 1, "type": "string" },
596
+ },
597
+ "required": ["service", "type", "key"],
598
+ "type": "object",
599
+ },
600
+ "JobsGetKeyResponse": {
601
+ "properties": {
602
+ "active": {
603
+ "items": {
604
+ "properties": {
605
+ "heartbeatAgeMs": { "minimum": 0, "type": "integer" },
606
+ "heartbeatAt": { "format": "date-time", "type": "string" },
607
+ "instanceId": { "type": "string" },
608
+ "jobId": { "minLength": 1, "type": "string" },
609
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
610
+ "startedAt": { "format": "date-time", "type": "string" },
611
+ },
612
+ "required": [
613
+ "jobId",
614
+ "instanceId",
615
+ "startedAt",
616
+ "heartbeatAt",
617
+ "heartbeatAgeMs",
618
+ "leaseExpiresAt",
619
+ ],
620
+ "type": "object",
621
+ },
622
+ "type": "array",
623
+ },
624
+ "key": { "minLength": 1, "type": "string" },
625
+ "keyHash": { "minLength": 1, "type": "string" },
626
+ "latestPolicyReason": { "minLength": 1, "type": "string" },
627
+ "queued": {
628
+ "items": {
629
+ "properties": {
630
+ "createdAt": { "format": "date-time", "type": "string" },
631
+ "jobId": { "minLength": 1, "type": "string" },
632
+ },
633
+ "required": ["jobId", "createdAt"],
634
+ "type": "object",
635
+ },
636
+ "type": "array",
637
+ },
638
+ "queuedDepth": { "minimum": 0, "type": "integer" },
639
+ "service": { "minLength": 1, "type": "string" },
640
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
641
+ "type": { "minLength": 1, "type": "string" },
642
+ },
643
+ "required": [
644
+ "service",
645
+ "type",
646
+ "key",
647
+ "keyHash",
648
+ "active",
649
+ "queued",
650
+ "queuedDepth",
651
+ "staleTakeoverCount",
652
+ ],
653
+ "type": "object",
654
+ },
492
655
  "JobsGetRequest": {
493
656
  "description":
494
657
  "Jobs admin ids are globally addressable; callers identify jobs by id only.",
@@ -501,6 +664,17 @@ export const CONTRACT = {
501
664
  "job": {
502
665
  "properties": {
503
666
  "completedAt": { "format": "date-time", "type": "string" },
667
+ "concurrency": {
668
+ "properties": {
669
+ "heartbeatAt": { "format": "date-time", "type": "string" },
670
+ "key": { "minLength": 1, "type": "string" },
671
+ "keyHash": { "minLength": 1, "type": "string" },
672
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
673
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
674
+ },
675
+ "required": ["key", "keyHash"],
676
+ "type": "object",
677
+ },
504
678
  "context": {
505
679
  "properties": {
506
680
  "requestId": { "minLength": 1, "type": "string" },
@@ -547,6 +721,16 @@ export const CONTRACT = {
547
721
  },
548
722
  "type": "object",
549
723
  },
724
+ "queuePolicy": {
725
+ "properties": {
726
+ "existingJobId": { "minLength": 1, "type": "string" },
727
+ "outcome": { "minLength": 1, "type": "string" },
728
+ "reason": { "minLength": 1, "type": "string" },
729
+ "replacedJobId": { "minLength": 1, "type": "string" },
730
+ },
731
+ "required": ["outcome"],
732
+ "type": "object",
733
+ },
550
734
  "result": {},
551
735
  "service": { "minLength": 1, "type": "string" },
552
736
  "startedAt": { "format": "date-time", "type": "string" },
@@ -616,6 +800,17 @@ export const CONTRACT = {
616
800
  "items": {
617
801
  "properties": {
618
802
  "completedAt": { "format": "date-time", "type": "string" },
803
+ "concurrency": {
804
+ "properties": {
805
+ "heartbeatAt": { "format": "date-time", "type": "string" },
806
+ "key": { "minLength": 1, "type": "string" },
807
+ "keyHash": { "minLength": 1, "type": "string" },
808
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
809
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
810
+ },
811
+ "required": ["key", "keyHash"],
812
+ "type": "object",
813
+ },
619
814
  "context": {
620
815
  "properties": {
621
816
  "requestId": { "minLength": 1, "type": "string" },
@@ -662,6 +857,16 @@ export const CONTRACT = {
662
857
  },
663
858
  "type": "object",
664
859
  },
860
+ "queuePolicy": {
861
+ "properties": {
862
+ "existingJobId": { "minLength": 1, "type": "string" },
863
+ "outcome": { "minLength": 1, "type": "string" },
864
+ "reason": { "minLength": 1, "type": "string" },
865
+ "replacedJobId": { "minLength": 1, "type": "string" },
866
+ },
867
+ "required": ["outcome"],
868
+ "type": "object",
869
+ },
665
870
  "result": {},
666
871
  "service": { "minLength": 1, "type": "string" },
667
872
  "startedAt": { "format": "date-time", "type": "string" },
@@ -739,6 +944,17 @@ export const CONTRACT = {
739
944
  "items": {
740
945
  "properties": {
741
946
  "completedAt": { "format": "date-time", "type": "string" },
947
+ "concurrency": {
948
+ "properties": {
949
+ "heartbeatAt": { "format": "date-time", "type": "string" },
950
+ "key": { "minLength": 1, "type": "string" },
951
+ "keyHash": { "minLength": 1, "type": "string" },
952
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
953
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
954
+ },
955
+ "required": ["key", "keyHash"],
956
+ "type": "object",
957
+ },
742
958
  "context": {
743
959
  "properties": {
744
960
  "requestId": { "minLength": 1, "type": "string" },
@@ -785,6 +1001,16 @@ export const CONTRACT = {
785
1001
  },
786
1002
  "type": "object",
787
1003
  },
1004
+ "queuePolicy": {
1005
+ "properties": {
1006
+ "existingJobId": { "minLength": 1, "type": "string" },
1007
+ "outcome": { "minLength": 1, "type": "string" },
1008
+ "reason": { "minLength": 1, "type": "string" },
1009
+ "replacedJobId": { "minLength": 1, "type": "string" },
1010
+ },
1011
+ "required": ["outcome"],
1012
+ "type": "object",
1013
+ },
788
1014
  "result": {},
789
1015
  "service": { "minLength": 1, "type": "string" },
790
1016
  "startedAt": { "format": "date-time", "type": "string" },
@@ -884,6 +1110,17 @@ export const CONTRACT = {
884
1110
  "job": {
885
1111
  "properties": {
886
1112
  "completedAt": { "format": "date-time", "type": "string" },
1113
+ "concurrency": {
1114
+ "properties": {
1115
+ "heartbeatAt": { "format": "date-time", "type": "string" },
1116
+ "key": { "minLength": 1, "type": "string" },
1117
+ "keyHash": { "minLength": 1, "type": "string" },
1118
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
1119
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
1120
+ },
1121
+ "required": ["key", "keyHash"],
1122
+ "type": "object",
1123
+ },
887
1124
  "context": {
888
1125
  "properties": {
889
1126
  "requestId": { "minLength": 1, "type": "string" },
@@ -930,6 +1167,16 @@ export const CONTRACT = {
930
1167
  },
931
1168
  "type": "object",
932
1169
  },
1170
+ "queuePolicy": {
1171
+ "properties": {
1172
+ "existingJobId": { "minLength": 1, "type": "string" },
1173
+ "outcome": { "minLength": 1, "type": "string" },
1174
+ "reason": { "minLength": 1, "type": "string" },
1175
+ "replacedJobId": { "minLength": 1, "type": "string" },
1176
+ },
1177
+ "required": ["outcome"],
1178
+ "type": "object",
1179
+ },
933
1180
  "result": {},
934
1181
  "service": { "minLength": 1, "type": "string" },
935
1182
  "startedAt": { "format": "date-time", "type": "string" },
@@ -980,6 +1227,17 @@ export const CONTRACT = {
980
1227
  "job": {
981
1228
  "properties": {
982
1229
  "completedAt": { "format": "date-time", "type": "string" },
1230
+ "concurrency": {
1231
+ "properties": {
1232
+ "heartbeatAt": { "format": "date-time", "type": "string" },
1233
+ "key": { "minLength": 1, "type": "string" },
1234
+ "keyHash": { "minLength": 1, "type": "string" },
1235
+ "leaseExpiresAt": { "format": "date-time", "type": "string" },
1236
+ "staleTakeoverCount": { "minimum": 0, "type": "integer" },
1237
+ },
1238
+ "required": ["key", "keyHash"],
1239
+ "type": "object",
1240
+ },
983
1241
  "context": {
984
1242
  "properties": {
985
1243
  "requestId": { "minLength": 1, "type": "string" },
@@ -1026,6 +1284,16 @@ export const CONTRACT = {
1026
1284
  },
1027
1285
  "type": "object",
1028
1286
  },
1287
+ "queuePolicy": {
1288
+ "properties": {
1289
+ "existingJobId": { "minLength": 1, "type": "string" },
1290
+ "outcome": { "minLength": 1, "type": "string" },
1291
+ "reason": { "minLength": 1, "type": "string" },
1292
+ "replacedJobId": { "minLength": 1, "type": "string" },
1293
+ },
1294
+ "required": ["outcome"],
1295
+ "type": "object",
1296
+ },
1029
1297
  "result": {},
1030
1298
  "service": { "minLength": 1, "type": "string" },
1031
1299
  "startedAt": { "format": "date-time", "type": "string" },
@@ -8,7 +8,6 @@ export type {
8
8
  Service,
9
9
  ServiceEventSurface,
10
10
  ServiceHandle,
11
- ServiceWithDeps,
12
11
  TrellisJobsClient,
13
12
  TrellisJobsState,
14
13
  } from "./client.js";
@@ -8,6 +8,8 @@ import {
8
8
  JobsCancelResponseSchema,
9
9
  JobsDismissDLQRequestSchema,
10
10
  JobsDismissDLQResponseSchema,
11
+ JobsGetKeyRequestSchema,
12
+ JobsGetKeyResponseSchema,
11
13
  JobsGetRequestSchema,
12
14
  JobsGetResponseSchema,
13
15
  JobsHealthResponseSchema,
@@ -30,7 +32,7 @@ export const OWNED_API = {
30
32
  subject: "rpc.v1.Jobs.Cancel",
31
33
  input: schema<Types.JobsCancelInput>(JobsCancelRequestSchema),
32
34
  output: schema<Types.JobsCancelOutput>(JobsCancelResponseSchema),
33
- callerCapabilities: ["trellis.jobs::admin.mutate"],
35
+ callerCapabilities: ["trellis.jobs::admin.mutate"] as const,
34
36
  errors: ["UnexpectedError", "ValidationError", "NotFoundError"] as const,
35
37
  declaredErrorTypes: [
36
38
  "UnexpectedError",
@@ -49,7 +51,7 @@ export const OWNED_API = {
49
51
  subject: "rpc.v1.Jobs.DismissDLQ",
50
52
  input: schema<Types.JobsDismissDLQInput>(JobsDismissDLQRequestSchema),
51
53
  output: schema<Types.JobsDismissDLQOutput>(JobsDismissDLQResponseSchema),
52
- callerCapabilities: ["trellis.jobs::admin.mutate"],
54
+ callerCapabilities: ["trellis.jobs::admin.mutate"] as const,
53
55
  errors: ["UnexpectedError", "ValidationError", "NotFoundError"] as const,
54
56
  declaredErrorTypes: [
55
57
  "UnexpectedError",
@@ -68,7 +70,26 @@ export const OWNED_API = {
68
70
  subject: "rpc.v1.Jobs.Get",
69
71
  input: schema<Types.JobsGetInput>(JobsGetRequestSchema),
70
72
  output: schema<Types.JobsGetOutput>(JobsGetResponseSchema),
71
- callerCapabilities: ["trellis.jobs::admin.read"],
73
+ callerCapabilities: ["trellis.jobs::admin.read"] as const,
74
+ errors: ["UnexpectedError", "ValidationError", "NotFoundError"] as const,
75
+ declaredErrorTypes: [
76
+ "UnexpectedError",
77
+ "ValidationError",
78
+ "NotFoundError",
79
+ ] as const,
80
+ runtimeErrors: [
81
+ {
82
+ type: "NotFoundError",
83
+ schema: schema<Types.NotFoundErrorData>(NotFoundErrorDataSchema),
84
+ fromSerializable: Types.NotFoundError.fromSerializable,
85
+ },
86
+ ] as const,
87
+ },
88
+ "Jobs.GetKey": {
89
+ subject: "rpc.v1.Jobs.GetKey",
90
+ input: schema<Types.JobsGetKeyInput>(JobsGetKeyRequestSchema),
91
+ output: schema<Types.JobsGetKeyOutput>(JobsGetKeyResponseSchema),
92
+ callerCapabilities: ["trellis.jobs::admin.read"] as const,
72
93
  errors: ["UnexpectedError", "ValidationError", "NotFoundError"] as const,
73
94
  declaredErrorTypes: [
74
95
  "UnexpectedError",
@@ -87,7 +108,7 @@ export const OWNED_API = {
87
108
  subject: "rpc.v1.Jobs.Health",
88
109
  input: schema<Types.JobsHealthInput>(EmptySchema),
89
110
  output: schema<Types.JobsHealthOutput>(JobsHealthResponseSchema),
90
- callerCapabilities: ["trellis.jobs::admin.read"],
111
+ callerCapabilities: ["trellis.jobs::admin.read"] as const,
91
112
  errors: ["UnexpectedError"] as const,
92
113
  declaredErrorTypes: ["UnexpectedError"] as const,
93
114
  },
@@ -95,7 +116,7 @@ export const OWNED_API = {
95
116
  subject: "rpc.v1.Jobs.List",
96
117
  input: schema<Types.JobsListInput>(JobsListRequestSchema),
97
118
  output: schema<Types.JobsListOutput>(JobsListResponseSchema),
98
- callerCapabilities: ["trellis.jobs::admin.read"],
119
+ callerCapabilities: ["trellis.jobs::admin.read"] as const,
99
120
  errors: ["UnexpectedError", "ValidationError"] as const,
100
121
  declaredErrorTypes: ["UnexpectedError", "ValidationError"] as const,
101
122
  },
@@ -103,7 +124,7 @@ export const OWNED_API = {
103
124
  subject: "rpc.v1.Jobs.ListDLQ",
104
125
  input: schema<Types.JobsListDLQInput>(JobsListDLQRequestSchema),
105
126
  output: schema<Types.JobsListDLQOutput>(JobsListDLQResponseSchema),
106
- callerCapabilities: ["trellis.jobs::admin.read"],
127
+ callerCapabilities: ["trellis.jobs::admin.read"] as const,
107
128
  errors: ["UnexpectedError", "ValidationError"] as const,
108
129
  declaredErrorTypes: ["UnexpectedError", "ValidationError"] as const,
109
130
  },
@@ -113,7 +134,7 @@ export const OWNED_API = {
113
134
  output: schema<Types.JobsListServicesOutput>(
114
135
  JobsListServicesResponseSchema,
115
136
  ),
116
- callerCapabilities: ["trellis.jobs::admin.read"],
137
+ callerCapabilities: ["trellis.jobs::admin.read"] as const,
117
138
  errors: ["UnexpectedError", "ValidationError"] as const,
118
139
  declaredErrorTypes: ["UnexpectedError", "ValidationError"] as const,
119
140
  },
@@ -121,7 +142,7 @@ export const OWNED_API = {
121
142
  subject: "rpc.v1.Jobs.ReplayDLQ",
122
143
  input: schema<Types.JobsReplayDLQInput>(JobsReplayDLQRequestSchema),
123
144
  output: schema<Types.JobsReplayDLQOutput>(JobsReplayDLQResponseSchema),
124
- callerCapabilities: ["trellis.jobs::admin.mutate"],
145
+ callerCapabilities: ["trellis.jobs::admin.mutate"] as const,
125
146
  errors: ["UnexpectedError", "ValidationError", "NotFoundError"] as const,
126
147
  declaredErrorTypes: [
127
148
  "UnexpectedError",
@@ -140,7 +161,7 @@ export const OWNED_API = {
140
161
  subject: "rpc.v1.Jobs.Retry",
141
162
  input: schema<Types.JobsRetryInput>(JobsRetryRequestSchema),
142
163
  output: schema<Types.JobsRetryOutput>(JobsRetryResponseSchema),
143
- callerCapabilities: ["trellis.jobs::admin.mutate"],
164
+ callerCapabilities: ["trellis.jobs::admin.mutate"] as const,
144
165
  errors: ["UnexpectedError", "ValidationError", "NotFoundError"] as const,
145
166
  declaredErrorTypes: [
146
167
  "UnexpectedError",