alasio 5.0.3 → 6.0.0

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 (105) hide show
  1. package/dist/cli/src/branches.js +6 -14
  2. package/dist/cli/src/branches.js.map +1 -1
  3. package/dist/cli/src/capacity.js +46 -0
  4. package/dist/cli/src/capacity.js.map +1 -0
  5. package/dist/cli/src/cluster/k3s.js +12 -4
  6. package/dist/cli/src/cluster/k3s.js.map +1 -1
  7. package/dist/cli/src/cluster/node.js +2 -2
  8. package/dist/cli/src/cluster/node.js.map +1 -1
  9. package/dist/cli/src/commands/branch.js +2 -1
  10. package/dist/cli/src/commands/branch.js.map +1 -1
  11. package/dist/cli/src/commands/restore-filer-store.js +236 -0
  12. package/dist/cli/src/commands/restore-filer-store.js.map +1 -0
  13. package/dist/cli/src/commands/status.js +110 -9
  14. package/dist/cli/src/commands/status.js.map +1 -1
  15. package/dist/cli/src/commands/uninstall.js +1 -1
  16. package/dist/cli/src/commands/uninstall.js.map +1 -1
  17. package/dist/cli/src/commands/up.js +2 -1
  18. package/dist/cli/src/commands/up.js.map +1 -1
  19. package/dist/cli/src/commands.js +2 -1
  20. package/dist/cli/src/commands.js.map +1 -1
  21. package/dist/cli/src/config.js +13 -4
  22. package/dist/cli/src/config.js.map +1 -1
  23. package/dist/cli/src/install.js +9 -3
  24. package/dist/cli/src/install.js.map +1 -1
  25. package/dist/cli/src/kube/api.js +11 -3
  26. package/dist/cli/src/kube/api.js.map +1 -1
  27. package/dist/cli/src/kube/apply.js +116 -13
  28. package/dist/cli/src/kube/apply.js.map +1 -1
  29. package/dist/cli/src/kube/autoscalers.js +48 -0
  30. package/dist/cli/src/kube/autoscalers.js.map +1 -0
  31. package/dist/cli/src/kube/object-store-scale.js +116 -0
  32. package/dist/cli/src/kube/object-store-scale.js.map +1 -0
  33. package/dist/cli/src/kube/rollout.js +2 -0
  34. package/dist/cli/src/kube/rollout.js.map +1 -1
  35. package/dist/cli/src/manifests/admission.js +296 -0
  36. package/dist/cli/src/manifests/admission.js.map +1 -0
  37. package/dist/cli/src/manifests/agent-sandbox.js +6 -3
  38. package/dist/cli/src/manifests/agent-sandbox.js.map +1 -1
  39. package/dist/cli/src/manifests/alasio.js +34 -12
  40. package/dist/cli/src/manifests/alasio.js.map +1 -1
  41. package/dist/cli/src/manifests/cloudeventsources.eventing.keda.sh.json +219 -0
  42. package/dist/cli/src/manifests/clustercloudeventsources.eventing.keda.sh.json +218 -0
  43. package/dist/cli/src/manifests/clustertriggerauthentications.keda.sh.json +997 -0
  44. package/dist/cli/src/manifests/collector.js +77 -38
  45. package/dist/cli/src/manifests/collector.js.map +1 -1
  46. package/dist/cli/src/manifests/common.js +11 -0
  47. package/dist/cli/src/manifests/common.js.map +1 -1
  48. package/dist/cli/src/manifests/config.js +217 -31
  49. package/dist/cli/src/manifests/config.js.map +1 -1
  50. package/dist/cli/src/manifests/controllers.js +39 -0
  51. package/dist/cli/src/manifests/controllers.js.map +1 -0
  52. package/dist/cli/src/manifests/disruption.js +47 -0
  53. package/dist/cli/src/manifests/disruption.js.map +1 -0
  54. package/dist/cli/src/manifests/grafana.js +49 -5
  55. package/dist/cli/src/manifests/grafana.js.map +1 -1
  56. package/dist/cli/src/manifests/headroom.js +40 -0
  57. package/dist/cli/src/manifests/headroom.js.map +1 -0
  58. package/dist/cli/src/manifests/index.js +12 -3
  59. package/dist/cli/src/manifests/index.js.map +1 -1
  60. package/dist/cli/src/manifests/juicefs-csi.js +9 -6
  61. package/dist/cli/src/manifests/juicefs-csi.js.map +1 -1
  62. package/dist/cli/src/manifests/keda.js +271 -0
  63. package/dist/cli/src/manifests/keda.js.map +1 -0
  64. package/dist/cli/src/manifests/lake.js +7 -3
  65. package/dist/cli/src/manifests/lake.js.map +1 -1
  66. package/dist/cli/src/manifests/neon.js +33 -25
  67. package/dist/cli/src/manifests/neon.js.map +1 -1
  68. package/dist/cli/src/manifests/network-policies.js +90 -10
  69. package/dist/cli/src/manifests/network-policies.js.map +1 -1
  70. package/dist/cli/src/manifests/object-store.js +506 -77
  71. package/dist/cli/src/manifests/object-store.js.map +1 -1
  72. package/dist/cli/src/manifests/priorities.js +30 -0
  73. package/dist/cli/src/manifests/priorities.js.map +1 -0
  74. package/dist/cli/src/manifests/scaledjobs.keda.sh.json +7507 -0
  75. package/dist/cli/src/manifests/scaledobjects.keda.sh.json +564 -0
  76. package/dist/cli/src/manifests/scalers.js +24 -0
  77. package/dist/cli/src/manifests/scalers.js.map +1 -0
  78. package/dist/cli/src/manifests/sizing.js +40 -0
  79. package/dist/cli/src/manifests/sizing.js.map +1 -0
  80. package/dist/cli/src/manifests/triggerauthentications.keda.sh.json +992 -0
  81. package/dist/cli/src/manifests/valkey.js +63 -35
  82. package/dist/cli/src/manifests/valkey.js.map +1 -1
  83. package/dist/cli/src/manifests/verticalpodautoscalercheckpoints.autoscaling.k8s.io.json +250 -0
  84. package/dist/cli/src/manifests/verticalpodautoscalers.autoscaling.k8s.io.json +837 -0
  85. package/dist/cli/src/manifests/vpa.js +220 -0
  86. package/dist/cli/src/manifests/vpa.js.map +1 -0
  87. package/dist/cli/src/manifests/workspace-storage.js +12 -2
  88. package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
  89. package/dist/cli/src/object-store.js +57 -0
  90. package/dist/cli/src/object-store.js.map +1 -0
  91. package/dist/cli/src/release.js +6 -6
  92. package/dist/cli/src/target.js +1 -1
  93. package/dist/cli/src/target.js.map +1 -1
  94. package/dist/cluster/node/pins.json +2 -2
  95. package/dist/neon/control/secrets.js +3 -0
  96. package/dist/neon/control/secrets.js.map +1 -1
  97. package/dist/src/kube/busy-label.js +13 -0
  98. package/dist/src/kube/busy-label.js.map +1 -0
  99. package/dist/src/kube/config.js +5 -1
  100. package/dist/src/kube/config.js.map +1 -1
  101. package/dist/src/kube/sandbox-shape.js +62 -0
  102. package/dist/src/kube/sandbox-shape.js.map +1 -0
  103. package/dist/src/sandbox/names.js +44 -0
  104. package/dist/src/sandbox/names.js.map +1 -0
  105. package/package.json +1 -1
