@melra/cli 0.3.0-alpha.11 → 0.3.0-alpha.12

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 (43) hide show
  1. package/README.md +11 -6
  2. package/dist/activity.d.ts +26 -0
  3. package/dist/activity.d.ts.map +1 -0
  4. package/dist/activity.js +401 -0
  5. package/dist/activity.js.map +1 -0
  6. package/dist/client-status.d.ts +24 -0
  7. package/dist/client-status.d.ts.map +1 -0
  8. package/dist/client-status.js +273 -0
  9. package/dist/client-status.js.map +1 -0
  10. package/dist/clients.d.ts +32 -0
  11. package/dist/clients.d.ts.map +1 -0
  12. package/dist/clients.js +584 -0
  13. package/dist/clients.js.map +1 -0
  14. package/dist/conformance.d.ts.map +1 -1
  15. package/dist/conformance.js +4 -2
  16. package/dist/conformance.js.map +1 -1
  17. package/dist/demo-workflow.d.ts +46 -0
  18. package/dist/demo-workflow.d.ts.map +1 -0
  19. package/dist/demo-workflow.js +58 -0
  20. package/dist/demo-workflow.js.map +1 -0
  21. package/dist/environment.d.ts +3 -1
  22. package/dist/environment.d.ts.map +1 -1
  23. package/dist/environment.js +13 -1
  24. package/dist/environment.js.map +1 -1
  25. package/dist/human.d.ts +67 -0
  26. package/dist/human.d.ts.map +1 -0
  27. package/dist/human.js +257 -0
  28. package/dist/human.js.map +1 -0
  29. package/dist/index.js +236 -49
  30. package/dist/index.js.map +1 -1
  31. package/dist/isolation.d.ts +35 -0
  32. package/dist/isolation.d.ts.map +1 -0
  33. package/dist/isolation.js +66 -0
  34. package/dist/isolation.js.map +1 -0
  35. package/dist/jsonc.d.ts +24 -0
  36. package/dist/jsonc.d.ts.map +1 -0
  37. package/dist/jsonc.js +238 -0
  38. package/dist/jsonc.js.map +1 -0
  39. package/dist/output.d.ts +28 -0
  40. package/dist/output.d.ts.map +1 -0
  41. package/dist/output.js +77 -0
  42. package/dist/output.js.map +1 -0
  43. package/package.json +10 -10
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  // Copyright 2026 XAGI Labs Private Limited
3
3
  // SPDX-License-Identifier: Apache-2.0
4
- import { access, mkdir, readFile, writeFile } from "node:fs/promises";
4
+ import { access, lstat, mkdir, readFile, stat, writeFile } from "node:fs/promises";
5
5
  import { constants } from "node:fs";
6
6
  import { spawn } from "node:child_process";
7
- import { basename, join, resolve } from "node:path";
7
+ import { basename, dirname, join, resolve } from "node:path";
8
8
  import { createInterface } from "node:readline/promises";
9
9
  import { DatabaseSync } from "node:sqlite";
10
- import { ApprovalResponseSchema, TaskRequestSchema, WorkflowDefinitionSchema, WorkflowInputSchema, PRODUCT_VERSION, deploymentMode, principalRef, } from "@melra/protocol";
10
+ import { ApprovalResponseSchema, TaskRequestSchema, TaskStatusSchema, WorkflowDefinitionSchema, WorkflowInputSchema, PRODUCT_VERSION, deploymentMode, principalRef, } from "@melra/protocol";
11
11
  import { assertEnforceable, createMelraRuntime, serveHttp, OAuthProvider, clientPrincipal, serveStdio, unconfinedRoot, } from "@melra/server";
12
12
  import { detectBrowserExecutable } from "@melra/browser-runtime";
13
13
  import { createSystemComputerAdapter } from "@melra/computer-runtime";
@@ -16,6 +16,13 @@ import { SqliteStore } from "@melra/storage-sqlite";
16
16
  import { classifyOperation, createDefaultPolicy, evaluatePolicy, loadPolicy, } from "@melra/policy-core";
17
17
  import { parseCliEnvironment, serverLaunch, } from "./environment.js";
18
18
  import { runConformance } from "./conformance.js";
