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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +14 -7
  2. package/dist/activity.d.ts +26 -0
  3. package/dist/activity.d.ts.map +1 -0
  4. package/dist/activity.js +404 -0
  5. package/dist/activity.js.map +1 -0
  6. package/dist/approval-screen.d.ts +35 -0
  7. package/dist/approval-screen.d.ts.map +1 -0
  8. package/dist/approval-screen.js +130 -0
  9. package/dist/approval-screen.js.map +1 -0
  10. package/dist/client-status.d.ts +24 -0
  11. package/dist/client-status.d.ts.map +1 -0
  12. package/dist/client-status.js +273 -0
  13. package/dist/client-status.js.map +1 -0
  14. package/dist/clients.d.ts +32 -0
  15. package/dist/clients.d.ts.map +1 -0
  16. package/dist/clients.js +588 -0
  17. package/dist/clients.js.map +1 -0
  18. package/dist/conformance.d.ts +7 -0
  19. package/dist/conformance.d.ts.map +1 -1
  20. package/dist/conformance.js +134 -30
  21. package/dist/conformance.js.map +1 -1
  22. package/dist/demo-workflow.d.ts +46 -0
  23. package/dist/demo-workflow.d.ts.map +1 -0
  24. package/dist/demo-workflow.js +58 -0
  25. package/dist/demo-workflow.js.map +1 -0
  26. package/dist/environment.d.ts +15 -1
  27. package/dist/environment.d.ts.map +1 -1
  28. package/dist/environment.js +30 -4
  29. package/dist/environment.js.map +1 -1
  30. package/dist/human.d.ts +67 -0
  31. package/dist/human.d.ts.map +1 -0
  32. package/dist/human.js +266 -0
  33. package/dist/human.js.map +1 -0
  34. package/dist/index.js +432 -77
  35. package/dist/index.js.map +1 -1
  36. package/dist/isolation.d.ts +35 -0
  37. package/dist/isolation.d.ts.map +1 -0
  38. package/dist/isolation.js +66 -0
  39. package/dist/isolation.js.map +1 -0
  40. package/dist/jsonc.d.ts +24 -0
  41. package/dist/jsonc.d.ts.map +1 -0
  42. package/dist/jsonc.js +238 -0
  43. package/dist/jsonc.js.map +1 -0
  44. package/dist/output.d.ts +28 -0
  45. package/dist/output.d.ts.map +1 -0
  46. package/dist/output.js +84 -0
  47. package/dist/output.js.map +1 -0
  48. package/package.json +11 -10
@@ -20,9 +20,14 @@
20
20
  * Read `notProven` before quoting a result. This is a black-box check of one
21
21
  * endpoint: it can show that the endpoint governs the effects it is asked for,
22
22
  * and it cannot show that the harness on the other side has no second way to
23
- * reach the same disk.
23
+ * reach the same disk. One exception: against an enforced endpoint it spawned,
24
+ * the suite approves out of band through the shared data directory, because
25
+ * the agent's side may not approve anything there.
24
26
  */
27
+ import { execFile } from "node:child_process";
25
28
  import { randomBytes } from "node:crypto";
