@qlever-llc/trellis 0.10.9 → 0.10.11

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 (220) hide show
  1. package/esm/client.d.ts +2 -0
  2. package/esm/client.d.ts.map +1 -1
  3. package/esm/client.js +2 -0
  4. package/esm/client_connect.d.ts +3 -2
  5. package/esm/client_connect.d.ts.map +1 -1
  6. package/esm/client_connect.js +4 -1
  7. package/esm/generated-sdk/auth/api.d.ts.map +1 -1
  8. package/esm/generated-sdk/auth/client.d.ts.map +1 -1
  9. package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
  10. package/esm/generated-sdk/auth/contract.js +9590 -7
  11. package/esm/generated-sdk/auth/mod.d.ts +3 -3
  12. package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
  13. package/esm/generated-sdk/auth/mod.js +1 -1
  14. package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -1
  15. package/esm/generated-sdk/auth/owned_api.js +305 -62
  16. package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
  17. package/esm/generated-sdk/auth/schemas.js +6492 -139
  18. package/esm/generated-sdk/auth/types.d.ts +254 -254
  19. package/esm/generated-sdk/auth/types.d.ts.map +1 -1
  20. package/esm/generated-sdk/health/api.d.ts.map +1 -1
  21. package/esm/generated-sdk/health/client.d.ts.map +1 -1
  22. package/esm/generated-sdk/health/contract.d.ts.map +1 -1
  23. package/esm/generated-sdk/health/contract.js +117 -7
  24. package/esm/generated-sdk/health/mod.d.ts +2 -2
  25. package/esm/generated-sdk/health/mod.d.ts.map +1 -1
  26. package/esm/generated-sdk/health/mod.js +1 -1
  27. package/esm/generated-sdk/health/owned_api.d.ts.map +1 -1
  28. package/esm/generated-sdk/health/schemas.d.ts.map +1 -1
  29. package/esm/generated-sdk/health/schemas.js +79 -1
  30. package/esm/generated-sdk/health/types.d.ts +4 -4
  31. package/esm/generated-sdk/health/types.d.ts.map +1 -1
  32. package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
  33. package/esm/generated-sdk/jobs/api.js +12 -4
  34. package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
  35. package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
  36. package/esm/generated-sdk/jobs/contract.js +1080 -7
  37. package/esm/generated-sdk/jobs/mod.d.ts +2 -2
  38. package/esm/generated-sdk/jobs/mod.d.ts.map +1 -1
  39. package/esm/generated-sdk/jobs/mod.js +1 -1
  40. package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  41. package/esm/generated-sdk/jobs/owned_api.js +26 -6
  42. package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
  43. package/esm/generated-sdk/jobs/schemas.js +768 -18
  44. package/esm/generated-sdk/jobs/types.d.ts +14 -14
  45. package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
  46. package/esm/generated-sdk/state/api.d.ts.map +1 -1
  47. package/esm/generated-sdk/state/api.js +3 -1
  48. package/esm/generated-sdk/state/client.d.ts.map +1 -1
  49. package/esm/generated-sdk/state/contract.d.ts.map +1 -1
  50. package/esm/generated-sdk/state/contract.js +638 -7
  51. package/esm/generated-sdk/state/mod.d.ts +2 -2
  52. package/esm/generated-sdk/state/mod.d.ts.map +1 -1
  53. package/esm/generated-sdk/state/mod.js +1 -1
  54. package/esm/generated-sdk/state/owned_api.d.ts.map +1 -1
  55. package/esm/generated-sdk/state/owned_api.js +36 -8
  56. package/esm/generated-sdk/state/schemas.d.ts.map +1 -1
  57. package/esm/generated-sdk/state/schemas.js +441 -14
  58. package/esm/generated-sdk/state/types.d.ts +15 -15
  59. package/esm/generated-sdk/state/types.d.ts.map +1 -1
  60. package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
  61. package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
  62. package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  63. package/esm/generated-sdk/trellis-core/contract.js +744 -7
  64. package/esm/generated-sdk/trellis-core/mod.d.ts +2 -2
  65. package/esm/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  66. package/esm/generated-sdk/trellis-core/mod.js +1 -1
  67. package/esm/generated-sdk/trellis-core/owned_api.d.ts.map +1 -1
  68. package/esm/generated-sdk/trellis-core/owned_api.js +1 -1
  69. package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  70. package/esm/generated-sdk/trellis-core/schemas.js +626 -8
  71. package/esm/generated-sdk/trellis-core/types.d.ts +14 -14
  72. package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
  73. package/esm/server/health.d.ts.map +1 -1
  74. package/esm/server/health.js +34 -3
  75. package/esm/server/service.d.ts +35 -13
  76. package/esm/server/service.d.ts.map +1 -1
  77. package/esm/server/service.js +33 -3
  78. package/esm/server.d.ts.map +1 -1
  79. package/esm/server.js +49 -8
  80. package/esm/service/deno.d.ts +1 -1
  81. package/esm/service/deno.d.ts.map +1 -1
  82. package/esm/service/mod.d.ts +1 -1
  83. package/esm/service/mod.d.ts.map +1 -1
  84. package/esm/service/node.d.ts +1 -1
  85. package/esm/service/node.d.ts.map +1 -1
  86. package/esm/trellis.d.ts +28 -4
  87. package/esm/trellis.d.ts.map +1 -1
  88. package/esm/trellis.js +117 -26
  89. package/package.json +2 -2
  90. package/script/client.d.ts +2 -0
  91. package/script/client.d.ts.map +1 -1
  92. package/script/client.js +2 -0
  93. package/script/client_connect.d.ts +3 -2
  94. package/script/client_connect.d.ts.map +1 -1
  95. package/script/client_connect.js +4 -1
  96. package/script/generated-sdk/auth/api.d.ts.map +1 -1
  97. package/script/generated-sdk/auth/client.d.ts.map +1 -1
  98. package/script/generated-sdk/auth/contract.d.ts.map +1 -1
  99. package/script/generated-sdk/auth/contract.js +9590 -7
  100. package/script/generated-sdk/auth/mod.d.ts +3 -3
  101. package/script/generated-sdk/auth/mod.d.ts.map +1 -1
  102. package/script/generated-sdk/auth/mod.js +2 -2
  103. package/script/generated-sdk/auth/owned_api.d.ts.map +1 -1
  104. package/script/generated-sdk/auth/owned_api.js +304 -61
  105. package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
  106. package/script/generated-sdk/auth/schemas.js +6492 -139
  107. package/script/generated-sdk/auth/types.d.ts +254 -254
  108. package/script/generated-sdk/auth/types.d.ts.map +1 -1
  109. package/script/generated-sdk/health/api.d.ts.map +1 -1
  110. package/script/generated-sdk/health/client.d.ts.map +1 -1
  111. package/script/generated-sdk/health/contract.d.ts.map +1 -1
  112. package/script/generated-sdk/health/contract.js +117 -7
  113. package/script/generated-sdk/health/mod.d.ts +2 -2
  114. package/script/generated-sdk/health/mod.d.ts.map +1 -1
  115. package/script/generated-sdk/health/mod.js +2 -2
  116. package/script/generated-sdk/health/owned_api.d.ts.map +1 -1
  117. package/script/generated-sdk/health/schemas.d.ts.map +1 -1
  118. package/script/generated-sdk/health/schemas.js +79 -1
  119. package/script/generated-sdk/health/types.d.ts +4 -4
  120. package/script/generated-sdk/health/types.d.ts.map +1 -1
  121. package/script/generated-sdk/jobs/api.d.ts.map +1 -1
  122. package/script/generated-sdk/jobs/api.js +12 -4
  123. package/script/generated-sdk/jobs/client.d.ts.map +1 -1
  124. package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
  125. package/script/generated-sdk/jobs/contract.js +1080 -7
  126. package/script/generated-sdk/jobs/mod.d.ts +2 -2
  127. package/script/generated-sdk/jobs/mod.d.ts.map +1 -1
  128. package/script/generated-sdk/jobs/mod.js +2 -2
  129. package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  130. package/script/generated-sdk/jobs/owned_api.js +25 -5
  131. package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
  132. package/script/generated-sdk/jobs/schemas.js +768 -18
  133. package/script/generated-sdk/jobs/types.d.ts +14 -14
  134. package/script/generated-sdk/jobs/types.d.ts.map +1 -1
  135. package/script/generated-sdk/state/api.d.ts.map +1 -1
  136. package/script/generated-sdk/state/api.js +3 -1
  137. package/script/generated-sdk/state/client.d.ts.map +1 -1
  138. package/script/generated-sdk/state/contract.d.ts.map +1 -1
  139. package/script/generated-sdk/state/contract.js +638 -7
  140. package/script/generated-sdk/state/mod.d.ts +2 -2
  141. package/script/generated-sdk/state/mod.d.ts.map +1 -1
  142. package/script/generated-sdk/state/mod.js +2 -2
  143. package/script/generated-sdk/state/owned_api.d.ts.map +1 -1
  144. package/script/generated-sdk/state/owned_api.js +35 -7
  145. package/script/generated-sdk/state/schemas.d.ts.map +1 -1
  146. package/script/generated-sdk/state/schemas.js +441 -14
  147. package/script/generated-sdk/state/types.d.ts +15 -15
  148. package/script/generated-sdk/state/types.d.ts.map +1 -1
  149. package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
  150. package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
  151. package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  152. package/script/generated-sdk/trellis-core/contract.js +744 -7
  153. package/script/generated-sdk/trellis-core/mod.d.ts +2 -2
  154. package/script/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  155. package/script/generated-sdk/trellis-core/mod.js +2 -2
  156. package/script/generated-sdk/trellis-core/owned_api.d.ts.map +1 -1
  157. package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  158. package/script/generated-sdk/trellis-core/schemas.js +626 -8
  159. package/script/generated-sdk/trellis-core/types.d.ts +14 -14
  160. package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
  161. package/script/server/health.d.ts.map +1 -1
  162. package/script/server/health.js +34 -3
  163. package/script/server/service.d.ts +35 -13
  164. package/script/server/service.d.ts.map +1 -1
  165. package/script/server/service.js +32 -2
  166. package/script/server.d.ts.map +1 -1
  167. package/script/server.js +48 -7
  168. package/script/service/deno.d.ts +1 -1
  169. package/script/service/deno.d.ts.map +1 -1
  170. package/script/service/mod.d.ts +1 -1
  171. package/script/service/mod.d.ts.map +1 -1
  172. package/script/service/node.d.ts +1 -1
  173. package/script/service/node.d.ts.map +1 -1
  174. package/script/trellis.d.ts +28 -4
  175. package/script/trellis.d.ts.map +1 -1
  176. package/script/trellis.js +118 -26
  177. package/src/client.ts +4 -0
  178. package/src/client_connect.ts +11 -9
  179. package/src/sdk/_generated/auth/api.ts +10 -21
  180. package/src/sdk/_generated/auth/client.ts +1178 -160
  181. package/src/sdk/_generated/auth/contract.ts +9637 -13
  182. package/src/sdk/_generated/auth/mod.ts +22 -3
  183. package/src/sdk/_generated/auth/owned_api.ts +897 -264
  184. package/src/sdk/_generated/auth/schemas.ts +6630 -278
  185. package/src/sdk/_generated/auth/types.ts +2950 -359
  186. package/src/sdk/_generated/core/api.ts +10 -21
  187. package/src/sdk/_generated/core/client.ts +105 -12
  188. package/src/sdk/_generated/core/contract.ts +774 -13
  189. package/src/sdk/_generated/core/mod.ts +17 -2
  190. package/src/sdk/_generated/core/owned_api.ts +40 -24
  191. package/src/sdk/_generated/core/schemas.ts +626 -9
  192. package/src/sdk/_generated/core/types.ts +233 -18
  193. package/src/sdk/_generated/health/api.ts +10 -21
  194. package/src/sdk/_generated/health/client.ts +104 -8
  195. package/src/sdk/_generated/health/contract.ts +144 -13
  196. package/src/sdk/_generated/health/mod.ts +17 -2
  197. package/src/sdk/_generated/health/owned_api.ts +4 -9
  198. package/src/sdk/_generated/health/schemas.ts +79 -2
  199. package/src/sdk/_generated/health/types.ts +31 -4
  200. package/src/sdk/_generated/jobs/api.ts +20 -18
  201. package/src/sdk/_generated/jobs/client.ts +199 -28
  202. package/src/sdk/_generated/jobs/contract.ts +1119 -13
  203. package/src/sdk/_generated/jobs/mod.ts +17 -2
  204. package/src/sdk/_generated/jobs/owned_api.ts +64 -27
  205. package/src/sdk/_generated/jobs/schemas.ts +776 -20
  206. package/src/sdk/_generated/jobs/types.ts +407 -34
  207. package/src/sdk/_generated/state/api.ts +11 -18
  208. package/src/sdk/_generated/state/client.ts +169 -22
  209. package/src/sdk/_generated/state/contract.ts +670 -13
  210. package/src/sdk/_generated/state/mod.ts +17 -2
  211. package/src/sdk/_generated/state/owned_api.ts +65 -25
  212. package/src/sdk/_generated/state/schemas.ts +441 -15
  213. package/src/sdk/_generated/state/types.ts +229 -26
  214. package/src/server/health.ts +41 -3
  215. package/src/server/service.ts +140 -18
  216. package/src/server.ts +62 -7
  217. package/src/service/deno.ts +4 -0
  218. package/src/service/mod.ts +4 -0
  219. package/src/service/node.ts +4 -0
  220. package/src/trellis.ts +167 -55