19
+ import { statusCommand, tasksCommand, watchCommand } from "./activity.js";
20
+ import { clientStatuses, clientsCheck, detectClients } from "./client-status.js";
21
+ import { RESTART_SAFE_WORKFLOW } from "./demo-workflow.js";
22
+ import { detectIsolation, isolationCheck } from "./isolation.js";
23
+ import { renderConformance, renderDoctor, renderInit, renderSetup, setupWizard, } from "./human.js";
24
+ import { isHuman, paint, printJsonOrHuman } from "./output.js";
25
+ import { CLIENTS, clientConfig, clientConfigPath, resolveClient, writeClientConfig, } from "./clients.js";
19
26
  async function existingPolicyPath(env) {
20
27
  if (env.policyPath !== undefined)
21
28
  return env.policyPath;
@@ -111,7 +118,7 @@ function rejectUnknownFlags(args, known) {
111
118
  ]);
112
119
  // A flag's own value can look like a flag (`--input node=--x`), so skip the
113
120
  // slot after any known flag that takes one.
114
- const valued = new Set(known.filter((flag) => flag !== "--http"));
121
+ const valued = new Set(known.filter((flag) => flag !== "--http" && flag !== "--json"));
115
122
  for (let index = 0; index < args.length; index += 1) {
116
123
  const argument_ = args[index];
117
124
  if (argument_ === undefined || !argument_.startsWith("--"))
@@ -283,14 +290,13 @@ async function workflowCommand(args, env) {
283
290
  }
284
291
  }
