@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.
- package/README.md +14 -7
- package/dist/activity.d.ts +26 -0
- package/dist/activity.d.ts.map +1 -0
- package/dist/activity.js +404 -0
- package/dist/activity.js.map +1 -0
- package/dist/approval-screen.d.ts +35 -0
- package/dist/approval-screen.d.ts.map +1 -0
- package/dist/approval-screen.js +130 -0
- package/dist/approval-screen.js.map +1 -0
- package/dist/client-status.d.ts +24 -0
- package/dist/client-status.d.ts.map +1 -0
- package/dist/client-status.js +273 -0
- package/dist/client-status.js.map +1 -0
- package/dist/clients.d.ts +32 -0
- package/dist/clients.d.ts.map +1 -0
- package/dist/clients.js +588 -0
- package/dist/clients.js.map +1 -0
- package/dist/conformance.d.ts +7 -0
- package/dist/conformance.d.ts.map +1 -1
- package/dist/conformance.js +134 -30
- package/dist/conformance.js.map +1 -1
- package/dist/demo-workflow.d.ts +46 -0
- package/dist/demo-workflow.d.ts.map +1 -0
- package/dist/demo-workflow.js +58 -0
- package/dist/demo-workflow.js.map +1 -0
- package/dist/environment.d.ts +15 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +30 -4
- package/dist/environment.js.map +1 -1
- package/dist/human.d.ts +67 -0
- package/dist/human.d.ts.map +1 -0
- package/dist/human.js +266 -0
- package/dist/human.js.map +1 -0
- package/dist/index.js +432 -77
- package/dist/index.js.map +1 -1
- package/dist/isolation.d.ts +35 -0
- package/dist/isolation.d.ts.map +1 -0
- package/dist/isolation.js +66 -0
- package/dist/isolation.js.map +1 -0
- package/dist/jsonc.d.ts +24 -0
- package/dist/jsonc.d.ts.map +1 -0
- package/dist/jsonc.js +238 -0
- package/dist/jsonc.js.map +1 -0
- package/dist/output.d.ts +28 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +84 -0
- package/dist/output.js.map +1 -0
- package/package.json +11 -10
package/dist/conformance.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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
|
-
|
|
238
|
-
|
|
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(
|
|
334
|
+
must(planReply !== undefined, "no challenge issued");
|
|
275
335
|
const reply = await call("melra_execute", {
|
|
276
336
|
taskId: writeTaskId,
|
|
277
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
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
|
|
502
|
+
env,
|
|
412
503
|
stderr: "pipe",
|
|
413
504
|
}));
|
|
414
|
-
|
|
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));
|
package/dist/conformance.js.map
CHANGED
|
@@ -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"}
|
package/dist/environment.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/environment.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
89
|
-
|
|
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) }),
|
package/dist/environment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,sCAAsC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
|