@@ -0,0 +1,236 @@
1
+ import { Console, Effect, Option, Schema, Stream } from "effect";
2
+ import { Argument, Command, Flag, Prompt } from "effect/cli";
3
+ import { loadConfig } from "../config.js";
4
+ import { installConfig } from "../install.js";
5
+ import { kind, KubeApi, refOf } from "../kube/api.js";
6
+ import { awaitEnded, awaitGone, awaitReady, selectorOf } from "../kube/rollout.js";
7
+ import { NAMESPACE, RELEASE } from "../manifests/common.js";
8
+ import { BACKUPS_LISTING, backupsListing, COMPONENTS, FILER_STORE, filerStoreRestore, RESTORE, RESTORED, } from "../manifests/object-store.js";
9
+ import { onCluster, runIn, timeoutFlag, waitOptions } from "./common.js";
10
+ /** The manager what the command changes is patched as. */
11
+ const MANAGER = "alasio-restore-filer-store";
12
+ /** The annotation that marks what the command stopped, with what it was, as JSON. */
13
+ const MARK = "alasio.dev/restore-filer-store";
14
+ /** KEDA's annotations that pause a ScaledObject: at a count of replicas, or where it is. */
15
+ const PAUSED_REPLICAS = "autoscaling.keda.sh/paused-replicas";
16
+ const PAUSED = "autoscaling.keda.sh/paused";
17
+ /** Every object of the installation, main's and its branch environments'. */
18
+ const INSTANCE = selectorOf({ "app.kubernetes.io/instance": RELEASE });
19
+ /** The label of a Job's pods, of its name. */
20
+ const JOB_NAME = "batch.kubernetes.io/job-name";
21
+ /** A backup's file, of its stamp. */
22
+ const BACKUP_FILE = /^filer-store-(\d{8}T\d{6}Z)\.rdb$/u;
23
+ /** A restore alasio cannot make, and why. */
24
+ export class RestoreRefused extends Schema.TaggedError()("RestoreRefused", {
25
+ message: Schema.String,
26
+ }) {
27
+ }
28
+ /** The operator did not confirm. */
29
+ export class RestoreNotConfirmed extends Schema.TaggedError()("RestoreNotConfirmed", {}) {
30
+ get message() {
31
+ return "nothing was stopped or restored";
32
+ }
33
+ }
34
+ /** `stamp` as a time people read: 2026-10-13 09:23:00 UTC. */
35
+ const when = (stamp) => stamp.replace(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/u, (_, y, m, d, hh, mm, ss) => `${y}-${m}-${d} ${hh}:${mm}:${ss} UTC`);
36
+ /** What `object`'s mark says it was, or null where it has none. */
37
+ const markOf = (object) => {
38
+ const mark = object.metadata?.annotations?.[MARK];
39
+ return mark === undefined ? null : JSON.parse(mark);
40
+ };
41
+ /** Everything of `kinds` of the installation, in every namespace. */
42
+ const listed = (kinds) => Effect.flatMap(KubeApi, (kube) => Effect.map(Effect.forEach(kinds, (each) => kube.list(each, { labelSelector: INSTANCE })), (lists) => lists.flat()));
43
+ const WORKLOADS = [kind("Deployment"), kind("StatefulSet")];
44
+ /** Deletes `refs`, Jobs with their pods, and waits until they are gone. */
45
+ const removed = Effect.fnUntraced(function* (refs, options) {
46
+ const kube = yield* KubeApi;
47
+ const jobs = refs.filter((ref) => ref.kind === "Job");
48
+ const pods = (yield* Effect.forEach(jobs, (job) => kube.list(kind("Pod"), { namespace: NAMESPACE, labelSelector: selectorOf({ [JOB_NAME]: job.name }) }))).flat().map(refOf);
49
+ yield* Effect.forEach([...refs, ...pods], (ref) => kube.remove(ref));
50
+ yield* awaitGone([...refs, ...pods], options);
51
+ });
52
+ /** What the newest pod of the Job `name` printed, in `container`. */
53
+ const printed = Effect.fnUntraced(function* (name, container) {
54
+ const kube = yield* KubeApi;
55
+ const pods = yield* kube.list(kind("Pod"), { namespace: NAMESPACE, labelSelector: selectorOf({ [JOB_NAME]: name }) });
56
+ const newest = pods.toSorted((a, b) => Date.parse(b.metadata?.creationTimestamp?.toString() ?? "0") - Date.parse(a.metadata?.creationTimestamp?.toString() ?? "0"))[0];
57
+ if (!newest?.metadata?.name)
58
+ return yield* new RestoreRefused({ message: `the Job ${name} has no pod whose output could be read` });
59
+ return yield* kube.logs(NAMESPACE, newest.metadata.name, { container }).pipe(Stream.decodeText(), Stream.mkString);
60
+ });
61
+ /** The filer store's backups, by their stamps, the newest first, as a Job on their volume lists them. */
62
+ const backups = Effect.fnUntraced(function* (config, options) {
63
+ const kube = yield* KubeApi;
64
+ const job = backupsListing(config);
65
+ yield* removed([refOf(job)], options);
66
+ yield* kube.apply(job, MANAGER);
67
+ yield* awaitReady([refOf(job)], options);
68
+ const files = (yield* printed(BACKUPS_LISTING, "list")).split("\n").map((line) => line.trim());
69
+ yield* removed([refOf(job)], options);
70
+ return files.flatMap((file) => BACKUP_FILE.exec(file)?.slice(1, 2) ?? []).toSorted().toReversed();
71
+ });
72
+ /** The workloads that write to the store, through it: alasio and the data stack, main's and each branch environment's; and its filers and gateways, which write to the filer store. */
73
+ const writers = Effect.map(listed(WORKLOADS), (workloads) => {
74
+ const component = (workload) => workload.metadata?.labels?.["app.kubernetes.io/component"] ?? "";
75
+ const store = new Set(Object.values(COMPONENTS));
76
+ const front = new Set([COMPONENTS.gateway, COMPONENTS.filer]);
77
+ return {
78
+ clients: workloads.filter((workload) => !store.has(component(workload)) && (component(workload) === "alasio" || workload.metadata?.labels?.["alasio.dev/stack"] === "neon")),
79
+ front: workloads.filter((workload) => workload.metadata?.namespace === NAMESPACE && front.has(component(workload))),
80
+ };
81
+ });
82
+ /** The filer store's StatefulSet. */
83
+ const filerStore = Effect.flatMap(KubeApi, (kube) => kube.get({ ...kind("StatefulSet"), namespace: NAMESPACE, name: FILER_STORE })).pipe(Effect.flatMap((found) => (found ? Effect.succeed(found) : Effect.fail(new RestoreRefused({ message: "the object store has no filer store in this cluster: alasio up makes it" })))));
84
+ /** The ScaledObjects that scale any of `workloads`. */
85
+ const scalersOf = (workloads) => Effect.map(listed([kind("ScaledObject")]), (scalers) => scalers.filter(({ metadata, spec }) => workloads.some((workload) => workload.metadata?.namespace === metadata?.namespace && workload.kind === (spec?.scaleTargetRef?.kind ?? "Deployment") && workload.metadata?.name === spec?.scaleTargetRef?.name)));
86
+ /**
87
+ * Stops `workloads`: their ScaledObjects paused at none, each marked with how it was
88
+ * paused before; each scaled to none, marked with its replicas before; then waits until
89
+ * their pods are gone.
90
+ */
91
+ const stop = Effect.fnUntraced(function* (workloads, options) {
92
+ const kube = yield* KubeApi;
93
+ for (const scaler of yield* scalersOf(workloads)) {
94
+ const annotations = scaler.metadata?.annotations ?? {};
95
+ const before = markOf(scaler) ?? { [PAUSED_REPLICAS]: annotations[PAUSED_REPLICAS] ?? null, [PAUSED]: annotations[PAUSED] ?? null };
96
+ yield* kube.patch(refOf(scaler), { metadata: { annotations: { [MARK]: JSON.stringify(before), [PAUSED_REPLICAS]: "0", [PAUSED]: null } } }, MANAGER);
97
+ }
98
+ for (const workload of workloads) {
99
+ const before = markOf(workload) ?? { replicas: workload.spec?.replicas ?? 1 };
100
+ yield* kube.patch(refOf(workload), { metadata: { annotations: { [MARK]: JSON.stringify(before) } }, spec: { replicas: 0 } }, MANAGER);
101
+ }
102
+ const pods = yield* Effect.forEach(workloads, (workload) => kube.list(kind("Pod"), { namespace: workload.metadata?.namespace ?? NAMESPACE, labelSelector: selectorOf(workload.spec?.selector?.matchLabels ?? {}) }));
103
+ yield* awaitGone(pods.flat().map(refOf), options);
104
+ });
105
+ /** Starts again what of `workloads` was stopped, as its mark says, and their ScaledObjects, and waits until they run. */
106
+ const start = Effect.fnUntraced(function* (workloads, options) {
107
+ const kube = yield* KubeApi;
108
+ const stopped = workloads.filter((workload) => markOf(workload) !== null);
109
+ for (const workload of stopped) {
110
+ const { replicas } = markOf(workload) ?? { replicas: 1 };
111
+ yield* kube.patch(refOf(workload), { metadata: { annotations: { [MARK]: null } }, spec: { replicas } }, MANAGER);
112
+ }
113
+ for (const scaler of (yield* scalersOf(stopped)).filter((each) => markOf(each) !== null)) {
114
+ yield* kube.patch(refOf(scaler), { metadata: { annotations: { ...markOf(scaler), [MARK]: null } } }, MANAGER);
115
+ }
116
+ yield* awaitReady(stopped.map(refOf), options);
117
+ });
118
+ /** Suspends the installation's CronJobs, each marked with whether it was before, and waits until the Jobs of any running end. */
119
+ const suspendCronJobs = Effect.fnUntraced(function* (options) {
120
+ const kube = yield* KubeApi;
121
+ for (const cronJob of yield* listed([kind("CronJob")])) {
122
+ const before = markOf(cronJob) ?? { suspend: cronJob.spec?.suspend ?? false };
123
+ yield* kube.patch(refOf(cronJob), { metadata: { annotations: { [MARK]: JSON.stringify(before) } }, spec: { suspend: true } }, MANAGER);
124
+ }
125
+ const running = (yield* listed([kind("Job")])).filter(({ status }) => (status?.active ?? 0) > 0);
126
+ if (running.length > 0)
127
+ yield* Effect.logInfo(`waiting for the Jobs that run to end: ${running.map(({ metadata }) => metadata?.name).join(", ")}`);
128
+ yield* awaitEnded(running.map(refOf), options);
129
+ });
130
+ /** Resumes the CronJobs suspendCronJobs suspended, as each was before. */
131
+ const resumeCronJobs = Effect.gen(function* () {
132
+ const kube = yield* KubeApi;
133
+ for (const cronJob of yield* listed([kind("CronJob")])) {
134
+ const before = markOf(cronJob);
135
+ if (before)
136
+ yield* kube.patch(refOf(cronJob), { metadata: { annotations: { [MARK]: null } }, spec: { suspend: before.suspend } }, MANAGER);
137
+ }
138
+ });
139
+ /** The keys the filer store holds, and whether its last append-only file rewrite went well, as it says, logged in as its collector. */
140
+ const filerStoreState = Effect.gen(function* () {
141
+ const kube = yield* KubeApi;
142
+ const pods = yield* kube.list(kind("Pod"), { namespace: NAMESPACE, labelSelector: selectorOf({ "app.kubernetes.io/instance": RELEASE, "app.kubernetes.io/component": COMPONENTS.filerStore }) });
143
+ const pod = pods.find(({ status }) => status?.phase === "Running")?.metadata?.name;
144
+ if (!pod)
145
+ return yield* new RestoreRefused({ message: "the filer store runs no pod to check" });
146
+ const { stdout } = yield* runIn({ namespace: NAMESPACE, pod, container: "valkey" }, ["/bin/sh", "-c", "valkey-cli --user collector info keyspace; valkey-cli --user collector info persistence"]);
147
+ const keys = [...stdout.matchAll(/^db\d+:keys=(\d+),/gmu)].reduce((sum, [, count]) => sum + Number(count), 0);
148
+ return { keys, rewritten: /^aof_last_bgrewrite_status:ok\s*$/mu.test(stdout) };
149
+ });
150
+ /**
151
+ * Puts the backup `stamp` back: stops what writes to the store, alasio and Neon first,
152
+ * while the store takes what they write as they stop, then its filers, and the filer
153
+ * store; loads the backup onto its volume; starts the filer store and checks it; and
154
+ * starts the rest again.
155
+ */
156
+ const restore = Effect.fnUntraced(function* (settings, stamp, options) {
157
+ const kube = yield* KubeApi;
158
+ const store = yield* filerStore;
159
+ const { clients, front } = yield* writers;
160
+ yield* Effect.logInfo("stopping alasio, Neon and the lake, and the installation's CronJobs");
161
+ yield* suspendCronJobs(options);
162
+ yield* stop(clients, options);
163
+ yield* Effect.logInfo("stopping the object store's gateways and filers, and its filer store");
164
+ yield* stop(front, options);
165
+ yield* stop([store], options);
166
+ yield* Effect.logInfo(`putting the backup of ${when(stamp)} back`);
167
+ const objects = filerStoreRestore(settings, `filer-store-${stamp}.rdb`);
168
+ const jobs = objects.map(refOf);
169
+ yield* removed(jobs, options);
170
+ yield* Effect.forEach(objects, (object) => kube.apply(object, MANAGER));
171
+ yield* awaitReady([{ ...kind("Job"), namespace: NAMESPACE, name: RESTORE }], options);
172
+ const restored = Number(RESTORED.exec(yield* printed(RESTORE, "restore"))?.[1] ?? Number.NaN);
173
+ yield* removed(jobs, options);
174
+ if (Number.isNaN(restored))
175
+ return yield* new RestoreRefused({ message: "the restore's Job did not say how many keys it restored" });
176
+ yield* Effect.logInfo("starting the filer store on it");
177
+ yield* start([yield* filerStore], options);
178
+ const state = yield* filerStoreState;
179
+ if (state.keys !== restored || !state.rewritten) {
180
+ return yield* new RestoreRefused({
181
+ message: `the filer store holds ${state.keys} keys of the ${restored} restored${state.rewritten ? "" : ", and its append-only file was not written well"}: ` +
182
+ `everything else stays stopped; alasio restore-filer-store ${stamp} again puts the backup back anew`,
183
+ });
184
+ }
185
+ yield* Effect.logInfo("starting the object store's filers and gateways, then alasio, Neon and the lake, and the CronJobs");
186
+ const again = yield* writers;
187
+ yield* start(again.front, options);
188
+ yield* start(again.clients, options);
189
+ yield* resumeCronJobs;
190
+ yield* Console.log(`The filer store is as it was at ${when(stamp)}, with its ${restored} keys, and alasio runs on it again.`);
191
+ });
192
+ /** What a restore rolls back, as the command's confirmation and its help say. */
193
+ const ROLLS_BACK = "The store's namespace, every bucket, object, version and tag, goes back to when the backup was taken: what was written since is lost, " +
194
+ "and what was deleted since is listed again with its data gone; Neon's own files go back with it, so the database may lose what was written since too, " +
195
+ "and workspace storage's files written since lose their data.";
196
+ export const restoreFilerStore = Command.make("restore-filer-store", {
197
+ backup: Argument.String("backup").pipe(Argument.optional, Argument.withDescription("The backup, by its stamp, as the list says it, such as 20261013T092300Z; without one, the backups are listed")),
198
+ yes: Flag.Boolean("yes").pipe(Flag.withAlias("y"), Flag.withDefault(false), Flag.withDescription("Do not ask for confirmation")),
199
+ timeout: timeoutFlag,
200
+ }, ({ backup, yes, timeout }) => onCluster(() => Effect.gen(function* () {
201
+ const settings = yield* installConfig(yield* loadConfig);
202
+ const { bundled } = settings.objectStore;
203
+ if (!settings.neon.enabled || !bundled.enabled)
204
+ return yield* new RestoreRefused({ message: "alasio runs no bundled object store, whose filer store this restores" });
205
+ if (!bundled.filerStore.backups.enabled)
206
+ return yield* new RestoreRefused({ message: "the filer store's backups are off (objectStore.bundled.filerStore.backups.enabled), so there is none to restore" });
207
+ const options = waitOptions(timeout);
208
+ const stamps = yield* backups(settings, options);
209
+ if (Option.isNone(backup)) {
210
+ yield* Console.log(stamps.length === 0
211
+ ? "The filer store has no backups yet."
212
+ : [`The filer store's backups, the newest first:`, ...stamps.map((stamp) => ` ${stamp} ${when(stamp)}`), "", "alasio restore-filer-store <backup> puts one back."].join("\n"));
213
+ return;
214
+ }
215
+ const stamp = backup.value;
216
+ if (!stamps.includes(stamp)) {
217
+ return yield* new RestoreRefused({ message: `the filer store has no backup ${stamp}${stamps.length > 0 ? `; it has ${stamps.join(", ")}` : ", nor any other yet"}` });
218
+ }
219
+ const confirmed = yes || (yield* Prompt.run(Prompt.Confirm({
220
+ message: `Put the filer store back as it was at ${when(stamp)}, stopping alasio, Neon, the lake and the object store until it is? ${ROLLS_BACK}`,
221
+ initial: false,
222
+ })));
223
+ if (!confirmed)
224
+ return yield* new RestoreNotConfirmed();
225
+ yield* restore(settings, stamp, options).pipe(Effect.tapError(() => Effect.logInfo(`what was stopped stays stopped: alasio restore-filer-store ${stamp} again picks up where this stopped`)));
226
+ }))).pipe(Command.withShortDescription("Put the object store's filer store back from a backup"), Command.withDescription("Lists the bundled object store's filer store's backups, the newest first, which are taken hourly; or, given one, puts the filer store back as it was then. " +
227
+ "The filer store keeps the store's namespace: a store whose filer store is lost has its data on its volumes with nothing to find it by, which " +
228
+ "the gateways refuse to start on. " +
229
+ `${ROLLS_BACK} ` +
230
+ "It stops alasio, Neon and the lake (main's and branch environments'), then the object store's gateways and filers, and the installation's CronJobs, " +
231
+ "waiting for their running Jobs to end; sessions keep running, their workspace storage failing to write until the store is back. " +
232
+ "It loads the backup onto the filer store's volume, checks the filer store holds as many keys as the backup, and starts everything again as it was: " +
233
+ "its replicas, and its ScaledObjects and CronJobs paused or suspended only where they were before. " +
234
+ "Should it stop midway, what it stopped stays stopped, and running it again with the same backup picks up where it stopped. " +
235
+ "Past --timeout a wait gives up, saying what it still waits for."));
236
+ //# sourceMappingURL=restore-filer-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore-filer-store.js","sourceRoot":"","sources":["../../../../src/commands/restore-filer-store.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Console, Effect, Schema } from "effect";
1
+ import { Console, Effect, Option, Schema } from "effect";
2
2
  import { Command } from "effect/cli";