29
+ import { isSea } from "node:sea";
30
+ import { promisify } from "node:util";
26
31
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
27
32
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
28
33
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
@@ -60,7 +65,7 @@ const KERNEL_TOOLS = [
60
65
  */
61
66
  function bypassCaveat(mode) {
62
67
  return mode === "enforced"
63
- ? "That the operator's enforced-mode claim is true. The endpoint reports enforced mode and this suite verified the refusals MELRA owns, but whether the harness above it is really sandboxed is a fact about the deployment, not about this endpoint."
68
+ ? "That the operator's enforced-mode claim is true. The endpoint reports enforced mode and this suite verified the refusals MELRA owns, but whether the harness above it is really sandboxed is a fact about the deployment, not about this endpoint. That includes the approvals: `melra approve` counts as out of band because it runs as a process with OS access to the data directory, which is only an operator if the agent has no such access."
64
69
  : "That the harness has no second, ungoverned path to the same systems. A harness holding both a MELRA terminal and a native one makes the kernel optional, and an optional boundary is not a trust boundary. Nothing observable from this side distinguishes the two.";
65
70
  }
66
71
  const NOT_PROVEN = [
@@ -118,7 +123,7 @@ export async function runConformance(options = {}) {
118
123
  name: "melra-conformance",
119
124
  version: PRODUCT_VERSION,
120
125
  });
121
- const target = await connect(client, options);
126
+ const { target, approve } = await connect(client, options);
122
127
  const call = caller(client);
123
128
  const checks = [];
124
129
  const check = async (level, name, run) => {
@@ -146,7 +151,27 @@ export async function runConformance(options = {}) {
146
151
  let mode = "developer";
147
152
  let approvalId;
148
153
  let phrase;
154
+ let actionDigest;
149
155
  let writeTaskId;
156
+ let planReply;
157
+ /**
158
+ * What `melra_execute` needs beside the task id to run an approved effect:
159
+ * the echoed phrase in developer mode, and in enforced mode nothing at all,
160
+ * once an operator has said yes out of band.
161
+ */
162
+ const approveFor = async (reply) => {
163
+ if (mode !== "enforced") {
164
+ return {
165
+ approval: {
166
+ approvalId: field(reply.value, "approval.approvalId"),
167
+ phrase: field(reply.value, "approval.phrase"),
168
+ },
169
+ };
170
+ }
171
+ must(approve !== undefined, "enforced mode needs an out-of-band approver; run without --url, or pass `approve`");
172
+ await approve(field(reply.value, "id"));
173
+ return {};
174
+ };
150
175
  await check(1, "kernel-tools-present", async () => {
151
176
  const listed = (await client.listTools()).tools.map((tool) => tool.name);
152
177
  const missing = KERNEL_TOOLS.filter((tool) => !listed.includes(tool));
@@ -215,8 +240,11 @@ export async function runConformance(options = {}) {
215
240
  // that would.
216
241
  const guarantee = field(reply.value, "contract.executionGuarantee");
217
242
  must(guarantee === "at-most-once", `a gated mutation published the guarantee ${guarantee}`);
243
+ planReply = reply;
218
244
  approvalId = field(reply.value, "approval.approvalId");
219
- phrase = field(reply.value, "approval.phrase");
245
+ actionDigest = field(reply.value, "approval.actionDigest");
246
+ if (mode !== "enforced")
247
+ phrase = field(reply.value, "approval.phrase");
220
248
  must(field(reply.value, "approval.taskId") === writeTaskId, "the approval challenge is not scoped to this task");
221
249
  must(/^[a-f0-9]{64}$/.test(field(reply.value, "approval.actionDigest")), "the approval challenge carries no action digest");
222
250
  return "planning a mutation produced a task-scoped approval challenge";
@@ -227,16 +255,48 @@ export async function runConformance(options = {}) {
227
255
  must(!reply.ok, "a gated mutation executed with no approval at all");
228
256
  return `refused: ${reply.text}`;
229
257
  });
230
- await check(2, "wrong-phrase-is-refused", async () => {
231
- must(writeTaskId !== undefined, "no planned mutation to execute");
232
- must(phrase !== undefined && approvalId !== undefined, "no challenge issued");
233
- const reply = await call("melra_execute", {
234
- taskId: writeTaskId,
235
- approval: { approvalId, phrase: `${phrase} and also this` },
258
+ if (mode !== "enforced") {
259
+ await check(2, "wrong-phrase-is-refused", async () => {
260
+ must(writeTaskId !== undefined, "no planned mutation to execute");
261
+ must(phrase !== undefined && approvalId !== undefined, "no challenge issued");
262
+ const reply = await call("melra_execute", {
263
+ taskId: writeTaskId,
264
+ approval: { approvalId, phrase: `${phrase} and also this` },
265
+ });
266
+ must(!reply.ok, "a gated mutation executed on a phrase that was not the one issued");
267
+ return `refused: ${reply.text}`;
236
268
  });
237
- must(!reply.ok, "a gated mutation executed on a phrase that was not the one issued");
238
- return `refused: ${reply.text}`;
239
- });
269
+ }
270
+ else {
271
+ // A credential the agent is handed proves only that the agent echoed it,
272
+ // so in enforced mode there must be none to echo.
273
+ await check(2, "approval-credential-withheld", async () => {
274
+ must(writeTaskId !== undefined && planReply !== undefined, "no planned mutation");
275
+ const status = await call("melra_task_status", { taskId: writeTaskId });
276
+ must(status.ok, status.text);
277
+ for (const reply of [planReply, status]) {
278
+ must(!hasKey(reply.value, "phrase"), "a reply carries an approval phrase");
279
+ must(!/APPROVE [a-f0-9]{12}/.test(reply.text), "a reply carries an approval phrase by value");
280
+ }
281
+ return "no phrase in the plan or the task record";
282
+ });
283
+ // The phrase MELRA would have issued is computable from the challenge, so
284
+ // an endpoint that still accepted it would be accepting the agent's word.
285
+ await check(2, "in-band-approval-refused", async () => {
286
+ must(writeTaskId !== undefined && approvalId !== undefined && actionDigest !== undefined, "no challenge issued");
287
+ const reply = await call("melra_execute", {
288
+ taskId: writeTaskId,
289
+ approval: { approvalId, phrase: `APPROVE ${actionDigest.slice(0, 12)}` },
290
+ });
291
+ // An endpoint that ran it wrote the probe, and the report has to say so.
292
+ if (reply.ok)
293
+ probeWritten = true;
294
+ must(!reply.ok, "a gated mutation executed on a phrase the agent derived itself");
295
+ const status = await call("melra_task_status", { taskId: writeTaskId });
296
+ must(field(status.value, "status") === "awaiting_approval", "the refused task is no longer awaiting approval");
297
+ return `refused: ${reply.text}`;
298
+ });
299
+ }
240
300
  await check(2, "refused-effects-did-not-happen", async () => {
241
301
  const reply = await call("melra_plan", {
242
302
  goal: "Conformance: confirm the refused write left nothing behind",
@@ -271,10 +331,10 @@ export async function runConformance(options = {}) {
271
331
  });
272
332
  await check(3, "approved-mutation-verifies", async () => {
273
333
  must(writeTaskId !== undefined, "no planned mutation to execute");
274
- must(phrase !== undefined && approvalId !== undefined, "no challenge issued");
334
+ must(planReply !== undefined, "no challenge issued");
275
335
  const reply = await call("melra_execute", {
276
336
  taskId: writeTaskId,
277
- approval: { approvalId, phrase },
337
+ ...(await approveFor(planReply)),
278
338
  });
279
339
  must(reply.ok, reply.text);
280
340
  probeWritten = true;
@@ -321,6 +381,22 @@ export async function runConformance(options = {}) {
321
381
  must(field(reply.value, "certificate.result") === "VERIFIED_SUCCESS", "no verified certificate survived the call");
322
382
  return `receipt ${receipts[0]?.receiptId} for ${receipts[0]?.capability}, still readable after other tasks ran`;
323
383
  });
384
+ // Enforced mode only: in developer mode every approval is in band by
385
+ // definition, and an endpoint older than approval provenance has no field to
386
+ // say so, so the check would only mark it down for its age.
387
+ if (mode === "enforced") {
388
+ await check(3, "approval-provenance-recorded", async () => {
389
+ must(writeTaskId !== undefined, "no executed mutation to read back");
390
+ const reply = await call("melra_receipt", { taskId: writeTaskId });
391
+ must(reply.ok, reply.text);
392
+ const receipts = field(reply.value, "receipts");
393
+ const channel = receipts[0]?.policyDecision?.approval?.channel;
394
+ must(channel === "out_of_band", `the receipt says the approval came ${channel ?? "from nowhere"}, not out_of_band`);
395
+ const certified = field(reply.value, "certificate.approvalChannel");
396
+ must(certified === "out_of_band", `the certificate says ${certified}, not out_of_band`);
397
+ return "receipt and certificate both say out_of_band";
398
+ });
399
+ }
324
400
  // Last, because it is also the cleanup: a destructive effect gated by its own
325
401
  // approval, verified by the file being gone.
326
402
  await check(3, "destructive-effects-are-gated-and-verified", async () => {
@@ -336,10 +412,7 @@ export async function runConformance(options = {}) {
336
412
  must(field(reply.value, "status") === "awaiting_approval", "a destructive effect was not gated");
337
413
  const executed = await call("melra_execute", {
338
414
  taskId: field(reply.value, "id"),
339
- approval: {
340
- approvalId: field(reply.value, "approval.approvalId"),
341
- phrase: field(reply.value, "approval.phrase"),
342
- },
415
+ ...(await approveFor(reply)),
343
416
  });
344
417
  must(executed.ok, executed.text);
345
418
  must(field(executed.value, "task.status") === "verified_success", "the delete did not verify");
@@ -375,11 +448,26 @@ export async function runConformance(options = {}) {
375
448
  failed: level < claim,
376
449
  };
377
450
  }
451
+ /** Whether a key appears anywhere in a reply, however deep. */
452
+ function hasKey(value, key) {
453
+ if (Array.isArray(value))
454
+ return value.some((item) => hasKey(item, key));
455
+ if (value === null || typeof value !== "object")
456
+ return false;
457
+ return Object.entries(value).some(([name, item]) => name === key || hasKey(item, key));
458
+ }
378
459
  async function connect(client, options) {
379
460
  if (options.url !== undefined) {
380
461
  // Forgiving about the one thing people get wrong: `serve --http` prints both
381
- // the console URL and the MCP URL, and only one of them is an endpoint.
382
- const url = new URL(options.url.endsWith("/mcp") ? options.url : `${options.url.replace(/\/$/, "")}/mcp`);
462
+ // the console URL and the MCP URL, and only one of them is an endpoint. The
463
+ // console URL carries `?token=`, so the path is edited as a path and the
464
+ // token, when --token is not given, is taken from the query.
465
+ const url = new URL(options.url);
466
+ if (!url.pathname.endsWith("/mcp"))
467
+ url.pathname = `${url.pathname.replace(/\/$/, "")}/mcp`;
468
+ const token = options.token ?? url.searchParams.get("token") ?? undefined;
469
+ url.search = "";
470
+ options = { ...options, ...(token === undefined ? {} : { token }) };
383
471
  await client.connect(
384
472
  // ponytail: the SDK declares `sessionId?: string` on this transport, which
385
473
  // `exactOptionalPropertyTypes` reads as incompatible with the `Transport`
@@ -393,25 +481,41 @@ async function connect(client, options) {
393
481
  },
394
482
  }),
395
483
  }));
396
- return { transport: "http", url: url.href, authenticated: options.token !== undefined };
484
+ return {
485
+ target: { transport: "http", url: url.href, authenticated: options.token !== undefined },
486
+ ...(options.approve === undefined ? {} : { approve: options.approve }),
487
+ };
397
488
  }
398
489
  const command = options.command ?? process.execPath;
399
- const args = options.args ??
400
- (options.command === undefined
401
- ? // Reproduce how this process was started, loaders included, so the same
402
- // command works from `dist/bin.js` and from `tsx src/index.ts`.
403
- [...process.execArgv, process.argv[1] ?? "", "serve"]
404
- : ["serve"]);
490
+ // Reproduce how this process was started, loaders included, so the same
491
+ // command works from `dist/bin.js` and from `tsx src/index.ts`. A single
492
+ // executable is its own entry point and takes the subcommand directly.
493
+ const self = isSea() ? [] : [...process.execArgv, process.argv[1] ?? ""];
494
+ const args = options.args ?? (options.command === undefined ? [...self, "serve"] : ["serve"]);
495
+ const env = options.env ?? inheritedEnvironment();
405
496
  await client.connect(new StdioClientTransport({
406
497
  command,
407
498
  args,
408
499
  // The SDK forwards a small allowlist by default, which would drop every
409
500
  // MELRA_* variable and quietly check a server configured differently from
410
501
  // the one the operator runs. The point is to check *their* endpoint.
411
- env: options.env ?? inheritedEnvironment(),
502
+ env,
412
503
  stderr: "pipe",
413
504
  }));
414
- return { transport: "stdio", command, args };
505
+ // Only a server this suite started is known to share this CLI's data
506
+ // directory, so only then can its own `approve` answer for it. Always in
507
+ // enforced mode, so it can never spend the task's one decision in band, and
508
+ // under the suite's name, so the receipt says who said yes.
509
+ const ownServer = options.command === undefined && options.args === undefined;
510
+ const approve = options.approve ??
511
+ (ownServer
512
+ ? async (taskId) => {
513
+ await promisify(execFile)(process.execPath, [...self, "approve", taskId, "--yes", "--mode", "enforced"], {
514
+ env: { ...env, MELRA_APPROVER: "melra-conformance" },
515
+ });
516
+ }
517
+ : undefined);
518
+ return { target: { transport: "stdio", command, args }, ...(approve === undefined ? {} : { approve }) };
415
519
  }
416
520
  function inheritedEnvironment() {
417
521
  return Object.fromEntries(Object.entries(process.env).filter((entry) => entry[1] !== undefined));
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The workflow `melra demo durable-core` runs. It ships inside the CLI because
3
+ * the published package has no `examples/` directory: reading the repo's copy
4
+ * worked from a checkout and failed with ENOENT from every npm install. A test
5
+ * keeps it identical to examples/workflows/restart-safe.json, which the docs use.
6
+ */
7
+ export declare const RESTART_SAFE_WORKFLOW: {
8
+ readonly schemaVersion: "1.0.0";
9
+ readonly id: "7d57f7ba-9b98-4ff5-8f73-a24fbaf66d28";
10
+ readonly version: 1;
11
+ readonly name: "restart-safe-verified-file";
12
+ readonly nodes: readonly [{
13
+ readonly id: "inspect";
14
+ readonly type: "operation";
15
+ readonly dependsOn: readonly [];
16
+ readonly request: {
17
+ readonly goal: "Inspect the local runtime";
18
+ readonly operation: {
19
+ readonly kind: "system";
20
+ readonly action: "info";
21
+ };
22
+ };
23
+ }, {
24
+ readonly id: "write";
25
+ readonly type: "operation";
26
+ readonly dependsOn: readonly ["inspect"];
27
+ readonly request: {
28
+ readonly goal: "Create a restart-safe verified artifact";
29
+ readonly operation: {
30
+ readonly kind: "file";
31
+ readonly action: "write";
32
+ readonly path: "durable-core-result.txt";
33
+ readonly content: "verified after restart";
34
+ };
35
+ readonly requiredEvidence: readonly [{
36
+ readonly type: "file_exists";
37
+ readonly path: "durable-core-result.txt";
38
+ }];
39
+ };
40
+ }, {
41
+ readonly id: "checkpoint";
42
+ readonly type: "checkpoint";
43
+ readonly dependsOn: readonly ["write"];
44
+ }];
45
+ };
46
+ //# sourceMappingURL=demo-workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-workflow.d.ts","sourceRoot":"","sources":["../src/demo-workflow.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDxB,CAAC"}
@@ -0,0 +1,58 @@
1
+ // Copyright 2026 XAGI Labs Private Limited
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * The workflow `melra demo durable-core` runs. It ships inside the CLI because
5
+ * the published package has no `examples/` directory: reading the repo's copy
6
+ * worked from a checkout and failed with ENOENT from every npm install. A test
7
+ * keeps it identical to examples/workflows/restart-safe.json, which the docs use.
8
+ */
9
+ export const RESTART_SAFE_WORKFLOW = {
10
+ "schemaVersion": "1.0.0",
11
+ "id": "7d57f7ba-9b98-4ff5-8f73-a24fbaf66d28",
12
+ "version": 1,
13
+ "name": "restart-safe-verified-file",
14
+ "nodes": [
15
+ {
16
+ "id": "inspect",
17
+ "type": "operation",
18
+ "dependsOn": [],
19
+ "request": {
20
+ "goal": "Inspect the local runtime",
21
+ "operation": {
22
+ "kind": "system",
23
+ "action": "info"
24
+ }
25
+ }
26
+ },
27
+ {
28
+ "id": "write",
29
+ "type": "operation",
30
+ "dependsOn": [
31
+ "inspect"
32
+ ],
33
+ "request": {
34
+ "goal": "Create a restart-safe verified artifact",
35
+ "operation": {
36
+ "kind": "file",
37
+ "action": "write",
38
+ "path": "durable-core-result.txt",
39
+ "content": "verified after restart"
40
+ },
41
+ "requiredEvidence": [
42
+ {
43
+ "type": "file_exists",
44
+ "path": "durable-core-result.txt"
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ "id": "checkpoint",
51
+ "type": "checkpoint",
52
+ "dependsOn": [
53
+ "write"
54
+ ]
55
+ }
56
+ ]
57
+ };
58
+ //# sourceMappingURL=demo-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-workflow.js","sourceRoot":"","sources":["../src/demo-workflow.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,sCAAsC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,eAAe,EAAE,OAAO;IACxB,IAAI,EAAE,sCAAsC;IAC5C,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,4BAA4B;IACpC,OAAO,EAAE;QACP;YACE,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,EAAE;YACf,SAAS,EAAE;gBACT,MAAM,EAAE,2BAA2B;gBACnC,WAAW,EAAE;oBACX,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,MAAM;iBACjB;aACF;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE;gBACX,SAAS;aACV;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,yCAAyC;gBACjD,WAAW,EAAE;oBACX,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,yBAAyB;oBACjC,SAAS,EAAE,wBAAwB;iBACpC;gBACD,kBAAkB,EAAE;oBAClB;wBACE,MAAM,EAAE,aAAa;wBACrB,MAAM,EAAE,yBAAyB;qBAClC;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE;gBACX,OAAO;aACR;SACF;KACF;CACO,CAAC"}
@@ -1,10 +1,22 @@
1
1
  import type { DeploymentMode } from "@melra/protocol";
2
2
  export interface CliEnvironment {
3
3
  workspaceRoot: string;
4
+ /** MELRA_WORKSPACE was set, so no policy file's `workspaceRoot` replaces it. */
5
+ workspaceSet?: boolean;
4
6
  dataDirectory: string;
7
+ /**
8
+ * `MELRA_APPROVER`, as set: the name `melra approve` records as the
9
+ * approver, as `cli:<name>`. Receipts carry it and an agent can read
10
+ * receipts, so it is a label the operator chooses, never the OS account
11
+ * name. Checked by `approverLabel` only where it is used, so a bad value
12
+ * cannot stop `serve` or `help`.
13
+ */
14
+ approver: string;
5
15
  unhinged: boolean;
6
16
  mode: DeploymentMode;
7
17
  policyPath?: string;
18
+ /** `MELRA_SOCKET`: `serve` listens on this Unix socket instead of stdio. */
19
+ socketPath?: string;
8
20
  browserExecutablePath?: string;
9
21
  browserCdpEndpoint?: string;
10
22
  browserCdpContextIndex?: number;
@@ -16,9 +28,11 @@ export interface CliEnvironmentDefaults {
16
28
  cwd: string;
17
29
  home: string;
18
30
  }
19
- export declare function serverLaunch(moduleDirectory: string, version: string): {
31
+ export declare function serverLaunch(moduleDirectory: string, version: string, singleExecutable?: boolean): {
20
32
  command: string;
21
33
  args: string[];
22
34
  };
35
+ /** The approver as receipts record it: `cli:` and a label nothing can disguise. */
36
+ export declare function approverLabel(env: CliEnvironment): string;
23
37
  export declare function parseCliEnvironment(source: NodeJS.ProcessEnv, defaults?: CliEnvironmentDefaults): CliEnvironment;
24
38
  //# sourceMappingURL=environment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAItD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,wBAAgB,YAAY,CAC1B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAIrC;AA0CD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,QAAQ,GAAE,sBAGT,GACA,cAAc,CAyDhB"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKtD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAWD,wBAAgB,YAAY,CAC1B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,gBAAgB,UAAU,GACzB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAKrC;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAKzD;AA0CD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,QAAQ,GAAE,sBAGT,GACA,cAAc,CAgEhB"}
@@ -2,18 +2,33 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { homedir } from "node:os";
4
4
  import { isAbsolute, join, resolve } from "node:path";
5
+ import { isSea } from "node:sea";
5
6
  import { deploymentMode } from "@melra/protocol";
6
7
  import { unhingedFromEnvironment } from "@melra/server";
8
+ import { printable } from "./approval-screen.js";
7
9
  // A generated client config has to name a command the client can actually
8
10
  // spawn. `npx` runs the CLI out of its own cache and leaves nothing on PATH,
9
11
  // so `melra` would fail to start for exactly the users who took the shortest
10
12
  // install path. Pin the version that wrote the config, so the client keeps
11
13
  // launching the same server until someone changes it.
12
- export function serverLaunch(moduleDirectory, version) {
14
+ //
15
+ // A single-executable build (`melra` with Node inside, #76) is neither: the
16
+ // client must spawn this very binary, by absolute path, since it may well not
17
+ // be on the PATH a client launches with.
18
+ export function serverLaunch(moduleDirectory, version, singleExecutable = isSea()) {
19
+ if (singleExecutable)
20
+ return { command: process.execPath, args: ["serve"] };
13
21
  return /[\\/]_npx[\\/]/.test(moduleDirectory)
14
22
  ? { command: "npx", args: ["-y", `@melra/cli@${version}`, "serve"] }
15
23
  : { command: "melra", args: ["serve"] };
16
24
  }
25
+ /** The approver as receipts record it: `cli:` and a label nothing can disguise. */
26
+ export function approverLabel(env) {
27
+ if (!/^[\p{L}\p{N}_.@-]{1,64}$/u.test(env.approver) || printable(env.approver) !== env.approver) {
28
+ throw new Error("MELRA_APPROVER must be 1 to 64 letters, digits, '.', '_', '@' or '-'");
29
+ }
30
+ return `cli:${env.approver}`;
31
+ }
17
32
  function cdpEndpoint(value) {
18
33
  if (value === undefined)
19
34
  return undefined;
@@ -85,13 +100,24 @@ export function parseCliEnvironment(source, defaults = {
85
100
  throw new Error("browser_cdp_context_requires_endpoint");
86
101
  }
87
102
  return {
88
- workspaceRoot: resolve(source.MELRA_WORKSPACE ?? defaults.cwd),
89
- dataDirectory: resolve(source.MELRA_HOME ?? join(defaults.home, ".melra")),
103
+ // Empty counts as unset for these too: `MELRA_POLICY=${P}` with P unset
104
+ // otherwise names the working directory as the policy file.
105
+ workspaceRoot: resolve(source.MELRA_WORKSPACE?.trim() || defaults.cwd),
106
+ workspaceSet: (source.MELRA_WORKSPACE ?? "").trim() !== "",
107
+ // Empty is unset here too, or the database and payload key would land in
108
+ // the working directory, inside the workspace a confined agent can write.
109
+ dataDirectory: resolve(source.MELRA_HOME?.trim() || join(defaults.home, ".melra")),
110
+ approver: source.MELRA_APPROVER?.trim() || "operator",
90
111
  unhinged: unhingedFromEnvironment(source),
91
112
  mode: deploymentMode(source.MELRA_MODE),
92
- ...(source.MELRA_POLICY === undefined
113
+ ...(source.MELRA_POLICY === undefined || source.MELRA_POLICY.trim() === ""
93
114
  ? {}
94
115
  : { policyPath: resolve(source.MELRA_POLICY) }),
116
+ // Empty counts as unset, so `MELRA_SOCKET=` in a unit file turns it off
117
+ // rather than asking for a socket named after the working directory.
118
+ ...(source.MELRA_SOCKET === undefined || source.MELRA_SOCKET.trim() === ""
119
+ ? {}
120
+ : { socketPath: resolve(source.MELRA_SOCKET) }),
95
121
  ...(source.MELRA_BROWSER === undefined
96
122
  ? {}
97
123
  : { browserExecutablePath: resolve(source.MELRA_BROWSER) }),
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}