@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
@@ -98,11 +98,18 @@ export type OperationDesc<
98
98
  I extends SchemaLike = SchemaLike,
99
99
  P extends SchemaLike | undefined = SchemaLike | undefined,
100
100
  O extends SchemaLike | undefined = SchemaLike | undefined,
101
+ E extends readonly string[] | undefined = readonly string[] | undefined,
102
+ TRuntimeErrors extends readonly RuntimeRpcErrorDesc[] | undefined =
103
+ | readonly RuntimeRpcErrorDesc[]
104
+ | undefined,
101
105
  > = {
102
106
  subject: string;
103
107
  input: I;
104
108
  progress?: P;
105
109
  output?: O;
110
+ errors?: E;
111
+ runtimeErrors?: TRuntimeErrors;
112
+ declaredErrorTypes?: readonly string[];
106
113
  transfer?: {
107
114
  direction: "send";
108
115
  store: string;
@@ -0,0 +1,67 @@
1
+ import Type, { type Static } from "typebox";
2
+ import { TrellisError } from "./TrellisError.js";
3
+
4
+ export const SchemaValidationIssueSchema = Type.Object({
5
+ path: Type.String(),
6
+ schemaPath: Type.Optional(Type.String()),
7
+ keyword: Type.String(),
8
+ code: Type.String(),
9
+ message: Type.String(),
10
+ label: Type.Optional(Type.String()),
11
+ note: Type.Optional(Type.String()),
12
+ i18nKey: Type.Optional(Type.String()),
13
+ severity: Type.Optional(Type.Union([
14
+ Type.Literal("error"),
15
+ Type.Literal("warning"),
16
+ Type.Literal("info"),
17
+ ])),
18
+ params: Type.Optional(Type.Record(Type.String(), Type.Unknown())),
19
+ });
20
+ export type SchemaValidationIssue = Static<typeof SchemaValidationIssueSchema>;
21
+
22
+ export const SchemaValidationErrorDataSchema = Type.Object({
23
+ id: Type.String(),
24
+ type: Type.Literal("SchemaValidationError"),
25
+ message: Type.String(),
26
+ issues: Type.Array(SchemaValidationIssueSchema),
27
+ context: Type.Optional(Type.Record(Type.String(), Type.Unknown())),
28
+ traceId: Type.Optional(Type.String()),
29
+ });
30
+ export type SchemaValidationErrorData = Static<
31
+ typeof SchemaValidationErrorDataSchema
32
+ >;
33
+
34
+ export class SchemaValidationError
35
+ extends TrellisError<SchemaValidationErrorData> {
36
+ override readonly name = "SchemaValidationError" as const;
37
+ readonly #issues: SchemaValidationIssue[];
38
+
39
+ constructor(
40
+ options: {
41
+ issues: SchemaValidationIssue[];
42
+ context?: Record<string, unknown>;
43
+ cause?: unknown;
44
+ id?: string;
45
+ },
46
+ ) {
47
+ const { issues: rawIssues, ...baseOptions } = options;
48
+ const msg = rawIssues
49
+ .map((issue) => issue.message)
50
+ .join("\n");
51
+ super(msg.length ? msg : "Schema validation failed.", baseOptions);
52
+ this.#issues = rawIssues;
53
+ }
54
+
55
+ /** The validation issues that caused this error. */
56
+ get issues(): readonly SchemaValidationIssue[] {
57
+ return this.#issues;
58
+ }
59
+
60
+ override toSerializable(): SchemaValidationErrorData {
61
+ return {
62
+ ...this.baseSerializable(),
63
+ type: this.name,
64
+ issues: this.#issues,
65
+ } as SchemaValidationErrorData;
66
+ }
67
+ }
@@ -11,6 +11,15 @@ import { AuthErrorDataSchema } from "./AuthError.js";
11
11
  import { ValidationError } from "./ValidationError.js";
12
12
  import type { ValidationErrorData } from "./ValidationError.js";
13
13
  import { ValidationErrorDataSchema } from "./ValidationError.js";
14
+ import { SchemaValidationError } from "./SchemaValidationError.js";
15
+ import type {
16
+ SchemaValidationErrorData,
17
+ SchemaValidationIssue,
18
+ } from "./SchemaValidationError.js";
19
+ import {
20
+ SchemaValidationErrorDataSchema,
21
+ SchemaValidationIssueSchema,
22
+ } from "./SchemaValidationError.js";
14
23
  import { RemoteError } from "./RemoteError.js";
15
24
  import { KVError } from "./KVError.js";
16
25
  import type { KVErrorData } from "./KVError.js";
@@ -48,6 +57,7 @@ export { UnexpectedError } from "@qlever-llc/result";
48
57
  export { TrellisError } from "./TrellisError.js";
49
58
  export { AuthError } from "./AuthError.js";
50
59
  export { ValidationError } from "./ValidationError.js";
60
+ export { SchemaValidationError } from "./SchemaValidationError.js";
51
61
  export { RemoteError } from "./RemoteError.js";
52
62
  export { KVError } from "./KVError.js";
53
63
  export {
@@ -66,6 +76,12 @@ export {
66
76
  type ValidationIssue,
67
77
  ValidationIssueSchema,
68
78
  } from "./ValidationError.js";
79
+ export {
80
+ type SchemaValidationErrorData,
81
+ SchemaValidationErrorDataSchema,
82
+ type SchemaValidationIssue,
83
+ SchemaValidationIssueSchema,
84
+ } from "./SchemaValidationError.js";
69
85
  export { type RemoteErrorData, RemoteErrorDataSchema } from "./RemoteError.js";
70
86
  export { type KVErrorData, KVErrorDataSchema } from "./KVError.js";
71
87
  export {
@@ -95,6 +111,7 @@ const TRANSPORTABLE_TRELLIS_ERRORS = {
95
111
  TransportError,
96
112
  AuthError,
97
113
  ValidationError,
114
+ SchemaValidationError,
98
115
  KVError,
99
116
  OperationNotFoundError,
100
117
  OperationAlreadyTerminalError,
@@ -182,6 +199,17 @@ export const BUILTIN_RPC_ERRORS = {
182
199
  });
183
200
  },
184
201
  },
202
+ SchemaValidationError: {
203
+ type: "SchemaValidationError",
204
+ schema: schema<SchemaValidationErrorData>(SchemaValidationErrorDataSchema),
205
+ fromSerializable(data: SchemaValidationErrorData) {
206
+ return new SchemaValidationError({
207
+ issues: data.issues,
208
+ id: data.id,
209
+ context: data.context,
210
+ });
211
+ },
212
+ },
185
213
  KVError: {
186
214
  type: "KVError",
187
215
  schema: schema<KVErrorData>(KVErrorDataSchema),
package/src/health.ts CHANGED
@@ -19,7 +19,6 @@ export {
19
19
  } from "./server/health.js";
20
20
  export {
21
21
  HealthCheckResultSchema,
22
- HealthHeartbeatHeaderSchema,
23
22
  HealthHeartbeatSchema,
24
23
  HealthHeartbeatServiceSchema,
25
24
  HealthInfoSchema,
package/src/index.ts CHANGED
@@ -43,7 +43,6 @@ export type {
43
43
  export {
44
44
  createHealthHeartbeat,
45
45
  HealthCheckResultSchema,
46
- HealthHeartbeatHeaderSchema,
47
46
  HealthHeartbeatSchema,
48
47
  HealthHeartbeatServiceSchema,
49
48
  HealthInfoSchema,
@@ -55,7 +54,7 @@ export {
55
54
  runServiceHealthCheck,
56
55
  ServiceHealth,
57
56
  } from "./health.js";
58
- export { defineError } from "./contract_support/mod.js";
57
+ export { defineError, withTrellisValidation } from "./contract_support/mod.js";
59
58
  export {
60
59
  buildCursorPage,
61
60
  buildPageResponse,
@@ -81,6 +80,8 @@ export type {
81
80
  RpcErrorClass,
82
81
  RuntimeRpcErrorDesc,
83
82
  SerializableErrorData,
83
+ TrellisValidationExtension,
84
+ TrellisValidationIssueHint,
84
85
  } from "./contract_support/mod.js";
85
86
  export {
86
87
  defineAgentContract,
@@ -212,7 +213,6 @@ export type {
212
213
  AcceptedOperation,
213
214
  ClientTrellis,
214
215
  ConnectedTrellisClient,
215
- EventHandler,
216
216
  EventListenerContext,
217
217
  EventName,
218
218
  EventOpts,
@@ -229,25 +229,24 @@ export type {
229
229
  HandlerTrellisForContract,
230
230
  MapStateStoreClient,
231
231
  OperationHandlerContext,
232
+ OperationHandlerErrorOf,
232
233
  OperationRegistration,
233
234
  OperationRuntimeHandle,
234
235
  OperationTransferContextOf,
235
236
  OperationTransferHandle,
236
237
  PreparedTrellisEvent,
237
238
  RequestOpts,
238
- RpcArgs,
239
239
  RpcHandlerContext,
240
- RpcHandlerErrorOf,
241
- RpcHandlerFn,
242
240
  RpcInputOf,
243
241
  RpcMethodNameOf,
244
242
  RpcOutputOf,
245
243
  RpcRequestErrorOf,
246
- RpcResult,
247
244
  RuntimeStateStoresForContract,
248
245
  RuntimeStateStoreShape,
246
+ SessionCaller,
249
247
  StateFacade,
250
- TrellisFor,
248
+ TrellisEventHeader,
249
+ TrellisEventMessage,
251
250
  ValueStateStoreClient,
252
251
  } from "./trellis.js";
253
252
  export type { TrellisDeviceConnection } from "./device.js";
package/src/jobs.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AsyncResult, type BaseError, Result } from "@qlever-llc/result";
1
+ import { AsyncResult, BaseError, Result } from "@qlever-llc/result";
2
2
  import { UnexpectedError } from "./errors/index.js";
3
3
  import { type StaticDecode, Type } from "typebox";
4
4
 
@@ -41,6 +41,8 @@ export type JobState =
41
41
  | "failed"
42
42
  | "cancelled"
43
43
  | "expired"
44
+ | "skipped"
45
+ | "stale"
44
46
  | "dead"
45
47
  | "dismissed";
46
48
 
@@ -50,6 +52,116 @@ export type JobIdentity = {
50
52
  id: string;
51
53
  };
52
54
 
55
+ export type JobNotEnqueuedReason =
56
+ | "active-limit"
57
+ | "queue-depth"
58
+ | "stale-blocked"
59
+ | "coalesced";
60
+
61
+ export type JobNotEnqueuedErrorData = {
62
+ id: string;
63
+ type: "JobNotEnqueuedError";
64
+ message: string;
65
+ reason: JobNotEnqueuedReason;
66
+ key: string;
67
+ active: number;
68
+ queued: number;
69
+ limit: number;
70
+ existingJobId?: string;
71
+ context?: Record<string, unknown>;
72
+ traceId?: string;
73
+ };
74
+
75
+ /** Error returned when keyed job admission does not create a new job. */
76
+ export class JobNotEnqueuedError extends BaseError<JobNotEnqueuedErrorData> {
77
+ override readonly name = "JobNotEnqueuedError" as const;
78
+ readonly reason: JobNotEnqueuedReason;
79
+ readonly key: string;
80
+ readonly active: number;
81
+ readonly queued: number;
82
+ readonly limit: number;
83
+ readonly existingJobId?: string;
84
+
85
+ constructor(
86
+ options: ErrorOptions & {
87
+ reason: JobNotEnqueuedReason;
88
+ key: string;
89
+ active: number;
90
+ queued: number;
91
+ limit: number;
92
+ existingJobId?: string;
93
+ message?: string;
94
+ context?: Record<string, unknown>;
95
+ id?: string;
96
+ traceId?: string;
97
+ },
98
+ ) {
99
+ const {
100
+ reason,
101
+ key,
102
+ active,
103
+ queued,
104
+ limit,
105
+ existingJobId,
106
+ message,
107
+ ...baseOptions
108
+ } = options;
109
+ super(
110
+ message ?? `Job was not enqueued for key '${key}': ${reason}`,
111
+ baseOptions,
112
+ );
113
+ this.reason = reason;
114
+ this.key = key;
115
+ this.active = active;
116
+ this.queued = queued;
117
+ this.limit = limit;
118
+ this.existingJobId = existingJobId;
119
+ }
120
+
121
+ /** Serializes the admission error for transport or logging. */
122
+ override toSerializable(): JobNotEnqueuedErrorData {
123
+ const base = this.baseSerializable();
124
+ return {
125
+ id: base.id,
126
+ type: this.name,
127
+ message: base.message,
128
+ reason: this.reason,
129
+ key: this.key,
130
+ active: this.active,
131
+ queued: this.queued,
132
+ limit: this.limit,
133
+ ...(this.existingJobId !== undefined
134
+ ? { existingJobId: this.existingJobId }
135
+ : {}),
136
+ ...(base.context !== undefined ? { context: base.context } : {}),
137
+ ...(base.traceId !== undefined ? { traceId: base.traceId } : {}),
138
+ };
139
+ }
140
+ }
141
+
142
+ export type JobSubmitOutcome<TPayload, TResult> =
143
+ | { kind: "accepted"; ref: JobRef<TPayload, TResult>; key?: string }
144
+ | {
145
+ kind: "rejected";
146
+ key: string;
147
+ reason: "active-limit" | "queue-depth" | "stale-blocked";
148
+ active: number;
149
+ queued: number;
150
+ limit: number;
151
+ }
152
+ | {
153
+ kind: "coalesced";
154
+ key: string;
155
+ existing: JobIdentity;
156
+ reason: string;
157
+ }
158
+ | {
159
+ kind: "replaced";
160
+ key: string;
161
+ replaced: JobIdentity;
162
+ ref: JobRef<TPayload, TResult>;
163
+ };
164
+
53
165
  export type JobSnapshot<TPayload, TResult> = {
54
166
  id: string;
55
167
  service: string;
@@ -81,6 +193,8 @@ export type TerminalJob<TPayload, TResult> = JobSnapshot<TPayload, TResult> & {
81
193
  | "failed"
82
194
  | "cancelled"
83
195
  | "expired"
196
+ | "skipped"
197
+ | "stale"
84
198
  | "dead"
85
199
  | "dismissed";
86
200
  };
@@ -269,6 +383,9 @@ export class JobQueue<TPayload, TResult> {
269
383
  job: ActiveJob<TPayload, TResult>,
270
384
  ) => Promise<Result<TResult, BaseError>>,
271
385
  ) => void;
386
+ readonly #submit: (
387
+ payload: TPayload,
388
+ ) => AsyncResult<JobSubmitOutcome<TPayload, TResult>, BaseError>;
272
389
 
273
390
  constructor(impl: {
274
391
  create: (
@@ -279,9 +396,15 @@ export class JobQueue<TPayload, TResult> {
279
396
  job: ActiveJob<TPayload, TResult>,
280
397
  ) => Promise<Result<TResult, BaseError>>,
281
398
  ) => void;
399
+ submit?: (
400
+ payload: TPayload,
401
+ ) => AsyncResult<JobSubmitOutcome<TPayload, TResult>, BaseError>;
282
402
  }) {
283
403
  this.#create = impl.create;
284
404
  this.#handle = impl.handle;
405
+ this.#submit = impl.submit ??
406
+ ((payload) =>
407
+ impl.create(payload).map((ref) => ({ kind: "accepted", ref })));
285
408
  }
286
409
 
287
410
  create(payload: TPayload): AsyncResult<JobRef<TPayload, TResult>, BaseError> {
@@ -292,6 +415,20 @@ export class JobQueue<TPayload, TResult> {
292
415
  }
293
416
  }
294
417
 
418
+ /**
419
+ * Submits a job using queue policy outcomes for keyed queues.
420
+ * Unkeyed queues accept and return a new job reference.
421
+ */
422
+ submit(
423
+ payload: TPayload,
424
+ ): AsyncResult<JobSubmitOutcome<TPayload, TResult>, BaseError> {
425
+ try {
426
+ return this.#submit(payload);
427
+ } catch (cause) {
428
+ return AsyncResult.err(toUnexpectedError(cause));
429
+ }
430
+ }
431
+
295
432
  handle(
296
433
  handler: (
297
434
  job: ActiveJob<TPayload, TResult>,
@@ -1,12 +1,34 @@
1
1
  // Generated from ./generated/contracts/manifests/trellis.auth@v1.json
2
2
  import { OWNED_API } from "./owned_api.js";
3
+ import { OWNED_API as HealthApi } from "../health/mod.js";
3
4
 
4
5
  export { OWNED_API };
5
6
 
7
+ type __TrellisGeneratedOptionalOperationProgress<TDesc> = TDesc extends
8
+ { progress: infer TProgress } ? { progress?: TProgress }
9
+ : { progress?: undefined };
10
+ type __TrellisGeneratedOptionalOperationOutput<TDesc> = TDesc extends
11
+ { output: infer TOutput } ? { output?: TOutput }
12
+ : { output?: undefined };
13
+ type __TrellisGeneratedOptionalOperationIO<TDesc> = TDesc extends
14
+ { input: infer TInput } ?
15
+ & Omit<TDesc, "input" | "progress" | "output">
16
+ & {
17
+ input: TInput;
18
+ }
19
+ & __TrellisGeneratedOptionalOperationProgress<TDesc>
20
+ & __TrellisGeneratedOptionalOperationOutput<TDesc>
21
+ : TDesc;
22
+ type __TrellisGeneratedOperationApi<TApi> = {
23
+ readonly [K in keyof TApi]: __TrellisGeneratedOptionalOperationIO<TApi[K]>;
24
+ };
25
+
6
26
  export type UsedApi = {
7
27
  rpc: {};
8
28
  operations: {};
9
- events: {};
29
+ events: {
30
+ readonly "Health.Heartbeat": typeof HealthApi.events["Health.Heartbeat"];
31
+ };
10
32
  feeds: {};
11
33
  subjects: {};
12
34
  };
@@ -14,12 +36,18 @@ export type UsedApi = {
14
36
  export const USED_API: UsedApi = {
15
37
  rpc: {},
16
38
  operations: {},
17
- events: {},
39
+ events: {
40
+ get "Health.Heartbeat"() {
41
+ return HealthApi.events["Health.Heartbeat"];
42
+ },
43
+ },
18
44
  feeds: {},
19
45
  subjects: {},
20
46
  };
21
47
 
22
- export type OwnedApi = typeof OWNED_API;
48
+ export type OwnedApi = Omit<typeof OWNED_API, "operations"> & {
49
+ operations: __TrellisGeneratedOperationApi<typeof OWNED_API["operations"]>;
50
+ };
23
51
  export type Api = {
24
52
  rpc: OwnedApi["rpc"] & UsedApi["rpc"];
25
53
  operations: OwnedApi["operations"] & UsedApi["operations"];
@@ -28,9 +56,12 @@ export type Api = {
28
56
  subjects: OwnedApi["subjects"] & UsedApi["subjects"];
29
57
  };
30
58
 
31
- export const API = {
59
+ export type ApiViews = {
60
+ owned: OwnedApi;
61
+ used: UsedApi;
62
+ };
63
+
64
+ export const API: ApiViews = {
32
65
  owned: OWNED_API,
33
66
  used: USED_API,
34
- } as const;
35
-
36
- export type ApiViews = typeof API;
67
+ };