@distilled.cloud/celld 0.0.0-placeholder → 1.0.0-rc.13

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 (48) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +116 -0
  3. package/lib/endpoint.d.ts +11 -0
  4. package/lib/endpoint.d.ts.map +1 -0
  5. package/lib/endpoint.js +11 -0
  6. package/lib/endpoint.js.map +1 -0
  7. package/lib/errors.d.ts +24 -0
  8. package/lib/errors.d.ts.map +1 -0
  9. package/lib/errors.js +19 -0
  10. package/lib/errors.js.map +1 -0
  11. package/lib/index.d.ts +5 -0
  12. package/lib/index.d.ts.map +1 -0
  13. package/lib/index.js +5 -0
  14. package/lib/index.js.map +1 -0
  15. package/lib/protocol.d.ts +12 -0
  16. package/lib/protocol.d.ts.map +1 -0
  17. package/lib/protocol.js +33 -0
  18. package/lib/protocol.js.map +1 -0
  19. package/lib/response-validation.test.d.ts +4 -0
  20. package/lib/response-validation.test.d.ts.map +1 -0
  21. package/lib/response-validation.test.js +30 -0
  22. package/lib/response-validation.test.js.map +1 -0
  23. package/lib/services/index.d.ts +3 -0
  24. package/lib/services/index.d.ts.map +1 -0
  25. package/lib/services/index.js +4 -0
  26. package/lib/services/index.js.map +1 -0
  27. package/lib/services/node.d.ts +334 -0
  28. package/lib/services/node.d.ts.map +1 -0
  29. package/lib/services/node.js +340 -0
  30. package/lib/services/node.js.map +1 -0
  31. package/lib/services/runtime.d.ts +686 -0
  32. package/lib/services/runtime.d.ts.map +1 -0
  33. package/lib/services/runtime.js +553 -0
  34. package/lib/services/runtime.js.map +1 -0
  35. package/lib/traits.d.ts +3 -0
  36. package/lib/traits.d.ts.map +1 -0
  37. package/lib/traits.js +3 -0
  38. package/lib/traits.js.map +1 -0
  39. package/package.json +66 -7
  40. package/src/endpoint.ts +13 -0
  41. package/src/errors.ts +25 -0
  42. package/src/index.ts +8 -0
  43. package/src/protocol.ts +49 -0
  44. package/src/response-validation.test.ts +43 -0
  45. package/src/services/index.ts +3 -0
  46. package/src/services/node.ts +767 -0
  47. package/src/services/runtime.ts +1455 -0
  48. package/src/traits.ts +6 -0