@@ -3,31 +3,247 @@ import type { RpcHandlerFn } from "../../../index.js";
3
3
  import type { API } from "./api.js";
4
4
 
5
5
  export const CONTRACT_ID = "trellis.core@v1" as const;
6
- export const CONTRACT_DIGEST = "L4HW6uUIxDhK1Kpa_PUxpumoMberMgiCgJTNN5Qvje0" as const;
6
+ export const CONTRACT_DIGEST =
7
+ "L4HW6uUIxDhK1Kpa_PUxpumoMberMgiCgJTNN5Qvje0" as const;
7
8
 
8
- export type TrellisBindingsGetInput = { contractId?: string; digest?: string; };
9
- export type TrellisBindingsGetOutput = { binding?: { contractId: string; digest: string; resources: { eventConsumers?: { [k: string]: { ackWaitMs: number; backoffMs: Array<number>; concurrency: number; consumerName: string; filterSubjects: Array<string>; maxDeliver: number; ordering: "strict"; replay: ("new" | "all"); stream: string; }; }; jobs?: { namespace: string; queues: { [k: string]: { ackWaitMs: number; backoffMs: Array<number>; concurrency: number; consumerName: string; defaultDeadlineMs?: number; dlq: boolean; logs: boolean; maxDeliver: number; payload: { schema: string; }; progress: boolean; publishPrefix: string; queueType: string; result?: { schema: string; }; workSubject: string; }; }; workStream?: string; }; kv?: { [k: string]: { bucket: string; history: number; maxValueBytes?: number; ttlMs: number; }; }; store?: { [k: string]: { maxObjectBytes?: number; maxTotalBytes?: number; name: string; ttlMs: number; }; }; }; }; eventConsumers?: { [k: string]: { ackWaitMs: number; backoffMs: Array<number>; concurrency: number; consumerName: string; filterSubjects: Array<string>; maxDeliver: number; ordering: "strict"; replay: ("new" | "all"); stream: string; }; }; };
9
+ export type TrellisBindingsGetInput = { contractId?: string; digest?: string };
10
+ export type TrellisBindingsGetOutput = {
11
+ binding?: {
12
+ contractId: string;
13
+ digest: string;
14
+ resources: {
15
+ eventConsumers?: {
16
+ [k: string]: {
17
+ ackWaitMs: number;
18
+ backoffMs: Array<number>;
19
+ concurrency: number;
20
+ consumerName: string;
21
+ filterSubjects: Array<string>;
22
+ maxDeliver: number;
23
+ ordering: "strict";
24
+ replay: "new" | "all";
25
+ stream: string;
26
+ };
27
+ };
28
+ jobs?: {
29
+ namespace: string;
30
+ queues: {
31
+ [k: string]: {
32
+ ackWaitMs: number;
33
+ backoffMs: Array<number>;
34
+ concurrency: number;
35
+ consumerName: string;
36
+ defaultDeadlineMs?: number;
37
+ dlq: boolean;
38
+ logs: boolean;
39
+ maxDeliver: number;
40
+ payload: { schema: string };
41
+ progress: boolean;
42
+ publishPrefix: string;
43
+ queueType: string;
44
+ result?: { schema: string };
45
+ workSubject: string;
46
+ };
47
+ };
48
+ workStream?: string;
49
+ };
50
+ kv?: {
51
+ [k: string]: {
52
+ bucket: string;
53
+ history: number;
54
+ maxValueBytes?: number;
55
+ ttlMs: number;
56
+ };
57
+ };
58
+ store?: {
59
+ [k: string]: {
60
+ maxObjectBytes?: number;
61
+ maxTotalBytes?: number;
62
+ name: string;
63
+ ttlMs: number;
64
+ };
65
+ };
66
+ };
67
+ };
68
+ eventConsumers?: {
69
+ [k: string]: {
70
+ ackWaitMs: number;
71
+ backoffMs: Array<number>;
72
+ concurrency: number;
73
+ consumerName: string;
74
+ filterSubjects: Array<string>;
75
+ maxDeliver: number;
76
+ ordering: "strict";
77
+ replay: "new" | "all";
78
+ stream: string;
79
+ };
80
+ };
81
+ };
10
82
 
