alasio 4.2.0 → 5.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 (63) hide show
  1. package/dist/cli/src/branches.js +295 -0
  2. package/dist/cli/src/branches.js.map +1 -0
  3. package/dist/cli/src/commands/branch.js +112 -0
  4. package/dist/cli/src/commands/branch.js.map +1 -0
  5. package/dist/cli/src/commands/common.js +27 -8
  6. package/dist/cli/src/commands/common.js.map +1 -1
  7. package/dist/cli/src/commands/grafana.js +72 -0
  8. package/dist/cli/src/commands/grafana.js.map +1 -0
  9. package/dist/cli/src/commands/init.js +6 -5
  10. package/dist/cli/src/commands/init.js.map +1 -1
  11. package/dist/cli/src/commands/lake.js +18 -4
  12. package/dist/cli/src/commands/lake.js.map +1 -1
  13. package/dist/cli/src/commands/login.js +12 -7
  14. package/dist/cli/src/commands/login.js.map +1 -1
  15. package/dist/cli/src/commands/logs.js +12 -6
  16. package/dist/cli/src/commands/logs.js.map +1 -1
  17. package/dist/cli/src/commands/uninstall.js +16 -1
  18. package/dist/cli/src/commands/uninstall.js.map +1 -1
  19. package/dist/cli/src/commands.js +3 -1
  20. package/dist/cli/src/commands.js.map +1 -1
  21. package/dist/cli/src/kube/api.js +35 -2
  22. package/dist/cli/src/kube/api.js.map +1 -1
  23. package/dist/cli/src/kube/apply.js +21 -8
  24. package/dist/cli/src/kube/apply.js.map +1 -1
  25. package/dist/cli/src/manifests/alasio.js +143 -74
  26. package/dist/cli/src/manifests/alasio.js.map +1 -1
  27. package/dist/cli/src/manifests/branch.js +45 -0
  28. package/dist/cli/src/manifests/branch.js.map +1 -0
  29. package/dist/cli/src/manifests/collector.js +199 -0
  30. package/dist/cli/src/manifests/collector.js.map +1 -0
  31. package/dist/cli/src/manifests/common.js +44 -11
  32. package/dist/cli/src/manifests/common.js.map +1 -1
  33. package/dist/cli/src/manifests/config.js +33 -19
  34. package/dist/cli/src/manifests/config.js.map +1 -1
  35. package/dist/cli/src/manifests/grafana.js +81 -0
  36. package/dist/cli/src/manifests/grafana.js.map +1 -0
  37. package/dist/cli/src/manifests/index.js +6 -1
  38. package/dist/cli/src/manifests/index.js.map +1 -1
  39. package/dist/cli/src/manifests/juicefs-csi.js +11 -5
  40. package/dist/cli/src/manifests/juicefs-csi.js.map +1 -1
  41. package/dist/cli/src/manifests/lake.js +66 -18
  42. package/dist/cli/src/manifests/lake.js.map +1 -1
  43. package/dist/cli/src/manifests/neon.js +24 -154
  44. package/dist/cli/src/manifests/neon.js.map +1 -1
  45. package/dist/cli/src/manifests/network-policies.js +141 -38
  46. package/dist/cli/src/manifests/network-policies.js.map +1 -1
  47. package/dist/cli/src/manifests/workspace-storage.js +98 -29
  48. package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
  49. package/dist/cli/src/release.js +6 -5
  50. package/dist/cli/src/release.js.map +1 -1
  51. package/dist/neon/control/branches.js +292 -0
  52. package/dist/neon/control/branches.js.map +1 -0
  53. package/dist/neon/control/jwt.js +58 -0
  54. package/dist/neon/control/jwt.js.map +1 -0
  55. package/dist/neon/control/scram.js +15 -0
  56. package/dist/neon/control/scram.js.map +1 -0
  57. package/dist/neon/control/secrets.js +111 -0
  58. package/dist/neon/control/secrets.js.map +1 -0
  59. package/dist/src/branch/names.js +18 -0
  60. package/dist/src/branch/names.js.map +1 -0
  61. package/dist/src/kube/config.js +14 -1
  62. package/dist/src/kube/config.js.map +1 -1
  63. package/package.json +1 -1
