aibroker 0.60.2 → 0.61.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/README.md +21 -33
- package/dist/adapters/iterm/core.d.ts +4 -0
- package/dist/adapters/iterm/core.d.ts.map +1 -1
- package/dist/adapters/iterm/core.js +16 -0
- package/dist/adapters/iterm/core.js.map +1 -1
- package/dist/adapters/iterm/dictation.d.ts +1 -1
- package/dist/adapters/iterm/dictation.d.ts.map +1 -1
- package/dist/adapters/iterm/dictation.js +5 -6
- package/dist/adapters/iterm/dictation.js.map +1 -1
- package/dist/adapters/iterm/sessions.d.ts.map +1 -1
- package/dist/adapters/iterm/sessions.js +11 -0
- package/dist/adapters/iterm/sessions.js.map +1 -1
- package/dist/adapters/kokoro/media.d.ts +1 -1
- package/dist/adapters/kokoro/media.d.ts.map +1 -1
- package/dist/adapters/kokoro/media.js +4 -3
- package/dist/adapters/kokoro/media.js.map +1 -1
- package/dist/adapters/kokoro/tts.d.ts +1 -1
- package/dist/adapters/kokoro/tts.d.ts.map +1 -1
- package/dist/adapters/kokoro/tts.js +15 -3
- package/dist/adapters/kokoro/tts.js.map +1 -1
- package/dist/adapters/pailot/gateway.d.ts.map +1 -1
- package/dist/adapters/pailot/gateway.js +7 -5
- package/dist/adapters/pailot/gateway.js.map +1 -1
- package/dist/backend/api.d.ts.map +1 -1
- package/dist/backend/api.js +2 -1
- package/dist/backend/api.js.map +1 -1
- package/dist/core/bins.d.ts +25 -0
- package/dist/core/bins.d.ts.map +1 -0
- package/dist/core/bins.js +59 -0
- package/dist/core/bins.js.map +1 -0
- package/dist/core/env-bootstrap.js +2 -7
- package/dist/core/env-bootstrap.js.map +1 -1
- package/dist/core/log.d.ts +2 -0
- package/dist/core/log.d.ts.map +1 -1
- package/dist/core/log.js +7 -0
- package/dist/core/log.js.map +1 -1
- package/dist/core/private-file.d.ts +10 -0
- package/dist/core/private-file.d.ts.map +1 -0
- package/dist/core/private-file.js +30 -0
- package/dist/core/private-file.js.map +1 -0
- package/dist/core/service-env.d.ts +10 -0
- package/dist/core/service-env.d.ts.map +1 -0
- package/dist/core/service-env.js +18 -0
- package/dist/core/service-env.js.map +1 -0
- package/dist/core/session-discovery.d.ts +1 -1
- package/dist/core/session-discovery.d.ts.map +1 -1
- package/dist/core/session-discovery.js +1 -1
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/daemon/audit.d.ts.map +1 -1
- package/dist/daemon/audit.js +4 -3
- package/dist/daemon/audit.js.map +1 -1
- package/dist/daemon/cli.d.ts +3 -1
- package/dist/daemon/cli.d.ts.map +1 -1
- package/dist/daemon/cli.js +43 -48
- package/dist/daemon/cli.js.map +1 -1
- package/dist/daemon/core-handlers.d.ts.map +1 -1
- package/dist/daemon/core-handlers.js +6 -2
- package/dist/daemon/core-handlers.js.map +1 -1
- package/dist/daemon/daemon-control.d.ts +51 -0
- package/dist/daemon/daemon-control.d.ts.map +1 -0
- package/dist/daemon/daemon-control.js +182 -0
- package/dist/daemon/daemon-control.js.map +1 -0
- package/dist/daemon/doctor.d.ts +21 -0
- package/dist/daemon/doctor.d.ts.map +1 -0
- package/dist/daemon/doctor.js +134 -0
- package/dist/daemon/doctor.js.map +1 -0
- package/dist/daemon/funnel-watchdog.d.ts.map +1 -1
- package/dist/daemon/funnel-watchdog.js +8 -8
- package/dist/daemon/funnel-watchdog.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +24 -4
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/launch-cli.d.ts +67 -1
- package/dist/daemon/launch-cli.d.ts.map +1 -1
- package/dist/daemon/launch-cli.js +138 -35
- package/dist/daemon/launch-cli.js.map +1 -1
- package/dist/daemon/manage.d.ts.map +1 -1
- package/dist/daemon/manage.js +3 -15
- package/dist/daemon/manage.js.map +1 -1
- package/dist/daemon/screenshot.d.ts.map +1 -1
- package/dist/daemon/screenshot.js +43 -0
- package/dist/daemon/screenshot.js.map +1 -1
- package/dist/daemon/send-cli.d.ts +9 -0
- package/dist/daemon/send-cli.d.ts.map +1 -0
- package/dist/daemon/send-cli.js +55 -0
- package/dist/daemon/send-cli.js.map +1 -0
- package/dist/daemon/session-content.d.ts +2 -2
- package/dist/daemon/session-content.d.ts.map +1 -1
- package/dist/daemon/session-content.js +23 -3
- package/dist/daemon/session-content.js.map +1 -1
- package/dist/daemon/sessions.d.ts +29 -0
- package/dist/daemon/sessions.d.ts.map +1 -1
- package/dist/daemon/sessions.js +160 -63
- package/dist/daemon/sessions.js.map +1 -1
- package/dist/daemon/setup.d.ts +86 -0
- package/dist/daemon/setup.d.ts.map +1 -0
- package/dist/daemon/setup.js +470 -0
- package/dist/daemon/setup.js.map +1 -0
- package/dist/daemon/status-format.d.ts +4 -0
- package/dist/daemon/status-format.d.ts.map +1 -0
- package/dist/daemon/status-format.js +22 -0
- package/dist/daemon/status-format.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ipc/validate.d.ts +2 -0
- package/dist/ipc/validate.d.ts.map +1 -1
- package/dist/ipc/validate.js +2 -1
- package/dist/ipc/validate.js.map +1 -1
- package/dist/mcp/index.js +3 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/transport/index.d.ts +2 -1
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +6 -0
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/iterm.d.ts +4 -1
- package/dist/transport/iterm.d.ts.map +1 -1
- package/dist/transport/iterm.js +26 -0
- package/dist/transport/iterm.js.map +1 -1
- package/dist/transport/policy.d.ts +24 -0
- package/dist/transport/policy.d.ts.map +1 -0
- package/dist/transport/policy.js +41 -0
- package/dist/transport/policy.js.map +1 -0
- package/dist/transport/screen.d.ts +11 -0
- package/dist/transport/screen.d.ts.map +1 -1
- package/dist/transport/screen.js +19 -0
- package/dist/transport/screen.js.map +1 -1
- package/dist/transport/session-transport.d.ts +27 -0
- package/dist/transport/session-transport.d.ts.map +1 -1
- package/dist/transport/session-transport.js +6 -1
- package/dist/transport/session-transport.js.map +1 -1
- package/dist/transport/sync-facade.d.ts +19 -0
- package/dist/transport/sync-facade.d.ts.map +1 -1
- package/dist/transport/sync-facade.js +38 -8
- package/dist/transport/sync-facade.js.map +1 -1
- package/dist/transport/tmux.d.ts +15 -1
- package/dist/transport/tmux.d.ts.map +1 -1
- package/dist/transport/tmux.js +52 -4
- package/dist/transport/tmux.js.map +1 -1
- package/package.json +4 -2
- package/templates/systemd/aibroker.service +22 -0
package/dist/transport/screen.js
CHANGED
|
@@ -146,4 +146,23 @@ export function hasBeenSubmitted(frame, needle) {
|
|
|
146
146
|
const stillTyped = inputBoxLines(frame).some((l) => flatten(l).includes(needle.slice(0, 24)));
|
|
147
147
|
return !stillTyped && flatten(frame).includes(needle);
|
|
148
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Claude Code marks its own idle state in the pane title: `✳ <name>` at rest,
|
|
151
|
+
* a braille spinner glyph while working. tmux only knows the foreground
|
|
152
|
+
* command (always `claude`/`node`), so the title is the idle signal there.
|
|
153
|
+
*/
|
|
154
|
+
export function isClaudeTitleIdle(title) {
|
|
155
|
+
return /^✳/.test(title ?? "");
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Is this frame Claude at rest? A live input box, nothing queued in it, and no
|
|
159
|
+
* "esc to interrupt" hint in the last rows (Claude draws it only while working).
|
|
160
|
+
*/
|
|
161
|
+
export function isClaudeFrameIdle(frame) {
|
|
162
|
+
// "esc to interrupt" is drawn above the box (spinner row) or in Claude's own
|
|
163
|
+
// footer row under it, so the tail is searched whole; a custom statusline
|
|
164
|
+
// below the box does not affect the box lookup, which is structural.
|
|
165
|
+
const tail = frame.split("\n").filter((l) => l.trim().length > 0).slice(-12).join("\n");
|
|
166
|
+
return isClaudeReady(frame) && isInputBoxEmpty(frame) && !/esc to interrupt/i.test(tail);
|
|
167
|
+
}
|
|
149
168
|
//# sourceMappingURL=screen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/transport/screen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/transport/screen.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,29 @@ export interface ManagedSession {
|
|
|
33
33
|
* This is the key the persistent paiName store should use across transports.
|
|
34
34
|
*/
|
|
35
35
|
aibrokerId: string | null;
|
|
36
|
+
/** Working directory of the pane's foreground process, if the host reports one (tmux). */
|
|
37
|
+
cwd?: string | null;
|
|
38
|
+
/** Foreground command of the pane (tmux `pane_current_command`). */
|
|
39
|
+
command?: string | null;
|
|
36
40
|
}
|
|
41
|
+
export interface LaunchOptions {
|
|
42
|
+
dir: string;
|
|
43
|
+
/** Window/tab name and pane title; also what the session is addressed by. */
|
|
44
|
+
name: string;
|
|
45
|
+
/** PAI-style start: `--name`, skip-permissions and a `/Name <name>` + `go` prompt (session restore). */
|
|
46
|
+
resume?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface LaunchResult {
|
|
49
|
+
/** The id the hub uses for this session (`@aibroker_id` on tmux, the GUID on iTerm). */
|
|
50
|
+
id: string;
|
|
51
|
+
transport: TransportKind;
|
|
52
|
+
/** Human-readable place it opened, e.g. `window "api" in tmux session "work"`. */
|
|
53
|
+
where: string;
|
|
54
|
+
/** Command that attaches to it, when the session opened detached. */
|
|
55
|
+
attach?: string;
|
|
56
|
+
}
|
|
57
|
+
/** Arguments after the `claude` binary. Pure, so every transport starts a session the same way. */
|
|
58
|
+
export declare function claudeArgs(opts: LaunchOptions): string[];
|
|
37
59
|
export interface SendOptions {
|
|
38
60
|
/** Press Enter after the text (default true). */
|
|
39
61
|
enter?: boolean;
|
|
@@ -60,5 +82,10 @@ export interface SessionTransport {
|
|
|
60
82
|
isBusy(id: string): boolean;
|
|
61
83
|
/** Set the session's title (used for the sticky paiName display). */
|
|
62
84
|
setTitle(id: string, title: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Open a new Claude Code session in `opts.dir`. Returns null when the host
|
|
87
|
+
* refused. iTerm implements it with the tab launcher `sessions restore` used.
|
|
88
|
+
*/
|
|
89
|
+
launch(opts: LaunchOptions): LaunchResult | null;
|
|
63
90
|
}
|
|
64
91
|
//# sourceMappingURL=session-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-transport.d.ts","sourceRoot":"","sources":["../../src/transport/session-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,kGAAkG;IAClG,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qCAAqC;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAC;IACd,+CAA+C;IAC/C,SAAS,EAAE,aAAa,CAAC;IACzB;;;;OAIG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"session-transport.d.ts","sourceRoot":"","sources":["../../src/transport/session-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,kGAAkG;IAClG,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qCAAqC;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAC;IACd,+CAA+C;IAC/C,SAAS,EAAE,aAAa,CAAC;IACzB;;;;OAIG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,wGAAwG;IACxG,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,wFAAwF;IACxF,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,aAAa,CAAC;IACzB,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mGAAmG;AACnG,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE,CAGxD;AAED,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sGAAsG;IACtG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,0DAA0D;IAC1D,WAAW,IAAI,OAAO,CAAC;IACvB,qDAAqD;IACrD,YAAY,IAAI,cAAc,EAAE,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAChE,6FAA6F;IAC7F,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnD,4EAA4E;IAC5E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7C;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC;CAClD"}
|
|
@@ -13,5 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Zero transport-specific imports here — implementations live in sibling files.
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
/** Arguments after the `claude` binary. Pure, so every transport starts a session the same way. */
|
|
17
|
+
export function claudeArgs(opts) {
|
|
18
|
+
if (!opts.resume)
|
|
19
|
+
return [];
|
|
20
|
+
return ["--name", opts.name, "--dangerously-skip-permissions", `/Name ${opts.name}\ngo`];
|
|
21
|
+
}
|
|
17
22
|
//# sourceMappingURL=session-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-transport.js","sourceRoot":"","sources":["../../src/transport/session-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
1
|
+
{"version":3,"file":"session-transport.js","sourceRoot":"","sources":["../../src/transport/session-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA+CH,mGAAmG;AACnG,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC5C,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,gCAAgC,EAAE,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;AAC3F,CAAC"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* AIBROKER_TRANSPORT=tmux → tmux only
|
|
13
13
|
* AIBROKER_TRANSPORT=multi → both (subject to availability)
|
|
14
14
|
* unset / anything else → AUTO: enumerate whatever is available right now
|
|
15
|
+
* (non-macOS: tmux only — see policy.ts)
|
|
15
16
|
*
|
|
16
17
|
* AUTO is the default and is safe: on a Mac with no tmux server it resolves to
|
|
17
18
|
* iTerm-only (byte-identical to the pre-transport behaviour — verified). The
|
|
@@ -27,6 +28,15 @@
|
|
|
27
28
|
* iTerm uses GUIDs. With one transport active, everything routes to it.
|
|
28
29
|
*/
|
|
29
30
|
import type { SessionSnapshot } from "../adapters/iterm/core.js";
|
|
31
|
+
import type { ManagedSession } from "./session-transport.js";
|
|
32
|
+
/**
|
|
33
|
+
* tmux only sees the foreground command, so idle comes from the pane CONTENT
|
|
34
|
+
* (`aibroker launch` pins the title, so Claude's ✳ marker never shows). Only
|
|
35
|
+
* claude/node panes are captured, cached briefly; the ✳ title is the fallback
|
|
36
|
+
* when capture fails.
|
|
37
|
+
*/
|
|
38
|
+
export declare function tmuxAtPrompt(s: ManagedSession, capture?: (id: string, lines: number) => string | null): boolean;
|
|
39
|
+
export declare function tmuxToSnapshot(s: ManagedSession): SessionSnapshot;
|
|
30
40
|
/**
|
|
31
41
|
* Enumerate sessions across all permitted transports, availability checked live.
|
|
32
42
|
* `fresh` bypasses iTerm's short-lived cache — forwarded verbatim, see
|
|
@@ -42,6 +52,13 @@ export declare function snapshotAllSessions(opts?: {
|
|
|
42
52
|
* "no server", which is a real answer, not a dropped one.
|
|
43
53
|
*/
|
|
44
54
|
export declare function wasLastEnumerationReliable(): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Decide whether an id belongs to tmux. tmux session ids are now durable
|
|
57
|
+
* @aibroker_ids (a raw "%N" pane id may also appear during inbound translation).
|
|
58
|
+
* A "%N" is unambiguously tmux; otherwise check whether a live tmux pane carries
|
|
59
|
+
* that @aibroker_id (iTerm GUIDs won't match → routed to iTerm).
|
|
60
|
+
*/
|
|
61
|
+
export declare function routeToTmux(id: string): boolean;
|
|
45
62
|
/** Translate a caller's $TMUX_PANE into the durable @aibroker_id identity. */
|
|
46
63
|
export declare function aibrokerIdForPane(paneId: string): string | null;
|
|
47
64
|
/** Inject text + Enter into a session. Refuses a shell unless `allowShell`. */
|
|
@@ -95,4 +112,6 @@ export declare function setSessionTitle(id: string, title: string): boolean;
|
|
|
95
112
|
* suppresses viewer tabs) so the host tab can still receive iTerm visuals.
|
|
96
113
|
*/
|
|
97
114
|
export declare function itermViewerSessionId(tmuxPaneId: string): string | null;
|
|
115
|
+
/** Daemon-only diagnostic: module-load logging would leak into every CLI verb's stderr. */
|
|
116
|
+
export declare function logTransportPolicy(): void;
|
|
98
117
|
//# sourceMappingURL=sync-facade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-facade.d.ts","sourceRoot":"","sources":["../../src/transport/sync-facade.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sync-facade.d.ts","sourceRoot":"","sources":["../../src/transport/sync-facade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAmB7D;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,cAAc,EACjB,OAAO,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAA8C,GAC9F,OAAO,CAUT;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,GAAG,eAAe,CAkBjE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,eAAe,EAAE,CAgBrF;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAK/C;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D;AA2DD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAItG;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAI3G;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;0DAC0D;AAC1D,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIhD;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKtE;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* AIBROKER_TRANSPORT=tmux → tmux only
|
|
13
13
|
* AIBROKER_TRANSPORT=multi → both (subject to availability)
|
|
14
14
|
* unset / anything else → AUTO: enumerate whatever is available right now
|
|
15
|
+
* (non-macOS: tmux only — see policy.ts)
|
|
15
16
|
*
|
|
16
17
|
* AUTO is the default and is safe: on a Mac with no tmux server it resolves to
|
|
17
18
|
* iTerm-only (byte-identical to the pre-transport behaviour — verified). The
|
|
@@ -29,10 +30,10 @@
|
|
|
29
30
|
import * as iterm from "../adapters/iterm/core.js";
|
|
30
31
|
import { ItermTransport } from "./iterm.js";
|
|
31
32
|
import { TmuxTransport } from "./tmux.js";
|
|
32
|
-
import { isClaudeReady } from "./screen.js";
|
|
33
|
+
import { isClaudeReady, isClaudeTitleIdle, isClaudeFrameIdle } from "./screen.js";
|
|
33
34
|
import { audit } from "../daemon/audit.js";
|
|
34
35
|
import { log } from "../core/log.js";
|
|
35
|
-
|
|
36
|
+
import { transportPolicy } from "./policy.js";
|
|
36
37
|
const tmuxTransport = new TmuxTransport();
|
|
37
38
|
const itermTransport = new ItermTransport();
|
|
38
39
|
// Override GATES which transports are permitted; availability is then checked
|
|
@@ -40,20 +41,46 @@ const itermTransport = new ItermTransport();
|
|
|
40
41
|
// the daemon launched is picked up immediately — no restart required. Likewise,
|
|
41
42
|
// iTerm yields nothing on a headless box (osascript absent), so AUTO degrades
|
|
42
43
|
// cleanly to tmux-only there.
|
|
43
|
-
const allowIterm
|
|
44
|
-
const
|
|
45
|
-
|
|
44
|
+
const { allowIterm, allowTmux } = transportPolicy();
|
|
45
|
+
const IDLE_TTL_MS = 2_000;
|
|
46
|
+
const idleCache = new Map();
|
|
47
|
+
/**
|
|
48
|
+
* tmux only sees the foreground command, so idle comes from the pane CONTENT
|
|
49
|
+
* (`aibroker launch` pins the title, so Claude's ✳ marker never shows). Only
|
|
50
|
+
* claude/node panes are captured, cached briefly; the ✳ title is the fallback
|
|
51
|
+
* when capture fails.
|
|
52
|
+
*/
|
|
53
|
+
export function tmuxAtPrompt(s, capture = (id, n) => tmuxTransport.capture(id, n)) {
|
|
54
|
+
if (!s.busy)
|
|
55
|
+
return true;
|
|
56
|
+
if (!/^(claude|node)$/.test(s.command ?? ""))
|
|
57
|
+
return false;
|
|
58
|
+
const hit = idleCache.get(s.id);
|
|
59
|
+
const now = Date.now();
|
|
60
|
+
if (hit && now - hit.at < IDLE_TTL_MS)
|
|
61
|
+
return hit.idle;
|
|
62
|
+
const frame = capture(s.id, 40);
|
|
63
|
+
const idle = frame == null ? isClaudeTitleIdle(s.tabTitle) : isClaudeFrameIdle(frame);
|
|
64
|
+
idleCache.set(s.id, { at: now, idle });
|
|
65
|
+
return idle;
|
|
66
|
+
}
|
|
67
|
+
export function tmuxToSnapshot(s) {
|
|
46
68
|
return {
|
|
47
69
|
id: s.id,
|
|
48
70
|
name: s.name,
|
|
49
71
|
profileName: "Default",
|
|
50
72
|
tabTitle: s.tabTitle,
|
|
51
73
|
tty: s.tty ?? "",
|
|
52
|
-
atPrompt:
|
|
74
|
+
atPrompt: tmuxAtPrompt(s),
|
|
75
|
+
// A claude foreground command is a Claude session, idle or not: without
|
|
76
|
+
// this an idle pane (atPrompt) with no chosen name was listed as "shell".
|
|
77
|
+
isClaude: s.command === "claude" ? true : undefined,
|
|
53
78
|
// paiName merged from the persistent store by callers, exactly as for iTerm.
|
|
54
79
|
paiName: null,
|
|
55
80
|
// Durable id so persistent-name lookups survive %N churn across tmux restarts.
|
|
56
81
|
aibrokerId: s.aibrokerId,
|
|
82
|
+
cwd: s.cwd ?? null,
|
|
83
|
+
transport: "tmux",
|
|
57
84
|
};
|
|
58
85
|
}
|
|
59
86
|
/**
|
|
@@ -92,7 +119,7 @@ export function wasLastEnumerationReliable() {
|
|
|
92
119
|
* A "%N" is unambiguously tmux; otherwise check whether a live tmux pane carries
|
|
93
120
|
* that @aibroker_id (iTerm GUIDs won't match → routed to iTerm).
|
|
94
121
|
*/
|
|
95
|
-
function routeToTmux(id) {
|
|
122
|
+
export function routeToTmux(id) {
|
|
96
123
|
if (!allowTmux)
|
|
97
124
|
return false;
|
|
98
125
|
if (!allowIterm)
|
|
@@ -257,5 +284,8 @@ export function itermViewerSessionId(tmuxPaneId) {
|
|
|
257
284
|
return null;
|
|
258
285
|
return iterm.snapshotAllSessions().find((s) => s.tty === tty)?.id ?? null;
|
|
259
286
|
}
|
|
260
|
-
|
|
287
|
+
/** Daemon-only diagnostic: module-load logging would leak into every CLI verb's stderr. */
|
|
288
|
+
export function logTransportPolicy() {
|
|
289
|
+
log(`sync-facade: transports permitted = [${[allowIterm ? "iterm" : null, allowTmux ? "tmux" : null].filter(Boolean).join(", ")}] (availability checked live per enumeration)`);
|
|
290
|
+
}
|
|
261
291
|
//# sourceMappingURL=sync-facade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-facade.js","sourceRoot":"","sources":["../../src/transport/sync-facade.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sync-facade.js","sourceRoot":"","sources":["../../src/transport/sync-facade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AAE5C,8EAA8E;AAC9E,iFAAiF;AACjF,gFAAgF;AAChF,8EAA8E;AAC9E,8BAA8B;AAC9B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC;AAEpD,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyC,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,CAAiB,EACjB,UAAwD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/F,IAAI,CAAC,CAAC,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,WAAW;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtF,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAiB;IAC9C,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAChB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;QACzB,wEAAwE;QACxE,0EAA0E;QAC1E,QAAQ,EAAE,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACnD,6EAA6E;QAC7E,OAAO,EAAE,IAAI;QACb,+EAA+E;QAC/E,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI;QAClB,SAAS,EAAE,MAAM;KAClB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA4B,EAAE;IAChE,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,IAAI,aAAa,GAAsB,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzF,IAAI,UAAU,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACtC,wEAAwE;QACxE,0EAA0E;QAC1E,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,UAAU,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAC;QACtD,IAAI,UAAU,CAAC,IAAI;YAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC,CAAC,uCAAuC;IACrE,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0C,CAAC;AAErE,uFAAuF;AACvF,SAAS,YAAY,CAAC,EAAU;IAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,YAAY;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IAEzD,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,gFAAgF;IAChF,yCAAyC;IACzC,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IACrD,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,EAAU,EAAE,IAAY;IACtC,GAAG,CACD,oBAAoB,EAAE,wDAAwD;QAC9E,oDAAoD;QACpD,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACvD,CAAC;IACF,0EAA0E;IAC1E,wEAAwE;IACxE,wEAAwE;IACxE,oEAAoE;IACpE,yEAAyE;IACzE,mEAAmE;IACnE,KAAK,CAAC;QACJ,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE;QACzD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI;QAC9B,MAAM,EAAE,mFAAmF;KAC5F,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,IAAY,EAAE,OAAiC,EAAE;IAC3F,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAAE,OAAO,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACnE,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,oBAAoB,CAAC,EAAU,EAAE,IAAY,EAAE,OAAiC,EAAE;IAChG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAAE,OAAO,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACnE,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,OAAO,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;0DAC0D;AAC1D,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO;IAC5B,KAAK,CAAC,sBAAsB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM;IAC7C,KAAK,CAAC,sBAAsB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,kBAAkB;AAC3D,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,EAAW;IAC9C,IAAI,EAAE;QAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;;QAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AACzD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,KAAc;IACvD,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7D,OAAO,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,wBAAwB,CAAC,EAAU;IACjD,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,KAAa;IACvD,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,KAAK,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;AAC5E,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,kBAAkB;IAChC,GAAG,CAAC,wCAAwC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;AAClL,CAAC"}
|
package/dist/transport/tmux.d.ts
CHANGED
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Synchronous (spawnSync) to match core.ts and the daemon's existing call sites.
|
|
16
16
|
*/
|
|
17
|
-
import type { ManagedSession, SendOptions, SessionTransport, TransportKind } from "./session-transport.js";
|
|
17
|
+
import type { LaunchOptions, LaunchResult, ManagedSession, SendOptions, SessionTransport, TransportKind } from "./session-transport.js";
|
|
18
|
+
/** Where `aibroker launch` opens windows when the caller is not inside tmux. */
|
|
19
|
+
export declare const DETACHED_SESSION = "aibroker";
|
|
18
20
|
export declare class TmuxTransport implements SessionTransport {
|
|
19
21
|
readonly kind: TransportKind;
|
|
20
22
|
isAvailable(): boolean;
|
|
@@ -51,5 +53,17 @@ export declare class TmuxTransport implements SessionTransport {
|
|
|
51
53
|
clientTtyForPane(id: string): string | null;
|
|
52
54
|
isBusy(id: string): boolean;
|
|
53
55
|
setTitle(id: string, title: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Open `claude` in `opts.dir` as a new tmux window. Inside tmux ($TMUX set) it
|
|
58
|
+
* lands in the caller's current session; otherwise in a detached session named
|
|
59
|
+
* `aibroker`, created on first use. Window name and pane title are `opts.name`,
|
|
60
|
+
* and the pane gets its durable @aibroker_id straight away, so the hub can
|
|
61
|
+
* address it by name on its very next enumeration. `io` lets tests replace tmux.
|
|
62
|
+
*/
|
|
63
|
+
launch(opts: LaunchOptions, io?: {
|
|
64
|
+
exec?: (args: string[]) => string | null;
|
|
65
|
+
env?: NodeJS.ProcessEnv;
|
|
66
|
+
claudeBin?: string;
|
|
67
|
+
}): LaunchResult | null;
|
|
54
68
|
}
|
|
55
69
|
//# sourceMappingURL=tmux.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../src/transport/tmux.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../src/transport/tmux.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAoBxI,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,aAAa,CAAC;AA+D3C,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAU;IAEtC,WAAW,IAAI,OAAO;IAMtB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAWxC;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUhD,YAAY,IAAI,cAAc,EAAE;IAmChC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO;IA8CnE,8EAA8E;IAC9E,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAMzC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASlD;;;;OAIG;IACH,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC;IAMjC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAa3C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAa3B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAM5C;;;;;;OAMG;IACH,MAAM,CACJ,IAAI,EAAE,aAAa,EACnB,EAAE,GAAE;QAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACjG,YAAY,GAAG,IAAI;CA+BvB"}
|
package/dist/transport/tmux.js
CHANGED
|
@@ -18,6 +18,8 @@ import { spawnSync } from "node:child_process";
|
|
|
18
18
|
import { existsSync } from "node:fs";
|
|
19
19
|
import { randomUUID } from "node:crypto";
|
|
20
20
|
import { log } from "../core/log.js";
|
|
21
|
+
import { resolveBin } from "../core/bins.js";
|
|
22
|
+
import { claudeArgs } from "./session-transport.js";
|
|
21
23
|
/** Foreground process names that mean "at a shell prompt" (idle), not running a program. */
|
|
22
24
|
const SHELL_COMMANDS = new Set(["zsh", "-zsh", "bash", "-bash", "sh", "-sh", "fish", "-fish"]);
|
|
23
25
|
/** Field separator for list-panes -F output; unlikely to appear in titles. */
|
|
@@ -35,6 +37,8 @@ function resolveTmuxBin() {
|
|
|
35
37
|
return "tmux";
|
|
36
38
|
}
|
|
37
39
|
const TMUX_BIN = resolveTmuxBin();
|
|
40
|
+
/** Where `aibroker launch` opens windows when the caller is not inside tmux. */
|
|
41
|
+
export const DETACHED_SESSION = "aibroker";
|
|
38
42
|
/**
|
|
39
43
|
* tmux transliterates non-ASCII output to "_" under a C/POSIX locale — which is
|
|
40
44
|
* exactly what launchd hands the daemon (no LANG/LC_*). That mangles BOTH the
|
|
@@ -67,6 +71,10 @@ function runTmux(args, timeoutMs = 4_000) {
|
|
|
67
71
|
// id routing goes through here).
|
|
68
72
|
if (!existsSync(tmuxSocketPath()))
|
|
69
73
|
return null;
|
|
74
|
+
return spawnTmux(args, timeoutMs);
|
|
75
|
+
}
|
|
76
|
+
/** Like runTmux without the socket gate: launching is the one call that may START the server. */
|
|
77
|
+
function spawnTmux(args, timeoutMs = 4_000) {
|
|
70
78
|
const result = spawnSync(TMUX_BIN, args, {
|
|
71
79
|
stdio: ["pipe", "pipe", "pipe"],
|
|
72
80
|
timeout: timeoutMs,
|
|
@@ -77,7 +85,7 @@ function runTmux(args, timeoutMs = 4_000) {
|
|
|
77
85
|
const stderr = (result.stderr ?? "").toString().trim();
|
|
78
86
|
// "no server running" / "error connecting to" (missing socket file) are the
|
|
79
87
|
// normal states when no tmux is up — don't spam logs.
|
|
80
|
-
if (stderr && !stderr.includes("no server running") && !stderr.includes("error connecting to")) {
|
|
88
|
+
if (stderr && !stderr.includes("no server running") && !stderr.includes("error connecting to") && !stderr.includes("can't find session")) {
|
|
81
89
|
log(`tmux ${args[0]} failed: ${stderr}`);
|
|
82
90
|
}
|
|
83
91
|
return null;
|
|
@@ -132,13 +140,13 @@ export class TmuxTransport {
|
|
|
132
140
|
return fresh;
|
|
133
141
|
}
|
|
134
142
|
listSessions() {
|
|
135
|
-
const fmt = ["#{pane_id}", "#{pane_current_command}", "#{pane_title}", "#{pane_tty}", "#{@aibroker_id}"].join(FIELD_SEP);
|
|
143
|
+
const fmt = ["#{pane_id}", "#{pane_current_command}", "#{pane_title}", "#{pane_tty}", "#{@aibroker_id}", "#{pane_current_path}"].join(FIELD_SEP);
|
|
136
144
|
const out = runTmux(["list-panes", "-a", "-F", fmt]);
|
|
137
145
|
if (out == null)
|
|
138
146
|
return [];
|
|
139
147
|
const sessions = [];
|
|
140
148
|
for (const line of out.split("\n").filter(Boolean)) {
|
|
141
|
-
const [paneId, cmd, title, tty, existingId] = line.split(FIELD_SEP);
|
|
149
|
+
const [paneId, cmd, title, tty, existingId, path] = line.split(FIELD_SEP);
|
|
142
150
|
if (!paneId)
|
|
143
151
|
continue;
|
|
144
152
|
// Scheme B: ensure a durable id exists for this pane.
|
|
@@ -158,6 +166,8 @@ export class TmuxTransport {
|
|
|
158
166
|
busy: !SHELL_COMMANDS.has(cmd ?? ""),
|
|
159
167
|
transport: this.kind,
|
|
160
168
|
aibrokerId,
|
|
169
|
+
cwd: path && path.length > 0 ? path : null,
|
|
170
|
+
command: cmd || null,
|
|
161
171
|
});
|
|
162
172
|
}
|
|
163
173
|
return sessions;
|
|
@@ -217,7 +227,8 @@ export class TmuxTransport {
|
|
|
217
227
|
const pane = this.paneFor(id);
|
|
218
228
|
if (pane == null)
|
|
219
229
|
return null;
|
|
220
|
-
|
|
230
|
+
// -J joins wrapped lines so a long line reads as one, not as fragments.
|
|
231
|
+
const args = ["capture-pane", "-t", pane, "-p", "-J"];
|
|
221
232
|
if (lines && lines > 0)
|
|
222
233
|
args.push("-S", `-${lines}`);
|
|
223
234
|
return runTmux(args);
|
|
@@ -275,5 +286,42 @@ export class TmuxTransport {
|
|
|
275
286
|
return false;
|
|
276
287
|
return runTmux(["select-pane", "-t", pane, "-T", title]) != null;
|
|
277
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* Open `claude` in `opts.dir` as a new tmux window. Inside tmux ($TMUX set) it
|
|
291
|
+
* lands in the caller's current session; otherwise in a detached session named
|
|
292
|
+
* `aibroker`, created on first use. Window name and pane title are `opts.name`,
|
|
293
|
+
* and the pane gets its durable @aibroker_id straight away, so the hub can
|
|
294
|
+
* address it by name on its very next enumeration. `io` lets tests replace tmux.
|
|
295
|
+
*/
|
|
296
|
+
launch(opts, io = {}) {
|
|
297
|
+
const exec = io.exec ?? spawnTmux;
|
|
298
|
+
const env = io.env ?? process.env;
|
|
299
|
+
const argv = ["--", io.claudeBin ?? resolveBin("claude"), ...claudeArgs(opts)];
|
|
300
|
+
const pane = ["-c", opts.dir, "-n", opts.name, "-P", "-F", "#{pane_id}"];
|
|
301
|
+
let out = null;
|
|
302
|
+
let where = "";
|
|
303
|
+
let attach;
|
|
304
|
+
if (env.TMUX) {
|
|
305
|
+
out = exec(["new-window", ...pane, ...argv]);
|
|
306
|
+
where = `window "${opts.name}" in the current tmux session`;
|
|
307
|
+
}
|
|
308
|
+
if (out == null) {
|
|
309
|
+
where = `window "${opts.name}" in tmux session "${DETACHED_SESSION}"`;
|
|
310
|
+
attach = `tmux attach -t ${DETACHED_SESSION}`;
|
|
311
|
+
out = exec(["has-session", "-t", `=${DETACHED_SESSION}`]) != null
|
|
312
|
+
? exec(["new-window", "-t", `${DETACHED_SESSION}:`, ...pane, ...argv])
|
|
313
|
+
: exec(["new-session", "-d", "-s", DETACHED_SESSION, ...pane, ...argv]);
|
|
314
|
+
}
|
|
315
|
+
const paneId = out?.trim();
|
|
316
|
+
if (!paneId)
|
|
317
|
+
return null;
|
|
318
|
+
const id = randomUUID();
|
|
319
|
+
exec(["set-option", "-p", "-t", paneId, "@aibroker_id", id]);
|
|
320
|
+
exec(["select-pane", "-t", paneId, "-T", opts.name]);
|
|
321
|
+
// Claude retitles its terminal; keep the name the session is addressed by
|
|
322
|
+
// (pane option exists from tmux 3.5 — older servers reject it, harmlessly).
|
|
323
|
+
exec(["set-option", "-p", "-t", paneId, "allow-set-title", "off"]);
|
|
324
|
+
return { id, transport: this.kind, where, attach };
|
|
325
|
+
}
|
|
278
326
|
}
|
|
279
327
|
//# sourceMappingURL=tmux.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/transport/tmux.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/transport/tmux.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aibroker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"description": "Platform-agnostic AI message broker — routes between user channels and AI backends",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
"dev": "tsc --watch",
|
|
26
26
|
"start": "node dist/daemon/cli.js start",
|
|
27
27
|
"test": "npx tsx --experimental-test-module-mocks --import ./test/home-guard.ts --test test/*.test.ts",
|
|
28
|
+
"test:vm": "bash test/linux/vm-acceptance.sh",
|
|
29
|
+
"test:linux": "npm run build && docker build -f test/linux/Dockerfile -t aibroker-linux-smoke . && docker run --rm aibroker-linux-smoke",
|
|
28
30
|
"prepublishOnly": "npm run build"
|
|
29
31
|
},
|
|
30
32
|
"repository": {
|
|
@@ -45,7 +47,7 @@
|
|
|
45
47
|
"license": "MIT",
|
|
46
48
|
"author": "Matthias Nott",
|
|
47
49
|
"engines": {
|
|
48
|
-
"node": ">=
|
|
50
|
+
"node": ">=22.0.0"
|
|
49
51
|
},
|
|
50
52
|
"dependencies": {
|
|
51
53
|
"@anthropic-ai/claude-agent-sdk": "^0.1.0",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# systemd --user unit for the AIBroker hub. `aibroker setup` fills the two
|
|
2
|
+
# @…@ markers (absolute node + installed cli.js, PATH and AIBROKER_* from the
|
|
3
|
+
# invoking shell) and writes the result to ~/.config/systemd/user/.
|
|
4
|
+
#
|
|
5
|
+
# `start` runs in the foreground (there is no daemonize mode), which is what
|
|
6
|
+
# Type=simple wants. Keep it running after logout: sudo loginctl enable-linger $USER
|
|
7
|
+
[Unit]
|
|
8
|
+
Description=AIBroker hub
|
|
9
|
+
After=network-online.target
|
|
10
|
+
|
|
11
|
+
[Service]
|
|
12
|
+
Type=simple
|
|
13
|
+
ExecStart=@EXEC_START@
|
|
14
|
+
# Optional file: KEY=value lines, same file the daemon reads itself on macOS.
|
|
15
|
+
EnvironmentFile=-%h/.aibroker/env
|
|
16
|
+
@ENVIRONMENT@
|
|
17
|
+
Restart=on-failure
|
|
18
|
+
RestartSec=5
|
|
19
|
+
UMask=0077
|
|
20
|
+
|
|
21
|
+
[Install]
|
|
22
|
+
WantedBy=default.target
|