11
- export type TrellisCatalogInput = { };
12
- export type TrellisCatalogOutput = { catalog: { contracts: Array<{ description: string; digest: string; displayName: string; id: string; }>; format: "trellis.catalog.v1"; issues?: Array<{ actions: Array<{ action: ("keep-current" | "force-replace"); deploymentIds: Array<string>; description: string; digests: Array<string>; label: string; risk: ("recommended" | "dangerous"); }>; conflictingDeploymentIds?: Array<string>; conflictingDigest?: string; conflictingDigests?: Array<string>; contractId?: string; deploymentIds: Array<string>; digest?: string; effectiveDeploymentIds?: Array<string>; effectiveDigests?: Array<string>; issueId: string; kind: ("missing-active-contract" | "invalid-active-contract" | "incompatible-active-contract" | "invalid-active-contract-uses"); message: string; }>; }; };
83
+ export type TrellisCatalogInput = {};
84
+ export type TrellisCatalogOutput = {
85
+ catalog: {
86
+ contracts: Array<
87
+ { description: string; digest: string; displayName: string; id: string }
88
+ >;
89
+ format: "trellis.catalog.v1";
90
+ issues?: Array<
91
+ {
92
+ actions: Array<
93
+ {
94
+ action: "keep-current" | "force-replace";
95
+ deploymentIds: Array<string>;
96
+ description: string;
97
+ digests: Array<string>;
98
+ label: string;
99
+ risk: "recommended" | "dangerous";
100
+ }
101
+ >;
102
+ conflictingDeploymentIds?: Array<string>;
103
+ conflictingDigest?: string;
104
+ conflictingDigests?: Array<string>;
105
+ contractId?: string;
106
+ deploymentIds: Array<string>;
107
+ digest?: string;
108
+ effectiveDeploymentIds?: Array<string>;
109
+ effectiveDigests?: Array<string>;
110
+ issueId: string;
111
+ kind:
112
+ | "missing-active-contract"
113
+ | "invalid-active-contract"
114
+ | "incompatible-active-contract"
115
+ | "invalid-active-contract-uses";
116
+ message: string;
117
+ }
118
+ >;
119
+ };
120
+ };
13
121
 