3
3
  import { DockerCluster } from "../cluster/docker.js";
4
4
  import { HostCluster } from "../cluster/host.js";
@@ -6,12 +6,15 @@ import { readySince } from "../cluster/k3s.js";
6
6
  import { describeShortfall, InotifyLimitsTooLow, inotifyShortfalls, requireLocalMachine } from "../cluster/machine.js";
7
7
  import { SERVICE } from "../cluster/node.js";
8
8
  import { loadConfig } from "../config.js";
9
- import { describeRef, kind, KubeApi, refOf } from "../kube/api.js";
9
+ import { describeMemory, describeScale, describeSizing, memoryBytes } from "../capacity.js";
10
+ import { describeRef, hasStatus, kind, KubeApi, refOf } from "../kube/api.js";
10
11
  import { INSTALLATION_SELECTOR, WORKLOADS } from "../kube/apply.js";
11
- import { diagnose, readiness } from "../kube/rollout.js";
12
- import { RELEASE } from "../manifests/common.js";
12
+ import { diagnose, readiness, selectorOf } from "../kube/rollout.js";
13
+ import { NAMESPACE, RELEASE } from "../manifests/common.js";
14
+ import { MASTER, METRICS_PORT, VOLUME_SERVER } from "../manifests/object-store.js";
15
+ import { describeReplication, describeVolumeServer, volumeServerDisk } from "../object-store.js";
13
16
  import { describeTarget, dockerCluster, kubeApi, resolveTarget } from "../target.js";
