@oatscenter/trellis 0.100.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 (264) hide show
  1. package/README.md +59 -0
  2. package/auth/authorization/client_context.d.ts +61 -0
  3. package/auth/authorization/client_context.js +266 -0
  4. package/auth/authorization/nats_registry.d.ts +41 -0
  5. package/auth/authorization/nats_registry.js +283 -0
  6. package/auth/authorization/provider_cache.d.ts +90 -0
  7. package/auth/authorization/provider_cache.js +783 -0
  8. package/auth/authorization/refresh.d.ts +46 -0
  9. package/auth/authorization/refresh.js +246 -0
  10. package/auth/authorization/types.d.ts +207 -0
  11. package/auth/authorization/types.js +60 -0
  12. package/auth/authorization_context.d.ts +11 -0
  13. package/auth/authorization_context.js +10 -0
  14. package/auth/browser/flow_types.d.ts +84 -0
  15. package/auth/browser/flow_types.js +70 -0
  16. package/auth/browser/portal.d.ts +21 -0
  17. package/auth/browser/portal.js +307 -0
  18. package/auth/browser/storage.d.ts +26 -0
  19. package/auth/browser/storage.js +224 -0
  20. package/auth/browser.d.ts +11 -0
  21. package/auth/browser.js +10 -0
  22. package/auth/browser_recovery.d.ts +13 -0
  23. package/auth/browser_recovery.js +38 -0
  24. package/auth/device_activation.d.ts +134 -0
  25. package/auth/device_activation.js +376 -0
  26. package/auth/http_error.d.ts +12 -0
  27. package/auth/http_error.js +32 -0
  28. package/auth/keys.d.ts +5 -0
  29. package/auth/keys.js +63 -0
  30. package/auth/mod.d.ts +16 -0
  31. package/auth/mod.js +16 -0
  32. package/auth/proof.d.ts +31 -0
  33. package/auth/proof.js +95 -0
  34. package/auth/protocol_wasm/trellis_protocol_wasm.d.ts +138 -0
  35. package/auth/protocol_wasm/trellis_protocol_wasm.js +605 -0
  36. package/auth/protocol_wasm/trellis_protocol_wasm_bg.wasm +0 -0
  37. package/auth/protocol_wasm/trellis_protocol_wasm_bytes.d.ts +1 -0
  38. package/auth/protocol_wasm/trellis_protocol_wasm_bytes.js +2 -0
  39. package/auth/protocol_wasm.d.ts +179 -0
  40. package/auth/protocol_wasm.js +133 -0
  41. package/auth/session_auth.d.ts +30 -0
  42. package/auth/session_auth.js +77 -0
  43. package/auth/session_proof.d.ts +53 -0
  44. package/auth/session_proof.js +43 -0
  45. package/auth/time.d.ts +6 -0
  46. package/auth/time.js +7 -0
  47. package/auth/trellis_id.d.ts +1 -0
  48. package/auth/trellis_id.js +5 -0
  49. package/auth/utils.d.ts +10 -0
  50. package/auth/utils.js +69 -0
  51. package/auth.d.ts +1 -0
  52. package/auth.js +1 -0
  53. package/caller.d.ts +111 -0
  54. package/caller.js +85 -0
  55. package/client.d.ts +14 -0
  56. package/client.js +1 -0
  57. package/client_connect.d.ts +143 -0
  58. package/client_connect.js +1097 -0
  59. package/codec.d.ts +13 -0
  60. package/codec.js +192 -0
  61. package/connection.d.ts +107 -0
  62. package/connection.js +396 -0
  63. package/device/activation.d.ts +42 -0
  64. package/device/activation.js +319 -0
  65. package/device.d.ts +80 -0
  66. package/device.js +687 -0
  67. package/env.d.ts +2 -0
  68. package/env.js +10 -0
  69. package/errors/AuthError.d.ts +30 -0
  70. package/errors/AuthError.js +34 -0
  71. package/errors/KVError.d.ts +30 -0
  72. package/errors/KVError.js +36 -0
  73. package/errors/OperationLifecycleError.d.ts +110 -0
  74. package/errors/OperationLifecycleError.js +142 -0
  75. package/errors/RemoteError.d.ts +61 -0
  76. package/errors/RemoteError.js +72 -0
  77. package/errors/SchemaValidationError.d.ts +48 -0
  78. package/errors/SchemaValidationError.js +49 -0
  79. package/errors/StoreError.d.ts +21 -0
  80. package/errors/StoreError.js +31 -0
  81. package/errors/TransferError.d.ts +21 -0
  82. package/errors/TransferError.js +31 -0
  83. package/errors/TransportError.d.ts +29 -0
  84. package/errors/TransportError.js +33 -0
  85. package/errors/TrellisError.d.ts +15 -0
  86. package/errors/TrellisError.js +15 -0
  87. package/errors/ValidationError.d.ts +50 -0
  88. package/errors/ValidationError.js +59 -0
  89. package/errors/index.d.ts +254 -0
  90. package/errors/index.js +238 -0
  91. package/generated.d.ts +4 -0
  92. package/generated.js +3 -0
  93. package/generated_support.d.ts +120 -0
  94. package/generated_support.js +359 -0
  95. package/globals.d.ts +9 -0
  96. package/globals.js +16 -0
  97. package/health_transport.d.ts +18 -0
  98. package/health_transport.js +32 -0
  99. package/helpers.d.ts +11 -0
  100. package/helpers.js +53 -0
  101. package/index.d.ts +2 -0
  102. package/index.js +2 -0
  103. package/internal_sdk/generated/apis/auth/mod.d.ts +805 -0
  104. package/internal_sdk/generated/apis/auth/mod.js +958 -0
  105. package/internal_sdk/generated/apis/core/mod.d.ts +79 -0
  106. package/internal_sdk/generated/apis/core/mod.js +93 -0
  107. package/internal_sdk/generated/apis/events/mod.d.ts +224 -0
  108. package/internal_sdk/generated/apis/events/mod.js +313 -0
  109. package/internal_sdk/generated/apis/health/mod.d.ts +106 -0
  110. package/internal_sdk/generated/apis/health/mod.js +132 -0
  111. package/internal_sdk/generated/apis/index.d.ts +7 -0
  112. package/internal_sdk/generated/apis/index.js +8 -0
  113. package/internal_sdk/generated/apis/jobs/mod.d.ts +176 -0
  114. package/internal_sdk/generated/apis/jobs/mod.js +209 -0
  115. package/internal_sdk/generated/apis/state/mod.d.ts +104 -0
  116. package/internal_sdk/generated/apis/state/mod.js +139 -0
  117. package/internal_sdk/generated/index.d.ts +4 -0
  118. package/internal_sdk/generated/index.js +5 -0
  119. package/internal_sdk/generated/package.json +18 -0
  120. package/internal_sdk/generated/participants/cli/mod.d.ts +402 -0
  121. package/internal_sdk/generated/participants/cli/mod.js +460 -0
  122. package/internal_sdk/generated/participants/cli/types.d.ts +2 -0
  123. package/internal_sdk/generated/participants/cli/types.js +3 -0
  124. package/internal_sdk/generated/participants/console/mod.d.ts +489 -0
  125. package/internal_sdk/generated/participants/console/mod.js +579 -0
  126. package/internal_sdk/generated/participants/console/types.d.ts +2 -0
  127. package/internal_sdk/generated/participants/console/types.js +3 -0
  128. package/internal_sdk/generated/participants/eventsRuntime/mod.d.ts +64 -0
  129. package/internal_sdk/generated/participants/eventsRuntime/mod.js +42 -0
  130. package/internal_sdk/generated/participants/eventsRuntime/types.d.ts +2 -0
  131. package/internal_sdk/generated/participants/eventsRuntime/types.js +3 -0
  132. package/internal_sdk/generated/participants/healthRuntime/mod.d.ts +58 -0
  133. package/internal_sdk/generated/participants/healthRuntime/mod.js +36 -0
  134. package/internal_sdk/generated/participants/healthRuntime/types.d.ts +2 -0
  135. package/internal_sdk/generated/participants/healthRuntime/types.js +3 -0
  136. package/internal_sdk/generated/participants/index.d.ts +8 -0
  137. package/internal_sdk/generated/participants/index.js +9 -0
  138. package/internal_sdk/generated/participants/jobsRuntime/mod.d.ts +64 -0
  139. package/internal_sdk/generated/participants/jobsRuntime/mod.js +42 -0
  140. package/internal_sdk/generated/participants/jobsRuntime/types.d.ts +2 -0
  141. package/internal_sdk/generated/participants/jobsRuntime/types.js +3 -0
  142. package/internal_sdk/generated/participants/platform/mod.d.ts +164 -0
  143. package/internal_sdk/generated/participants/platform/mod.js +149 -0
  144. package/internal_sdk/generated/participants/platform/types.d.ts +7 -0
  145. package/internal_sdk/generated/participants/platform/types.js +5 -0
  146. package/internal_sdk/generated/participants/portal/mod.d.ts +131 -0
  147. package/internal_sdk/generated/participants/portal/mod.js +109 -0
  148. package/internal_sdk/generated/participants/portal/types.d.ts +2 -0
  149. package/internal_sdk/generated/participants/portal/types.js +3 -0
  150. package/internal_sdk/generated/types/_internal/p0.d.ts +13511 -0
  151. package/internal_sdk/generated/types/_internal/p0.js +6105 -0
  152. package/internal_sdk/generated/types/index.d.ts +2951 -0
  153. package/internal_sdk/generated/types/index.js +1477 -0
  154. package/jobs.d.ts +309 -0
  155. package/jobs.js +389 -0
  156. package/kv.d.ts +85 -0
  157. package/kv.js +330 -0
  158. package/operations.d.ts +189 -0
  159. package/operations.js +847 -0
  160. package/package.json +73 -0
  161. package/pagination.d.ts +25 -0
  162. package/pagination.js +117 -0
  163. package/participant.d.ts +6 -0
  164. package/participant.js +6 -0
  165. package/participant_runtime/api.d.ts +131 -0
  166. package/participant_runtime/api.js +42 -0
  167. package/participant_runtime/json.d.ts +16 -0
  168. package/participant_runtime/json.js +193 -0
  169. package/participant_runtime/metadata.d.ts +34 -0
  170. package/participant_runtime/metadata.js +4 -0
  171. package/participant_runtime/participant.d.ts +200 -0
  172. package/participant_runtime/participant.js +330 -0
  173. package/participant_runtime/schemas.d.ts +347 -0
  174. package/participant_runtime/schemas.js +211 -0
  175. package/participant_runtime/surface_names.d.ts +16 -0
  176. package/participant_runtime/surface_names.js +34 -0
  177. package/portable.d.ts +30 -0
  178. package/portable.js +14 -0
  179. package/provider.d.ts +69 -0
  180. package/provider.js +68 -0
  181. package/runtime_transport.d.ts +25 -0
  182. package/runtime_transport.js +48 -0
  183. package/service/mod.d.ts +14 -0
  184. package/service/mod.js +13 -0
  185. package/service/outbox_inbox.d.ts +259 -0
  186. package/service/outbox_inbox.js +908 -0
  187. package/service/runtime/bootstrap.d.ts +56 -0
  188. package/service/runtime/bootstrap.js +226 -0
  189. package/service/runtime/core.d.ts +46 -0
  190. package/service/runtime/core.js +1747 -0
  191. package/service/runtime/health.d.ts +97 -0
  192. package/service/runtime/health.js +153 -0
  193. package/service/runtime/health_schemas.d.ts +23 -0
  194. package/service/runtime/health_schemas.js +20 -0
  195. package/service/runtime/internal_jobs/active-job.d.ts +40 -0
  196. package/service/runtime/internal_jobs/active-job.js +91 -0
  197. package/service/runtime/internal_jobs/bindings.d.ts +40 -0
  198. package/service/runtime/internal_jobs/bindings.js +1 -0
  199. package/service/runtime/internal_jobs/cancellation-registry.d.ts +13 -0
  200. package/service/runtime/internal_jobs/cancellation-registry.js +55 -0
  201. package/service/runtime/internal_jobs/heartbeat.d.ts +33 -0
  202. package/service/runtime/internal_jobs/heartbeat.js +65 -0
  203. package/service/runtime/internal_jobs/job-manager.d.ts +126 -0
  204. package/service/runtime/internal_jobs/job-manager.js +821 -0
  205. package/service/runtime/internal_jobs/key-coordinator.d.ts +280 -0
  206. package/service/runtime/internal_jobs/key-coordinator.js +747 -0
  207. package/service/runtime/internal_jobs/projection.d.ts +3 -0
  208. package/service/runtime/internal_jobs/projection.js +42 -0
  209. package/service/runtime/internal_jobs/runtime-worker.d.ts +126 -0
  210. package/service/runtime/internal_jobs/runtime-worker.js +454 -0
  211. package/service/runtime/internal_jobs/types.d.ts +246 -0
  212. package/service/runtime/internal_jobs/types.js +163 -0
  213. package/service/runtime/logger.d.ts +2 -0
  214. package/service/runtime/logger.js +7 -0
  215. package/service/runtime/runtime.d.ts +16 -0
  216. package/service/runtime/runtime.js +1 -0
  217. package/service/runtime/service.d.ts +372 -0
  218. package/service/runtime/service.js +1896 -0
  219. package/service/runtime/transfer/download.d.ts +27 -0
  220. package/service/runtime/transfer/download.js +1 -0
  221. package/service/runtime/transfer/protocol.d.ts +15 -0
  222. package/service/runtime/transfer/protocol.js +46 -0
  223. package/service/runtime/transfer/queue.d.ts +18 -0
  224. package/service/runtime/transfer/queue.js +136 -0
  225. package/service/runtime/transfer/upload.d.ts +40 -0
  226. package/service/runtime/transfer/upload.js +27 -0
  227. package/service/runtime/transfer.d.ts +62 -0
  228. package/service/runtime/transfer.js +763 -0
  229. package/session.d.ts +862 -0
  230. package/session.js +3407 -0
  231. package/store.d.ts +71 -0
  232. package/store.js +412 -0
  233. package/store_entry.d.ts +20 -0
  234. package/store_entry.js +75 -0
  235. package/tasks.d.ts +10 -0
  236. package/tasks.js +28 -0
  237. package/telemetry/carrier.d.ts +8 -0
  238. package/telemetry/carrier.js +20 -0
  239. package/telemetry/core.d.ts +7 -0
  240. package/telemetry/core.js +14 -0
  241. package/telemetry/env.d.ts +2 -0
  242. package/telemetry/env.js +10 -0
  243. package/telemetry/init.d.ts +2 -0
  244. package/telemetry/init.js +7 -0
  245. package/telemetry/metrics.d.ts +81 -0
  246. package/telemetry/metrics.js +267 -0
  247. package/telemetry/mod.d.ts +13 -0
  248. package/telemetry/mod.js +8 -0
  249. package/telemetry/nats.d.ts +6 -0
  250. package/telemetry/nats.js +6 -0
  251. package/telemetry/result.d.ts +1 -0
  252. package/telemetry/result.js +18 -0
  253. package/telemetry/runtime.d.ts +1 -0
  254. package/telemetry/runtime.js +141 -0
  255. package/telemetry/trace.d.ts +4 -0
  256. package/telemetry/trace.js +26 -0
  257. package/telemetry/trellis.d.ts +1 -0
  258. package/telemetry/trellis.js +1 -0
  259. package/telemetry.d.ts +1 -0
  260. package/telemetry.js +1 -0
  261. package/transfer.d.ts +112 -0
  262. package/transfer.js +525 -0
  263. package/transfer_protocol.d.ts +1 -0
  264. package/transfer_protocol.js +13 -0