14
- export type TrellisContractGetInput = { digest: string; };
15
- export type TrellisContractGetOutput = { contract: { description: string; displayName: string; docs?: { markdown: string; summary?: string; }; errors?: { [k: string]: { }; }; events?: { [k: string]: { }; }; exports?: { schemas?: Array<string>; }; format: "trellis.contract.v1"; id: string; jobs?: { [k: string]: { ackWaitMs?: number; backoffMs?: Array<number>; concurrency?: number; defaultDeadlineMs?: number; dlq?: boolean; docs?: { markdown: string; summary?: string; }; logs?: boolean; maxDeliver?: number; payload: { schema: string; }; progress?: boolean; result?: { schema: string; }; }; }; kind: ("service" | "app" | "device" | "agent"); operations?: { [k: string]: { }; }; resources?: { kv?: { [k: string]: { docs?: { markdown: string; summary?: string; }; history?: number; maxValueBytes?: number; purpose: string; required?: boolean; schema: { schema: string; }; ttlMs?: number; }; }; store?: { [k: string]: { docs?: { markdown: string; summary?: string; }; maxObjectBytes?: number; maxTotalBytes?: number; purpose: string; required?: boolean; ttlMs?: number; }; }; }; rpc?: { [k: string]: { }; }; schemas?: { [k: string]: ({ } | boolean); }; state?: { [k: string]: { acceptedVersions?: { [k: string]: { schema: string; }; }; docs?: { markdown: string; summary?: string; }; kind: ("value" | "map"); schema: { schema: string; }; stateVersion?: string; }; }; uses?: { [k: string]: { }; }; }; };
122
+ export type TrellisContractGetInput = { digest: string };
123
+ export type TrellisContractGetOutput = {
124
+ contract: {
125
+ description: string;
126
+ displayName: string;
127
+ docs?: { markdown: string; summary?: string };
128
+ errors?: { [k: string]: {} };
129
+ events?: { [k: string]: {} };
130
+ exports?: { schemas?: Array<string> };
131
+ format: "trellis.contract.v1";
132
+ id: string;
133
+ jobs?: {
134
+ [k: string]: {
135
+ ackWaitMs?: number;
136
+ backoffMs?: Array<number>;
137
+ concurrency?: number;
138
+ defaultDeadlineMs?: number;
139
+ dlq?: boolean;
140
+ docs?: { markdown: string; summary?: string };
141
+ logs?: boolean;
142
+ maxDeliver?: number;
143
+ payload: { schema: string };
144
+ progress?: boolean;
145
+ result?: { schema: string };
146
+ };
147
+ };
148
+ kind: "service" | "app" | "device" | "agent";
149
+ operations?: { [k: string]: {} };
150
+ resources?: {
151
+ kv?: {
152
+ [k: string]: {
153
+ docs?: { markdown: string; summary?: string };
154
+ history?: number;
155
+ maxValueBytes?: number;
156
+ purpose: string;
157
+ required?: boolean;
158
+ schema: { schema: string };
159
+ ttlMs?: number;
160
+ };
161
+ };
162
+ store?: {
163
+ [k: string]: {
164
+ docs?: { markdown: string; summary?: string };
165
+ maxObjectBytes?: number;
166
+ maxTotalBytes?: number;
167
+ purpose: string;
168
+ required?: boolean;
169
+ ttlMs?: number;
170
+ };
171
+ };
172
+ };
173
+ rpc?: { [k: string]: {} };
174
+ schemas?: { [k: string]: {} | boolean };
175
+ state?: {
176
+ [k: string]: {
177
+ acceptedVersions?: { [k: string]: { schema: string } };
178
+ docs?: { markdown: string; summary?: string };
179
+ kind: "value" | "map";
180
+ schema: { schema: string };
181
+ stateVersion?: string;
182
+ };
183
+ };
184
+ uses?: { [k: string]: {} };
185
+ };
186
+ };
16
187
 
