@cotal-ai/cmux 0.70.1 → 0.72.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.
- package/dist/driver.d.ts +9 -2
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +12 -5
- package/dist/driver.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +22 -6
- package/dist/runtime.js.map +1 -1
- package/package.json +2 -2
package/dist/driver.d.ts
CHANGED
|
@@ -13,7 +13,9 @@ export declare function openWorkspace(name: string, layout: string, opts?: {
|
|
|
13
13
|
/** Close a workspace (tab) by id/ref. Idempotent: closing an already-gone tab is a no-op, not an
|
|
14
14
|
* error — both runtime teardown and stale-ref cleanup mean "ensure it's closed". Only cmux's
|
|
15
15
|
* workspace-not-found is swallowed; other CLI/socket failures still throw. */
|
|
16
|
-
export declare function closeWorkspace(workspace: string
|
|
16
|
+
export declare function closeWorkspace(workspace: string, opts?: {
|
|
17
|
+
timeoutMs?: number;
|
|
18
|
+
}): void;
|
|
17
19
|
/** All open workspace lines (name + ref), or `[]` if cmux can't be reached. */
|
|
18
20
|
export declare function listWorkspaces(): string[];
|
|
19
21
|
export type WorkspaceState = "running" | "exited";
|
|
@@ -34,6 +36,11 @@ export declare function workspaceRefs(name: string): string[];
|
|
|
34
36
|
export declare function newSplit(direction: "left" | "right" | "up" | "down"): void;
|
|
35
37
|
/** Type text into a terminal surface (the focused one, or a targeted background tab). */
|
|
36
38
|
export declare function send(text: string, target?: Target): void;
|
|
39
|
+
/** The text a terminal surface shows now. Bounded like the exit probe, because the startup-confirm
|
|
40
|
+
* watch polls it on the manager's event loop. */
|
|
41
|
+
export declare function readScreen(target: Target): string;
|
|
37
42
|
/** Send a key press (e.g. "enter") to a terminal surface. */
|
|
38
|
-
export declare function sendKey(key: string, target?: Target
|
|
43
|
+
export declare function sendKey(key: string, target?: Target, opts?: {
|
|
44
|
+
timeoutMs?: number;
|
|
45
|
+
}): void;
|
|
39
46
|
//# sourceMappingURL=driver.d.ts.map
|
package/dist/driver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"AA2BA,8EAA8E;AAC9E,MAAM,WAAW,MAAM;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AASD,qDAAqD;AACrD,wBAAgB,SAAS,IAAI,OAAO,CAOnC;AAED;2EAC2E;AAC3E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAkBlG;AAQD;;+EAE+E;AAC/E,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAOzF;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAMzC;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElD;;oFAEoF;AACpF,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAahE;AAED,qEAAqE;AACrE,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;gGAEgG;AAChG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAYpD;AAED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAE1E;AAED,yFAAyF;AACzF,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAExD;AAED;kDACkD;AAClD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,6DAA6D;AAC7D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAE7F"}
|
package/dist/driver.js
CHANGED
|
@@ -14,7 +14,9 @@ function cmuxBin() {
|
|
|
14
14
|
* anywhere else.
|
|
15
15
|
*/
|
|
16
16
|
function cmux(args, opts = {}) {
|
|
17
|
-
|
|
17
|
+
// SIGKILL, because Node waits for a timed-out child to exit, and one that handles SIGTERM would
|
|
18
|
+
// outlast the timeout.
|
|
19
|
+
return execFileSync(cmuxBin(), args, { encoding: "utf8", timeout: opts.timeoutMs, killSignal: "SIGKILL" }).trim();
|
|
18
20
|
}
|
|
19
21
|
const UUID = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
|
|
20
22
|
const WORKSPACE_REF = /workspace:\d+/g;
|
|
@@ -66,9 +68,9 @@ function isWorkspaceNotFound(err) {
|
|
|
66
68
|
/** Close a workspace (tab) by id/ref. Idempotent: closing an already-gone tab is a no-op, not an
|
|
67
69
|
* error — both runtime teardown and stale-ref cleanup mean "ensure it's closed". Only cmux's
|
|
68
70
|
* workspace-not-found is swallowed; other CLI/socket failures still throw. */
|
|
69
|
-
export function closeWorkspace(workspace) {
|
|
71
|
+
export function closeWorkspace(workspace, opts = {}) {
|
|
70
72
|
try {
|
|
71
|
-
cmux(["close-workspace", "--workspace", workspace]);
|
|
73
|
+
cmux(["close-workspace", "--workspace", workspace], opts);
|
|
72
74
|
}
|
|
73
75
|
catch (err) {
|
|
74
76
|
if (isWorkspaceNotFound(err))
|
|
@@ -143,8 +145,13 @@ export function newSplit(direction) {
|
|
|
143
145
|
export function send(text, target) {
|
|
144
146
|
cmux(["send", ...targetArgs(target), "--", text]);
|
|
145
147
|
}
|
|
148
|
+
/** The text a terminal surface shows now. Bounded like the exit probe, because the startup-confirm
|
|
149
|
+
* watch polls it on the manager's event loop. */
|
|
150
|
+
export function readScreen(target) {
|
|
151
|
+
return cmux(["read-screen", ...targetArgs(target)], { timeoutMs: EXIT_PROBE_MS });
|
|
152
|
+
}
|
|
146
153
|
/** Send a key press (e.g. "enter") to a terminal surface. */
|
|
147
|
-
export function sendKey(key, target) {
|
|
148
|
-
cmux(["send-key", ...targetArgs(target), "--", key]);
|
|
154
|
+
export function sendKey(key, target, opts = {}) {
|
|
155
|
+
cmux(["send-key", ...targetArgs(target), "--", key], opts);
|
|
149
156
|
}
|
|
150
157
|
//# sourceMappingURL=driver.js.map
|
package/dist/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,qFAAqF;AACrF,+EAA+E;AAC/E,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,MAAM,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,IAAI,CAAC,IAAc,EAAE,OAA+B,EAAE;IAC7D,OAAO,YAAY,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,WAAW,EAEhB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,eAAe,EAEpB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAmBxB;;;;;;;qGAOqG;AACrG,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,MAAM,CAa/E;AAkBD;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,QAAQ,CAAC,IAAI,UAAU;IAEvB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;CAoFhE;AAED;+EAC+E;AAC/E,eAAO,MAAM,mBAAmB,EAAE,eAKjC,CAAC;AAIF;;;;qBAIqB;AACrB,eAAO,MAAM,oBAAoB,EAAE,cAOlC,CAAC"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { mkdtempSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { tmpdir } from "node:os";
|
|
4
|
-
import { registry, SpawnRefused, } from "@cotal-ai/core";
|
|
4
|
+
import { registry, SpawnRefused, confirmWatch, } from "@cotal-ai/core";
|
|
5
5
|
import * as cmux from "./driver.js";
|
|
6
6
|
/** Grace window for a clean exit before a graceful stop force-closes the tab. */
|
|
7
7
|
const GRACE_MS = 1_500;
|
|
8
|
+
/** Bounds the startup-confirm watch's Enter and close, because the watch runs on the manager's event
|
|
9
|
+
* loop; the driver bounds its reads. */
|
|
10
|
+
const CONFIRM_CALL = { timeoutMs: 1_000 };
|
|
8
11
|
/** Background snippet that auto-accepts a one-time confirm prompt by pressing Enter on the
|
|
9
12
|
* pane's own cmux surface a few times. Gated on the cmux env vars so it's a no-op off cmux. */
|
|
10
13
|
const ENTER_LOOP = '[ -n "$CMUX_SURFACE_ID" ] && [ -n "$CMUX_BUNDLED_CLI_PATH" ] && ' +
|
|
@@ -67,13 +70,13 @@ export class CmuxRuntime {
|
|
|
67
70
|
if (!cmux.available())
|
|
68
71
|
throw new SpawnRefused(`the cmux CLI (${process.env.CMUX_BUNDLED_CLI_PATH ?? "cmux"}) couldn't reach the app — ` +
|
|
69
72
|
"is cmux running, and is this process inside a cmux surface (CMUX_SOCKET_PATH set)?");
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
// Nothing has the spec's command until openWorkspace, so a launch script that cannot be written
|
|
73
|
-
// is a refusal.
|
|
73
|
+
// Nothing has the spec's command until openWorkspace, so a confirm prompt that cannot match or a
|
|
74
|
+
// launch script that cannot be written is a refusal.
|
|
74
75
|
let command;
|
|
76
|
+
let watch;
|
|
75
77
|
try {
|
|
76
|
-
|
|
78
|
+
watch = spec.confirm === undefined ? undefined : confirmWatch(spec.confirm);
|
|
79
|
+
command = paneCommand({ command: spec.command, args: spec.args, env: spec.env, cwd }, false, true);
|
|
77
80
|
}
|
|
78
81
|
catch (err) {
|
|
79
82
|
throw new SpawnRefused(err.message);
|
|
@@ -81,6 +84,19 @@ export class CmuxRuntime {
|
|
|
81
84
|
// Keep the new tab's workspace ref so we can drive (send keys to its terminal)
|
|
82
85
|
// and close it later. cmux targets the tab's single terminal surface by workspace.
|
|
83
86
|
const workspace = cmux.openWorkspace(`cotal-${name}`, JSON.stringify(surface(command)), { focus: false });
|
|
87
|
+
watch?.({
|
|
88
|
+
read: () => (cmux.workspaceState(workspace) === "exited" ? undefined : cmux.readScreen({ workspace })),
|
|
89
|
+
enter: () => cmux.sendKey("enter", { workspace }, CONFIRM_CALL),
|
|
90
|
+
fail: (message) => {
|
|
91
|
+
console.error(`cmux runtime: "${name}": ${message}`);
|
|
92
|
+
try {
|
|
93
|
+
cmux.closeWorkspace(workspace, CONFIRM_CALL);
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
console.error(`cmux runtime: failed to close tab for "${name}":`, err);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
});
|
|
84
100
|
return {
|
|
85
101
|
name,
|
|
86
102
|
kind: "cmux",
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,YAAY,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cotal-ai/cmux",
|
|
3
3
|
"description": "Cotal cmux integration: a cmux Runtime and TerminalLayout provider for spawning agents into cmux tabs.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.72.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@cotal-ai/core": "*"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@cotal-ai/core": "0.
|
|
24
|
+
"@cotal-ai/core": "0.72.0",
|
|
25
25
|
"tsx": "^4.22.4"
|
|
26
26
|
},
|
|
27
27
|
"files": [
|