@@ -0,0 +1,340 @@
1
+ // AUTO-GENERATED by scripts/generate.ts from the Celld v0.6.0 source-derived Smithy specifications in specs/. Do not edit.
2
+ import * as S from "@distilled.cloud/core/schema";
3
+ import * as API from "@distilled.cloud/core/api";
4
+ import * as C from "@distilled.cloud/core/category";
5
+ import * as T from "../traits.js";
6
+ import { CelldProtocol, } from "../protocol.js";
7
+ /** An accepted eviction was interrupted by activity, an alarm, or node fencing. The message preserves cancelled: <reason>. */
8
+ export class EvictionCancelled extends /*@__PURE__*/ /*@__PURE__*/ T.applyErrorMatchers(
9
+ /*@__PURE__*/ S.TaggedError()("EvictionCancelled", {
10
+ message: S.String,
11
+ }), [{ status: 409, message: { matches: "^cancelled: " } }]) {
12
+ }
13
+ /** Eviction completion could not be established. The message preserves failed: <reason>; this does not authorize automatic replay. */
14
+ export class EvictionFailed extends /*@__PURE__*/ /*@__PURE__*/ T.applyErrorMatchers(
15
+ /*@__PURE__*/ S.TaggedError()("EvictionFailed", {
16
+ message: S.String,
17
+ }), [
18
+ { status: 500, message: { matches: "^failed: " } },
19
+ { status: 503, message: { matches: "^failed: " } },
20
+ ]) {
21
+ }
22
+ /** Eviction was refused before admission. The message preserves refused: <reason> from the node error envelope. */
23
+ export class EvictionRefused extends /*@__PURE__*/ /*@__PURE__*/ T.applyErrorMatchers(
24
+ /*@__PURE__*/ S.TaggedError()("EvictionRefused", {
25
+ message: S.String,
26
+ }), [
27
+ { status: 409, message: { matches: "^refused: " } },
28
+ { status: 503, message: { matches: "^refused: " } },
29
+ ]) {
30
+ }
31
+ export class MalformedScope extends /*@__PURE__*/ /*@__PURE__*/ T.applyErrorMatchers(
32
+ /*@__PURE__*/ S.TaggedError()("MalformedScope", {
33
+ message: S.String,
34
+ }), [{ status: 400 }]) {
35
+ }
36
+ export class NodeHasNoLease extends /*@__PURE__*/ /*@__PURE__*/ T.applyErrorMatchers(
37
+ /*@__PURE__*/ S.TaggedError()("NodeHasNoLease", {
38
+ message: S.String,
39
+ }), [{ status: 409, message: "this node publishes no lease" }]) {
40
+ }
41
+ export class NodeUnavailable extends /*@__PURE__*/ /*@__PURE__*/ T.applyErrorMatchers(
42
+ /*@__PURE__*/ S.TaggedError()("NodeUnavailable", {
43
+ message: S.String,
44
+ }), [{ status: 503 }]) {
45
+ }
46
+ export class ReloadFailed extends /*@__PURE__*/ /*@__PURE__*/ T.applyErrorMatchers(
47
+ /*@__PURE__*/ S.TaggedError()("ReloadFailed", {
48
+ message: S.String,
49
+ }).pipe(C.withBadRequestError), [{ status: 422 }]) {
50
+ }
51
+ export const EvictCellRequest = /*@__PURE__*/ S.suspend(() => S.Struct({
52
+ scope: S.String.pipe(T.Label(), T.LabelEncoding({ preserve: ":$" })),
53
+ }).pipe(T.Http({ method: "POST", uri: "/evict/{scope}", code: 200 }))).annotate({
54
+ identifier: "EvictCellRequest",
55
+ });
56
+ export const OkResponse = /*@__PURE__*/ S.suspend(() => S.Struct({
57
+ ok: S.Boolean,
58
+ })).annotate({ identifier: "OkResponse" });
59
+ export const GetNodeStateRequest = /*@__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.Http({ method: "GET", uri: "/state", code: 200 }))).annotate({
60
+ identifier: "GetNodeStateRequest",
61
+ });
62
+ export const DocumentMap = /*@__PURE__*/ S.Record(S.String, S.Unknown);
63
+ export const DocumentList = /*@__PURE__*/ S.Array(S.Unknown);
64
+ export const PoolCensus = /*@__PURE__*/ S.suspend(() => S.Struct({
65
+ live: S.Number,
66
+ live_empty: S.Number,
67
+ retiring: S.Number,
68
+ freed: S.Number,
69
+ cells: S.Number,
70
+ requests: S.Number,
71
+ turns: S.Number,
72
+ heap_bytes: S.Number,
73
+ external_bytes: S.Number,
74
+ })).annotate({ identifier: "PoolCensus" });
75
+ export const PoolCensuses = /*@__PURE__*/ S.Record(S.String, PoolCensus);
76
+ export const IsolateCensus = /*@__PURE__*/ S.suspend(() => S.Struct({
77
+ stateless: PoolCensus,
78
+ services: PoolCensuses,
79
+ cells: PoolCensuses,
80
+ })).annotate({ identifier: "IsolateCensus" });
81
+ export const DeploymentGeneration = /*@__PURE__*/ S.suspend(() => S.Struct({
82
+ generation: S.Number,
83
+ version: S.String,
84
+ isolates: IsolateCensus,
85
+ })).annotate({
86
+ identifier: "DeploymentGeneration",
87
+ });
88
+ export const DeploymentGenerations = /*@__PURE__*/ S.Array(DeploymentGeneration);
89
+ export const LongMap = /*@__PURE__*/ S.Record(S.String, S.Number);
90
+ export const DeploymentState = /*@__PURE__*/ S.suspend(() => S.Struct({
91
+ generation: S.Number,
92
+ version: S.String,
93
+ prefix: S.String,
94
+ draining: DeploymentGenerations,
95
+ swapping: S.Number,
96
+ cells: LongMap,
97
+ isolates: IsolateCensus,
98
+ })).annotate({
99
+ identifier: "DeploymentState",
100
+ });
101
+ export const AllocatorStats = /*@__PURE__*/ S.suspend(() => S.Struct({
102
+ allocated_bytes: S.Number,
103
+ active_bytes: S.Number,
104
+ resident_bytes: S.Number,
105
+ mapped_bytes: S.Number,
106
+ retained_bytes: S.Number,
107
+ })).annotate({ identifier: "AllocatorStats" });
108
+ export const LibcMallocStats = /*@__PURE__*/ S.suspend(() => S.Struct({
109
+ in_use_bytes: S.Number,
110
+ free_bytes: S.Number,
111
+ mmap_bytes: S.Number,
112
+ arena_bytes: S.Number,
113
+ })).annotate({
114
+ identifier: "LibcMallocStats",
115
+ });
116
+ export const NodeState = /*@__PURE__*/ S.suspend(() => S.Struct({
117
+ activating: S.optional(S.Number),
118
+ activation_waiting: S.optional(S.Number),
119
+ adopting: S.optional(S.Number),
120
+ capacity_waiting: S.optional(S.Number),
121
+ evicting: S.optional(S.Number),
122
+ handed_off: S.optional(S.Number),
123
+ handoff_failed: S.optional(S.Number),
124
+ occupied: S.optional(S.Number),
125
+ owned_cells: S.optional(S.Number),
126
+ publishes: S.optional(S.Number),
127
+ quiescing: S.optional(S.Number),
128
+ rebalance_failed: S.optional(S.Number),
129
+ rebalanced: S.optional(S.Number),
130
+ releasing: S.optional(S.Number),
131
+ remote_route_refreshes: S.optional(S.Number),
132
+ restoring: S.optional(S.Number),
133
+ stops: S.optional(S.Number),
134
+ cgroup_current_bytes: S.optional(S.NullOr(S.Number)),
135
+ cgroup_working_set_bytes: S.optional(S.NullOr(S.Number)),
136
+ in_use_bytes: S.optional(S.Number),
137
+ rss_bytes: S.optional(S.Number),
138
+ ownership: S.optional(S.String),
139
+ phases: S.optional(DocumentMap),
140
+ published: S.optional(DocumentList),
141
+ residents: S.optional(DocumentList),
142
+ node_load: S.optional(S.Unknown),
143
+ shedding: S.optional(S.Unknown),
144
+ drainPins: S.optional(DocumentList),
145
+ deployment: S.optional(DeploymentState),
146
+ error: S.optional(S.String),
147
+ allocator: S.optional(S.NullOr(AllocatorStats)),
148
+ libc_malloc: S.optional(S.NullOr(LibcMallocStats)),
149
+ })).annotate({ identifier: "NodeState" });
150
+ export const PauseRebalancingRequest = /*@__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.Http({ method: "POST", uri: "/rebalance/pause", code: 200 }))).annotate({
151
+ identifier: "PauseRebalancingRequest",
152
+ });
153
+ export const RebalanceResponse = /*@__PURE__*/ S.suspend(() => S.Struct({
154
+ rebalance_paused: S.Boolean,
155
+ })).annotate({
156
+ identifier: "RebalanceResponse",
157
+ });
158
+ export const ReloadDeploymentRequest = /*@__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.Http({ method: "POST", uri: "/reload", code: 200 }))).annotate({
159
+ identifier: "ReloadDeploymentRequest",
160
+ });
161
+ export const ReloadResponse = /*@__PURE__*/ S.suspend(() => S.Struct({
162
+ ok: S.Boolean,
163
+ outcome: S.String,
164
+ generation: S.Number,
165
+ version: S.String,
166
+ prefix: S.optional(S.String),
167
+ })).annotate({ identifier: "ReloadResponse" });
168
+ export const ResumeRebalancingRequest = /*@__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.Http({ method: "POST", uri: "/rebalance/resume", code: 200 }))).annotate({
169
+ identifier: "ResumeRebalancingRequest",
170
+ });
171
+ export const RouteCellRequest = /*@__PURE__*/ S.suspend(() => S.Struct({
172
+ scope: S.String.pipe(T.Label(), T.LabelEncoding({ preserve: ":$" })),
173
+ }).pipe(T.Http({ method: "GET", uri: "/cell/{scope}", code: 200 }))).annotate({
174
+ identifier: "RouteCellRequest",
175
+ });
176
+ export const RouteCellResponse = /*@__PURE__*/ S.suspend(() => S.Struct({
177
+ route: S.optional(S.String),
178
+ cell: S.optional(S.String),
179
+ node: S.optional(S.String),
180
+ addr: S.optional(S.String),
181
+ epoch: S.optional(S.Number),
182
+ peer_protocol: S.optional(S.Number),
183
+ })).annotate({
184
+ identifier: "RouteCellResponse",
185
+ });
186
+ export const ShutdownHandoff = S.String;
187
+ export const ShutdownNodeRequest = /*@__PURE__*/ S.suspend(() => S.Struct({
188
+ handoff: S.optional(ShutdownHandoff.pipe(T.Query())),
189
+ }).pipe(T.Http({ method: "POST", uri: "/shutdown", code: 200 }))).annotate({
190
+ identifier: "ShutdownNodeRequest",
191
+ });
192
+ export const StringList = /*@__PURE__*/ S.Array(S.String);
193
+ export const ModuleKind = S.String;
194
+ export const ModuleRef = /*@__PURE__*/ S.suspend(() => S.Struct({
195
+ name: S.String,
196
+ bytes: S.Number,
197
+ sha256: S.String,
198
+ kind: S.optional(ModuleKind),
199
+ })).annotate({ identifier: "ModuleRef" });
200
+ export const ModuleRefs = /*@__PURE__*/ S.Array(ModuleRef);
201
+ export const AssetManifestRef = /*@__PURE__*/ S.suspend(() => S.Struct({
202
+ index: S.String,
203
+ sha256: S.String,
204
+ file_count: S.Number,
205
+ total_bytes: S.Number,
206
+ })).annotate({
207
+ identifier: "AssetManifestRef",
208
+ });
209
+ export const QueueConsumerConfig = /*@__PURE__*/ S.suspend(() => S.Struct({
210
+ queue: S.String,
211
+ max_batch_size: S.Number,
212
+ max_batch_timeout: S.Number,
213
+ max_retries: S.Number,
214
+ dead_letter_queue: S.optional(S.String),
215
+ max_concurrency: S.optional(S.Number),
216
+ retry_delay: S.optional(S.Number),
217
+ })).annotate({
218
+ identifier: "QueueConsumerConfig",
219
+ });
220
+ export const QueueConsumerConfigs = /*@__PURE__*/ S.Array(QueueConsumerConfig);
221
+ export const ContainerSpec = /*@__PURE__*/ S.suspend(() => S.Struct({
222
+ class_name: S.String,
223
+ image: S.String,
224
+ instance_type: S.optional(S.String),
225
+ max_instances: S.optional(S.Number),
226
+ runtime: S.optional(S.String),
227
+ })).annotate({ identifier: "ContainerSpec" });
228
+ export const ContainerSpecs = /*@__PURE__*/ S.Array(ContainerSpec);
229
+ export const Manifest = /*@__PURE__*/ S.suspend(() => S.Struct({
230
+ schema_version: S.optional(S.Number),
231
+ version: S.String,
232
+ script_name: S.String,
233
+ do_classes: StringList,
234
+ sqlite_classes: StringList,
235
+ modules: ModuleRefs,
236
+ assets: S.optional(AssetManifestRef),
237
+ crons: S.optional(StringList),
238
+ queue_consumers: S.optional(QueueConsumerConfigs),
239
+ containers: S.optional(ContainerSpecs),
240
+ fence_image: S.optional(S.String),
241
+ required_features: S.optional(StringList),
242
+ raw_metadata: S.Unknown,
243
+ main_module: S.optional(S.NullOr(S.String)),
244
+ })).annotate({ identifier: "Manifest" });
245
+ export const Rollout = /*@__PURE__*/ S.suspend(() => S.Struct({
246
+ percent: S.Number,
247
+ })).annotate({ identifier: "Rollout" });
248
+ export const DeployPointer = /*@__PURE__*/ S.suspend(() => S.Struct({
249
+ script_name: S.optional(S.String),
250
+ version: S.String,
251
+ prefix: S.String,
252
+ rollout: Rollout,
253
+ })).annotate({ identifier: "DeployPointer" });
254
+ export const AssetEntry = /*@__PURE__*/ S.suspend(() => S.Struct({
255
+ sha256: S.String,
256
+ bytes: S.Number,
257
+ content_type: S.optional(S.String),
258
+ })).annotate({ identifier: "AssetEntry" });
259
+ export const AssetEntries = /*@__PURE__*/ S.Record(S.String, AssetEntry);
260
+ export const RunWorkerFirst = /*@__PURE__*/ S.Union([
261
+ S.Boolean,
262
+ StringList,
263
+ ]);
264
+ export const AssetConfig = /*@__PURE__*/ S.suspend(() => S.Struct({
265
+ binding: S.optional(S.String),
266
+ html_handling: S.optional(S.String),
267
+ not_found_handling: S.optional(S.String),
268
+ run_worker_first: S.optional(RunWorkerFirst),
269
+ headers: S.optional(S.String),
270
+ redirects: S.optional(S.String),
271
+ compatibility_date: S.optional(S.String),
272
+ compatibility_flags: S.optional(StringList),
273
+ })).annotate({ identifier: "AssetConfig" });
274
+ export const AssetIndex = /*@__PURE__*/ S.suspend(() => S.Struct({
275
+ schema_version: S.Number,
276
+ entries: AssetEntries,
277
+ config: AssetConfig,
278
+ })).annotate({ identifier: "AssetIndex" });
279
+ export const QueueConsumerDeployment = /*@__PURE__*/ S.suspend(() => S.Struct({
280
+ script_name: S.String,
281
+ version: S.String,
282
+ prefix: S.String,
283
+ })).annotate({
284
+ identifier: "QueueConsumerDeployment",
285
+ });
286
+ export const QueueConsumerAttachment = /*@__PURE__*/ S.suspend(() => S.Struct({
287
+ schema_version: S.Number,
288
+ queue: S.String,
289
+ consumer: S.optional(QueueConsumerDeployment),
290
+ })).annotate({
291
+ identifier: "QueueConsumerAttachment",
292
+ });
293
+ /** Wait for cell eviction to complete. Refusal or cancellation returns 409, unavailable admission or actor returns 503, and other failures return 500. Failure bodies contain {ok:false,error:{kind,reason}}. Use only a trusted internal listener. */
294
+ export const evictCell = /*@__PURE__*/ API.make(() => ({
295
+ input: EvictCellRequest,
296
+ output: OkResponse,
297
+ errors: [MalformedScope, EvictionRefused, EvictionCancelled, EvictionFailed],
298
+ protocol: CelldProtocol,
299
+ }));
300
+ /** Read the snapshot from the trusted internal listener. This endpoint is unauthenticated. */
301
+ export const getNodeState = /*@__PURE__*/ API.make(() => ({
302
+ input: GetNodeStateRequest,
303
+ output: NodeState,
304
+ errors: [],
305
+ protocol: CelldProtocol,
306
+ }));
307
+ export const pauseRebalancing = /*@__PURE__*/ API.make(() => ({
308
+ input: PauseRebalancingRequest,
309
+ output: RebalanceResponse,
310
+ errors: [NodeHasNoLease],
311
+ protocol: CelldProtocol,
312
+ }));
313
+ /** Force adoption of the existing object-store deployment pointer. This does not upload a deployment. A standalone node without a deployment watcher may wait indefinitely; set a request timeout. */
314
+ export const reloadDeployment = /*@__PURE__*/ API.make(() => ({
315
+ input: ReloadDeploymentRequest,
316
+ output: ReloadResponse,
317
+ errors: [ReloadFailed, NodeUnavailable],
318
+ protocol: CelldProtocol,
319
+ }));
320
+ export const resumeRebalancing = /*@__PURE__*/ API.make(() => ({
321
+ input: ResumeRebalancingRequest,
322
+ output: RebalanceResponse,
323
+ errors: [NodeHasNoLease],
324
+ protocol: CelldProtocol,
325
+ }));
326
+ /** Resolve or activate a cell. A remote owner returns status 307 with routing information, not an HTTP Location redirect. */
327
+ export const routeCell = /*@__PURE__*/ API.make(() => ({
328
+ input: RouteCellRequest,
329
+ output: RouteCellResponse,
330
+ errors: [MalformedScope, NodeUnavailable],
331
+ protocol: CelldProtocol,
332
+ }));
333
+ /** Gracefully stop this node. handoff=preserve retains ownership for a same-node reload. Only call on a trusted internal listener. */
334
+ export const shutdownNode = /*@__PURE__*/ API.make(() => ({
335
+ input: ShutdownNodeRequest,
336
+ output: OkResponse,
337
+ errors: [],
338
+ protocol: CelldProtocol,
339
+ }));
340
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/services/node.ts"],"names":[],"mappings":"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"}