17
- export type TrellisSurfaceStatusInput = { action?: ("call" | "publish" | "subscribe" | "observe"); contractId: string; kind: ("rpc" | "operation" | "event" | "feed"); surface: string; };
18
- export type TrellisSurfaceStatusOutput = { status: ({ liveImplementer: boolean; runtime: ("live" | "no_live_implementer" | "disabled"); state: "available"; } | { reason: ("authority_unavailable"); state: "unavailable"; } | { missingCapabilities: Array<string>; state: "unauthorized"; } | { contractId: string; state: "unknown_contract"; } | { contractId: string; kind: string; state: "unknown_surface"; surface: string; }); };
188
+ export type TrellisSurfaceStatusInput = {
189
+ action?: "call" | "publish" | "subscribe" | "observe";
190
+ contractId: string;
191
+ kind: "rpc" | "operation" | "event" | "feed";
192
+ surface: string;
193
+ };
194
+ export type TrellisSurfaceStatusOutput = {
195
+ status:
196
+ | {
197
+ liveImplementer: boolean;
198
+ runtime: "live" | "no_live_implementer" | "disabled";
199
+ state: "available";
200
+ }
201
+ | { reason: "authority_unavailable"; state: "unavailable" }
202
+ | { missingCapabilities: Array<string>; state: "unauthorized" }
203
+ | { contractId: string; state: "unknown_contract" }
204
+ | {
205
+ contractId: string;
206
+ kind: string;
207
+ state: "unknown_surface";
208
+ surface: string;
209
+ };
210
+ };
19
211
 
20
212
  export interface RpcMap {
21
- "Trellis.Bindings.Get": { input: TrellisBindingsGetInput; output: TrellisBindingsGetOutput; };
22
- "Trellis.Catalog": { input: TrellisCatalogInput; output: TrellisCatalogOutput; };
23
- "Trellis.Contract.Get": { input: TrellisContractGetInput; output: TrellisContractGetOutput; };
24
- "Trellis.Surface.Status": { input: TrellisSurfaceStatusInput; output: TrellisSurfaceStatusOutput; };
213
+ "Trellis.Bindings.Get": {
214
+ input: TrellisBindingsGetInput;
215
+ output: TrellisBindingsGetOutput;
216
+ };
217
+ "Trellis.Catalog": {
218
+ input: TrellisCatalogInput;
219
+ output: TrellisCatalogOutput;
220
+ };
221
+ "Trellis.Contract.Get": {
222
+ input: TrellisContractGetInput;
223
+ output: TrellisContractGetOutput;
224
+ };
225
+ "Trellis.Surface.Status": {
226
+ input: TrellisSurfaceStatusInput;
227
+ output: TrellisSurfaceStatusOutput;
228
+ };
25
229
  }
26
230
 
27
- export type TrellisBindingsGetHandler = RpcHandlerFn<typeof API.owned, "Trellis.Bindings.Get">;
28
- export type TrellisCatalogHandler = RpcHandlerFn<typeof API.owned, "Trellis.Catalog">;
29
- export type TrellisContractGetHandler = RpcHandlerFn<typeof API.owned, "Trellis.Contract.Get">;
30
- export type TrellisSurfaceStatusHandler = RpcHandlerFn<typeof API.owned, "Trellis.Surface.Status">;
231
+ export type TrellisBindingsGetHandler = RpcHandlerFn<
232
+ typeof API.owned,
233
+ "Trellis.Bindings.Get"
234
+ >;
235
+ export type TrellisCatalogHandler = RpcHandlerFn<
236
+ typeof API.owned,
237
+ "Trellis.Catalog"
238
+ >;
239
+ export type TrellisContractGetHandler = RpcHandlerFn<
240
+ typeof API.owned,
241
+ "Trellis.Contract.Get"
242
+ >;
243
+ export type TrellisSurfaceStatusHandler = RpcHandlerFn<
244
+ typeof API.owned,
245
+ "Trellis.Surface.Status"
246
+ >;
31
247
 
32
248
  export interface EventMap {
33
249
  }