285
292
  async function durableCoreDemo(env) {
286
- const examplePath = resolve(import.meta.dirname, "../../../examples/workflows/restart-safe.json");
287
293
  const melra = await runtime(env);
288
294
  try {
289
- const definition = WorkflowDefinitionSchema.parse(JSON.parse(await readFile(examplePath, "utf8")));
295
+ const definition = WorkflowDefinitionSchema.parse(RESTART_SAFE_WORKFLOW);
290
296
  const planned = melra.workflows.plan(definition);
291
297
  const advanced = await melra.workflows.advance(planned.id);
292
298
  output({
293
- examplePath,
299
+ example: definition.name,
294
300
  workflow: advanced.run,
295
301
  next: advanced.run.status === "verified_complete"
296
302
  ? "complete"
@@ -302,6 +308,54 @@ async function durableCoreDemo(env) {
302
308
  await melra.close();
303
309
  }
304
310
  }
311
+ /**
312
+ * Whether `MELRA_SOCKET` names somewhere `serve` can listen, and whether a
313
+ * socket already there is one only this user can open. The mode is the whole
314
+ * point of the transport, so a wider one is a `fail`, not a `warn`.
315
+ */
316
+ async function socketCheck(path) {
317
+ const name = "socket";
318
+ if (process.platform === "win32") {
319
+ return {
320
+ name,
321
+ status: "fail",
322
+ detail: "MELRA_SOCKET is not supported on Windows; use stdio or loopback HTTP",
323
+ };
324
+ }
325
+ try {
326
+ if (!(await stat(dirname(path))).isDirectory())
327
+ throw new Error("not a directory");
328
+ }
329
+ catch {
330
+ return { name, status: "fail", detail: `parent directory missing: ${dirname(path)}` };
331
+ }
332
+ let stats;
333
+ try {
334
+ stats = await lstat(path);
335
+ }
336
+ catch {
337
+ return {
338
+ name,
339
+ status: "pass",
340
+ detail: `${path}: not listening; 'melra serve' creates it mode 0600`,
341
+ };
342
+ }
343
+ if (!stats.isSocket()) {
344
+ return {
345
+ name,
346
+ status: "fail",
347
+ detail: `${path} exists and is not a socket; 'melra serve' will refuse it`,
348
+ };
349
+ }
350
+ const mode = stats.mode & 0o777;
351
+ return (mode & 0o077) === 0
352
+ ? { name, status: "pass", detail: `${path}: socket, mode 0${mode.toString(8)}` }
353
+ : {
354
+ name,
355
+ status: "fail",
356
+ detail: `${path}: socket, mode 0${mode.toString(8)}; other users can connect`,
357
+ };
358
+ }
305
359
  async function doctor(env) {
306
360
  const checks = [];
307
361
  const major = Number(process.versions.node.split(".")[0]);
@@ -319,14 +373,17 @@ async function doctor(env) {
319
373
  status: "warn",
320
374
  detail: "UNSAFE-LOCAL: no policy, approval, evidence, confinement, or destination check is applied",
321
375
  }
322
- : { name: "guardrails", status: "pass", detail: "enforced" });
376
+ // Not "enforced": the next check uses that word for the deployment mode,
377
+ // and one JSON blob saying `guardrails: enforced` beside `mode: developer`
378
+ // reads as a contradiction that is not there.
379
+ : { name: "guardrails", status: "pass", detail: "all applied" });
323
380
  // Not a `fail` either way. Developer mode is a legitimate choice and the
324
381
  // default; what is not legitimate is a machine that cannot say which one it is.
325
382
  checks.push({
326
383
  name: "mode",
327
384
  status: "pass",
328
385
  detail: env.mode === "enforced"
329
- ? "enforced: no unsafe-local, loopback only, no client self-registration"
386
+ ? "enforced: no unsafe-local, loopback or Unix socket only, no client self-registration"
330
387
  : "developer: MELRA governs what it is asked for; the harness may have another path",
331
388
  });
332
389
  try {
@@ -405,6 +462,11 @@ async function doctor(env) {
405
462
  detail: error instanceof Error ? error.message : String(error),
406
463
  });
407
464
  }
465
+ if (env.socketPath !== undefined)
466
+ checks.push(await socketCheck(env.socketPath));
467
+ checks.push(isolationCheck(await detectIsolation(), env.mode));
468
+ const clients = await clientStatuses(env.workspaceRoot);
469
+ checks.push(clientsCheck(clients));
408
470
  const failed = checks.some((check) => check.status === "fail");
409
471
  return {
410
472
  report: {
@@ -416,6 +478,8 @@ async function doctor(env) {
416
478
  unhinged: env.unhinged,
417
479
  mode: env.mode,
418
480
  checks,
481
+ // Per client, so a script can find a stale pin without parsing `detail`.
482
+ clients,
419
483
  },
420
484
  failed,
421
485
  };
@@ -429,33 +493,69 @@ async function init(args, env) {
429
493
  catch {
430
494
  await writeFile(policyPath, `${JSON.stringify(createDefaultPolicy(env.workspaceRoot), null, 2)}\n`, { flag: "wx" });
431
495
  }
432
- const client = argument("--client", args) ?? "generic";
433
- const config = {
434
- mcpServers: {
435
- melra: {
436
- ...serverLaunch(import.meta.dirname, PRODUCT_VERSION),
437
- env: {
438
- MELRA_WORKSPACE: env.workspaceRoot,
439
- MELRA_HOME: env.dataDirectory,
440
- MELRA_POLICY: policyPath,
441
- },
442
- },
496
+ const client = resolveClient(argument("--client", args) ?? "generic");
497
+ const label = CLIENTS[client]?.label ?? client;
498
+ const config = clientConfig(client, {
499
+ ...serverLaunch(import.meta.dirname, PRODUCT_VERSION),
500
+ env: {
501
+ MELRA_WORKSPACE: env.workspaceRoot,
502
+ MELRA_HOME: env.dataDirectory,
503
+ MELRA_POLICY: policyPath,
443
504
  },
444
- };
505
+ });
506
+ const configPath = clientConfigPath(client, env.workspaceRoot);
507
+ if (args.includes("--write")) {
508
+ if (configPath === undefined) {
509
+ throw new Error("--write needs a named --client; see 'melra help' for the list");
510
+ }
511
+ const { backup, unchanged } = await writeClientConfig(configPath, config, client);
512
+ const next = CLIENTS[client]?.next ?? `Restart ${label} to load it.`;
513
+ return {
514
+ initialized: true,
515
+ client,
516
+ policyPath,
517
+ configPath,
518
+ written: true,
519
+ ...(backup === undefined ? {} : { backup }),
520
+ ...(unchanged === undefined ? {} : { unchanged }),
521
+ config,
522
+ note: unchanged
523
+ ? `${configPath} already has this melra entry; nothing changed. ${next}`
524
+ : `Added melra to ${configPath}. ${next}`,
525
+ };
526
+ }
445
527
  return {
446
528
  initialized: true,
447
529
  client,
448
530
  policyPath,
531
+ ...(configPath === undefined ? {} : { configPath }),
449
532
  config,
450
- note: `Add the mcpServers.melra entry to ${client}'s MCP configuration.`,
533
+ note: configPath === undefined
534
+ ? "Add the mcpServers.melra entry to your client's MCP configuration, " +
535
+ "or rerun with --client <name> for that client's own format."
536
+ : `Add this to ${configPath}, or rerun with --write to merge it there for you.`,
451
537
  };
452
538
  }
453
539
  // One command for the whole local setup: write the policy, emit a working
454
540
  // client config, and verify the machine can actually run it.
455
541
  async function setup(args, env) {
456
- const initialized = await init(args, env);
542
+ let chosen = args;
543
+ // Only a person at a terminal on both ends is asked. Anything else — a pipe,
544
+ // a test, `--json` — gets today's non-interactive generic setup unchanged.
545
+ if (argument("--client", args) === undefined && isHuman(args) && process.stdin.isTTY) {
546
+ const answer = await setupWizard({ input: process.stdin, output: process.stdout }, detectClients(env.workspaceRoot));
547
+ if (answer === undefined) {
548
+ process.stdout.write("\nCancelled; nothing was written.\n");
549
+ return 130;
550
+ }
551
+ process.stdout.write("\n");
552
+ // The same arguments the person could have typed, so the wizard cannot
553
+ // drift from what `--client X --write` does.
554
+ chosen = ["--client", answer.client, ...(answer.write ? ["--write"] : [])];
555
+ }
556
+ const initialized = await init(chosen, env);
457
557
  const { report, failed } = await doctor(env);
458
- output({ ...initialized, ...report });
558
+ printJsonOrHuman({ ...initialized, ...report }, () => renderSetup(initialized, report), args);
459
559
  return failed ? 1 : 0;
460
560
  }
461
561
  async function runTask(args, env) {
@@ -588,13 +688,17 @@ function help() {
588
688
  process.stdout.write(`MELRA ${PRODUCT_VERSION}
589
689
 
590
690
  Usage:
591
- melra setup [--client <claude|cursor|vscode|codex|generic>]
592
- melra doctor
691
+ melra setup [--client <name>] [--write] [--json]
692
+ melra doctor [--json]
593
693
  melra conformance [--url <mcp-url> --token <token>] [--level <1|2|3>]
594
- melra init [--client <claude|cursor|vscode|codex|generic>]
694
+ melra init [--client <name>] [--write] [--json]
595
695
  melra serve [--http] [--port <port>] [--open]
696
+ melra serve --socket <path>
596
697
  melra run --request <task.json>
597
698
  melra inspect <task-id>
699
+ melra tasks [--limit <n>] [--status <status>] [--json]
700
+ melra watch [--json]
701
+ melra status [--json]
598
702
  melra workflow plan --definition <workflow.json>
599
703
  melra workflow advance <workflow-id> [--approval <id>:<exact-phrase>]
600
704
  [--input <node-id>=<value>]
@@ -604,9 +708,22 @@ Usage:
604
708
  melra demo durable-core
605
709
  melra clients [--revoke <client-id|all>]
606
710
  melra policy test --request <task.json>
607
- melra version
711
+ melra version [--json]
712
+
713
+ In a terminal, doctor, setup, init, and version print a readable report, and
714
+ 'melra setup' with no --client asks which detected client to set up. Piped or
715
+ captured, they print JSON (version: the bare number), exactly as before.
608
716
 
609
717
  Flags:
718
+ --json Print JSON even in a terminal, and never ask a question.
719
+ --client <name> Emit the MCP config in this client's own format and say
720
+ where it goes: claude-code (or claude), claude-desktop,
721
+ cursor, vscode, windsurf, codex, gemini, zed, cline,
722
+ opencode, kiro, goose, continue, amp, openclaw, hermes,
723
+ copilot, qwen, auggie, warp, junie, droid, kimi, kilo,
724
+ lmstudio, or generic (default).
725
+ --write With --client, merge the config into that client's file,
726
+ keeping everything else and saving the old file as .bak.
610
727
  --unsafe-local Run with no policy and no guardrails. Everything the OS user
611
728
  can do, any caller can now do. Same as MELRA_UNHINGED=1.
612
729
  Refused outright when --mode enforced. Was --unhinged, which
@@ -619,10 +736,17 @@ Flags:
619
736
  read-only REST API, a workflow event stream, and the console.
620
737
  Prints a bearer token; every request must carry it.
621
738
  --port <port> HTTP port (default: 7457, or MELRA_HTTP_PORT).
739
+ --socket <path> Serve what --http serves on a Unix socket created mode 0600,
740
+ so only this OS user can connect; the token is still
741
+ required. Not on Windows. Same as MELRA_SOCKET.
622
742
  --open Open the console in your browser once it is listening.
623
743
  --url <mcp-url> Endpoint for 'conformance'. Default: spawn 'melra serve'.
624
744
  --level <1|2|3> Conformance level being claimed (default: 3). The run exits
625
745
  non-zero if the endpoint falls short of it.
746
+ --json For tasks, watch, and status: JSON (NDJSON for watch) even
747
+ in a terminal. Output that is not a terminal is JSON anyway.
748
+ --limit <n> How many recent tasks 'tasks' lists (default: 20, max 500).
749
+ --status <s> Only tasks in this status, e.g. awaiting_approval.
626
750
 
627
751
  Environment:
628
752
  MELRA_WORKSPACE Workspace boundary (default: current directory)
@@ -633,6 +757,7 @@ Environment:
633
757
  MELRA_HTTP_PORT Port for 'serve --http' (default: 7457)
634
758
  MELRA_HTTP_TOKEN Fixed bearer token for 'serve --http' (default: random)
635
759
  MELRA_HTTP_OAUTH Set to 0 so only that token gets in; no client can register
760
+ MELRA_SOCKET Unix socket path for 'serve' instead of stdio (see --socket)
636
761
  MELRA_BROWSER Optional Chrome/Chromium/Edge executable
637
762
  MELRA_BROWSER_CDP_ENDPOINT Optional HTTP(S) CDP endpoint
638
763
  MELRA_BROWSER_CDP_CONTEXT_INDEX External context index (-1 is last)
@@ -671,14 +796,14 @@ async function main() {
671
796
  }
672
797
  switch (command) {
673
798
  case "doctor": {
674
- rejectUnknownFlags(args, []);
799
+ rejectUnknownFlags(args, ["--json"]);
675
800
  const { report, failed } = await doctor(env);
676
- output(report);
801
+ printJsonOrHuman(report, renderDoctor, args);
677
802
  process.exitCode = failed ? 1 : 0;
678
803
  return;
679
804
  }
680
805
  case "conformance": {
681
- rejectUnknownFlags(args, ["--url", "--token", "--level"]);
806
+ rejectUnknownFlags(args, ["--url", "--token", "--level", "--json"]);
682
807
  const level = argument("--level", args);
683
808
  if (level !== undefined && !["1", "2", "3"].includes(level)) {
684
809
  throw new Error("--level must be 1, 2, or 3");
@@ -690,33 +815,63 @@ async function main() {
690
815
  ...(token === undefined ? {} : { token }),
691
816
  ...(level === undefined ? {} : { claim: Number(level) }),
692
817
  });
693
- output(report);
818
+ printJsonOrHuman(report, renderConformance, args);
694
819
  process.exitCode = failed ? 1 : 0;
695
820
  return;
696
821
  }
697
822
  case "init":
698
- rejectUnknownFlags(args, ["--client"]);
699
- output(await init(args, env));
823
+ rejectUnknownFlags(args, ["--client", "--write", "--json"]);
824
+ printJsonOrHuman(await init(args, env), renderInit, args);
700
825
  return;
701
826
  case "setup":
702
- rejectUnknownFlags(args, ["--client"]);
827
+ rejectUnknownFlags(args, ["--client", "--write", "--json"]);
703
828
  process.exitCode = await setup(args, env);
704
829
  return;
705
830
  case "serve": {
706
- rejectUnknownFlags(args, ["--http", "--port", "--open"]);
707
- const melra = await runtime(env);
831
+ rejectUnknownFlags(args, ["--http", "--port", "--open", "--socket"]);
832
+ if (args.includes("--socket") && argument("--socket", args) === undefined) {
833
+ throw new Error("--socket requires a path");
834
+ }
835
+ const socketPath = argument("--socket", args) ?? env.socketPath;
708
836
  const http = args.includes("--http");
709
837
  const port = argument("--port", args);
710
- const server = http
711
- ? undefined
712
- : await serveStdio(melra);
713
- const endpoint = http
714
- ? await serveHttp({
715
- runtime: melra,
716
- ...(port === undefined ? {} : { port: Number(port) }),
717
- })
718
- : undefined;
719
- if (endpoint !== undefined) {
838
+ // One transport per process. Quietly preferring one would leave an
839
+ // operator believing they had the other — and the difference between a
840
+ // socket only they can open and a port anyone local can is the point.
841
+ if (socketPath !== undefined &&
842
+ (http || port !== undefined || args.includes("--open"))) {
843
+ throw new Error("--socket (or MELRA_SOCKET) replaces --http, --port, and --open; pass one transport");
844
+ }
845
+ const melra = await runtime(env);
846
+ const server = http || socketPath !== undefined ? undefined : await serveStdio(melra);
847
+ const endpoint = socketPath !== undefined
848
+ ? await serveHttp({ runtime: melra, socketPath })
849
+ : http
850
+ ? await serveHttp({
851
+ runtime: melra,
852
+ ...(port === undefined ? {} : { port: Number(port) }),
853
+ })
854
+ : undefined;
855
+ if (endpoint?.socketPath !== undefined) {
856
+ // An exported MELRA_SOCKET also reaches every stdio client spawned from
857
+ // that shell, which then waits forever for JSON-RPC on stdout. Name the
858
+ // variable where those clients log stderr, so the hang has a cause.
859
+ if (argument("--socket", args) === undefined) {
860
+ process.stderr.write(`melra: MELRA_SOCKET is set, so 'serve' is on the socket below, not stdio.\n` +
861
+ ` An MCP client that started this process will get no reply; unset\n` +
862
+ ` MELRA_SOCKET for it, or pass --socket explicitly when you mean it.\n`);
863
+ }
864
+ process.stderr.write(`MELRA server listening on Unix socket ${endpoint.socketPath} (mode 0600)\n` +
865
+ ` MCP: ${endpoint.mcpUrl}, connecting to that socket\n` +
866
+ ` Token: ${endpoint.token}\n` +
867
+ ` Try: curl --unix-socket ${endpoint.socketPath} -H 'Authorization: Bearer <token>' http://localhost/api/capabilities\n` +
868
+ `Only this OS user can connect; the token is still required on every\n` +
869
+ `request. OAuth is off: no browser can reach a socket to approve a client.\n` +
870
+ (env.mode === "enforced"
871
+ ? `Enforced mode: --unsafe-local is refused. Every receipt says 'enforced'.\n`
872
+ : ""));
873
+ }
874
+ else if (endpoint !== undefined) {
720
875
  // stdout stays clean for the stdio transport's sake even here, so the
721
876
  // one command an operator has to copy goes where they can read it.
722
877
  process.stderr.write(`MELRA HTTP server listening on http://${endpoint.host}:${endpoint.port}\n` +
@@ -754,13 +909,41 @@ async function main() {
754
909
  rejectUnknownFlags(args, []);
755
910
  await inspectTask(args, env);
756
911
  return;
912
+ case "tasks": {
913
+ rejectUnknownFlags(args, ["--limit", "--status", "--json"]);
914
+ const limit = Number(argument("--limit", args) ?? "20");
915
+ if (!Number.isInteger(limit) || limit < 1 || limit > 500) {
916
+ throw new Error("--limit must be a whole number from 1 to 500");
917
+ }
918
+ const status = argument("--status", args);
919
+ process.exitCode = tasksCommand(env, {
920
+ limit,
921
+ json: args.includes("--json"),
922
+ ...(status === undefined ? {} : { status: TaskStatusSchema.parse(status) }),
923
+ });
924
+ return;
925
+ }
926
+ case "watch":
927
+ rejectUnknownFlags(args, ["--json"]);
928
+ process.exitCode = await watchCommand(env, { json: args.includes("--json") });
929
+ return;
930
+ case "status": {
931
+ rejectUnknownFlags(args, ["--json"]);
932
+ const policyPath = await existingPolicyPath(env);
933
+ process.exitCode = await statusCommand(env, {
934
+ json: args.includes("--json"),
935
+ ...(policyPath === undefined ? {} : { policyPath }),
936
+ });
937
+ return;
938
+ }
757
939
  case "workflow":
758
940
  rejectUnknownFlags(args, ["--definition", "--approval", "--input"]);
759
941
  process.exitCode = await workflowCommand(args, env);
760
942
  return;
761
943
  case "demo":
762
944
  rejectUnknownFlags(args, []);
763
- if (args[0] !== "durable-core") {
945
+ // One demo today, so naming it is optional.
946
+ if ((args[0] ?? "durable-core") !== "durable-core") {
764
947
  throw new Error("demo supports only 'durable-core'");
765
948
  }
766
949
  process.exitCode = await durableCoreDemo(env);
@@ -778,7 +961,11 @@ async function main() {
778
961
  case "version":
779
962
  case "--version":
780
963
  case "-v":
781
- process.stdout.write(`${PRODUCT_VERSION}\n`);
964
+ // `--json` keeps the bare version scripts already parse; a JSON object
965
+ // here would break every `$(melra version)` in the wild.
966
+ process.stdout.write(isHuman(args)
967
+ ? `MELRA ${paint.bold(PRODUCT_VERSION)} ${paint.dim(`(Node ${process.version}, ${process.platform}-${process.arch})`)}\n`
968
+ : `${PRODUCT_VERSION}\n`);
782
969
  return;
783
970
  case "help":
784
971
  case "--help":
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Which OS-level restrictions this process is actually running under, as far
3
+ * as it can see from inside. Enforced mode closes the doors MELRA owns; these
4
+ * are the ones only the kernel can close, so `doctor` reports them rather than
5
+ * leaving `MELRA_MODE=enforced` to stand as an unbacked assertion (#52).
6
+ */
7
+ export interface Isolation {
8
+ /** Effective capability set is empty. */
9
+ noCapabilities: boolean;
10
+ /** `no_new_privs`: setuid binaries and file capabilities cannot raise privilege. */
11
+ noNewPrivileges: boolean;
12
+ /** A seccomp filter is installed. */
13
+ seccomp: boolean;
14
+ /** The root filesystem is mounted read-only. */
15
+ readOnlyRoot: boolean;
16
+ /** Running in a Docker or Podman container. */
17
+ container: boolean;
18
+ }
19
+ /**
20
+ * Read the restrictions out of `/proc/self/status` and `/proc/self/mountinfo`.
21
+ * Pure, so the parsing is testable without a container.
22
+ */
23
+ export declare function parseIsolation(status: string, mountinfo: string, container: boolean): Isolation;
24
+ export declare function detectIsolation(): Promise<Isolation | undefined>;
25
+ /**
26
+ * The doctor line. Never a `fail`: isolation is the operator's to arrange, and
27
+ * a laptop in developer mode needs none. Enforced mode with nothing in effect
28
+ * is a `warn`, because that is the case the operator should know about.
29
+ */
30
+ export declare function isolationCheck(isolation: Isolation | undefined, mode: "developer" | "enforced"): {
31
+ name: string;
32
+ status: "pass" | "warn";
33
+ detail: string;
34
+ };
35
+ //# sourceMappingURL=isolation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation.d.ts","sourceRoot":"","sources":["../src/isolation.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,cAAc,EAAE,OAAO,CAAC;IACxB,oFAAoF;IACpF,eAAe,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,YAAY,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,CAgB/F;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAetE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,IAAI,EAAE,WAAW,GAAG,UAAU,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoB3D"}