inhuman 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/bin/inhuman.mjs +2 -20
  2. package/dist/bin.d.ts +6 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +16 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/cli/blobs-command.d.ts +31 -0
  7. package/dist/cli/blobs-command.d.ts.map +1 -0
  8. package/dist/cli/blobs-command.js +184 -0
  9. package/dist/cli/blobs-command.js.map +1 -0
  10. package/dist/cli/browser.d.ts +3 -0
  11. package/dist/cli/browser.d.ts.map +1 -0
  12. package/dist/cli/browser.js +10 -0
  13. package/dist/cli/browser.js.map +1 -0
  14. package/dist/cli/completion-command.d.ts +15 -0
  15. package/dist/cli/completion-command.d.ts.map +1 -0
  16. package/dist/cli/completion-command.js +201 -0
  17. package/dist/cli/completion-command.js.map +1 -0
  18. package/dist/cli/context.d.ts +23 -0
  19. package/dist/cli/context.d.ts.map +1 -0
  20. package/dist/cli/context.js +67 -0
  21. package/dist/cli/context.js.map +1 -0
  22. package/dist/cli/daemon.d.ts +22 -0
  23. package/dist/cli/daemon.d.ts.map +1 -0
  24. package/dist/cli/daemon.js +61 -0
  25. package/dist/cli/daemon.js.map +1 -0
  26. package/dist/cli/eval-command.d.ts +16 -0
  27. package/dist/cli/eval-command.d.ts.map +1 -0
  28. package/dist/cli/eval-command.js +114 -0
  29. package/dist/cli/eval-command.js.map +1 -0
  30. package/dist/cli/install-command.d.ts +8 -0
  31. package/dist/cli/install-command.d.ts.map +1 -0
  32. package/dist/cli/install-command.js +25 -0
  33. package/dist/cli/install-command.js.map +1 -0
  34. package/dist/cli/kernel-client.d.ts +3 -0
  35. package/dist/cli/kernel-client.d.ts.map +1 -0
  36. package/dist/cli/kernel-client.js +12 -0
  37. package/dist/cli/kernel-client.js.map +1 -0
  38. package/dist/cli/mcp-commands.d.ts +61 -0
  39. package/dist/cli/mcp-commands.d.ts.map +1 -0
  40. package/dist/cli/mcp-commands.js +139 -0
  41. package/dist/cli/mcp-commands.js.map +1 -0
  42. package/dist/cli/mcp.d.ts +25 -0
  43. package/dist/cli/mcp.d.ts.map +1 -0
  44. package/dist/cli/mcp.js +261 -0
  45. package/dist/cli/mcp.js.map +1 -0
  46. package/dist/cli/register.d.ts +12 -0
  47. package/dist/cli/register.d.ts.map +1 -0
  48. package/dist/cli/register.js +133 -0
  49. package/dist/cli/register.js.map +1 -0
  50. package/dist/cli/remote-commands.d.ts +49 -0
  51. package/dist/cli/remote-commands.d.ts.map +1 -0
  52. package/dist/cli/remote-commands.js +184 -0
  53. package/dist/cli/remote-commands.js.map +1 -0
  54. package/dist/cli/resume-complete.d.ts +24 -0
  55. package/dist/cli/resume-complete.d.ts.map +1 -0
  56. package/dist/cli/resume-complete.js +35 -0
  57. package/dist/cli/resume-complete.js.map +1 -0
  58. package/dist/cli/shell-import.d.ts +22 -0
  59. package/dist/cli/shell-import.d.ts.map +1 -0
  60. package/dist/cli/shell-import.js +32 -0
  61. package/dist/cli/shell-import.js.map +1 -0
  62. package/dist/cli/tui-command.d.ts +11 -0
  63. package/dist/cli/tui-command.d.ts.map +1 -0
  64. package/dist/cli/tui-command.js +41 -0
  65. package/dist/cli/tui-command.js.map +1 -0
  66. package/dist/cli/web-commands.d.ts +54 -0
  67. package/dist/cli/web-commands.d.ts.map +1 -0
  68. package/dist/cli/web-commands.js +106 -0
  69. package/dist/cli/web-commands.js.map +1 -0
  70. package/dist/cli/web-door-command.d.ts +11 -0
  71. package/dist/cli/web-door-command.d.ts.map +1 -0
  72. package/dist/cli/web-door-command.js +151 -0
  73. package/dist/cli/web-door-command.js.map +1 -0
  74. package/dist/cli/web-door.d.ts +25 -0
  75. package/dist/cli/web-door.d.ts.map +1 -0
  76. package/dist/cli/web-door.js +116 -0
  77. package/dist/cli/web-door.js.map +1 -0
  78. package/dist/cli/web-static.d.ts +8 -0
  79. package/dist/cli/web-static.d.ts.map +1 -0
  80. package/dist/cli/web-static.js +23 -0
  81. package/dist/cli/web-static.js.map +1 -0
  82. package/dist/eval/progress.d.ts +8 -0
  83. package/dist/eval/progress.d.ts.map +1 -0
  84. package/dist/eval/progress.js +64 -0
  85. package/dist/eval/progress.js.map +1 -0
  86. package/dist/eval/run.d.ts +20 -0
  87. package/dist/eval/run.d.ts.map +1 -0
  88. package/dist/eval/run.js +301 -0
  89. package/dist/eval/run.js.map +1 -0
  90. package/package.json +42 -5
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Kernel-plane writer over ConnectionSpec. No session, no TUI.
3
+ */
4
+ import { createInterface } from "node:readline";
5
+ import { isUiForm } from "@inhuman.tools/harness-contract";
6
+ import { openExternalUrl } from "@inhuman.tools/harness-sdk";
7
+ import { openKernelRpc } from "./kernel-client.js";
8
+ export async function runMcp(args, streams, deps = {}) {
9
+ try {
10
+ switch (args.mcpVerb) {
11
+ case "add":
12
+ return await runAdd(args, streams, deps);
13
+ case "list":
14
+ return await withRpc(args, deps, (rpc) => runList(rpc, streams, args.json === true));
15
+ case "get":
16
+ return await withRpc(args, deps, (rpc) => runGet(rpc, streams, requireName(args), args.json === true));
17
+ case "remove":
18
+ return await withRpc(args, deps, (rpc) => runRemove(rpc, requireName(args)));
19
+ case "login":
20
+ return await withRpc(args, deps, (rpc) => runLogin(rpc, streams, requireName(args), args, deps));
21
+ case "logout":
22
+ return await withRpc(args, deps, (rpc) => rpc.request("connect/logout", { id: requireName(args) }).then(() => ({ code: 0 })));
23
+ case "enable":
24
+ return await withRpc(args, deps, (rpc) => rpc.request("connect/set-enabled", { id: requireName(args), enabled: true }).then(() => ({ code: 0 })));
25
+ case "disable":
26
+ return await withRpc(args, deps, (rpc) => rpc.request("connect/set-enabled", { id: requireName(args), enabled: false }).then(() => ({ code: 0 })));
27
+ }
28
+ }
29
+ catch (error) {
30
+ streams.writeErr(error);
31
+ return { code: error instanceof UsageError ? 2 : 1 };
32
+ }
33
+ }
34
+ function requireName(args) {
35
+ const name = args.name?.trim() ?? "";
36
+ if (name === "")
37
+ throw new UsageError("name is required");
38
+ return name;
39
+ }
40
+ class UsageError extends Error {
41
+ name = "UsageError";
42
+ }
43
+ async function runAdd(args, streams, deps) {
44
+ const name = requireName(args);
45
+ const url = args.url?.trim() ?? "";
46
+ const rest = (args["--"] ?? []).map(String);
47
+ if (url !== "" && rest.length > 0) {
48
+ streams.writeErr("use --url or -- <command>, not both");
49
+ return { code: 2 };
50
+ }
51
+ if (url === "" && rest.length === 0) {
52
+ streams.writeErr("add requires --url or -- <command>");
53
+ return { code: 2 };
54
+ }
55
+ if (args.login === true && url === "") {
56
+ streams.writeErr("login is only valid with --url");
57
+ return { code: 2 };
58
+ }
59
+ if (args.login === true && streams.stdin.isTTY !== true) {
60
+ streams.writeErr("login requires a TTY");
61
+ return { code: 2 };
62
+ }
63
+ const tokenEnv = args.tokenEnv?.trim() ?? "";
64
+ if (tokenEnv !== "" && url === "") {
65
+ streams.writeErr("token-env is only valid with --url");
66
+ return { code: 2 };
67
+ }
68
+ let adopt;
69
+ if (url === "") {
70
+ const command = rest[0]?.trim() ?? "";
71
+ if (command === "") {
72
+ streams.writeErr("add requires --url or -- <command>");
73
+ return { code: 2 };
74
+ }
75
+ adopt = { driver: "mcp-stdio", name, settings: { command, args: rest.slice(1) } };
76
+ }
77
+ else {
78
+ const settings = { url };
79
+ adopt = { driver: "mcp-http", name, settings };
80
+ if (tokenEnv !== "") {
81
+ const env = deps.env ?? process.env;
82
+ const token = env[tokenEnv];
83
+ if (token === undefined || token === "") {
84
+ streams.writeErr(`${tokenEnv} is not set`);
85
+ return { code: 2 };
86
+ }
87
+ adopt.secrets = { token };
88
+ }
89
+ }
90
+ return await withRpc(args, deps, async (rpc) => {
91
+ const adopted = await rpc.request("connect/adopt", adopt);
92
+ const id = adoptedId(adopted);
93
+ if (id === undefined) {
94
+ streams.writeErr("adopt did not return an id");
95
+ return { code: 1 };
96
+ }
97
+ streams.stdout.write(`${id}\n`);
98
+ if (args.login === true) {
99
+ const login = await runLogin(rpc, streams, id, args, deps);
100
+ if (login.code !== 0)
101
+ return login;
102
+ }
103
+ return { code: 0 };
104
+ });
105
+ }
106
+ async function runList(rpc, streams, json) {
107
+ const payload = await rpc.request("connect/list", { can: "mcp" });
108
+ if (json) {
109
+ streams.stdout.write(`${JSON.stringify(payload)}\n`);
110
+ return { code: 0 };
111
+ }
112
+ for (const row of asRows(payload)) {
113
+ streams.stdout.write(`${formatRow(row)}\n`);
114
+ }
115
+ return { code: 0 };
116
+ }
117
+ async function runGet(rpc, streams, id, json) {
118
+ let payload;
119
+ try {
120
+ payload = await rpc.request("connect/get", { id });
121
+ }
122
+ catch (error) {
123
+ streams.writeErr(error);
124
+ return { code: 1 };
125
+ }
126
+ if (payload == null) {
127
+ streams.writeErr(`${id} not found`);
128
+ return { code: 1 };
129
+ }
130
+ if (json) {
131
+ streams.stdout.write(`${JSON.stringify(payload)}\n`);
132
+ return { code: 0 };
133
+ }
134
+ streams.stdout.write(`${formatRow(asConnection(payload, id))}\n`);
135
+ return { code: 0 };
136
+ }
137
+ async function runRemove(rpc, id) {
138
+ // CONFIRM_AHEAD: KernelDaemon parks harness/confirm unless confirm:true.
139
+ await rpc.request("connect/drop", { id, confirm: true });
140
+ return { code: 0 };
141
+ }
142
+ async function runLogin(rpc, streams, id, args, deps) {
143
+ const noBrowser = args.noBrowser === true || args.browser === false;
144
+ let result = await rpc.request("connect/login", { id });
145
+ while (isUiForm(result)) {
146
+ const answer = await handleUi(result, streams, {
147
+ noBrowser,
148
+ openBrowser: deps.openBrowser ?? openExternalUrl,
149
+ readLine: deps.readLine ?? readStdinLine,
150
+ });
151
+ result = await rpc.request("ui/resolve", { pending: result.pending, ...answer });
152
+ }
153
+ return { code: 0 };
154
+ }
155
+ async function handleUi(form, streams, opts) {
156
+ const authorizeUrl = form.body.match(/https?:\/\/[^\s"'<>\\]+/i)?.[0];
157
+ if (authorizeUrl !== undefined) {
158
+ return await handleOAuth(authorizeUrl, streams, opts);
159
+ }
160
+ if (form.body.includes("harness/confirm")) {
161
+ return { kind: "accept" };
162
+ }
163
+ throw new Error("unsupported ui park");
164
+ }
165
+ /** The daemon holds the loopback; this client opens the URL, or hands back what the user pasted. */
166
+ async function handleOAuth(authorizeUrl, streams, opts) {
167
+ streams.stderr.write(`${authorizeUrl}\n`);
168
+ if (opts.noBrowser) {
169
+ streams.stderr.write("Paste the full redirect URL:\n");
170
+ const line = (await opts.readLine(streams.stdin)).trim();
171
+ if (line === "")
172
+ throw new Error("redirect URL is empty");
173
+ return { kind: "text", input: line };
174
+ }
175
+ opts.openBrowser(authorizeUrl);
176
+ return { kind: "opened", url: authorizeUrl };
177
+ }
178
+ async function withRpc(args, deps, run) {
179
+ const owned = deps.rpc === undefined;
180
+ const rpc = deps.rpc ?? (await openKernelRpc(args.kernel));
181
+ try {
182
+ return await run(rpc);
183
+ }
184
+ finally {
185
+ if (owned)
186
+ await rpc[Symbol.asyncDispose]();
187
+ }
188
+ }
189
+ function adoptedId(result) {
190
+ if (typeof result !== "object" || result === null)
191
+ return undefined;
192
+ const id = result.id;
193
+ return typeof id === "string" && id.trim() !== "" ? id.trim() : undefined;
194
+ }
195
+ function asRows(payload) {
196
+ if (Array.isArray(payload))
197
+ return payload;
198
+ if (typeof payload === "object" && payload !== null) {
199
+ const rec = payload;
200
+ if (Array.isArray(rec.connections))
201
+ return rec.connections;
202
+ if (Array.isArray(rec.items))
203
+ return rec.items;
204
+ }
205
+ return [];
206
+ }
207
+ function asConnection(payload, id) {
208
+ if (typeof payload === "object" && payload !== null) {
209
+ const rec = payload;
210
+ if (rec.connection !== undefined)
211
+ return rec.connection;
212
+ if (rec.id !== undefined || rec.name !== undefined)
213
+ return payload;
214
+ }
215
+ return { id };
216
+ }
217
+ function formatRow(row) {
218
+ const rec = typeof row === "object" && row !== null ? row : {};
219
+ const id = stringOf(rec.id) || stringOf(rec.name);
220
+ const status = stringOf(rec.status) || stringOf(rec.readyState) || (rec.issue === "failed" ? "failed" : "");
221
+ const driver = driverName(rec.driver);
222
+ const tools = toolCount(rec);
223
+ const error = stringOf(rec.error);
224
+ const cols = [id, status, driver, `tools:${tools}`];
225
+ if (error !== "")
226
+ cols.push(error);
227
+ return cols.join(" ");
228
+ }
229
+ function driverName(value) {
230
+ if (typeof value === "string")
231
+ return value;
232
+ if (typeof value === "object" && value !== null && "name" in value) {
233
+ return stringOf(value.name);
234
+ }
235
+ return "";
236
+ }
237
+ function toolCount(rec) {
238
+ if (Array.isArray(rec.tools))
239
+ return rec.tools.length;
240
+ if (typeof rec.tools === "number" && Number.isFinite(rec.tools))
241
+ return rec.tools;
242
+ if (typeof rec.toolCount === "number" && Number.isFinite(rec.toolCount))
243
+ return rec.toolCount;
244
+ return 0;
245
+ }
246
+ function stringOf(value) {
247
+ return typeof value === "string" ? value : "";
248
+ }
249
+ async function readStdinLine(stdin) {
250
+ const rl = createInterface({ input: stdin, crlfDelay: Infinity });
251
+ try {
252
+ for await (const line of rl) {
253
+ return line.trim();
254
+ }
255
+ throw new Error("stdin closed");
256
+ }
257
+ finally {
258
+ rl.close();
259
+ }
260
+ }
261
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/cli/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Clipanion's Cli.run writes usage failures to stdout and exits 1.
3
+ * Usage belongs on stderr with code 2; runtime failures stay 1.
4
+ * Pin is 4.0.0-rc.4: 3.2.1's ESM build directory-imports `lib/platform`, which Node rejects.
5
+ */
6
+ import { Cli } from "clipanion";
7
+ import { ShellContext, type Streams } from "./context.js";
8
+ /** Clipanion default path is TUI. Deleting this rewrite sends `-e` / `.scm` to attach. */
9
+ export declare function isEvalArgv(argv: readonly string[]): boolean;
10
+ export declare function makeCli(): Cli<ShellContext>;
11
+ export declare function runCli(argv: readonly string[], streams: Streams): Promise<number>;
12
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/cli/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAY,GAAG,EAAE,MAAM,WAAW,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAoD1D,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CA4B3D;AAiCD,wBAAgB,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,CAM3C;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAavF"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Clipanion's Cli.run writes usage failures to stdout and exits 1.
3
+ * Usage belongs on stderr with code 2; runtime failures stay 1.
4
+ * Pin is 4.0.0-rc.4: 3.2.1's ESM build directory-imports `lib/platform`, which Node rejects.
5
+ */
6
+ import { Builtins, Cli } from "clipanion";
7
+ import { BlobsCommand, BlobsVacuumCommand } from "./blobs-command.js";
8
+ import { CompleteCommand, CompletionCommand } from "./completion-command.js";
9
+ import { ShellContext } from "./context.js";
10
+ import { DaemonCommand, DaemonRestartCommand, DaemonStartCommand, DaemonStopCommand } from "./daemon.js";
11
+ import { EvalCommand } from "./eval-command.js";
12
+ import { InstallCommand } from "./install-command.js";
13
+ import { McpAddCommand, McpCommand, McpDisableCommand, McpEnableCommand, McpGetCommand, McpListCommand, McpLoginCommand, McpLogoutCommand, McpRemoveCommand, } from "./mcp-commands.js";
14
+ import { LoginCommand, LogoutCommand, RemoteCommand, RemoteStatusCommand } from "./remote-commands.js";
15
+ import { TuiCommand } from "./tui-command.js";
16
+ import { exportWebStaticDir } from "./web-static.js";
17
+ import { StartCommand, WebCommand } from "./web-commands.js";
18
+ import { WebDoorCommand } from "./web-door-command.js";
19
+ const NAMED = new Set([
20
+ "mcp",
21
+ "daemon",
22
+ "blobs",
23
+ "help",
24
+ "eval",
25
+ "install",
26
+ "completion",
27
+ "complete",
28
+ "start",
29
+ "web",
30
+ "web-door",
31
+ "login",
32
+ "logout",
33
+ "remote",
34
+ "-h",
35
+ "--help",
36
+ ]);
37
+ const VALUE_FLAGS = new Set([
38
+ "--kernel",
39
+ "--session",
40
+ "--resume",
41
+ "--mode",
42
+ "--format",
43
+ "--agent",
44
+ "--connection",
45
+ "--model",
46
+ "-e",
47
+ "-p",
48
+ ]);
49
+ /** Clipanion default path is TUI. Deleting this rewrite sends `-e` / `.scm` to attach. */
50
+ export function isEvalArgv(argv) {
51
+ const head = argv[0];
52
+ if (head != null && NAMED.has(head))
53
+ return false;
54
+ let pendingValue = false;
55
+ let hasInput = false;
56
+ let hasEvalFlag = false;
57
+ for (const arg of argv) {
58
+ if (pendingValue) {
59
+ pendingValue = false;
60
+ continue;
61
+ }
62
+ if (arg === "-e" || arg === "-p") {
63
+ hasInput = true;
64
+ pendingValue = true;
65
+ continue;
66
+ }
67
+ if (arg === "--mode" || arg === "--format" || arg === "--agent") {
68
+ hasEvalFlag = true;
69
+ pendingValue = true;
70
+ continue;
71
+ }
72
+ if (VALUE_FLAGS.has(arg)) {
73
+ pendingValue = true;
74
+ continue;
75
+ }
76
+ if (!arg.startsWith("-") && arg.endsWith(".scm"))
77
+ hasInput = true;
78
+ }
79
+ return hasInput || hasEvalFlag;
80
+ }
81
+ const COMMANDS = [
82
+ Builtins.HelpCommand,
83
+ TuiCommand,
84
+ StartCommand,
85
+ WebCommand,
86
+ WebDoorCommand,
87
+ CompletionCommand,
88
+ CompleteCommand,
89
+ EvalCommand,
90
+ InstallCommand,
91
+ DaemonCommand,
92
+ DaemonStartCommand,
93
+ DaemonStopCommand,
94
+ DaemonRestartCommand,
95
+ McpCommand,
96
+ McpAddCommand,
97
+ McpListCommand,
98
+ McpGetCommand,
99
+ McpRemoveCommand,
100
+ McpLoginCommand,
101
+ McpLogoutCommand,
102
+ McpEnableCommand,
103
+ McpDisableCommand,
104
+ BlobsCommand,
105
+ BlobsVacuumCommand,
106
+ LoginCommand,
107
+ LogoutCommand,
108
+ RemoteCommand,
109
+ RemoteStatusCommand,
110
+ ];
111
+ export function makeCli() {
112
+ return Cli.from(COMMANDS, {
113
+ binaryLabel: "Inhuman",
114
+ binaryName: "inhuman",
115
+ enableCapture: false,
116
+ });
117
+ }
118
+ export async function runCli(argv, streams) {
119
+ exportWebStaticDir();
120
+ const cli = makeCli();
121
+ const context = new ShellContext(streams);
122
+ let command;
123
+ try {
124
+ const routed = isEvalArgv(argv) ? ["eval", ...argv] : [...argv];
125
+ command = cli.process(routed, context);
126
+ }
127
+ catch (error) {
128
+ streams.stderr.write(cli.error(error, { colored: context.colorDepth > 1 }));
129
+ return 2;
130
+ }
131
+ return cli.run(command, context);
132
+ }
133
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/cli/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAgB,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;IACpB,KAAK;IACL,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,SAAS;IACT,YAAY;IACZ,UAAU;IACV,OAAO;IACP,KAAK;IACL,UAAU;IACV,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,IAAI;IACJ,QAAQ;CACT,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,UAAU;IACV,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;IACV,SAAS;IACT,cAAc;IACd,SAAS;IACT,IAAI;IACJ,IAAI;CACL,CAAC,CAAC;AAEH,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,GAAG,KAAK,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjC,QAAQ,GAAG,IAAI,CAAC;YAChB,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAChE,WAAW,GAAG,IAAI,CAAC;YACnB,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC;IACpE,CAAC;IACD,OAAO,QAAQ,IAAI,WAAW,CAAC;AACjC,CAAC;AAED,MAAM,QAAQ,GAAG;IACf,QAAQ,CAAC,WAAW;IACpB,UAAU;IACV,YAAY;IACZ,UAAU;IACV,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,UAAU;IACV,aAAa;IACb,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;IACZ,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,mBAAmB;CACpB,CAAC;AAEF,MAAM,UAAU,OAAO;IACrB,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;QACxB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAS;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAuB,EAAE,OAAgB;IACpE,kBAAkB,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAChE,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { type KernelRpc } from "@inhuman.tools/harness-sdk";
2
+ import { KernelCommand, type ShellContext } from "./context.js";
3
+ export declare class LoginCommand extends KernelCommand {
4
+ static paths: string[][];
5
+ static usage: import("clipanion").Usage;
6
+ name: string | undefined;
7
+ browser: boolean;
8
+ port: string;
9
+ execute(): Promise<number>;
10
+ }
11
+ export declare class LogoutCommand extends KernelCommand {
12
+ static paths: string[][];
13
+ static usage: import("clipanion").Usage;
14
+ execute(): Promise<number>;
15
+ }
16
+ export declare class RemoteCommand extends KernelCommand {
17
+ static paths: string[][];
18
+ static usage: import("clipanion").Usage;
19
+ execute(): Promise<number>;
20
+ }
21
+ export declare class RemoteStatusCommand extends KernelCommand {
22
+ static paths: string[][];
23
+ static usage: import("clipanion").Usage;
24
+ json: boolean;
25
+ execute(): Promise<number>;
26
+ }
27
+ export type RemoteArgv = {
28
+ readonly verb: "login";
29
+ readonly kernel: string;
30
+ readonly name?: string | undefined;
31
+ readonly browser?: boolean;
32
+ } | {
33
+ readonly verb: "logout";
34
+ readonly kernel: string;
35
+ } | {
36
+ readonly verb: "status";
37
+ readonly kernel: string;
38
+ readonly json?: boolean;
39
+ };
40
+ export type RemoteDeps = {
41
+ readonly rpc?: KernelRpc;
42
+ readonly openBrowser?: (url: string) => void;
43
+ /** Runs before the daemon is asked to log in: `login` brings the daemon and web server up here. */
44
+ readonly prepare?: () => Promise<void>;
45
+ };
46
+ export declare function runRemote(args: RemoteArgv, streams: ShellContext, deps?: RemoteDeps): Promise<{
47
+ code: number;
48
+ }>;
49
+ //# sourceMappingURL=remote-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-commands.d.ts","sourceRoot":"","sources":["../../src/cli/remote-commands.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,4BAA4B,CAAC;AAG7E,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAgB,MAAM,cAAc,CAAC;AAY9E,qBAAa,YAAa,SAAQ,aAAa;IAC7C,MAAM,CAAC,KAAK,aAAe;IAC3B,MAAM,CAAC,KAAK,4BAQT;IAEH,IAAI,qBAAqG;IACzG,OAAO,UAA6F;IACpG,IAAI,SAAkG;IAEhG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAmBjC;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,MAAM,CAAC,KAAK,aAAgB;IAC5B,MAAM,CAAC,KAAK,4BAGT;IAEG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAKjC;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,MAAM,CAAC,KAAK,aAAgB;IAC5B,MAAM,CAAC,KAAK,4BAGT;IAEG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAMjC;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,MAAM,CAAC,KAAK,aAA0B;IACtC,MAAM,CAAC,KAAK,4BAIT;IAEH,IAAI,UAAkE;IAEhE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAKjC;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACnH;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAElF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,mGAAmG;IACnG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAAC;AAEF,wBAAsB,SAAS,CAC7B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,YAAY,EACrB,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB3B"}