@@ -37,4 +253,3 @@ export interface FeedMap {
37
253
 
38
254
  export interface SubjectMap {
39
255
  }
40
-
@@ -4,29 +4,19 @@ import { OWNED_API } from "./owned_api.js";
4
4
  export { OWNED_API };
5
5
 
6
6
  export type UsedApi = {
7
- rpc: {
8
- };
9
- operations: {
10
- };
11
- events: {
12
- };
13
- feeds: {
14
- };
15
- subjects: {
16
- };
7
+ rpc: {};
8
+ operations: {};
9
+ events: {};
10
+ feeds: {};
11
+ subjects: {};
17
12
  };
18
13
 
19
14
  export const USED_API: UsedApi = {
20
- rpc: {
21
- },
22
- operations: {
23
- },
24
- events: {
25
- },
26
- feeds: {
27
- },
28
- subjects: {
29
- },
15
+ rpc: {},
16
+ operations: {},
17
+ events: {},
18
+ feeds: {},
19
+ subjects: {},
30
20
  };
31
21
 
32
22
  export type OwnedApi = typeof OWNED_API;
@@ -44,4 +34,3 @@ export const API = {
44
34
  } as const;
45
35
 
46
36
  export type ApiViews = typeof API;
47
-
@@ -1,21 +1,87 @@
1
1
  // Generated from ./generated/contracts/manifests/trellis.health@v1.json
2
- import type { AcceptedOperation, AsyncResult, BaseError, EventListenerContext, EventOpts, FeedSubscribeOpts, FeedSubscription, HandlerTrellis, MapStateStoreClient, MaybeAsync, OperationInputBuilder, OperationObserverCallbacks, OperationRef, OperationRefData, OperationRuntimeHandle, OperationTransferHandle, PreparedTrellisEvent, ReceiveTransferGrant, ReceiveTransferHandle, RequestOpts, Result, RpcHandlerContext, SendTransferGrant, SendTransferHandle, TerminalOperation, TransferCapableOperationInputBuilder, TrellisConnection, UnexpectedError, ValidationError, ValueStateStoreClient } from "../../../index.js";
2
+ import type {
3
+ AcceptedOperation,
4
+ AsyncResult,
5
+ BaseError,
6
+ EventListenerContext,
7
+ EventOpts,
8
+ FeedSubscribeOpts,
9
+ FeedSubscription,
10
+ HandlerTrellis,
11
+ MapStateStoreClient,
12
+ MaybeAsync,
13
+ OperationInputBuilder,
14
+ OperationObserverCallbacks,
15
+ OperationRef,
16
+ OperationRefData,
17
+ OperationRuntimeHandle,
18
+ OperationTransferHandle,
19
+ PreparedTrellisEvent,
20
+ ReceiveTransferGrant,
21
+ ReceiveTransferHandle,
22
+ RequestOpts,
23
+ Result,
24
+ RpcHandlerContext,
25
+ SendTransferGrant,
26
+ SendTransferHandle,
27
+ TerminalOperation,
28
+ TransferCapableOperationInputBuilder,
29
+ TrellisConnection,
30
+ UnexpectedError,
31
+ ValidationError,
32
+ ValueStateStoreClient,
33
+ } from "../../../index.js";
3
34
  import type { API, Api } from "./api.js";
4
35
  import type * as Types from "./types.js";
5
36
 
6
37
  type WithDeps<TDeps> = [TDeps] extends [undefined] ? {} : { deps: TDeps };
7
38
 
8
39
  type EventCallback<TMessage> = {
9
- bivarianceHack(message: TMessage, context: EventListenerContext): MaybeAsync<void, BaseError>;
40
+ bivarianceHack(
41
+ message: TMessage,
42
+ context: EventListenerContext,
43
+ ): MaybeAsync<void, BaseError>;
10
44
  }["bivarianceHack"];
11
45
 
12
- type ServiceEventHandler<TEvent, TDeps = undefined> = (args: { event: TEvent; context: EventListenerContext; client: HandlerClient } & WithDeps<TDeps>) => MaybeAsync<void, BaseError>;
46
+ type ServiceEventHandler<TEvent, TDeps = undefined> = (
47
+ args:
48
+ & { event: TEvent; context: EventListenerContext; client: HandlerClient }
49
+ & WithDeps<TDeps>,
50
+ ) => MaybeAsync<void, BaseError>;
13
51
 
14
- type RpcHandler<TInput, TOutput, TDeps = undefined> = (args: { input: TInput; context: RpcHandlerContext; client: HandlerClient } & WithDeps<TDeps>) => MaybeAsync<TOutput, BaseError>;
52
+ type RpcHandler<TInput, TOutput, TDeps = undefined> = (
53
+ args:
54
+ & { input: TInput; context: RpcHandlerContext; client: HandlerClient }
55
+ & WithDeps<TDeps>,
56
+ ) => MaybeAsync<TOutput, BaseError>;
15
57
 
16
- type FeedHandler<TInput, TEvent, TDeps = undefined> = (context: { input: TInput; caller: unknown; signal: AbortSignal; emit(event: TEvent): AsyncResult<void, ValidationError | UnexpectedError>; client: HandlerClient } & WithDeps<TDeps>) => unknown | Promise<unknown>;
58
+ type FeedHandler<TInput, TEvent, TDeps = undefined> = (
59
+ context: {
60
+ input: TInput;
61
+ caller: unknown;
62
+ signal: AbortSignal;
63
+ emit(event: TEvent): AsyncResult<void, ValidationError | UnexpectedError>;
64
+ client: HandlerClient;
65
+ } & WithDeps<TDeps>,
66
+ ) => unknown | Promise<unknown>;
17
67
 
18
- type OperationHandler<TInput, TProgress, TOutput, TTransfer, TDeps = undefined> = (context: { input: TInput; op: OperationRuntimeHandle<TProgress, TOutput>; caller: unknown; client: HandlerClient } & TTransfer & WithDeps<TDeps>) => unknown | Promise<unknown>;
68
+ type OperationHandler<
69
+ TInput,
70
+ TProgress,
71
+ TOutput,
72
+ TTransfer,
73
+ TDeps = undefined,
74
+ > = (
75
+ context:
76
+ & {
77
+ input: TInput;
78
+ op: OperationRuntimeHandle<TProgress, TOutput>;
79
+ caller: unknown;
80
+ client: HandlerClient;
81
+ }
82
+ & TTransfer
83
+ & WithDeps<TDeps>,
84
+ ) => unknown | Promise<unknown>;
19
85
 
20
86
  export type TrellisHealthState = {};
21
87
 
@@ -31,7 +97,22 @@ export interface TrellisHealthClient {
31
97
  readonly rpc: {};
32
98
  readonly event: {
33
99
  readonly health: {
34
- heartbeat: { publish(event: Omit<Types.HealthHeartbeatEvent, "header">): AsyncResult<void, ValidationError | UnexpectedError>; prepare(event: Omit<Types.HealthHeartbeatEvent, "header">): Result<PreparedTrellisEvent<Omit<Types.HealthHeartbeatEvent, "header">>, ValidationError | UnexpectedError>; listen(handler: EventCallback<Types.HealthHeartbeatEvent>, subjectData?: Record<string, unknown>, opts?: EventOpts): AsyncResult<void, ValidationError | UnexpectedError>; };
100
+ heartbeat: {
101
+ publish(
102
+ event: Omit<Types.HealthHeartbeatEvent, "header">,
103
+ ): AsyncResult<void, ValidationError | UnexpectedError>;
104
+ prepare(
105
+ event: Omit<Types.HealthHeartbeatEvent, "header">,
106
+ ): Result<
107
+ PreparedTrellisEvent<Omit<Types.HealthHeartbeatEvent, "header">>,
108
+ ValidationError | UnexpectedError
109
+ >;
110
+ listen(
111
+ handler: EventCallback<Types.HealthHeartbeatEvent>,
112
+ subjectData?: Record<string, unknown>,
113
+ opts?: EventOpts,
114
+ ): AsyncResult<void, ValidationError | UnexpectedError>;
115
+ };
35
116
  };
36
117
  };
37
118
  readonly feed: {};
@@ -52,7 +133,22 @@ export type ServiceWithDeps<TDeps> = Omit<TrellisHealthClient, "event"> & {
52
133
 
53
134
  export interface ServiceEventSurface<TDeps> {
54
135
  readonly health: {
55
- heartbeat: { publish(event: Omit<Types.HealthHeartbeatEvent, "header">): AsyncResult<void, ValidationError | UnexpectedError>; prepare(event: Omit<Types.HealthHeartbeatEvent, "header">): Result<PreparedTrellisEvent<Omit<Types.HealthHeartbeatEvent, "header">>, ValidationError | UnexpectedError>; listen(handler: ServiceEventHandler<Types.HealthHeartbeatEvent, TDeps>, subjectData?: Record<string, unknown>, opts?: EventOpts): AsyncResult<void, ValidationError | UnexpectedError>; };
136
+ heartbeat: {
137
+ publish(
138
+ event: Omit<Types.HealthHeartbeatEvent, "header">,
139
+ ): AsyncResult<void, ValidationError | UnexpectedError>;
140
+ prepare(
141
+ event: Omit<Types.HealthHeartbeatEvent, "header">,
142
+ ): Result<
143
+ PreparedTrellisEvent<Omit<Types.HealthHeartbeatEvent, "header">>,
144
+ ValidationError | UnexpectedError
145
+ >;
146
+ listen(
147
+ handler: ServiceEventHandler<Types.HealthHeartbeatEvent, TDeps>,
148
+ subjectData?: Record<string, unknown>,
149
+ opts?: EventOpts,
150
+ ): AsyncResult<void, ValidationError | UnexpectedError>;
151
+ };
56
152
  };
57
153
  }
58
154
 
@@ -1,12 +1,125 @@
1
1
  // Generated from ./generated/contracts/manifests/trellis.health@v1.json
2
- import type { ContractDependencyUse, SdkContractModule, TrellisContractV1, UseSpec } from "../../../index.js";
2
+ import type {
3
+ ContractDependencyUse,
4
+ SdkContractModule,
5
+ TrellisContractV1,
6
+ UseSpec,
7
+ } from "../../../index.js";
3
8
  import { API } from "./api.js";
4
9
 
5
- const CONTRACT_MODULE_METADATA = Symbol.for("@qlever-llc/trellis/contracts/contract-module");
10
+ const CONTRACT_MODULE_METADATA = Symbol.for(
11
+ "@qlever-llc/trellis/contracts/contract-module",
12
+ );
6
13
 
7
14
  export const CONTRACT_ID = "trellis.health@v1" as const;
8
- export const CONTRACT_DIGEST = "RHDzeH2V6Nltzk6WklCLbTIK48hF0hNuO9Qk6-BosT4" as const;
9
- export const CONTRACT = {"description":"Expose shared Trellis heartbeat events for service observability.","displayName":"Trellis Health","docs":{"markdown":"Defines the heartbeat event services publish so operators can observe service liveness.","summary":"Service heartbeat events."},"events":{"Health.Heartbeat":{"docs":{"markdown":"Emitted by services to report runtime identity, uptime, and health metadata.","summary":"Publish service liveness."},"event":{"schema":"HealthHeartbeat"},"subject":"events.v1.Health.Heartbeat","version":"v1"}},"format":"trellis.contract.v1","id":"trellis.health@v1","kind":"service","schemas":{"HealthHeartbeat":{"properties":{"checks":{"items":{"properties":{"error":{"type":"string"},"info":{"patternProperties":{"^.*$":{}},"type":"object"},"latencyMs":{"type":"number"},"name":{"type":"string"},"status":{"anyOf":[{"const":"ok","type":"string"},{"const":"failed","type":"string"}]},"summary":{"type":"string"}},"required":["name","status","latencyMs"],"type":"object"},"type":"array"},"header":{"properties":{"id":{"type":"string"},"time":{"format":"date-time","type":"string"}},"required":["id","time"],"type":"object"},"service":{"properties":{"contractDigest":{"type":"string"},"contractId":{"type":"string"},"info":{"patternProperties":{"^.*$":{}},"type":"object"},"instanceId":{"type":"string"},"kind":{"anyOf":[{"const":"service","type":"string"},{"const":"device","type":"string"}]},"name":{"type":"string"},"publishIntervalMs":{"minimum":1,"type":"integer"},"runtime":{"anyOf":[{"const":"deno","type":"string"},{"const":"node","type":"string"},{"const":"rust","type":"string"},{"const":"unknown","type":"string"}]},"runtimeVersion":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"version":{"type":"string"}},"required":["name","kind","instanceId","contractId","contractDigest","startedAt","publishIntervalMs","runtime"],"type":"object"},"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"unhealthy","type":"string"},{"const":"degraded","type":"string"}]},"summary":{"type":"string"}},"required":["header","service","status","checks"],"type":"object"}}} as TrellisContractV1;
15
+ export const CONTRACT_DIGEST =
16
+ "RHDzeH2V6Nltzk6WklCLbTIK48hF0hNuO9Qk6-BosT4" as const;
17
+ export const CONTRACT = {
18
+ "description":
19
+ "Expose shared Trellis heartbeat events for service observability.",
20
+ "displayName": "Trellis Health",
21
+ "docs": {
22
+ "markdown":
23
+ "Defines the heartbeat event services publish so operators can observe service liveness.",
24
+ "summary": "Service heartbeat events.",
25
+ },
26
+ "events": {
27
+ "Health.Heartbeat": {
28
+ "docs": {
29
+ "markdown":
30
+ "Emitted by services to report runtime identity, uptime, and health metadata.",
31
+ "summary": "Publish service liveness.",
32
+ },
33
+ "event": { "schema": "HealthHeartbeat" },
34
+ "subject": "events.v1.Health.Heartbeat",
35
+ "version": "v1",
36
+ },
37
+ },
38
+ "format": "trellis.contract.v1",
39
+ "id": "trellis.health@v1",
40
+ "kind": "service",
41
+ "schemas": {
42
+ "HealthHeartbeat": {
43
+ "properties": {
44
+ "checks": {
45
+ "items": {
46
+ "properties": {
47
+ "error": { "type": "string" },
48
+ "info": { "patternProperties": { "^.*$": {} }, "type": "object" },
49
+ "latencyMs": { "type": "number" },
50
+ "name": { "type": "string" },
51
+ "status": {
52
+ "anyOf": [{ "const": "ok", "type": "string" }, {
53
+ "const": "failed",
54
+ "type": "string",
55
+ }],
56
+ },
57
+ "summary": { "type": "string" },
58
+ },
59
+ "required": ["name", "status", "latencyMs"],
60
+ "type": "object",
61
+ },
62
+ "type": "array",
63
+ },
64
+ "header": {
65
+ "properties": {
66
+ "id": { "type": "string" },
67
+ "time": { "format": "date-time", "type": "string" },
68
+ },
69
+ "required": ["id", "time"],
70
+ "type": "object",
71
+ },
72
+ "service": {
73
+ "properties": {
74
+ "contractDigest": { "type": "string" },
75
+ "contractId": { "type": "string" },
76
+ "info": { "patternProperties": { "^.*$": {} }, "type": "object" },
77
+ "instanceId": { "type": "string" },
78
+ "kind": {
79
+ "anyOf": [{ "const": "service", "type": "string" }, {
80
+ "const": "device",
81
+ "type": "string",
82
+ }],
83
+ },
84
+ "name": { "type": "string" },
85
+ "publishIntervalMs": { "minimum": 1, "type": "integer" },
86
+ "runtime": {
87
+ "anyOf": [
88
+ { "const": "deno", "type": "string" },
89
+ { "const": "node", "type": "string" },
90
+ { "const": "rust", "type": "string" },
91
+ { "const": "unknown", "type": "string" },
92
+ ],
93
+ },
94
+ "runtimeVersion": { "type": "string" },
95
+ "startedAt": { "format": "date-time", "type": "string" },
96
+ "version": { "type": "string" },
97
+ },
98
+ "required": [
99
+ "name",
100
+ "kind",
101
+ "instanceId",
102
+ "contractId",
103
+ "contractDigest",
104
+ "startedAt",
105
+ "publishIntervalMs",
106
+ "runtime",
107
+ ],
108
+ "type": "object",
109
+ },
110
+ "status": {
111
+ "anyOf": [{ "const": "healthy", "type": "string" }, {
112
+ "const": "unhealthy",
113
+ "type": "string",
114
+ }, { "const": "degraded", "type": "string" }],
115
+ },
116
+ "summary": { "type": "string" },
117
+ },
118
+ "required": ["header", "service", "status", "checks"],
119
+ "type": "object",
120
+ },
121
+ },
122
+ } as TrellisContractV1;
10
123
 
11
124
  function assertSelectedKeysExist(
12
125
  kind: "rpc" | "operations" | "events" | "feeds",
@@ -19,14 +132,20 @@ function assertSelectedKeysExist(
19
132
 
20
133
  for (const key of keys) {
21
134
  if (!Object.hasOwn(api, key)) {
22
- throw new Error(`Contract '${CONTRACT_ID}' does not expose ${kind} key '${key}'`);
135
+ throw new Error(
136
+ `Contract '${CONTRACT_ID}' does not expose ${kind} key '${key}'`,
137
+ );
23
138
  }
24
139
  }
25
140
  }
26
141
 
27
142
  function assertValidUseSpec(spec: UseSpec<typeof API.owned>) {
28
143
  assertSelectedKeysExist("rpc", spec.rpc?.call, API.owned.rpc);
29
- assertSelectedKeysExist("operations", spec.operations?.call, API.owned.operations);
144
+ assertSelectedKeysExist(
145
+ "operations",
146
+ spec.operations?.call,
147
+ API.owned.operations,
148
+ );
30
149
  assertSelectedKeysExist("events", spec.events?.publish, API.owned.events);
31
150
  assertSelectedKeysExist("events", spec.events?.subscribe, API.owned.events);
32
151
  assertSelectedKeysExist("feeds", spec.feeds?.subscribe, API.owned.feeds);
@@ -37,22 +156,30 @@ export const sdk: SdkContractModule<typeof CONTRACT_ID, typeof API.owned> = {
37
156
  CONTRACT_DIGEST,
38
157
  CONTRACT,
39
158
  API,
40
- use: (<const TSpec extends UseSpec<typeof API.owned>>(spec: TSpec) => {
159
+ use: <const TSpec extends UseSpec<typeof API.owned>>(spec: TSpec) => {
41
160
  assertValidUseSpec(spec);
42
161
 
43
162
  const dependencyUse = {
44
163
  contract: CONTRACT_ID,
45
164
  ...(spec.rpc?.call ? { rpc: { call: [...spec.rpc.call] } } : {}),
46
- ...(spec.operations?.call ? { operations: { call: [...spec.operations.call] } } : {}),
165
+ ...(spec.operations?.call
166
+ ? { operations: { call: [...spec.operations.call] } }
167
+ : {}),
47
168
  ...((spec.events?.publish || spec.events?.subscribe)
48
169
  ? {
49
170
  events: {
50
- ...(spec.events.publish ? { publish: [...spec.events.publish] } : {}),
51
- ...(spec.events.subscribe ? { subscribe: [...spec.events.subscribe] } : {}),
171
+ ...(spec.events.publish
172
+ ? { publish: [...spec.events.publish] }
173
+ : {}),
174
+ ...(spec.events.subscribe
175
+ ? { subscribe: [...spec.events.subscribe] }
176
+ : {}),
52
177
  },
53
178
  }
54
179
  : {}),
55
- ...(spec.feeds?.subscribe ? { feeds: { subscribe: [...spec.feeds.subscribe] } } : {}),
180
+ ...(spec.feeds?.subscribe
181
+ ? { feeds: { subscribe: [...spec.feeds.subscribe] } }
182
+ : {}),
56
183
  };
57
184
 
58
185
  Object.defineProperty(dependencyUse, CONTRACT_MODULE_METADATA, {
@@ -60,8 +187,12 @@ export const sdk: SdkContractModule<typeof CONTRACT_ID, typeof API.owned> = {
60
187
  enumerable: false,
61
188
  });
62
189
 
63
- return dependencyUse as ContractDependencyUse<typeof CONTRACT_ID, typeof API.owned, TSpec>;
64
- }),
190
+ return dependencyUse as ContractDependencyUse<
191
+ typeof CONTRACT_ID,
192
+ typeof API.owned,
193
+ TSpec
194
+ >;
195
+ },
65
196
  };
66
197
 
67
198
  export const use = sdk.use;