14
- import { notRunning } from "./common.js";
17
+ import { notRunning, runIn } from "./common.js";
15
18
  /** Some of alasio's workloads do not run as they should. */
16
19
  export class Unhealthy extends Schema.TaggedError()("Unhealthy", {
17
20
  notReady: Schema.Number,
@@ -23,6 +26,79 @@ export class Unhealthy extends Schema.TaggedError()("Unhealthy", {
23
26
  : `${this.notReady} of alasio's ${this.of} workloads are not ready`;
24
27
  }
25
28
  }
29
+ /** What `look` finds, or none where this kubeconfig's rights do not reach it. */
30
+ const seen = (look) => look.pipe(Effect.map(Option.some), Effect.catchIf(hasStatus(403), () => Effect.succeedNone));
31
+ /**
32
+ * The installation's objects of `kindOf`, in every namespace, or in alasio's alone where
33
+ * this kubeconfig may list no more (`whole` false); none where the cluster lacks their CRD.
34
+ */
35
+ const installedOf = (kindOf) => Effect.gen(function* () {
36
+ const kube = yield* KubeApi;
37
+ const everywhere = yield* seen(kube.list(kindOf, { labelSelector: INSTALLATION_SELECTOR }));
38
+ if (Option.isSome(everywhere))
39
+ return { objects: everywhere.value, whole: true };
40
+ return { objects: yield* kube.list(kindOf, { namespace: NAMESPACE, labelSelector: INSTALLATION_SELECTOR }), whole: false };
41
+ }).pipe(Effect.catchIf(hasStatus(404), () => Effect.succeed({ objects: [], whole: true })));
42
+ /** The object of `objects` in `workload`'s namespace that names it `by`. */
43
+ const of = (objects, workload, by) => objects.find((object) => object.metadata?.namespace === workload.metadata?.namespace && by(object) === workload.metadata?.name);
44
+ /**
45
+ * Whether the cluster's metrics server serves, as its APIService says, null where this
46
+ * kubeconfig may not read it; and the cluster's memory: what its pods that run or are to
47
+ * request, and use now where the metrics server measures it, of what the nodes have for
48
+ * pods, null where this kubeconfig may not list them.
49
+ */
50
+ const memory = Effect.gen(function* () {
51
+ const kube = yield* KubeApi;
52
+ const metrics = yield* seen(kube.get({ ...kind("APIService"), name: "v1beta1.metrics.k8s.io" }));
53
+ const measures = Option.match(metrics, {
54
+ onNone: () => null,
55
+ onSome: (service) => service?.status?.conditions?.some(({ type, status }) => type === "Available" && status === "True") ?? false,
56
+ });
57
+ const nodes = Option.getOrNull(yield* seen(kube.list(kind("Node"))));
58
+ const pods = Option.getOrNull(yield* seen(kube.list(kind("Pod"))));
59
+ const usage = measures ? Option.getOrNull(yield* seen(kube.list(kind("NodeMetrics")))) : null;
60
+ const running = pods?.filter(({ status }) => status?.phase !== "Succeeded" && status?.phase !== "Failed");
61
+ return {
62
+ measures,
63
+ memory: nodes && running
64
+ ? {
65
+ requested: running.flatMap(({ spec }) => spec?.containers ?? []).reduce((sum, { resources }) => sum + memoryBytes(resources?.requests?.["memory"] ?? "0"), 0),
66
+ used: usage ? usage.reduce((sum, node) => sum + memoryBytes(node.usage?.memory ?? "0"), 0) : null,
67
+ allocatable: nodes.reduce((sum, node) => sum + memoryBytes(node.status?.allocatable?.["memory"] ?? "0"), 0),
68
+ }
69
+ : null,
70
+ };
71
+ });
72
+ /** The StatefulSet of `workloads` named `name`, in alasio's namespace. */
73
+ const statefulSet = (workloads, name) => workloads.find(({ kind: of, metadata }) => of === "StatefulSet" && metadata?.namespace === NAMESPACE && metadata.name === name);
74
+ /**
75
+ * What the bundled object store keeps, where it runs among `workloads`: the copies of
76
+ * each object, as its masters are told; and of each volume server, its disk, as its
77
+ * metrics say it, read in its pod; or why it is not measured.
78
+ */
79
+ const objectStore = (workloads) => Effect.gen(function* () {
80
+ const master = statefulSet(workloads, MASTER);
81
+ const volumeServers = statefulSet(workloads, VOLUME_SERVER);
82
+ if (!master || !volumeServers)
83
+ return [];
84
+ const kube = yield* KubeApi;
85
+ const replication = master.spec?.template.spec?.containers[0]?.args?.find((arg) => arg.startsWith("-defaultReplication="))?.split("=")[1] ?? "000";
86
+ const listed = yield* seen(kube.list(kind("Pod"), { namespace: NAMESPACE, labelSelector: selectorOf(volumeServers.spec?.selector.matchLabels ?? {}) }));
87
+ if (Option.isNone(listed))
88
+ return [describeReplication(replication), " its volume servers: not seen, as this kubeconfig may not list their pods"];
89
+ const disks = yield* Effect.forEach(listed.value.toSorted((a, b) => (a.metadata?.name ?? "").localeCompare(b.metadata?.name ?? "")), (pod) => {
90
+ const name = pod.metadata?.name ?? "";
91
+ if (pod.status?.phase !== "Running")
92
+ return Effect.succeed(`${name}: not measured, as it does not run`);
93
+ return runIn({ namespace: NAMESPACE, pod: name, container: "volume" }, ["wget", "-q", "-O", "-", `http://127.0.0.1:${METRICS_PORT}/metrics`]).pipe(Effect.map(({ exitCode, stdout }) => {
94
+ const disk = exitCode === 0 ? volumeServerDisk(stdout) : null;
95
+ return disk ? describeVolumeServer(name, disk) : `${name}: not measured, as its metrics do not say its disk`;
96
+ }), Effect.catchIf((error) => error._tag === "KubeApiError" && hasStatus(403)(error), () => Effect.succeed(`${name}: not measured, as this kubeconfig may not run commands in its pods`)), Effect.catch((error) => Effect.succeed(`${name}: not measured: ${error.message}`)));
97
+ });
98
+ return [describeReplication(replication), ...disks.map((line) => ` ${line}`)];
99
+ });
100
+ /** Whether `scaledObject` scales on what the metrics server measures: its pods' CPU. */
101
+ const onResources = (scaledObject) => scaledObject.spec.triggers.some(({ type }) => type === "cpu");
26
102
  export const status = Command.make("status", {}, () => Effect.gen(function* () {
27
103
  const config = yield* loadConfig;
28
104
  const target = yield* resolveTarget(config);
@@ -55,29 +131,54 @@ export const status = Command.make("status", {}, () => Effect.gen(function* () {
55
131
  }
56
132
  yield* Effect.provide(Effect.gen(function* () {
57
133
  const kube = yield* KubeApi;
58
- const workloads = (yield* Effect.forEach(WORKLOADS, (name) => kube.list(kind(name), { labelSelector: INSTALLATION_SELECTOR })))
59
- .flat()
60
- .sort((a, b) => (a.metadata?.name ?? "").localeCompare(b.metadata?.name ?? ""));
134
+ const listed = yield* Effect.forEach(WORKLOADS, (name) => installedOf(kind(name)));
135
+ const workloads = listed.flatMap(({ objects }) => objects).sort((a, b) => (a.metadata?.name ?? "").localeCompare(b.metadata?.name ?? ""));
61
136
  const version = workloads.find((object) => object.kind === "Deployment" && object.metadata?.name === RELEASE)?.metadata?.labels?.["app.kubernetes.io/version"];
137
+ const scaledObjects = (yield* installedOf(kind("ScaledObject"))).objects;
138
+ const sizings = (yield* installedOf(kind("VerticalPodAutoscaler"))).objects;
62
139
  yield* Console.log(`alasio${version ? ` ${version}` : ""}, in ${describeTarget(target)} (${kube.server}):`);
63
140
  let notReady = 0;
64
141
  for (const workload of workloads) {
65
142
  const state = readiness(workload);
143
+ // A DaemonSet runs a pod on every node it schedules to, of no scale of its own.
144
+ const scale = workload.kind === "DaemonSet" ? "" : `${describeScale(workload, of(scaledObjects, workload, ({ spec }) => spec.scaleTargetRef.name))}; `;
145
+ const sizing = ` ${scale}${describeSizing(workload, of(sizings, workload, ({ spec }) => spec.targetRef.name))}`;
66
146
  if (state._tag === "Ready") {
67
147
  yield* Console.log(` ${describeRef(refOf(workload))}: ready`);
148
+ yield* Console.log(sizing);
68
149
  continue;
69
150
  }
70
151
  notReady += 1;
71
152
  yield* Console.log(` ${describeRef(refOf(workload))}: ${state._tag === "Waiting" ? state.status : state.reason}`);
153
+ yield* Console.log(sizing);
72
154
  for (const line of yield* diagnose(refOf(workload)))
73
155
  yield* Console.log(` ${line}`);
74
156
  }
157
+ if (listed.some(({ whole }) => !whole)) {
158
+ yield* Console.log(` alasio's workloads outside its namespace, ${NAMESPACE}: not seen, as this kubeconfig may list them there alone`);
159
+ }
160
+ for (const line of yield* objectStore(workloads))
161
+ yield* Console.log(line);
162
+ const cluster = yield* memory;
163
+ yield* Console.log(cluster.memory ? describeMemory(cluster.memory) : "memory: not seen, as this kubeconfig may not list the cluster's nodes and pods");
164
+ if (cluster.measures === null)
165
+ yield* Console.log("whether the cluster has a metrics server: not seen, as this kubeconfig may not read its APIServices");
166
+ if (cluster.measures === false) {
167
+ const scaled = scaledObjects.filter(onResources).map(({ metadata }) => metadata?.name);
168
+ yield* Console.log(`the cluster has no metrics server: VPA recommends nothing${scaled.length > 0 ? `, and what scales on its CPU (${scaled.join(", ")}) does not scale` : ""}`);
169
+ }
75
170
  if (workloads.length === 0 || notReady > 0)
76
171
  return yield* new Unhealthy({ notReady, of: workloads.length });
77
172
  }), kubeApi(target));
78
173
  if (shortfalls.length > 0)
79
174
  return yield* new InotifyLimitsTooLow({ shortfalls });
80
175
  })).pipe(Command.withShortDescription("Say what runs, and whether it is healthy"), Command.withDescription("Says where alasio runs (and, for the cluster on this machine, k3s's service and node, or its nodes in Docker, and this " +
81
- "machine's inotify limits when they are too low for it), its version, and each of its workloads: ready, or what it is at and why. Exits with 1 when something " +
176
+ "machine's inotify limits when they are too low for it), its version, and each of its workloads: ready, or what it is at and " +
177
+ "why; its replicas, and its scale where KEDA moves it; and its pods' requests, beside " +
178
+ "what VPA recommends once it has measured them. Of the bundled object store, the copies it keeps of each object, and of each " +
179
+ "volume server, as its metrics say: what it may still fill of its disk before it takes no more writes, what it keeps " +
180
+ "free (minFreeSpace), its volumes, and what they take, deleted and not yet compacted away. Then the memory the cluster's pods request and use, of what its nodes have " +
181
+ "for pods, and whether a metrics server measures them, which VPA and what scales on CPU need; of these, what the kubeconfig's " +
182
+ "rights do not reach, it says is not seen. Exits with 1 when something " +
82
183
  "is not ready, or the limits are too low, or this machine is not Linux on x86-64, which the cluster here needs."));
83
184
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -69,7 +69,7 @@ export const uninstall = Command.make("uninstall", {
69
69
  ? `alasio is removed from ${where}, with all its data.`
70
70
  : `alasio is removed from ${where}; its volumes, namespaces and Secrets are kept, and alasio up installs it again with them.`);
71
71
  })).pipe(Command.withShortDescription("Remove alasio"), Command.withDescription("Removes alasio's objects from its cluster, after confirmation, keeping what holds data: volumes, namespaces (with alasio's Secrets " +
72
- "and its workspaces), and the Sandbox CRD, so alasio up installs it again as it was; and what serves volumes that remain, " +
72
+ "and its workspaces), and the CRDs (Sandboxes', KEDA's and VPA's), so alasio up installs it again as it was; and what serves volumes that remain, " +
73
73
  "their StorageClasses and CSI drivers. With --purge it removes those too, workspaces and their volumes before the drivers " +
74
74
  "that delete their data, and when alasio runs in the cluster it made on this machine, that cluster with all it keeps: k3s " +
75
75
  "on the machine itself, with its own uninstall script, and gVisor, or the cluster in Docker; and the file of " +
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ export const up = Command.make("up", { timeout: timeoutFlag }, ({ timeout }) =>
47
47
  "Linux on x86-64: k3s on the machine itself, installing or upgrading k3s and gVisor and setting k3s as the config says, or " +
48
48
  "a cluster in Docker; for either, raising its inotify limits where they are too low for it. What it changes on the machine " +
49
49
  "it changes as root, through sudo, at once, after saying what. Then it applies alasio as the config says, " +
50
- "with this version's images; and waits until it runs, saying what it waits for. Run it again after changing the config. " +
50
+ "with this version's images, and with KEDA and VPA, which scale and size its components, unless the cluster has its own, " +
51
+ "which the config then says to use; and waits until it runs, saying what it waits for. Run it again after changing the config. " +
51
52
  "Past --timeout it says what is still not running and why."));
52
53
  //# sourceMappingURL=up.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"up.js","sourceRoot":"","sources":["../../../../src/commands/up.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../../../src/commands/up.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,12 @@ import { lake } from "./commands/lake.js";
9
9
  import { login } from "./commands/login.js";
10
10
  import { logs } from "./commands/logs.js";
11
11
  import { restart } from "./commands/restart.js";
12
+ import { restoreFilerStore } from "./commands/restore-filer-store.js";
12
13
  import { status } from "./commands/status.js";
13
14
  import { uninstall } from "./commands/uninstall.js";
14
15
  import { up } from "./commands/up.js";
15
16
  import { upgrade } from "./commands/upgrade.js";
16
17
  import { ConfigFlag } from "./config.js";
17
18
  export const alasio = Command.make("alasio").pipe(Command.withDescription("Coding agents you talk to from Telegram: Claude Code and Codex, each conversation with a workspace of its own. " +
18
- "alasio init sets it up, alasio up starts it, in a cluster alasio makes on this machine or one a kubeconfig reaches."), Command.withSubcommands([init, up, status, logs, restart, upgrade, login, lake, grafana, branch, down, uninstall, asRoot]), Command.withGlobalFlags([ConfigFlag]));
19
+ "alasio init sets it up, alasio up starts it, in a cluster alasio makes on this machine or one a kubeconfig reaches."), Command.withSubcommands([init, up, status, logs, restart, upgrade, login, lake, grafana, branch, restoreFilerStore, down, uninstall, asRoot]), Command.withGlobalFlags([ConfigFlag]));
19
20
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/commands.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC/C,OAAO,CAAC,eAAe,CACrB,iHAAiH;IAC/G,qHAAqH,CACxH,EACD,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EAC1H,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CACtC,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/commands.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC/C,OAAO,CAAC,eAAe,CACrB,iHAAiH;IAC/G,qHAAqH,CACxH,EACD,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EAC7I,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CACtC,CAAC"}