@@ -0,0 +1,246 @@
1
+ import { type StaticDecode, Type } from "typebox";
2
+ export declare const JobContextSchema: Type.TObject<{
3
+ requestId: Type.TString;
4
+ traceId: Type.TString;
5
+ traceparent: Type.TString;
6
+ tracestate: Type.TOptional<Type.TString>;
7
+ }>;
8
+ export type JobContext = StaticDecode<typeof JobContextSchema>;
9
+ export declare const JobTriggerSchema: Type.TObject<{
10
+ kind: Type.TUnion<[Type.TLiteral<"schedule">, Type.TLiteral<"operation">, Type.TLiteral<"rpc">, Type.TLiteral<"event">, Type.TLiteral<"manualReplay">, Type.TLiteral<"serviceCode">, Type.TLiteral<"parentJob">]>;
11
+ id: Type.TOptional<Type.TString>;
12
+ subject: Type.TOptional<Type.TString>;
13
+ operationId: Type.TOptional<Type.TString>;
14
+ parentJobId: Type.TOptional<Type.TString>;
15
+ traceId: Type.TOptional<Type.TString>;
16
+ requestId: Type.TOptional<Type.TString>;
17
+ }>;
18
+ export type JobTrigger = StaticDecode<typeof JobTriggerSchema>;
19
+ export declare const JobLineageSchema: Type.TObject<{
20
+ parentJobId: Type.TOptional<Type.TString>;
21
+ rootJobId: Type.TOptional<Type.TString>;
22
+ operationId: Type.TOptional<Type.TString>;
23
+ relatedKeys: Type.TOptional<Type.TArray<Type.TString>>;
24
+ }>;
25
+ export type JobLineage = StaticDecode<typeof JobLineageSchema>;
26
+ export declare const PreparedJobSubmissionSchema: Type.TObject<{
27
+ submissionId: Type.TString;
28
+ mode: Type.TUnion<[Type.TLiteral<"create">, Type.TLiteral<"submit">]>;
29
+ service: Type.TString;
30
+ queue: Type.TString;
31
+ jobId: Type.TString;
32
+ payload: Type.TUnknown;
33
+ createdAt: Type.TString;
34
+ context: Type.TObject<{
35
+ requestId: Type.TString;
36
+ traceId: Type.TString;
37
+ traceparent: Type.TString;
38
+ tracestate: Type.TOptional<Type.TString>;
39
+ }>;
40
+ trigger: Type.TOptional<Type.TObject<{
41
+ kind: Type.TUnion<[Type.TLiteral<"schedule">, Type.TLiteral<"operation">, Type.TLiteral<"rpc">, Type.TLiteral<"event">, Type.TLiteral<"manualReplay">, Type.TLiteral<"serviceCode">, Type.TLiteral<"parentJob">]>;
42
+ id: Type.TOptional<Type.TString>;
43
+ subject: Type.TOptional<Type.TString>;
44
+ operationId: Type.TOptional<Type.TString>;
45
+ parentJobId: Type.TOptional<Type.TString>;
46
+ traceId: Type.TOptional<Type.TString>;
47
+ requestId: Type.TOptional<Type.TString>;
48
+ }>>;
49
+ lineage: Type.TOptional<Type.TObject<{
50
+ parentJobId: Type.TOptional<Type.TString>;
51
+ rootJobId: Type.TOptional<Type.TString>;
52
+ operationId: Type.TOptional<Type.TString>;
53
+ relatedKeys: Type.TOptional<Type.TArray<Type.TString>>;
54
+ }>>;
55
+ }>;
56
+ export type PreparedJobSubmission<TPayload = unknown> = Omit<StaticDecode<typeof PreparedJobSubmissionSchema>, "payload"> & {
57
+ payload: TPayload;
58
+ };
59
+ export declare const JobWaitTargetSchema: Type.TObject<{
60
+ kind: Type.TUnion<[Type.TLiteral<"job">, Type.TLiteral<"operation">, Type.TLiteral<"external">]>;
61
+ id: Type.TOptional<Type.TString>;
62
+ operationId: Type.TOptional<Type.TString>;
63
+ service: Type.TOptional<Type.TString>;
64
+ system: Type.TOptional<Type.TString>;
65
+ type: Type.TOptional<Type.TString>;
66
+ operation: Type.TOptional<Type.TString>;
67
+ key: Type.TOptional<Type.TString>;
68
+ label: Type.TOptional<Type.TString>;
69
+ }>;
70
+ export type JobWaitTarget = StaticDecode<typeof JobWaitTargetSchema>;
71
+ export declare const JobWaitEdgeSchema: Type.TObject<{
72
+ id: Type.TString;
73
+ target: Type.TObject<{
74
+ kind: Type.TUnion<[Type.TLiteral<"job">, Type.TLiteral<"operation">, Type.TLiteral<"external">]>;
75
+ id: Type.TOptional<Type.TString>;
76
+ operationId: Type.TOptional<Type.TString>;
77
+ service: Type.TOptional<Type.TString>;
78
+ system: Type.TOptional<Type.TString>;
79
+ type: Type.TOptional<Type.TString>;
80
+ operation: Type.TOptional<Type.TString>;
81
+ key: Type.TOptional<Type.TString>;
82
+ label: Type.TOptional<Type.TString>;
83
+ }>;
84
+ startedAt: Type.TString;
85
+ label: Type.TOptional<Type.TString>;
86
+ }>;
87
+ export type JobWaitEdge = StaticDecode<typeof JobWaitEdgeSchema>;
88
+ export declare const JobStateSchema: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
89
+ export type JobState = StaticDecode<typeof JobStateSchema>;
90
+ export declare const JobLogEntrySchema: Type.TObject<{
91
+ timestamp: Type.TString;
92
+ level: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warn">, Type.TLiteral<"error">]>;
93
+ message: Type.TString;
94
+ }>;
95
+ export type JobLogEntry = StaticDecode<typeof JobLogEntrySchema>;
96
+ export declare const JobProgressSchema: Type.TObject<{
97
+ step: Type.TOptional<Type.TString>;
98
+ message: Type.TOptional<Type.TString>;
99
+ current: Type.TOptional<Type.TInteger>;
100
+ total: Type.TOptional<Type.TInteger>;
101
+ }>;
102
+ export type JobProgress = StaticDecode<typeof JobProgressSchema>;
103
+ export declare const JobSchema: Type.TObject<{
104
+ id: Type.TString;
105
+ service: Type.TString;
106
+ type: Type.TString;
107
+ state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
108
+ context: Type.TObject<{
109
+ requestId: Type.TString;
110
+ traceId: Type.TString;
111
+ traceparent: Type.TString;
112
+ tracestate: Type.TOptional<Type.TString>;
113
+ }>;
114
+ payload: Type.TUnknown;
115
+ result: Type.TOptional<Type.TUnknown>;
116
+ createdAt: Type.TString;
117
+ updatedAt: Type.TString;
118
+ startedAt: Type.TOptional<Type.TString>;
119
+ completedAt: Type.TOptional<Type.TString>;
120
+ tries: Type.TInteger;
121
+ maxTries: Type.TInteger;
122
+ lastError: Type.TOptional<Type.TString>;
123
+ deadline: Type.TOptional<Type.TString>;
124
+ progress: Type.TOptional<Type.TObject<{
125
+ step: Type.TOptional<Type.TString>;
126
+ message: Type.TOptional<Type.TString>;
127
+ current: Type.TOptional<Type.TInteger>;
128
+ total: Type.TOptional<Type.TInteger>;
129
+ }>>;
130
+ logs: Type.TOptional<Type.TArray<Type.TObject<{
131
+ timestamp: Type.TString;
132
+ level: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warn">, Type.TLiteral<"error">]>;
133
+ message: Type.TString;
134
+ }>>>;
135
+ trigger: Type.TOptional<Type.TObject<{
136
+ kind: Type.TUnion<[Type.TLiteral<"schedule">, Type.TLiteral<"operation">, Type.TLiteral<"rpc">, Type.TLiteral<"event">, Type.TLiteral<"manualReplay">, Type.TLiteral<"serviceCode">, Type.TLiteral<"parentJob">]>;
137
+ id: Type.TOptional<Type.TString>;
138
+ subject: Type.TOptional<Type.TString>;
139
+ operationId: Type.TOptional<Type.TString>;
140
+ parentJobId: Type.TOptional<Type.TString>;
141
+ traceId: Type.TOptional<Type.TString>;
142
+ requestId: Type.TOptional<Type.TString>;
143
+ }>>;
144
+ lineage: Type.TOptional<Type.TObject<{
145
+ parentJobId: Type.TOptional<Type.TString>;
146
+ rootJobId: Type.TOptional<Type.TString>;
147
+ operationId: Type.TOptional<Type.TString>;
148
+ relatedKeys: Type.TOptional<Type.TArray<Type.TString>>;
149
+ }>>;
150
+ waitingOn: Type.TOptional<Type.TArray<Type.TObject<{
151
+ id: Type.TString;
152
+ target: Type.TObject<{
153
+ kind: Type.TUnion<[Type.TLiteral<"job">, Type.TLiteral<"operation">, Type.TLiteral<"external">]>;
154
+ id: Type.TOptional<Type.TString>;
155
+ operationId: Type.TOptional<Type.TString>;
156
+ service: Type.TOptional<Type.TString>;
157
+ system: Type.TOptional<Type.TString>;
158
+ type: Type.TOptional<Type.TString>;
159
+ operation: Type.TOptional<Type.TString>;
160
+ key: Type.TOptional<Type.TString>;
161
+ label: Type.TOptional<Type.TString>;
162
+ }>;
163
+ startedAt: Type.TString;
164
+ label: Type.TOptional<Type.TString>;
165
+ }>>>;
166
+ }>;
167
+ export type Job<TPayload = unknown, TResult = unknown> = Omit<StaticDecode<typeof JobSchema>, "payload" | "result"> & {
168
+ payload: TPayload;
169
+ result?: TResult;
170
+ };
171
+ export declare const JobEventSchema: Type.TObject<{
172
+ jobId: Type.TString;
173
+ service: Type.TString;
174
+ jobType: Type.TString;
175
+ eventType: Type.TUnion<[Type.TLiteral<"created">, Type.TLiteral<"started">, Type.TLiteral<"retry">, Type.TLiteral<"progress">, Type.TLiteral<"logged">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"heartbeat">, Type.TLiteral<"staleCompletionIgnored">, Type.TLiteral<"retried">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">, Type.TLiteral<"waiting">, Type.TLiteral<"resumed">]>;
176
+ state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
177
+ previousState: Type.TOptional<Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>>;
178
+ context: Type.TObject<{
179
+ requestId: Type.TString;
180
+ traceId: Type.TString;
181
+ traceparent: Type.TString;
182
+ tracestate: Type.TOptional<Type.TString>;
183
+ }>;
184
+ tries: Type.TInteger;
185
+ maxTries: Type.TOptional<Type.TInteger>;
186
+ error: Type.TOptional<Type.TString>;
187
+ progress: Type.TOptional<Type.TObject<{
188
+ step: Type.TOptional<Type.TString>;
189
+ message: Type.TOptional<Type.TString>;
190
+ current: Type.TOptional<Type.TInteger>;
191
+ total: Type.TOptional<Type.TInteger>;
192
+ }>>;
193
+ logs: Type.TOptional<Type.TArray<Type.TObject<{
194
+ timestamp: Type.TString;
195
+ level: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warn">, Type.TLiteral<"error">]>;
196
+ message: Type.TString;
197
+ }>>>;
198
+ payload: Type.TOptional<Type.TUnknown>;
199
+ result: Type.TOptional<Type.TUnknown>;
200
+ deadline: Type.TOptional<Type.TString>;
201
+ trigger: Type.TOptional<Type.TObject<{
202
+ kind: Type.TUnion<[Type.TLiteral<"schedule">, Type.TLiteral<"operation">, Type.TLiteral<"rpc">, Type.TLiteral<"event">, Type.TLiteral<"manualReplay">, Type.TLiteral<"serviceCode">, Type.TLiteral<"parentJob">]>;
203
+ id: Type.TOptional<Type.TString>;
204
+ subject: Type.TOptional<Type.TString>;
205
+ operationId: Type.TOptional<Type.TString>;
206
+ parentJobId: Type.TOptional<Type.TString>;
207
+ traceId: Type.TOptional<Type.TString>;
208
+ requestId: Type.TOptional<Type.TString>;
209
+ }>>;
210
+ lineage: Type.TOptional<Type.TObject<{
211
+ parentJobId: Type.TOptional<Type.TString>;
212
+ rootJobId: Type.TOptional<Type.TString>;
213
+ operationId: Type.TOptional<Type.TString>;
214
+ relatedKeys: Type.TOptional<Type.TArray<Type.TString>>;
215
+ }>>;
216
+ waitEdge: Type.TOptional<Type.TObject<{
217
+ id: Type.TString;
218
+ target: Type.TObject<{
219
+ kind: Type.TUnion<[Type.TLiteral<"job">, Type.TLiteral<"operation">, Type.TLiteral<"external">]>;
220
+ id: Type.TOptional<Type.TString>;
221
+ operationId: Type.TOptional<Type.TString>;
222
+ service: Type.TOptional<Type.TString>;
223
+ system: Type.TOptional<Type.TString>;
224
+ type: Type.TOptional<Type.TString>;
225
+ operation: Type.TOptional<Type.TString>;
226
+ key: Type.TOptional<Type.TString>;
227
+ label: Type.TOptional<Type.TString>;
228
+ }>;
229
+ startedAt: Type.TString;
230
+ label: Type.TOptional<Type.TString>;
231
+ }>>;
232
+ timestamp: Type.TString;
233
+ }>;
234
+ export type JobEvent<TPayload = unknown, TResult = unknown> = Omit<StaticDecode<typeof JobEventSchema>, "payload" | "result"> & {
235
+ payload?: TPayload;
236
+ result?: TResult;
237
+ };
238
+ export declare const WorkerHeartbeatSchema: Type.TObject<{
239
+ service: Type.TString;
240
+ jobType: Type.TString;
241
+ instanceId: Type.TString;
242
+ concurrency: Type.TOptional<Type.TInteger>;
243
+ version: Type.TOptional<Type.TString>;
244
+ timestamp: Type.TString;
245
+ }>;
246
+ export type WorkerHeartbeat = StaticDecode<typeof WorkerHeartbeatSchema>;
@@ -0,0 +1,163 @@
1
+ import { Type } from "typebox";
2
+ export const JobContextSchema = Type.Object({
3
+ requestId: Type.String({ minLength: 1 }),
4
+ traceId: Type.String({ pattern: "^[0-9a-f]{32}$" }),
5
+ traceparent: Type.String({
6
+ pattern: "^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$",
7
+ }),
8
+ tracestate: Type.Optional(Type.String({ minLength: 1 })),
9
+ });
10
+ export const JobTriggerSchema = Type.Object({
11
+ kind: Type.Union([
12
+ Type.Literal("schedule"),
13
+ Type.Literal("operation"),
14
+ Type.Literal("rpc"),
15
+ Type.Literal("event"),
16
+ Type.Literal("manualReplay"),
17
+ Type.Literal("serviceCode"),
18
+ Type.Literal("parentJob"),
19
+ ]),
20
+ id: Type.Optional(Type.String({ minLength: 1 })),
21
+ subject: Type.Optional(Type.String({ minLength: 1 })),
22
+ operationId: Type.Optional(Type.String({ minLength: 1 })),
23
+ parentJobId: Type.Optional(Type.String({ minLength: 1 })),
24
+ traceId: Type.Optional(Type.String({ pattern: "^[0-9a-f]{32}$" })),
25
+ requestId: Type.Optional(Type.String({ minLength: 1 })),
26
+ });
27
+ export const JobLineageSchema = Type.Object({
28
+ parentJobId: Type.Optional(Type.String({ minLength: 1 })),
29
+ rootJobId: Type.Optional(Type.String({ minLength: 1 })),
30
+ operationId: Type.Optional(Type.String({ minLength: 1 })),
31
+ relatedKeys: Type.Optional(Type.Array(Type.String({ minLength: 1 }))),
32
+ });
33
+ export const PreparedJobSubmissionSchema = Type.Object({
34
+ submissionId: Type.String({ minLength: 1 }),
35
+ mode: Type.Union([Type.Literal("create"), Type.Literal("submit")]),
36
+ service: Type.String({ minLength: 1 }),
37
+ queue: Type.String({ minLength: 1 }),
38
+ jobId: Type.String({ minLength: 1 }),
39
+ payload: Type.Unknown(),
40
+ createdAt: Type.String({ format: "date-time" }),
41
+ context: JobContextSchema,
42
+ trigger: Type.Optional(JobTriggerSchema),
43
+ lineage: Type.Optional(JobLineageSchema),
44
+ });
45
+ export const JobWaitTargetSchema = Type.Object({
46
+ kind: Type.Union([
47
+ Type.Literal("job"),
48
+ Type.Literal("operation"),
49
+ Type.Literal("external"),
50
+ ]),
51
+ id: Type.Optional(Type.String({ minLength: 1 })),
52
+ operationId: Type.Optional(Type.String({ minLength: 1 })),
53
+ service: Type.Optional(Type.String({ minLength: 1 })),
54
+ system: Type.Optional(Type.String({ minLength: 1 })),
55
+ type: Type.Optional(Type.String({ minLength: 1 })),
56
+ operation: Type.Optional(Type.String({ minLength: 1 })),
57
+ key: Type.Optional(Type.String({ minLength: 1 })),
58
+ label: Type.Optional(Type.String({ minLength: 1 })),
59
+ });
60
+ export const JobWaitEdgeSchema = Type.Object({
61
+ id: Type.String({ minLength: 1 }),
62
+ target: JobWaitTargetSchema,
63
+ startedAt: Type.String({ format: "date-time" }),
64
+ label: Type.Optional(Type.String({ minLength: 1 })),
65
+ });
66
+ export const JobStateSchema = Type.Union([
67
+ Type.Literal("pending"),
68
+ Type.Literal("active"),
69
+ Type.Literal("retry"),
70
+ Type.Literal("completed"),
71
+ Type.Literal("failed"),
72
+ Type.Literal("cancelled"),
73
+ Type.Literal("expired"),
74
+ Type.Literal("skipped"),
75
+ Type.Literal("stale"),
76
+ Type.Literal("dead"),
77
+ Type.Literal("dismissed"),
78
+ ]);
79
+ export const JobLogEntrySchema = Type.Object({
80
+ timestamp: Type.String({ format: "date-time" }),
81
+ level: Type.Union([
82
+ Type.Literal("info"),
83
+ Type.Literal("warn"),
84
+ Type.Literal("error"),
85
+ ]),
86
+ message: Type.String(),
87
+ });
88
+ export const JobProgressSchema = Type.Object({
89
+ step: Type.Optional(Type.String()),
90
+ message: Type.Optional(Type.String()),
91
+ current: Type.Optional(Type.Integer({ minimum: 0 })),
92
+ total: Type.Optional(Type.Integer({ minimum: 0 })),
93
+ });
94
+ export const JobSchema = Type.Object({
95
+ id: Type.String({ minLength: 1 }),
96
+ service: Type.String({ minLength: 1 }),
97
+ type: Type.String({ minLength: 1 }),
98
+ state: JobStateSchema,
99
+ context: JobContextSchema,
100
+ payload: Type.Unknown(),
101
+ result: Type.Optional(Type.Unknown()),
102
+ createdAt: Type.String({ format: "date-time" }),
103
+ updatedAt: Type.String({ format: "date-time" }),
104
+ startedAt: Type.Optional(Type.String({ format: "date-time" })),
105
+ completedAt: Type.Optional(Type.String({ format: "date-time" })),
106
+ tries: Type.Integer({ minimum: 0 }),
107
+ maxTries: Type.Integer({ minimum: 1 }),
108
+ lastError: Type.Optional(Type.String()),
109
+ deadline: Type.Optional(Type.String({ format: "date-time" })),
110
+ progress: Type.Optional(JobProgressSchema),
111
+ logs: Type.Optional(Type.Array(JobLogEntrySchema)),
112
+ trigger: Type.Optional(JobTriggerSchema),
113
+ lineage: Type.Optional(JobLineageSchema),
114
+ waitingOn: Type.Optional(Type.Array(JobWaitEdgeSchema)),
115
+ });
116
+ export const JobEventSchema = Type.Object({
117
+ jobId: Type.String({ minLength: 1 }),
118
+ service: Type.String({ minLength: 1 }),
119
+ jobType: Type.String({ minLength: 1 }),
120
+ eventType: Type.Union([
121
+ Type.Literal("created"),
122
+ Type.Literal("started"),
123
+ Type.Literal("retry"),
124
+ Type.Literal("progress"),
125
+ Type.Literal("logged"),
126
+ Type.Literal("completed"),
127
+ Type.Literal("failed"),
128
+ Type.Literal("cancelled"),
129
+ Type.Literal("expired"),
130
+ Type.Literal("skipped"),
131
+ Type.Literal("stale"),
132
+ Type.Literal("heartbeat"),
133
+ Type.Literal("staleCompletionIgnored"),
134
+ Type.Literal("retried"),
135
+ Type.Literal("dead"),
136
+ Type.Literal("dismissed"),
137
+ Type.Literal("waiting"),
138
+ Type.Literal("resumed"),
139
+ ]),
140
+ state: JobStateSchema,
141
+ previousState: Type.Optional(JobStateSchema),
142
+ context: JobContextSchema,
143
+ tries: Type.Integer({ minimum: 0 }),
144
+ maxTries: Type.Optional(Type.Integer({ minimum: 1 })),
145
+ error: Type.Optional(Type.String()),
146
+ progress: Type.Optional(JobProgressSchema),
147
+ logs: Type.Optional(Type.Array(JobLogEntrySchema)),
148
+ payload: Type.Optional(Type.Unknown()),
149
+ result: Type.Optional(Type.Unknown()),
150
+ deadline: Type.Optional(Type.String({ format: "date-time" })),
151
+ trigger: Type.Optional(JobTriggerSchema),
152
+ lineage: Type.Optional(JobLineageSchema),
153
+ waitEdge: Type.Optional(JobWaitEdgeSchema),
154
+ timestamp: Type.String({ format: "date-time" }),
155
+ });
156
+ export const WorkerHeartbeatSchema = Type.Object({
157
+ service: Type.String({ minLength: 1 }),
158
+ jobType: Type.String({ minLength: 1 }),
159
+ instanceId: Type.String({ minLength: 1 }),
160
+ concurrency: Type.Optional(Type.Integer({ minimum: 1 })),
161
+ version: Type.Optional(Type.String({ minLength: 1 })),
162
+ timestamp: Type.String({ format: "date-time" }),
163
+ });
@@ -0,0 +1,2 @@
1
+ import type { LoggerLike } from "../../globals.ts";
2
+ export declare const serviceRuntimeLogger: LoggerLike;
@@ -0,0 +1,7 @@
1
+ import { pino } from "pino";
2
+ import { getEnv } from "../../env.js";
3
+ const level = getEnv("PINO_LEVEL") || "info";
4
+ export const serviceRuntimeLogger = pino({
5
+ level,
6
+ base: { library: "@oatscenter/trellis" },
7
+ });
@@ -0,0 +1,16 @@
1
+ import type { NatsConnection } from "@nats-io/nats-core";
2
+ export type NatsConnectOpts = {
3
+ servers: string | string[];
4
+ token?: string;
5
+ inboxPrefix?: string;
6
+ authenticator?: unknown;
7
+ maxReconnectAttempts?: number;
8
+ waitOnFirstConnect?: boolean;
9
+ } & Record<string, unknown>;
10
+ export type NatsConnectFn = (opts: NatsConnectOpts) => Promise<NatsConnection>;
11
+ /** Initializes telemetry for a service runtime. */
12
+ export type InitTelemetryFn = (serviceName: string) => void;
13
+ export type TrellisServiceRuntimeDeps = {
14
+ connect: NatsConnectFn;
15
+ initTelemetry?: InitTelemetryFn;
16
+ };
@@ -0,0 +1 @@
1
+ export {};