@melra/cli 0.3.0-alpha.3 → 0.3.0-alpha.5
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 +26 -4
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +31 -0
- package/dist/bin.js.map +1 -0
- package/dist/environment.d.ts +5 -0
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +12 -0
- package/dist/environment.js.map +1 -1
- package/dist/index.js +261 -28
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -1,13 +1,35 @@
|
|
|
1
1
|
# MELRA CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Everything in one command, with nothing installed beforehand:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
|
|
7
|
-
melra doctor
|
|
8
|
-
melra init --client generic
|
|
6
|
+
npx @melra/cli@alpha setup
|
|
9
7
|
```
|
|
10
8
|
|
|
9
|
+
`setup` writes a safe local policy, prints an MCP client configuration you can
|
|
10
|
+
paste straight into your client, and runs every readiness check (Node,
|
|
11
|
+
workspace, SQLite, browser, computer-use adapter, policy). It exits non-zero if
|
|
12
|
+
a check fails and never overwrites an existing policy.
|
|
13
|
+
|
|
14
|
+
To keep a resolved copy on the machine instead of resolving on every run:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install --global @melra/cli@alpha
|
|
18
|
+
melra setup
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Either way the generated configuration names a command your client can actually
|
|
22
|
+
spawn: run through `npx` and it launches the server through `npx` at the exact
|
|
23
|
+
version that wrote the config, since an `npx` install leaves no `melra` on your
|
|
24
|
+
`PATH`.
|
|
25
|
+
|
|
26
|
+
Individual steps are still available: `melra doctor` checks readiness and writes
|
|
27
|
+
nothing, `melra init` writes the policy and config without checking. Run
|
|
28
|
+
`melra help` for the full command list.
|
|
29
|
+
|
|
11
30
|
The CLI starts with a local policy that allows reads outright and gates every
|
|
12
31
|
mutation: a consequential operation requires declared evidence and an exact,
|
|
13
32
|
task-scoped approval phrase before it runs.
|
|
33
|
+
|
|
34
|
+
Requires Node.js 22 or newer. Full documentation:
|
|
35
|
+
[github.com/XAGI-Lab/melra](https://github.com/XAGI-Lab/melra)
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Copyright 2026 XAGI Labs Private Limited
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
// The `melra` executable. Its only job is to silence one Node warning before
|
|
5
|
+
// the rest of the CLI loads, then hand over to `index.ts`.
|
|
6
|
+
//
|
|
7
|
+
// `node:sqlite` emits an ExperimentalWarning the first time it is linked, which
|
|
8
|
+
// meant two lines of Node noise on every invocation — `melra help` and
|
|
9
|
+
// `melra version` included — about a dependency the user did not choose and
|
|
10
|
+
// cannot change. Under an MCP client the same lines land in the server log,
|
|
11
|
+
// where they read like a fault.
|
|
12
|
+
//
|
|
13
|
+
// It has to happen here rather than as the first import of `index.ts`: static
|
|
14
|
+
// imports are linked before any module body runs, so a patch applied in a
|
|
15
|
+
// sibling module is already too late. Loading the CLI with a dynamic import is
|
|
16
|
+
// what puts the whole graph, `node:sqlite` included, after this file's body.
|
|
17
|
+
//
|
|
18
|
+
// Only that one warning is dropped. Deprecations and everything else still
|
|
19
|
+
// print, because those are warnings a user can act on.
|
|
20
|
+
const SQLITE_EXPERIMENTAL = /SQLite is an experimental feature/;
|
|
21
|
+
const emitWarning = process.emitWarning.bind(process);
|
|
22
|
+
// Node's overloads disagree on the tail arguments, so accept and forward them.
|
|
23
|
+
process.emitWarning = ((warning, ...rest) => {
|
|
24
|
+
const text = typeof warning === "string" ? warning : warning.message;
|
|
25
|
+
if (SQLITE_EXPERIMENTAL.test(text))
|
|
26
|
+
return;
|
|
27
|
+
emitWarning(warning, ...rest);
|
|
28
|
+
});
|
|
29
|
+
await import("./index.js");
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,2CAA2C;AAC3C,sCAAsC;AAEtC,6EAA6E;AAC7E,2DAA2D;AAC3D,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,4EAA4E;AAC5E,4EAA4E;AAC5E,gCAAgC;AAChC,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,+EAA+E;AAC/E,6EAA6E;AAC7E,EAAE;AACF,2EAA2E;AAC3E,uDAAuD;AAEvD,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAChE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAEtD,+EAA+E;AAC/E,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,OAAuB,EAAE,GAAG,IAAe,EAAQ,EAAE;IAC3E,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACrE,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO;IAC1C,WAA4C,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAClE,CAAC,CAA+B,CAAC;AAEjC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC"}
|
package/dist/environment.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export interface CliEnvironment {
|
|
2
2
|
workspaceRoot: string;
|
|
3
3
|
dataDirectory: string;
|
|
4
|
+
unhinged: boolean;
|
|
4
5
|
policyPath?: string;
|
|
5
6
|
browserExecutablePath?: string;
|
|
6
7
|
browserCdpEndpoint?: string;
|
|
@@ -11,5 +12,9 @@ export interface CliEnvironmentDefaults {
|
|
|
11
12
|
cwd: string;
|
|
12
13
|
home: string;
|
|
13
14
|
}
|
|
15
|
+
export declare function serverLaunch(moduleDirectory: string, version: string): {
|
|
16
|
+
command: string;
|
|
17
|
+
args: string[];
|
|
18
|
+
};
|
|
14
19
|
export declare function parseCliEnvironment(source: NodeJS.ProcessEnv, defaults?: CliEnvironmentDefaults): CliEnvironment;
|
|
15
20
|
//# 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":"AAOA,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,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;CACzB;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,CAgChB"}
|
package/dist/environment.js
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
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 { unhingedFromEnvironment } from "@melra/server";
|
|
6
|
+
// A generated client config has to name a command the client can actually
|
|
7
|
+
// spawn. `npx` runs the CLI out of its own cache and leaves nothing on PATH,
|
|
8
|
+
// so `melra` would fail to start for exactly the users who took the shortest
|
|
9
|
+
// install path. Pin the version that wrote the config, so the client keeps
|
|
10
|
+
// launching the same server until someone changes it.
|
|
11
|
+
export function serverLaunch(moduleDirectory, version) {
|
|
12
|
+
return /[\\/]_npx[\\/]/.test(moduleDirectory)
|
|
13
|
+
? { command: "npx", args: ["-y", `@melra/cli@${version}`, "serve"] }
|
|
14
|
+
: { command: "melra", args: ["serve"] };
|
|
15
|
+
}
|
|
5
16
|
function cdpEndpoint(value) {
|
|
6
17
|
if (value === undefined)
|
|
7
18
|
return undefined;
|
|
@@ -57,6 +68,7 @@ export function parseCliEnvironment(source, defaults = {
|
|
|
57
68
|
return {
|
|
58
69
|
workspaceRoot: resolve(source.MELRA_WORKSPACE ?? defaults.cwd),
|
|
59
70
|
dataDirectory: resolve(source.MELRA_HOME ?? join(defaults.home, ".melra")),
|
|
71
|
+
unhinged: unhingedFromEnvironment(source),
|
|
60
72
|
...(source.MELRA_POLICY === undefined
|
|
61
73
|
? {}
|
|
62
74
|
: { policyPath: resolve(source.MELRA_POLICY) }),
|
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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"}
|
package/dist/index.js
CHANGED
|
@@ -6,12 +6,12 @@ import { constants } from "node:fs";
|
|
|
6
6
|
import { basename, join, resolve } from "node:path";
|
|
7
7
|
import { createInterface } from "node:readline/promises";
|
|
8
8
|
import { DatabaseSync } from "node:sqlite";
|
|
9
|
-
import { ApprovalResponseSchema, TaskRequestSchema, WorkflowDefinitionSchema, PRODUCT_VERSION, } from "@melra/protocol";
|
|
10
|
-
import { createMelraRuntime, serveStdio, } from "@melra/server";
|
|
9
|
+
import { ApprovalResponseSchema, TaskRequestSchema, WorkflowDefinitionSchema, WorkflowInputSchema, PRODUCT_VERSION, } from "@melra/protocol";
|
|
10
|
+
import { createMelraRuntime, serveHttp, serveStdio, unconfinedRoot, } from "@melra/server";
|
|
11
11
|
import { detectBrowserExecutable } from "@melra/browser-runtime";
|
|
12
12
|
import { createSystemComputerAdapter } from "@melra/computer-runtime";
|
|
13
13
|
import { createDefaultPolicy, evaluatePolicy } from "@melra/policy-core";
|
|
14
|
-
import { parseCliEnvironment, } from "./environment.js";
|
|
14
|
+
import { parseCliEnvironment, serverLaunch, } from "./environment.js";
|
|
15
15
|
async function existingPolicyPath(env) {
|
|
16
16
|
if (env.policyPath !== undefined)
|
|
17
17
|
return env.policyPath;
|
|
@@ -24,11 +24,44 @@ async function existingPolicyPath(env) {
|
|
|
24
24
|
return undefined;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* The banner unhinged mode prints before it does anything.
|
|
29
|
+
*
|
|
30
|
+
* It goes to stderr, which is where it has to go: in `serve` the stdout stream
|
|
31
|
+
* is the MCP transport and any prose written there corrupts the protocol. stderr
|
|
32
|
+
* is what MCP clients surface in their server logs, so the operator still sees
|
|
33
|
+
* it. Ordinary runs get it too — the mode is per-process, not per-command, and a
|
|
34
|
+
* developer who exported the variable in one shell and forgot deserves the
|
|
35
|
+
* reminder on every invocation rather than only at startup.
|
|
36
|
+
*/
|
|
37
|
+
function unhingedBanner(root) {
|
|
38
|
+
return [
|
|
39
|
+
"",
|
|
40
|
+
" ############################################################",
|
|
41
|
+
" # MELRA IS RUNNING UNHINGED. NO GUARDRAILS ARE APPLIED. #",
|
|
42
|
+
" ############################################################",
|
|
43
|
+
"",
|
|
44
|
+
" Disabled for every task this process runs:",
|
|
45
|
+
" - policy decisions: nothing is denied, no approval is ever asked for",
|
|
46
|
+
" - the command allowlist, including shells and sudo",
|
|
47
|
+
" - the evidence requirement on mutations and destructive operations",
|
|
48
|
+
" - the browser's block on private, loopback, and cloud-metadata hosts",
|
|
49
|
+
` - workspace confinement: files and commands can reach all of ${root}`,
|
|
50
|
+
"",
|
|
51
|
+
" A caller can now delete, overwrite, exfiltrate, or execute anything this",
|
|
52
|
+
" OS user can. Receipts are still written, so you will be able to read what",
|
|
53
|
+
" happened — after it has happened.",
|
|
54
|
+
"",
|
|
55
|
+
" Turn it off by unsetting MELRA_UNHINGED and dropping --unhinged.",
|
|
56
|
+
"",
|
|
57
|
+
].join("\n");
|
|
58
|
+
}
|
|
27
59
|
async function runtime(env) {
|
|
28
60
|
const policyPath = await existingPolicyPath(env);
|
|
29
61
|
return await createMelraRuntime({
|
|
30
62
|
workspaceRoot: env.workspaceRoot,
|
|
31
63
|
dataDirectory: env.dataDirectory,
|
|
64
|
+
unhinged: env.unhinged,
|
|
32
65
|
...(policyPath === undefined ? {} : { policyPath }),
|
|
33
66
|
...(env.browserExecutablePath === undefined
|
|
34
67
|
? {}
|
|
@@ -51,16 +84,56 @@ function argument(name, args) {
|
|
|
51
84
|
const index = args.indexOf(name);
|
|
52
85
|
return index < 0 ? undefined : args[index + 1];
|
|
53
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* A flag this command does not know is a typo, and a typo must not be silently
|
|
89
|
+
* ignored: `melra run --requst t.json` fell through to reading stdin, which in
|
|
90
|
+
* a terminal prints nothing and in a pipeline that never closes hangs forever.
|
|
91
|
+
*/
|
|
92
|
+
function rejectUnknownFlags(args, known) {
|
|
93
|
+
const allowed = new Set([...known, "--unhinged"]);
|
|
94
|
+
// A flag's own value can look like a flag (`--input node=--x`), so skip the
|
|
95
|
+
// slot after any known flag that takes one.
|
|
96
|
+
const valued = new Set(known.filter((flag) => flag !== "--http"));
|
|
97
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
98
|
+
const argument_ = args[index];
|
|
99
|
+
if (argument_ === undefined || !argument_.startsWith("--"))
|
|
100
|
+
continue;
|
|
101
|
+
if (!allowed.has(argument_)) {
|
|
102
|
+
throw new Error(`unknown flag ${argument_}. Known here: ${[...allowed].sort().join(", ")}`);
|
|
103
|
+
}
|
|
104
|
+
if (valued.has(argument_))
|
|
105
|
+
index += 1;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// `JSON.parse` reports a character offset and nothing about where it was
|
|
109
|
+
// reading, so a typo in a workflow definition surfaced as a bare
|
|
110
|
+
// "Expected property name or '}' in JSON at position 1". Name the source.
|
|
111
|
+
function parseJson(text, source) {
|
|
112
|
+
try {
|
|
113
|
+
return JSON.parse(text);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
117
|
+
throw new Error(`${source} is not valid JSON: ${detail}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
54
120
|
async function readTaskRequest(args) {
|
|
55
121
|
const requestPath = argument("--request", args);
|
|
56
122
|
if (requestPath !== undefined) {
|
|
57
|
-
|
|
123
|
+
const absolute = resolve(requestPath);
|
|
124
|
+
return TaskRequestSchema.parse(parseJson(await readFile(absolute, "utf8"), absolute));
|
|
58
125
|
}
|
|
59
126
|
if (!process.stdin.isTTY) {
|
|
60
127
|
let input = "";
|
|
61
128
|
for await (const chunk of process.stdin)
|
|
62
129
|
input += String(chunk);
|
|
63
|
-
|
|
130
|
+
// Redirected-but-empty stdin is what a script gets wrong, and `JSON.parse`
|
|
131
|
+
// answers it with "Unexpected end of JSON input" — true, and no help at
|
|
132
|
+
// all. Say the same thing an interactive shell would.
|
|
133
|
+
if (input.trim() === "") {
|
|
134
|
+
throw new Error("provide --request <file> or pipe a JSON task request");
|
|
135
|
+
}
|
|
136
|
+
return TaskRequestSchema.parse(parseJson(input, "the piped task request"));
|
|
64
137
|
}
|
|
65
138
|
throw new Error("provide --request <file> or pipe a JSON task request");
|
|
66
139
|
}
|
|
@@ -69,11 +142,16 @@ async function readWorkflowDefinition(args) {
|
|
|
69
142
|
if (definitionPath === undefined) {
|
|
70
143
|
throw new Error("workflow plan requires --definition <file>");
|
|
71
144
|
}
|
|
72
|
-
|
|
145
|
+
const absolute = resolve(definitionPath);
|
|
146
|
+
return WorkflowDefinitionSchema.parse(parseJson(await readFile(absolute, "utf8"), absolute));
|
|
73
147
|
}
|
|
74
148
|
function workflowExitCode(status) {
|
|
75
149
|
if (status === "awaiting_approval")
|
|
76
150
|
return 3;
|
|
151
|
+
// A run waiting on a person is not a failure — it is a prompt. Its own exit
|
|
152
|
+
// code lets a script tell "answer me" apart from "approve me" and "broke".
|
|
153
|
+
if (status === "awaiting_input")
|
|
154
|
+
return 4;
|
|
77
155
|
if ([
|
|
78
156
|
"failed",
|
|
79
157
|
"partially_complete",
|
|
@@ -84,6 +162,28 @@ function workflowExitCode(status) {
|
|
|
84
162
|
}
|
|
85
163
|
return 0;
|
|
86
164
|
}
|
|
165
|
+
// `--input <node-id>=<value>`. `=` rather than `:` because a node ID never
|
|
166
|
+
// contains one but an answer very often does (URLs, times, ratios).
|
|
167
|
+
function workflowInputs(args) {
|
|
168
|
+
const inputs = [];
|
|
169
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
170
|
+
if (args[index] !== "--input")
|
|
171
|
+
continue;
|
|
172
|
+
const value = args[index + 1];
|
|
173
|
+
if (value === undefined)
|
|
174
|
+
throw new Error("--input requires a value");
|
|
175
|
+
const separator = value.indexOf("=");
|
|
176
|
+
if (separator < 1 || separator === value.length - 1) {
|
|
177
|
+
throw new Error("--input must be <node-id>=<value>");
|
|
178
|
+
}
|
|
179
|
+
inputs.push(WorkflowInputSchema.parse({
|
|
180
|
+
nodeId: value.slice(0, separator),
|
|
181
|
+
value: value.slice(separator + 1),
|
|
182
|
+
}));
|
|
183
|
+
index += 1;
|
|
184
|
+
}
|
|
185
|
+
return inputs;
|
|
186
|
+
}
|
|
87
187
|
function workflowApprovals(args) {
|
|
88
188
|
const approvals = [];
|
|
89
189
|
for (let index = 0; index < args.length; index += 1) {
|
|
@@ -119,7 +219,8 @@ async function workflowCommand(args, env) {
|
|
|
119
219
|
if (workflowId === undefined) {
|
|
120
220
|
throw new Error("workflow advance requires a workflow ID");
|
|
121
221
|
}
|
|
122
|
-
const
|
|
222
|
+
const rest = actionArgs.slice(1);
|
|
223
|
+
const result = await melra.workflows.advance(workflowId, workflowApprovals(rest), workflowInputs(rest));
|
|
123
224
|
output(result);
|
|
124
225
|
return workflowExitCode(result.run.status);
|
|
125
226
|
}
|
|
@@ -140,8 +241,23 @@ async function workflowCommand(args, env) {
|
|
|
140
241
|
output(run);
|
|
141
242
|
return workflowExitCode(run.status);
|
|
142
243
|
}
|
|
244
|
+
case "pause":
|
|
245
|
+
case "resume":
|
|
246
|
+
case "suspend": {
|
|
247
|
+
const workflowId = actionArgs[0];
|
|
248
|
+
if (workflowId === undefined) {
|
|
249
|
+
throw new Error(`workflow ${action} requires a workflow ID`);
|
|
250
|
+
}
|
|
251
|
+
const run = action === "pause"
|
|
252
|
+
? melra.workflows.pause(workflowId)
|
|
253
|
+
: action === "suspend"
|
|
254
|
+
? melra.workflows.suspend(workflowId)
|
|
255
|
+
: melra.workflows.resume(workflowId);
|
|
256
|
+
output(run);
|
|
257
|
+
return workflowExitCode(run.status);
|
|
258
|
+
}
|
|
143
259
|
default:
|
|
144
|
-
throw new Error("workflow supports plan, advance, inspect, and
|
|
260
|
+
throw new Error("workflow supports plan, advance, inspect, cancel, pause, resume, and suspend");
|
|
145
261
|
}
|
|
146
262
|
}
|
|
147
263
|
finally {
|
|
@@ -176,6 +292,16 @@ async function doctor(env) {
|
|
|
176
292
|
status: major >= 22 ? "pass" : "fail",
|
|
177
293
|
detail: process.version,
|
|
178
294
|
});
|
|
295
|
+
// A `warn`, not a `fail`: the operator asked for this, so `doctor` must still
|
|
296
|
+
// exit zero. But a machine running with no guardrails should never be able to
|
|
297
|
+
// report a clean bill of health without saying so.
|
|
298
|
+
checks.push(env.unhinged
|
|
299
|
+
? {
|
|
300
|
+
name: "guardrails",
|
|
301
|
+
status: "warn",
|
|
302
|
+
detail: "UNHINGED: no policy, approval, evidence, confinement, or destination check is applied",
|
|
303
|
+
}
|
|
304
|
+
: { name: "guardrails", status: "pass", detail: "enforced" });
|
|
179
305
|
try {
|
|
180
306
|
await access(env.workspaceRoot, constants.R_OK | constants.W_OK);
|
|
181
307
|
checks.push({
|
|
@@ -252,13 +378,19 @@ async function doctor(env) {
|
|
|
252
378
|
detail: error instanceof Error ? error.message : String(error),
|
|
253
379
|
});
|
|
254
380
|
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
381
|
+
const failed = checks.some((check) => check.status === "fail");
|
|
382
|
+
return {
|
|
383
|
+
report: {
|
|
384
|
+
product: "MELRA",
|
|
385
|
+
version: PRODUCT_VERSION,
|
|
386
|
+
ready: !failed,
|
|
387
|
+
// Alongside the `guardrails` check so a script does not have to read a
|
|
388
|
+
// detail string to find out whether this machine has any.
|
|
389
|
+
unhinged: env.unhinged,
|
|
390
|
+
checks,
|
|
391
|
+
},
|
|
392
|
+
failed,
|
|
393
|
+
};
|
|
262
394
|
}
|
|
263
395
|
async function init(args, env) {
|
|
264
396
|
await mkdir(env.dataDirectory, { recursive: true });
|
|
@@ -273,8 +405,7 @@ async function init(args, env) {
|
|
|
273
405
|
const config = {
|
|
274
406
|
mcpServers: {
|
|
275
407
|
melra: {
|
|
276
|
-
|
|
277
|
-
args: ["serve"],
|
|
408
|
+
...serverLaunch(import.meta.dirname, PRODUCT_VERSION),
|
|
278
409
|
env: {
|
|
279
410
|
MELRA_WORKSPACE: env.workspaceRoot,
|
|
280
411
|
MELRA_HOME: env.dataDirectory,
|
|
@@ -283,13 +414,21 @@ async function init(args, env) {
|
|
|
283
414
|
},
|
|
284
415
|
},
|
|
285
416
|
};
|
|
286
|
-
|
|
417
|
+
return {
|
|
287
418
|
initialized: true,
|
|
288
419
|
client,
|
|
289
420
|
policyPath,
|
|
290
421
|
config,
|
|
291
422
|
note: `Add the mcpServers.melra entry to ${client}'s MCP configuration.`,
|
|
292
|
-
}
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
// One command for the whole local setup: write the policy, emit a working
|
|
426
|
+
// client config, and verify the machine can actually run it.
|
|
427
|
+
async function setup(args, env) {
|
|
428
|
+
const initialized = await init(args, env);
|
|
429
|
+
const { report, failed } = await doctor(env);
|
|
430
|
+
output({ ...initialized, ...report });
|
|
431
|
+
return failed ? 1 : 0;
|
|
293
432
|
}
|
|
294
433
|
async function runTask(args, env) {
|
|
295
434
|
const melra = await runtime(env);
|
|
@@ -339,7 +478,12 @@ async function inspectTask(args, env) {
|
|
|
339
478
|
}
|
|
340
479
|
async function policyTest(args, env) {
|
|
341
480
|
const request = await readTaskRequest(args);
|
|
342
|
-
|
|
481
|
+
// Reports what this process would actually decide, unhinged mode included —
|
|
482
|
+
// a dry run that disagreed with the server it is previewing is worse than none.
|
|
483
|
+
const policy = {
|
|
484
|
+
...createDefaultPolicy(env.workspaceRoot),
|
|
485
|
+
unhinged: env.unhinged,
|
|
486
|
+
};
|
|
343
487
|
const taskId = "00000000-0000-4000-8000-000000000000";
|
|
344
488
|
output(evaluatePolicy(taskId, request, policy));
|
|
345
489
|
}
|
|
@@ -347,23 +491,37 @@ function help() {
|
|
|
347
491
|
process.stdout.write(`MELRA ${PRODUCT_VERSION}
|
|
348
492
|
|
|
349
493
|
Usage:
|
|
494
|
+
melra setup [--client <claude|cursor|vscode|codex|generic>]
|
|
350
495
|
melra doctor
|
|
351
496
|
melra init --client <claude|cursor|vscode|codex|generic>
|
|
352
|
-
melra serve
|
|
497
|
+
melra serve [--http] [--port <port>]
|
|
353
498
|
melra run --request <task.json>
|
|
354
499
|
melra inspect <task-id>
|
|
355
500
|
melra workflow plan --definition <workflow.json>
|
|
356
501
|
melra workflow advance <workflow-id> [--approval <id>:<exact-phrase>]
|
|
502
|
+
[--input <node-id>=<value>]
|
|
357
503
|
melra workflow inspect <workflow-id>
|
|
358
504
|
melra workflow cancel <workflow-id>
|
|
505
|
+
melra workflow pause|resume|suspend <workflow-id>
|
|
359
506
|
melra demo durable-core
|
|
360
507
|
melra policy test --request <task.json>
|
|
361
508
|
melra version
|
|
362
509
|
|
|
510
|
+
Flags:
|
|
511
|
+
--unhinged Run with no policy and no guardrails. Everything the OS user
|
|
512
|
+
can do, any caller can now do. Same as MELRA_UNHINGED=1.
|
|
513
|
+
--http Serve MCP over loopback HTTP instead of stdio, alongside a
|
|
514
|
+
read-only REST API, a workflow event stream, and the console.
|
|
515
|
+
Prints a bearer token; every request must carry it.
|
|
516
|
+
--port <port> HTTP port (default: 7457, or MELRA_HTTP_PORT).
|
|
517
|
+
|
|
363
518
|
Environment:
|
|
364
519
|
MELRA_WORKSPACE Workspace boundary (default: current directory)
|
|
365
520
|
MELRA_HOME Local database and artifact directory
|
|
366
521
|
MELRA_POLICY Optional local policy JSON
|
|
522
|
+
MELRA_UNHINGED Set to 1 to disable every guardrail (see --unhinged)
|
|
523
|
+
MELRA_HTTP_PORT Port for 'serve --http' (default: 7457)
|
|
524
|
+
MELRA_HTTP_TOKEN Fixed bearer token for 'serve --http' (default: random)
|
|
367
525
|
MELRA_BROWSER Optional Chrome/Chromium/Edge executable
|
|
368
526
|
MELRA_BROWSER_CDP_ENDPOINT Optional HTTP(S) CDP endpoint
|
|
369
527
|
MELRA_BROWSER_CDP_CONTEXT_INDEX External context index (-1 is last)
|
|
@@ -372,19 +530,60 @@ Environment:
|
|
|
372
530
|
}
|
|
373
531
|
async function main() {
|
|
374
532
|
const [command = "help", ...args] = process.argv.slice(2);
|
|
375
|
-
const
|
|
533
|
+
const parsed = parseCliEnvironment(process.env);
|
|
534
|
+
// `--unhinged` is an alias for the variable, not a second setting: one field
|
|
535
|
+
// carries the answer so no code path can consult the weaker of the two.
|
|
536
|
+
const env = args.includes("--unhinged")
|
|
537
|
+
? { ...parsed, unhinged: true }
|
|
538
|
+
: parsed;
|
|
539
|
+
// Before the command runs, and for every command including `help` — the mode
|
|
540
|
+
// is a property of the process, so there is no invocation where staying quiet
|
|
541
|
+
// about it is right.
|
|
542
|
+
if (env.unhinged) {
|
|
543
|
+
process.stderr.write(`${unhingedBanner(unconfinedRoot(env.workspaceRoot))}\n`);
|
|
544
|
+
}
|
|
376
545
|
switch (command) {
|
|
377
|
-
case "doctor":
|
|
378
|
-
|
|
546
|
+
case "doctor": {
|
|
547
|
+
rejectUnknownFlags(args, []);
|
|
548
|
+
const { report, failed } = await doctor(env);
|
|
549
|
+
output(report);
|
|
550
|
+
process.exitCode = failed ? 1 : 0;
|
|
379
551
|
return;
|
|
552
|
+
}
|
|
380
553
|
case "init":
|
|
381
|
-
|
|
554
|
+
rejectUnknownFlags(args, ["--client"]);
|
|
555
|
+
output(await init(args, env));
|
|
556
|
+
return;
|
|
557
|
+
case "setup":
|
|
558
|
+
rejectUnknownFlags(args, ["--client"]);
|
|
559
|
+
process.exitCode = await setup(args, env);
|
|
382
560
|
return;
|
|
383
561
|
case "serve": {
|
|
562
|
+
rejectUnknownFlags(args, ["--http", "--port"]);
|
|
384
563
|
const melra = await runtime(env);
|
|
385
|
-
const
|
|
564
|
+
const http = args.includes("--http");
|
|
565
|
+
const port = argument("--port", args);
|
|
566
|
+
const server = http
|
|
567
|
+
? undefined
|
|
568
|
+
: await serveStdio(melra);
|
|
569
|
+
const endpoint = http
|
|
570
|
+
? await serveHttp({
|
|
571
|
+
runtime: melra,
|
|
572
|
+
...(port === undefined ? {} : { port: Number(port) }),
|
|
573
|
+
})
|
|
574
|
+
: undefined;
|
|
575
|
+
if (endpoint !== undefined) {
|
|
576
|
+
// stdout stays clean for the stdio transport's sake even here, so the
|
|
577
|
+
// one command an operator has to copy goes where they can read it.
|
|
578
|
+
process.stderr.write(`MELRA HTTP server listening on http://${endpoint.host}:${endpoint.port}\n` +
|
|
579
|
+
` Console: ${endpoint.url}\n` +
|
|
580
|
+
` MCP: ${endpoint.mcpUrl}\n` +
|
|
581
|
+
` Token: ${endpoint.token}\n` +
|
|
582
|
+
`Loopback only. Anyone who can read this token can drive this machine.\n`);
|
|
583
|
+
}
|
|
386
584
|
const close = async () => {
|
|
387
|
-
await server
|
|
585
|
+
await server?.close();
|
|
586
|
+
await endpoint?.close();
|
|
388
587
|
await melra.close();
|
|
389
588
|
};
|
|
390
589
|
process.once("SIGINT", () => void close().finally(() => process.exit(0)));
|
|
@@ -392,16 +591,20 @@ async function main() {
|
|
|
392
591
|
return;
|
|
393
592
|
}
|
|
394
593
|
case "run":
|
|
594
|
+
rejectUnknownFlags(args, ["--request"]);
|
|
395
595
|
process.exitCode = await runTask(args, env);
|
|
396
596
|
return;
|
|
397
597
|
case "inspect":
|
|
398
598
|
case "export":
|
|
599
|
+
rejectUnknownFlags(args, []);
|
|
399
600
|
await inspectTask(args, env);
|
|
400
601
|
return;
|
|
401
602
|
case "workflow":
|
|
603
|
+
rejectUnknownFlags(args, ["--definition", "--approval", "--input"]);
|
|
402
604
|
process.exitCode = await workflowCommand(args, env);
|
|
403
605
|
return;
|
|
404
606
|
case "demo":
|
|
607
|
+
rejectUnknownFlags(args, []);
|
|
405
608
|
if (args[0] !== "durable-core") {
|
|
406
609
|
throw new Error("demo supports only 'durable-core'");
|
|
407
610
|
}
|
|
@@ -410,6 +613,7 @@ async function main() {
|
|
|
410
613
|
case "policy":
|
|
411
614
|
if (args[0] !== "test")
|
|
412
615
|
throw new Error("policy supports only 'test'");
|
|
616
|
+
rejectUnknownFlags(args.slice(1), ["--request"]);
|
|
413
617
|
await policyTest(args.slice(1), env);
|
|
414
618
|
return;
|
|
415
619
|
case "version":
|
|
@@ -426,8 +630,37 @@ async function main() {
|
|
|
426
630
|
throw new Error(`unknown command: ${basename(command)}`);
|
|
427
631
|
}
|
|
428
632
|
}
|
|
633
|
+
/**
|
|
634
|
+
* A schema rejection, rendered as one line per problem.
|
|
635
|
+
*
|
|
636
|
+
* Zod's `message` is the JSON dump of its issue array, so an input missing one
|
|
637
|
+
* field used to fill the terminal with brackets and offsets. The useful part of
|
|
638
|
+
* each issue is where it is and what is wrong with it.
|
|
639
|
+
*
|
|
640
|
+
* Detected by shape rather than `instanceof ZodError` so the CLI does not take
|
|
641
|
+
* a direct zod dependency to print an error — every schema it parses comes from
|
|
642
|
+
* `@melra/protocol`, and matching on `issues` also survives a major zod bump.
|
|
643
|
+
*/
|
|
644
|
+
function schemaIssues(error) {
|
|
645
|
+
if (typeof error !== "object" || error === null)
|
|
646
|
+
return undefined;
|
|
647
|
+
const { issues } = error;
|
|
648
|
+
if (!Array.isArray(issues) || issues.length === 0)
|
|
649
|
+
return undefined;
|
|
650
|
+
const lines = issues.map((issue) => {
|
|
651
|
+
const path = (issue.path ?? [])
|
|
652
|
+
.map((segment) => typeof segment === "number" ? `[${segment}]` : `.${segment}`)
|
|
653
|
+
.join("")
|
|
654
|
+
.replace(/^\./, "");
|
|
655
|
+
const message = issue.message ?? "invalid value";
|
|
656
|
+
return ` ${path === "" ? "(root)" : path}: ${message}`;
|
|
657
|
+
});
|
|
658
|
+
return ["input does not match the schema:", ...lines].join("\n");
|
|
659
|
+
}
|
|
429
660
|
main().catch((error) => {
|
|
430
|
-
|
|
661
|
+
const message = schemaIssues(error) ??
|
|
662
|
+
(error instanceof Error ? error.message : String(error));
|
|
663
|
+
process.stderr.write(`melra: ${message}\n`);
|
|
431
664
|
process.exitCode = 1;
|
|
432
665
|
});
|
|
433
666
|
//# sourceMappingURL=index.js.map
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@melra/cli",
|
|
3
|
-
"version": "0.3.0-alpha.
|
|
3
|
+
"version": "0.3.0-alpha.5",
|
|
4
4
|
"description": "MELRA local execution runtime and command-line interface.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"bugs": "https://github.com/XAGI-Lab/melra/issues",
|
|
13
13
|
"type": "module",
|
|
14
14
|
"bin": {
|
|
15
|
-
"melra": "./dist/
|
|
15
|
+
"melra": "./dist/bin.js"
|
|
16
16
|
},
|
|
17
17
|
"exports": {
|
|
18
18
|
".": {
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
"README.md"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@melra/
|
|
29
|
-
"@melra/
|
|
30
|
-
"@melra/
|
|
31
|
-
"@melra/
|
|
32
|
-
"@melra/protocol": "0.3.0-alpha.
|
|
33
|
-
"@melra/
|
|
28
|
+
"@melra/computer-runtime": "0.3.0-alpha.5",
|
|
29
|
+
"@melra/policy-core": "0.3.0-alpha.5",
|
|
30
|
+
"@melra/server": "0.3.0-alpha.5",
|
|
31
|
+
"@melra/storage-sqlite": "0.3.0-alpha.5",
|
|
32
|
+
"@melra/protocol": "0.3.0-alpha.5",
|
|
33
|
+
"@melra/browser-runtime": "0.3.0-alpha.5"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
|
-
"build": "tsc -p tsconfig.json && chmod +x dist/index.js",
|
|
36
|
+
"build": "tsc -p tsconfig.json && chmod +x dist/bin.js dist/index.js",
|
|
37
37
|
"clean": "rm -rf dist",
|
|
38
38
|
"dev": "tsx src/index.ts",
|
|
39
39
|
"start": "tsx src/index.ts",
|