@@ -0,0 +1,72 @@
1
+ /** `alasio grafana`: Grafana, reached from this machine through a port-forward, until interrupted. */
2
+ import { createServer } from "node:net";
3
+ import { Console, Effect, FiberSet, Schema } from "effect";
4
+ import { Command, Flag } from "effect/cli";
5
+ import { kind, KubeApi } from "../kube/api.js";
6
+ import { NAMESPACE } from "../manifests/common.js";
7
+ import { GRAFANA, GRAFANA_PORT } from "../manifests/grafana.js";
8
+ import { onCluster, runningPod } from "./common.js";
9
+ /** The local port is taken, or cannot be listened on. */
10
+ export class PortUnavailable extends Schema.TaggedError()("PortUnavailable", {
11
+ port: Schema.Number,
12
+ reason: Schema.String,
13
+ }) {
14
+ get message() {
15
+ return `Grafana cannot be forwarded to port ${this.port} here: ${this.reason}; --port names another`;
16
+ }
17
+ }
18
+ /** Grafana's admin's password is not in its Secret, as the stack's setup writes it. */
19
+ export class NoAdminPassword extends Schema.TaggedError()("NoAdminPassword", {}) {
20
+ get message() {
21
+ return `${GRAFANA} holds no admin password: alasio up writes it`;
22
+ }
23
+ }
24
+ /** The key of Grafana's Secret that holds its admin's password. */
25
+ const ADMIN_PASSWORD = "GF_SECURITY_ADMIN_PASSWORD";
26
+ /** A server on the loopback's `port`, listening while the scope is open. */
27
+ const listening = (port, onConnection) => Effect.acquireRelease(Effect.callback((resume) => {
28
+ const server = createServer(onConnection);
29
+ server.once("error", (error) => resume(Effect.fail(new PortUnavailable({ port, reason: error.message }))));
30
+ server.listen(port, "127.0.0.1", () => resume(Effect.succeed(server)));
31
+ }), (server) => Effect.sync(() => server.close()));
32
+ const forward = (port) => Effect.gen(function* () {
33
+ const kube = yield* KubeApi;
34
+ const pod = yield* runningPod("grafana");
35
+ const run = yield* FiberSet.makeRuntime();
36
+ const server = yield* listening(port, (socket) => {
37
+ socket.on("error", () => socket.destroy());
38
+ run(kube.portForward({ namespace: NAMESPACE, pod }, GRAFANA_PORT, socket).pipe(Effect.catch((error) => Effect.logWarning(`a connection to Grafana failed: ${error.message}`))));
39
+ });
40
+ // A server listening on a TCP port has an address of its own.
41
+ const { port: listened } = server.address();
42
+ yield* Console.log(`Grafana is at http://127.0.0.1:${listened}, as admin; alasio grafana --password prints its password. Interrupt this to end it.`);
43
+ return yield* Effect.never;
44
+ }).pipe(Effect.scoped);
45
+ const password = Effect.gen(function* () {
46
+ const kube = yield* KubeApi;
47
+ const secret = yield* kube.get({ ...kind("Secret"), namespace: NAMESPACE, name: GRAFANA });
48
+ const value = secret?.data?.[ADMIN_PASSWORD];
49
+ if (!value)
50
+ return yield* new NoAdminPassword();
51
+ yield* Console.log(Buffer.from(value, "base64").toString("utf8"));
52
+ });
53
+ export const grafana = Command.make("grafana", {
54
+ port: Flag.Int("port").pipe(Flag.withDefault(3000), Flag.withDescription("The port of this machine Grafana is reached on: 3000 unless given, any free one for 0")),
55
+ password: Flag.Boolean("password").pipe(Flag.withDefault(false), Flag.withDescription("Print Grafana's admin's password, and do nothing else")),
56
+ }, ({ port, password: printPassword }) => onCluster(() => Effect.gen(function* () {
57
+ if (printPassword)
58
+ yield* password;
59
+ else
60
+ yield* forward(port);
61
+ }))).pipe(Command.withShortDescription("Open Grafana, on this machine"), Command.withDescription("Forwards a port of this machine to Grafana, through the cluster's API, and keeps it forwarded until interrupted; " +
62
+ "alasio grafana --password prints the password of its admin, as whom one logs in. Grafana has no other way in: no " +
63
+ "Ingress, and no pod may reach it. It shows three dashboards on the analytics lake (see alasio lake), in the folder " +
64
+ "alasio: Stack health (whether the stack's services answer its collector's scrapes, telemetry arriving, what the stack " +
65
+ "logs as a warning or worse, and what its storage holds), Agents (turns by outcome and duration, Claude Code's and " +
66
+ "Codex's tokens, tool calls and their failures, and a turn's trace, span by span, with its spans' attributes) and " +
67
+ "Conversations (each conversation's turns, the harness sessions and session workspaces they ran in, and what those " +
68
+ "spent). Its alert rules (a service of the stack down for minutes, turns failing, telemetry absent from the lake) " +
69
+ "alert through the Telegram bot, to each of its allowed users. Dashboards, rules and the contact point are " +
70
+ "provisioned from alasio's repository (neon/grafana), and read-only in Grafana: a change is made there, and released " +
71
+ "in alasio's Grafana image. Grafana keeps nothing but its database, in Neon."));
72
+ //# sourceMappingURL=grafana.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grafana.js","sourceRoot":"","sources":["../../../../src/commands/grafana.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * `alasio init`: asks for what alasio needs (its bot's token and who may use it, Claude
3
- * Code's token, whether agents work in this machine's folders, where telemetry goes),
3
+ * Code's token, whether agents work in this machine's folders, where telemetry goes
4
+ * beside the lake),
4
5
  * writes the config, makes the cluster on this machine when that is where alasio runs,
5
6
  * writes the Secrets there, and offers to start alasio.
6
7
  *
@@ -128,7 +129,7 @@ const flags = {
128
129
  user: Flag.String("user").pipe(Flag.optional, Flag.withMetavar("uid:gid"), Flag.withDescription("Whom agents in folders run as; you, unless given")),
129
130
  home: Flag.String("home").pipe(Flag.optional, Flag.withMetavar("path"), Flag.withDescription("Their home, always among the folders they see; yours, unless given")),
130
131
  folders: Flag.String("folders").pipe(Flag.optional, Flag.withMetavar("paths"), Flag.withDescription("The other folders they see, comma-separated absolute paths")),
131
- telemetryEndpoint: Flag.String("telemetry-endpoint").pipe(Flag.optional, Flag.withMetavar("url"), Flag.withDescription("Where alasio sends OpenTelemetry, an OTLP/HTTP endpoint; an empty one sends nothing")),
132
+ telemetryEndpoint: Flag.String("telemetry-endpoint").pipe(Flag.optional, Flag.withMetavar("url"), Flag.withDescription("Where alasio sends its telemetry beside its lake, an OTLP/HTTP endpoint; an empty one keeps it in the lake alone")),
132
133
  nonInteractive: Flag.Boolean("non-interactive").pipe(Flag.withDefault(false), Flag.withDescription("Ask nothing: what is not given keeps its current value or default, and what has neither fails")),
133
134
  up: Flag.Boolean("up").pipe(Flag.optional, Flag.withDescription("Start alasio afterwards without asking; --no-up does not")),
134
135
  timeout: timeoutFlag,
@@ -261,10 +262,10 @@ const chooseFolderAccess = Effect.fnUntraced(function* (given, ask, host) {
261
262
  return yield* new SettingInvalid({ setting: "--folders", reason: "must be absolute paths" });
262
263
  return { uid: Number(user[1]), gid: Number(user[2]), home, folders };
263
264
  });
264
- /** Where telemetry goes: an OTLP/HTTP endpoint, or empty for nowhere. */
265
+ /** Where telemetry goes beside the lake: an OTLP/HTTP endpoint, or empty for nowhere else. */
265
266
  const chooseTelemetryEndpoint = Effect.fnUntraced(function* (given, ask, current) {
266
267
  const check = (value) => (Result.isSuccess(Schema.decodeUnknownResult(OptionalUrl)(value)) ? null : "must be an http(s) URL, or empty");
267
- const endpoint = yield* answer(given.telemetryEndpoint, ask, () => Prompt.String({ message: "Where alasio sends OpenTelemetry, an OTLP/HTTP endpoint (empty for nowhere)", default: current, validate: validating(check) }), () => Effect.succeed(current));
268
+ const endpoint = yield* answer(given.telemetryEndpoint, ask, () => Prompt.String({ message: "Where alasio sends its telemetry beside its lake, an OTLP/HTTP endpoint (empty for nowhere else)", default: current, validate: validating(check) }), () => Effect.succeed(current));
268
269
  const refused = check(endpoint);
269
270
  if (refused)
270
271
  return yield* new SettingInvalid({ setting: "--telemetry-endpoint", reason: refused });
@@ -315,7 +316,7 @@ export const init = Command.make("init", flags, (given) => Effect.gen(function*
315
316
  else
316
317
  yield* Console.log("alasio up starts it.");
317
318
  })).pipe(Command.withShortDescription("Set alasio up: its bot, its tokens, and where it runs"), Command.withDescription("Asks for the bot's token (checked with Telegram) and who may use it, Claude Code's token, whether agents may work in this " +
318
- "machine's folders and as whom, and where telemetry goes; writes the config, which holds no secret; makes the cluster on " +
319
+ "machine's folders and as whom, and where telemetry goes beside the lake; writes the config, which holds no secret; makes the cluster on " +
319
320
  "this machine, k3s on the machine itself unless --target docker makes it in Docker, or --kubeconfig names another " +
320
321
  "cluster, once this machine is one it runs on, Linux on x86-64, doing what it must as root through sudo, as alasio up " +
321
322
  "does; writes the tokens there, as Secrets; and offers to start alasio. Run it " +
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** `alasio lake [--format table|csv|json] <sql>`: a read-only query of the analytics lake, in the lake's pod. */
1
+ /** `alasio lake [--format table|csv|json] <sql>`: a read-only query of the analytics lake, in its query endpoint's container. */
2
2
  import { PassThrough } from "node:stream";
3
3
  import { NodeStream } from "@effect/platform-node";
4
4
  import { Effect, Stdio, Stream } from "effect";
@@ -19,7 +19,7 @@ export const lake = Command.make("lake", {
19
19
  const stderr = new PassThrough();
20
20
  const forward = (stream, sink) => NodeStream.fromReadable({ evaluate: () => stream, onError: (cause) => cause }).pipe(Stream.run(sink), Effect.orDie);
21
21
  const [exitCode] = yield* Effect.all([
22
- kube.exec({ namespace: NAMESPACE, pod, container: "lake" }, [...QUERY, "--format", format, sql], { stdin: null, stdout, stderr, tty: false }).pipe(Effect.ensuring(Effect.sync(() => {
22
+ kube.exec({ namespace: NAMESPACE, pod, container: "query" }, [...QUERY, "--format", format, sql], { stdin: null, stdout, stderr, tty: false }).pipe(Effect.ensuring(Effect.sync(() => {
23
23
  stdout.end();
24
24
  stderr.end();
25
25
  }))),
@@ -28,6 +28,20 @@ export const lake = Command.make("lake", {
28
28
  ], { concurrency: "unbounded" });
29
29
  if (exitCode !== 0)
30
30
  return yield* new CommandFailed({ command: "the lake's query", exitCode });
31
- }))).pipe(Command.withShortDescription("Query the analytics lake"), Command.withDescription("Runs a read-only SQL query of the analytics lake, where every Claude Code transcript entry and Codex rollout line is a row, " +
32
- "in the lake's pod, and prints its rows, as a table unless --format says CSV or JSON."));
31
+ }))).pipe(Command.withShortDescription("Query the analytics lake"), Command.withDescription("Runs a read-only SQL query of the analytics lake through its query endpoint, as Grafana does, and prints its rows, as a " +
32
+ "table unless --format says CSV or JSON: a query is one statement, which runs for 30 s and returns 100,000 rows at most, " +
33
+ "a map, list or struct as JSON. The lake holds every Claude Code transcript entry (claude.entries, and claude.messages, content_blocks and " +
34
+ "tool_calls), every Codex rollout line (codex.lines, and codex.turns, token_usage and tool_calls), and alasio's telemetry, " +
35
+ "kept telemetry.retentionDays days: its spans, logs and metric points in otel.traces, otel.logs and otel.metrics_gauge, " +
36
+ "_sum, _histogram, _exponential_histogram and _summary, the tables of OpenTelemetry's ClickHouse exporter, their " +
37
+ "attributes maps of text. Telemetry joins transcripts by these attributes: alasio.conversation.id, the conversation, on " +
38
+ "alasio's alasio.turn span and on the resource of Claude Code's and folder workspaces' bayma's telemetry; " +
39
+ "alasio.session.id, the harness's session (claude.entries.session_id, codex.lines.thread_id), on alasio.turn; " +
40
+ "alasio.volume.id, a session workspace, on alasio.turn and on the resource of its bayma's telemetry; alasio.branch, a " +
41
+ "branch environment's name (alasio branch), on the resource of everything it sends. Errors by harness: " +
42
+ "\"SELECT SpanAttributes['alasio.harness'] AS harness, count(*) FILTER (StatusCode = 'Error') AS failed, count(*) AS turns " +
43
+ "FROM otel.traces WHERE SpanName = 'alasio.turn' GROUP BY 1\". A conversation's Claude output tokens: " +
44
+ "\"SELECT conversation, sum(output_tokens) FROM (SELECT DISTINCT " +
45
+ "SpanAttributes['alasio.conversation.id'] AS conversation, SpanAttributes['alasio.session.id'] AS session_id FROM " +
46
+ "otel.traces WHERE SpanName = 'alasio.turn') JOIN claude.messages USING (session_id) GROUP BY 1\"."));
33
47
  //# sourceMappingURL=lake.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lake.js","sourceRoot":"","sources":["../../../../src/commands/lake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lake.js","sourceRoot":"","sources":["../../../../src/commands/lake.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  /** `alasio login codex`: Codex's device login, run in alasio's pod, at this terminal. */
2
2
  import { PassThrough } from "node:stream";
3
- import { Effect } from "effect";
4
- import { Command } from "effect/cli";
3
+ import { Effect, Option } from "effect";
4
+ import { Command, Flag } from "effect/cli";
5
+ import { branchNamespace } from "../../../src/branch/names.js";
5
6
  import { KubeApi } from "../kube/api.js";
6
7
  import { NAMESPACE, RELEASE } from "../manifests/common.js";
7
- import { CommandFailed, onCluster, runningPod } from "./common.js";
8
+ import { CommandFailed, onCluster, runningPod, runningPodIn } from "./common.js";
8
9
  /** Codex's login by a code entered on another device, as alasio's image installs Codex (Dockerfile). */
9
10
  export const CODEX_LOGIN = ["/opt/alasio/node_modules/.bin/codex", "login", "--device-auth"];
10
11
  /**
@@ -25,14 +26,18 @@ const terminalInput = (use) => Effect.acquireUseRelease(Effect.sync(() => {
25
26
  process.stdin.setRawMode(false);
26
27
  input.end();
27
28
  }));
28
- const codex = Command.make("codex", {}, () => onCluster(() => Effect.gen(function* () {
29
+ const codex = Command.make("codex", {
30
+ branch: Flag.String("branch").pipe(Flag.optional, Flag.withMetavar("name"), Flag.withDescription("Log in the Codex of the branch environment name, which has a login of its own")),
31
+ }, ({ branch }) => onCluster(() => Effect.gen(function* () {
29
32
  const kube = yield* KubeApi;
30
- const pod = yield* runningPod(RELEASE);
33
+ const namespace = Option.match(branch, { onNone: () => NAMESPACE, onSome: branchNamespace });
34
+ const pod = Option.isSome(branch) ? yield* runningPodIn(namespace, RELEASE) : yield* runningPod(RELEASE);
31
35
  // The terminal itself, not alasio's output: what Codex asks and is answered is the operator's.
32
- const exitCode = yield* terminalInput((stdin) => kube.exec({ namespace: NAMESPACE, pod, container: RELEASE }, CODEX_LOGIN, { stdin, stdout: process.stdout, stderr: process.stderr, tty: process.stdout.isTTY }));
36
+ const exitCode = yield* terminalInput((stdin) => kube.exec({ namespace, pod, container: RELEASE }, CODEX_LOGIN, { stdin, stdout: process.stdout, stderr: process.stderr, tty: process.stdout.isTTY }));
33
37
  if (exitCode !== 0)
34
38
  return yield* new CommandFailed({ command: "codex login", exitCode });
35
39
  }))).pipe(Command.withShortDescription("Log Codex in"), Command.withDescription("Runs Codex's device login in alasio's pod, at this terminal: Codex shows a code to enter on a page it names, " +
36
- "and keeps the login on alasio's volume, so it is done once."));
40
+ "and alasio keeps the login in its Neon (under the host profile, in the operator's own Codex home), so it is done once. " +
41
+ "A branch environment has a login of its own, which --branch logs in."));
37
42
  export const login = Command.make("login").pipe(Command.withSubcommands([codex]), Command.withShortDescription("Log a harness in"), Command.withDescription("Logs a harness in, in alasio's pod. Claude Code needs none: alasio init gives it a token."));
38
43
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -13,15 +13,21 @@ export const logs = Command.make("logs", {
13
13
  const stdio = yield* Stdio.Stdio;
14
14
  const found = yield* component(name);
15
15
  const pods = yield* podsOf(found);
16
- const container = found.workload.spec?.template?.spec?.containers?.[0]?.name ?? name;
16
+ const containers = (found.workload.spec?.template?.spec?.containers ?? [{ name }]).map((container) => container.name);
17
17
  const sinceSeconds = Option.map(since, (duration) => Math.ceil(Duration.toSeconds(duration)));
18
- // A component of several pods (the safekeepers, say) has each line said with its pod's name.
19
- const prefixed = pods.length > 1;
20
- const streams = pods.map((pod) => {
18
+ // A component of several pods (the safekeepers, say) has each line said with its pod's
19
+ // name, and one of several containers (the lake and its query endpoint) with its container's.
20
+ const said = (podName, container) => [...(pods.length > 1 ? [podName] : []), ...(containers.length > 1 ? [container] : [])].join("/");
21
+ const streams = pods.flatMap((pod) => {
21
22
  const podName = pod.metadata?.name ?? "";
22
- return kube.logs(NAMESPACE, podName, { container, follow, sinceSeconds: Option.getOrUndefined(sinceSeconds) }).pipe(Stream.decodeText(), Stream.splitLines, Stream.map((line) => `${prefixed ? `[${podName}] ` : ""}${line}\n`));
23
+ return containers.map((container) => {
24
+ const prefix = said(podName, container);
25
+ return kube.logs(NAMESPACE, podName, { container, follow, sinceSeconds: Option.getOrUndefined(sinceSeconds) }).pipe(Stream.decodeText(), Stream.splitLines, Stream.map((line) => `${prefix ? `[${prefix}] ` : ""}${line}\n`));
26
+ });
23
27
  });
24
28
  yield* Stream.mergeAll(streams, { concurrency: "unbounded" }).pipe(Stream.run(stdio.stdout()));
25
- }))).pipe(Command.withShortDescription("Show what alasio, or one of its components, logs"), Command.withDescription("Shows what alasio's pod logs, or a component's pods: each line of a component of several pods begins with its pod's name. " +
29
+ }))).pipe(Command.withShortDescription("Show what alasio, or one of its components, logs"), Command.withDescription("Shows what alasio's pod logs, or a component's pods, each of their containers: each line of a component of several pods " +
30
+ "begins with its pod's name, and of several containers, as the lake's pod has its query endpoint beside it, with its " +
31
+ "container's. " +
26
32
  "With --follow it keeps following until interrupted; with --since, only what was logged since then."));
27
33
  //# sourceMappingURL=logs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../src/commands/logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../src/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,18 @@ import { HostCluster } from "../cluster/host.js";
6
6
  import { forgetInotifyStep } from "../cluster/machine.js";
7
7
  import { Root } from "../cluster/root.js";
8
8
  import { loadConfig } from "../config.js";
9
+ import { branchNamespaces } from "../branches.js";
9
10
  import { removeInstallation } from "../kube/apply.js";
10
11
  import { describeTarget, dockerCluster, resolveTarget } from "../target.js";
11
12
  import { onCluster, timeoutFlag, waitOptions } from "./common.js";
13
+ /** alasio has branch environments, which run on what removing it removes. */
14
+ export class BranchesRemain extends Schema.TaggedError()("BranchesRemain", {
15
+ branches: Schema.Array(Schema.String),
16
+ }) {
17
+ get message() {
18
+ return `alasio has the branch environments ${this.branches.join(", ")}, which run on its storage: alasio branch delete deletes each first`;
19
+ }
20
+ }
12
21
  /** The operator did not confirm. */
13
22
  export class NotConfirmed extends Schema.TaggedError()("NotConfirmed", {}) {
14
23
  get message() {
@@ -47,7 +56,13 @@ export const uninstall = Command.make("uninstall", {
47
56
  yield* Console.log(`alasio and the cluster ${target.cluster.name} are removed, with all their data; the config at ${config.path} is kept.`);
48
57
  return;
49
58
  }
50
- const removed = yield* onCluster(() => removeInstallation({ purge }, waitOptions(timeout)));
59
+ const removed = yield* onCluster(() => Effect.gen(function* () {
60
+ // A branch environment runs on alasio's storage, which goes with it.
61
+ const branches = yield* branchNamespaces;
62
+ if (branches.length > 0)
63
+ return yield* new BranchesRemain({ branches });
64
+ return yield* removeInstallation({ purge }, waitOptions(timeout));
65
+ }));
51
66
  yield* Console.log(removed.length === 0
52
67
  ? `alasio is not installed in ${where}.`
53
68
  : purge
@@ -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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"}
@@ -1,7 +1,9 @@
1
1
  /** The `alasio` command and its subcommands, each in a module of its own (./commands/). */
2
2
  import { Command } from "effect/cli";
3
3
  import { asRoot } from "./commands/as-root.js";
4
+ import { branch } from "./commands/branch.js";
4
5
  import { down } from "./commands/down.js";
6
+ import { grafana } from "./commands/grafana.js";
5
7
  import { init } from "./commands/init.js";
6
8
  import { lake } from "./commands/lake.js";
7
9
  import { login } from "./commands/login.js";
@@ -13,5 +15,5 @@ import { up } from "./commands/up.js";
13
15
  import { upgrade } from "./commands/upgrade.js";
14
16
  import { ConfigFlag } from "./config.js";
15
17
  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. " +
16
- "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, down, uninstall, asRoot]), Command.withGlobalFlags([ConfigFlag]));
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]));
17
19
  //# 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,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,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,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EACzG,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,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"}
@@ -4,7 +4,8 @@
4
4
  * a kubeconfig's credentials. Nothing of client-node's object model is between the
5
5
  * manifests and the cluster, as its serializer drops what its model lacks (a
6
6
  * NetworkPolicy's `from`, a CRD schema's `x-kubernetes-*` keys); client-node only reads
7
- * the kubeconfig, and runs commands in containers over its websocket.
7
+ * the kubeconfig, and runs commands in containers, and forwards connections to pods,
8
+ * over its websockets.
8
9
  *
9
10
  * Objects are addressed by their kind, as KINDS lists those alasio reads or makes, so
10
11
  * no discovery is needed.
@@ -14,7 +15,7 @@ import { request as httpsRequest } from "node:https";
14
15
  import { buffer } from "node:stream/consumers";
15
16
  import { inspect } from "node:util";
16
17
  import { NodeStream } from "@effect/platform-node";
17
- import { Exec, KubeConfig } from "@kubernetes/client-node";
18
+ import { Exec, KubeConfig, PortForward } from "@kubernetes/client-node";
18
19
  import { Context, Effect, Layer, Predicate, Schema, Stream } from "effect";
19
20
  /** The kinds alasio's command line reads or makes, by name: their API version, their resource's plural, and whether their objects are in a namespace. */
20
21
  const KINDS = {
@@ -44,6 +45,9 @@ const KINDS = {
44
45
  Job: { apiVersion: "batch/v1", plural: "jobs", namespaced: true },
45
46
  CronJob: { apiVersion: "batch/v1", plural: "cronjobs", namespaced: true },
46
47
  Sandbox: { apiVersion: "agents.x-k8s.io/v1beta1", plural: "sandboxes", namespaced: true },
48
+ // What the cluster's metrics server measures its pods and nodes using now.
49
+ PodMetrics: { apiVersion: "metrics.k8s.io/v1beta1", plural: "pods", namespaced: true },
50
+ NodeMetrics: { apiVersion: "metrics.k8s.io/v1beta1", plural: "nodes", namespaced: false },
47
51
  };
48
52
  /** The kind of that name. */
49
53
  export function kind(name) {
@@ -145,6 +149,7 @@ function makeKubeApi(kubeConfig) {
145
149
  const server = new URL(kubeConfig.getCurrentCluster()?.server ?? "");
146
150
  const request = server.protocol === "http:" ? httpRequest : httpsRequest;
147
151
  const executor = new Exec(kubeConfig);
152
+ const forwarder = new PortForward(kubeConfig);
148
153
  /** Sends `call` with the kubeconfig's credentials. */
149
154
  const send = (call) => Effect.tryPromise({
150
155
  try: async () => {
@@ -211,6 +216,33 @@ function makeKubeApi(kubeConfig) {
211
216
  }
212
217
  return exitCode;
213
218
  });
219
+ const portForward = ({ namespace, pod }, port, connection) => {
220
+ const call = { method: "GET", path: `/api/v1/namespaces/${namespace}/pods/${pod}/portforward` };
221
+ return Effect.callback((resume) => {
222
+ let socket = null;
223
+ const close = () => socket?.close();
224
+ connection.on("close", close);
225
+ forwarder.portForward(namespace, pod, [port], connection, null, connection).then((opened) => {
226
+ // Given no retries, the forward is its websocket.
227
+ const forwarded = typeof opened === "function" ? opened() : opened;
228
+ if (!forwarded)
229
+ return resume(Effect.fail(unreachable(call, new Error("the port-forward opened no websocket"))));
230
+ socket = forwarded;
231
+ forwarded.on("close", () => {
232
+ connection.destroy();
233
+ resume(Effect.void);
234
+ });
235
+ forwarded.on("error", (cause) => resume(Effect.fail(unreachable(call, cause))));
236
+ }, (cause) => {
237
+ connection.destroy();
238
+ resume(Effect.fail(unreachable(call, cause)));
239
+ });
240
+ return Effect.sync(() => {
241
+ close();
242
+ connection.destroy();
243
+ });
244
+ });
245
+ };
214
246
  return KubeApi.of({
215
247
  server: server.href.replace(/\/$/u, ""),
216
248
  apply: (object) => json({
@@ -233,6 +265,7 @@ function makeKubeApi(kubeConfig) {
233
265
  return Stream.unwrap(Effect.map(open(call), (response) => NodeStream.fromReadable({ evaluate: () => response, onError: (cause) => unreachable(call, cause) })));
234
266
  },
235
267
  exec,
268
+ portForward,
236
269
  });
237
270
  }
238
271
  //# sourceMappingURL=api.js.map