botmux 2.53.0 → 2.55.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/adapters/backend/zellij-observe-backend.d.ts +15 -0
- package/dist/adapters/backend/zellij-observe-backend.d.ts.map +1 -1
- package/dist/adapters/backend/zellij-observe-backend.js +37 -0
- package/dist/adapters/backend/zellij-observe-backend.js.map +1 -1
- package/dist/adapters/cli/claude-code.d.ts +3 -3
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +44 -28
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/seed.d.ts +1 -1
- package/dist/adapters/cli/seed.js +2 -2
- package/dist/adapters/cli/seed.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +5 -1
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +8 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +31 -5
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +282 -113
- package/dist/cli.js.map +1 -1
- package/dist/core/dispatch.d.ts +23 -0
- package/dist/core/dispatch.d.ts.map +1 -1
- package/dist/core/dispatch.js +17 -0
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/pending-response.d.ts +25 -0
- package/dist/core/pending-response.d.ts.map +1 -0
- package/dist/core/pending-response.js +82 -0
- package/dist/core/pending-response.js.map +1 -0
- package/dist/core/session-discovery.d.ts.map +1 -1
- package/dist/core/session-discovery.js +5 -0
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +16 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts +27 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +134 -6
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/core/zellij-adopt-discovery.d.ts.map +1 -1
- package/dist/core/zellij-adopt-discovery.js +53 -32
- package/dist/core/zellij-adopt-discovery.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +63 -1
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +46 -3
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +86 -7
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/federated-group-core.js +8 -4
- package/dist/dashboard/federated-group-core.js.map +1 -1
- package/dist/dashboard/federation-api.d.ts.map +1 -1
- package/dist/dashboard/federation-api.js +22 -2
- package/dist/dashboard/federation-api.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +139 -20
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +36 -6
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard-web/app.js +171 -143
- package/dist/dashboard-web/style.css +58 -0
- package/dist/dashboard.js +37 -1
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +5 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +17 -0
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +8 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +8 -0
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +4 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +34 -1
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +72 -11
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +3 -1
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +7 -2
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +8 -1
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +36 -6
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/services/codex-paths.d.ts +7 -0
- package/dist/services/codex-paths.d.ts.map +1 -0
- package/dist/services/codex-paths.js +19 -0
- package/dist/services/codex-paths.js.map +1 -0
- package/dist/services/codex-transcript.d.ts.map +1 -1
- package/dist/services/codex-transcript.js +5 -4
- package/dist/services/codex-transcript.js.map +1 -1
- package/dist/services/pending-response-transaction-store.d.ts +12 -0
- package/dist/services/pending-response-transaction-store.d.ts.map +1 -0
- package/dist/services/pending-response-transaction-store.js +52 -0
- package/dist/services/pending-response-transaction-store.js.map +1 -0
- package/dist/services/session-store.d.ts.map +1 -1
- package/dist/services/session-store.js +15 -1
- package/dist/services/session-store.js.map +1 -1
- package/dist/services/voice/audio.d.ts +32 -0
- package/dist/services/voice/audio.d.ts.map +1 -0
- package/dist/services/voice/audio.js +114 -0
- package/dist/services/voice/audio.js.map +1 -0
- package/dist/services/voice/index.d.ts +32 -0
- package/dist/services/voice/index.d.ts.map +1 -0
- package/dist/services/voice/index.js +98 -0
- package/dist/services/voice/index.js.map +1 -0
- package/dist/services/voice/openai.d.ts +24 -0
- package/dist/services/voice/openai.d.ts.map +1 -0
- package/dist/services/voice/openai.js +47 -0
- package/dist/services/voice/openai.js.map +1 -0
- package/dist/services/voice/sami.d.ts +22 -0
- package/dist/services/voice/sami.d.ts.map +1 -0
- package/dist/services/voice/sami.js +128 -0
- package/dist/services/voice/sami.js.map +1 -0
- package/dist/services/voice/types.d.ts +32 -0
- package/dist/services/voice/types.d.ts.map +1 -0
- package/dist/services/voice/types.js +2 -0
- package/dist/services/voice/types.js.map +1 -0
- package/dist/setup/bot-config-editor.d.ts +9 -0
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +26 -0
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/verify-permissions.js +3 -3
- package/dist/setup/verify-permissions.js.map +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +0 -1
- package/dist/skills/definitions.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.js +147 -7
- package/dist/worker.js.map +1 -1
- package/dist/workflows/events/payloads.d.ts +20 -20
- package/dist/workflows/events/schema.d.ts +188 -188
- package/package.json +1 -1
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.js
CHANGED
|
@@ -36,8 +36,9 @@ import { claudeJsonlPathForSession, resolveJsonlFromPid, findOpenClaudeSessionId
|
|
|
36
36
|
import { mtrSessionIdForBotmuxSession } from './adapters/cli/mtr.js';
|
|
37
37
|
import { TmuxBackend } from './adapters/backend/tmux-backend.js';
|
|
38
38
|
import { TmuxPipeBackend } from './adapters/backend/tmux-pipe-backend.js';
|
|
39
|
-
import { ZellijBackend } from './adapters/backend/zellij-backend.js';
|
|
39
|
+
import { ZellijBackend, ZELLIJ_CONFIG_KDL } from './adapters/backend/zellij-backend.js';
|
|
40
40
|
import { ZellijObserveBackend } from './adapters/backend/zellij-observe-backend.js';
|
|
41
|
+
import { zellijEnv } from './setup/ensure-zellij.js';
|
|
41
42
|
import { isObserveBackend } from './adapters/backend/types.js';
|
|
42
43
|
import { selectSessionBackend } from './adapters/backend/session-backend-selector.js';
|
|
43
44
|
import { tmuxEnv } from './setup/ensure-tmux.js';
|
|
@@ -71,9 +72,24 @@ let httpServer = null;
|
|
|
71
72
|
let wss = null;
|
|
72
73
|
const wsClients = new Set();
|
|
73
74
|
const authedClients = new WeakSet();
|
|
74
|
-
/** Per-WS-client tmux attach PTYs
|
|
75
|
+
/** Per-WS-client tmux/zellij attach PTYs. */
|
|
75
76
|
const clientPtys = new Map();
|
|
76
77
|
const writeToken = randomBytes(16).toString('hex');
|
|
78
|
+
/** Lazily-written locked-mode zellij config for per-WS web-terminal attach
|
|
79
|
+
* clients: cleared keybinds + locked mode so every keystroke passes straight
|
|
80
|
+
* to the focused (codex) pane, never intercepted as a zellij shortcut. */
|
|
81
|
+
let zellijAttachCfgPath = null;
|
|
82
|
+
function ensureZellijAttachConfig() {
|
|
83
|
+
if (zellijAttachCfgPath)
|
|
84
|
+
return zellijAttachCfgPath;
|
|
85
|
+
const p = join(process.env.SESSION_DATA_DIR ?? '/tmp', '.zellij-web-attach.kdl');
|
|
86
|
+
try {
|
|
87
|
+
writeFileSync(p, ZELLIJ_CONFIG_KDL);
|
|
88
|
+
}
|
|
89
|
+
catch { /* best effort */ }
|
|
90
|
+
zellijAttachCfgPath = p;
|
|
91
|
+
return p;
|
|
92
|
+
}
|
|
77
93
|
let sessionId = '';
|
|
78
94
|
let lastInitConfig = null;
|
|
79
95
|
const CLI_DISPLAY_NAMES = { 'claude-code': 'Claude', seed: 'Seed', aiden: 'Aiden', coco: 'CoCo', codex: 'Codex', 'codex-app': 'Codex App', cursor: 'Cursor', gemini: 'Gemini', opencode: 'OpenCode', antigravity: 'Antigravity', mtr: 'MTR', hermes: 'Hermes', mira: 'Mira' };
|
|
@@ -2501,7 +2517,19 @@ function scheduleSubmitFailureNotify(msg, recheck, transcriptLabel, bridgeTurnId
|
|
|
2501
2517
|
setTimeout(async () => {
|
|
2502
2518
|
if (recheck) {
|
|
2503
2519
|
try {
|
|
2504
|
-
|
|
2520
|
+
const recheckResult = await recheck();
|
|
2521
|
+
const recheckSubmitted = typeof recheckResult === 'boolean'
|
|
2522
|
+
? recheckResult
|
|
2523
|
+
: recheckResult.submitted === true;
|
|
2524
|
+
if (recheckSubmitted) {
|
|
2525
|
+
const cliSessionId = typeof recheckResult === 'object' && recheckResult && typeof recheckResult.cliSessionId === 'string'
|
|
2526
|
+
? recheckResult.cliSessionId
|
|
2527
|
+
: undefined;
|
|
2528
|
+
if (cliSessionId) {
|
|
2529
|
+
persistCliSessionId(cliSessionId);
|
|
2530
|
+
if (codexBridgeFallbackActive())
|
|
2531
|
+
codexBridgeNotifyCliSessionId(cliSessionId);
|
|
2532
|
+
}
|
|
2505
2533
|
log(`Deferred recheck found submit in ${transcriptLabel} — suppressing warning. preview="${preview}"`);
|
|
2506
2534
|
return;
|
|
2507
2535
|
}
|
|
@@ -3378,6 +3406,96 @@ function startWebServer(host, preferredPort) {
|
|
|
3378
3406
|
}
|
|
3379
3407
|
});
|
|
3380
3408
|
}
|
|
3409
|
+
else if (lastInitConfig?.adoptMode && lastInitConfig?.adoptZellijPaneId) {
|
|
3410
|
+
// ── Zellij-adopt per-WS attach ──
|
|
3411
|
+
// Each WS client gets its own `zellij attach` PTY sized to the browser.
|
|
3412
|
+
// zellij sizes the (shared) pane to the SMALLEST attached client, so
|
|
3413
|
+
// when the user's terminal is detached the web client governs the size
|
|
3414
|
+
// → fully browser-responsive (申晗's insight, verified), never resizing
|
|
3415
|
+
// the user's terminal beyond min(theirs, browser). Locked-mode config
|
|
3416
|
+
// (cleared keybinds) makes every keystroke reach the codex pane instead
|
|
3417
|
+
// of being swallowed as a zellij shortcut. Bonus: raw byte stream — none
|
|
3418
|
+
// of the dump-screen snapshot / \r\n / fixed-width machinery the relay
|
|
3419
|
+
// needs. (The Lark screenshot card still uses the dump-screen
|
|
3420
|
+
// ObserveBackend; unaffected.) Deferred until first resize, same as tmux.
|
|
3421
|
+
const zSession = lastInitConfig.adoptZellijSession ?? '';
|
|
3422
|
+
const cfgPath = ensureZellijAttachConfig();
|
|
3423
|
+
let cp = null;
|
|
3424
|
+
const pendingInput = [];
|
|
3425
|
+
// While this attach client is live, silence the ObserveBackend's
|
|
3426
|
+
// dump-screen/list-panes pollers: each `zellij action` they run makes the
|
|
3427
|
+
// server repaint every attached client, which flickers this client's
|
|
3428
|
+
// chrome ~2×/s. Reference-counted across browser tabs by the backend.
|
|
3429
|
+
const observeBe = backend instanceof ZellijObserveBackend ? backend : null;
|
|
3430
|
+
let attachStarted = false;
|
|
3431
|
+
const startAttach = (cols, rows) => {
|
|
3432
|
+
if (cp)
|
|
3433
|
+
return;
|
|
3434
|
+
cp = pty.spawn('zellij', ['--config', cfgPath, 'attach', zSession], {
|
|
3435
|
+
name: 'xterm-256color',
|
|
3436
|
+
cols,
|
|
3437
|
+
rows,
|
|
3438
|
+
env: zellijEnv(),
|
|
3439
|
+
});
|
|
3440
|
+
attachStarted = true;
|
|
3441
|
+
observeBe?.setLiveAttach(true);
|
|
3442
|
+
clientPtys.set(ws, cp);
|
|
3443
|
+
cp.onData((d) => {
|
|
3444
|
+
if (ws.readyState === WebSocket.OPEN)
|
|
3445
|
+
ws.send(d);
|
|
3446
|
+
});
|
|
3447
|
+
cp.onExit(() => {
|
|
3448
|
+
clientPtys.delete(ws);
|
|
3449
|
+
if (ws.readyState === WebSocket.OPEN)
|
|
3450
|
+
ws.close();
|
|
3451
|
+
});
|
|
3452
|
+
for (const data of pendingInput)
|
|
3453
|
+
cp.write(data);
|
|
3454
|
+
pendingInput.length = 0;
|
|
3455
|
+
};
|
|
3456
|
+
const spawnTimer = setTimeout(() => startAttach(150, 40), 500);
|
|
3457
|
+
ws.on('message', (raw) => {
|
|
3458
|
+
try {
|
|
3459
|
+
const msg = JSON.parse(String(raw));
|
|
3460
|
+
if (msg.type === 'resize' && msg.cols > 0 && msg.rows > 0) {
|
|
3461
|
+
if (!cp) {
|
|
3462
|
+
clearTimeout(spawnTimer);
|
|
3463
|
+
startAttach(msg.cols, msg.rows);
|
|
3464
|
+
}
|
|
3465
|
+
else
|
|
3466
|
+
cp.resize(msg.cols, msg.rows);
|
|
3467
|
+
}
|
|
3468
|
+
else if (msg.type === 'input' && typeof msg.data === 'string') {
|
|
3469
|
+
if (!authedClients.has(ws)) {
|
|
3470
|
+
// Read-only: only let mouse events (scroll/select) through.
|
|
3471
|
+
if (!/^\x1b\[([<M])/.test(msg.data))
|
|
3472
|
+
return;
|
|
3473
|
+
}
|
|
3474
|
+
if (cp)
|
|
3475
|
+
cp.write(msg.data);
|
|
3476
|
+
else
|
|
3477
|
+
pendingInput.push(msg.data);
|
|
3478
|
+
}
|
|
3479
|
+
}
|
|
3480
|
+
catch { /* ignore non-JSON or bad messages */ }
|
|
3481
|
+
});
|
|
3482
|
+
ws.on('close', () => {
|
|
3483
|
+
clearTimeout(spawnTimer);
|
|
3484
|
+
wsClients.delete(ws);
|
|
3485
|
+
if (attachStarted) {
|
|
3486
|
+
observeBe?.setLiveAttach(false);
|
|
3487
|
+
attachStarted = false;
|
|
3488
|
+
}
|
|
3489
|
+
const existing = clientPtys.get(ws);
|
|
3490
|
+
if (existing) {
|
|
3491
|
+
try {
|
|
3492
|
+
existing.kill();
|
|
3493
|
+
}
|
|
3494
|
+
catch { /* already dead */ }
|
|
3495
|
+
clientPtys.delete(ws);
|
|
3496
|
+
}
|
|
3497
|
+
});
|
|
3498
|
+
}
|
|
3381
3499
|
else {
|
|
3382
3500
|
// ── Shared relay (PtyBackend OR tmux pipe mode) ──
|
|
3383
3501
|
// History seed: prefer tmux's authoritative capture-pane in pipe mode
|
|
@@ -3591,9 +3709,24 @@ term.onData(function(d){
|
|
|
3591
3709
|
}
|
|
3592
3710
|
if(ws_&&ws_.readyState===1)ws_.send(JSON.stringify({type:'input',data:d}));
|
|
3593
3711
|
});
|
|
3594
|
-
var fixedSize=false;
|
|
3595
|
-
function sendResize(){
|
|
3596
|
-
|
|
3712
|
+
var fixedSize=false,_lastC=0,_lastR=0,_rzT=0;
|
|
3713
|
+
function sendResize(){
|
|
3714
|
+
if(!ws_||ws_.readyState!==1)return;
|
|
3715
|
+
// Dedup: a fit that lands on the same grid must NOT re-emit a resize — for a
|
|
3716
|
+
// zellij/tmux attach client that would reflow the shared pane for nothing.
|
|
3717
|
+
if(term.cols===_lastC&&term.rows===_lastR)return;
|
|
3718
|
+
_lastC=term.cols;_lastR=term.rows;
|
|
3719
|
+
ws_.send(JSON.stringify({type:'resize',cols:term.cols,rows:term.rows}));
|
|
3720
|
+
}
|
|
3721
|
+
// Debounce viewport resize: mobile fires a burst of window.resize as the address
|
|
3722
|
+
// bar / on-screen keyboard show & hide, and an un-debounced fit→resize on each
|
|
3723
|
+
// reflows the (shared) zellij pane every frame — the status bar toggles and the
|
|
3724
|
+
// text re-wraps, i.e. the flicker 申晗 saw. Coalesce to the settled size.
|
|
3725
|
+
function onViewportResize(){
|
|
3726
|
+
clearTimeout(_rzT);
|
|
3727
|
+
_rzT=setTimeout(function(){if(!fixedSize){try{fit.fit()}catch(e){}}sendResize()},250);
|
|
3728
|
+
}
|
|
3729
|
+
window.addEventListener('resize',onViewportResize);
|
|
3597
3730
|
(function connect(){
|
|
3598
3731
|
var t=new URLSearchParams(location.search).get('token')||'';
|
|
3599
3732
|
// Derive base from the current path so the WS connects to the same prefix the
|
|
@@ -3603,7 +3736,14 @@ window.addEventListener('resize',function(){if(!fixedSize){fit.fit()}sendResize(
|
|
|
3603
3736
|
var proto=location.protocol==='https:'?'wss':'ws';
|
|
3604
3737
|
var ws=new WebSocket(proto+'://'+location.host+base+'/?token='+t);
|
|
3605
3738
|
ws_=ws;ws.binaryType='arraybuffer';
|
|
3606
|
-
|
|
3739
|
+
// Force a resize on every (re)connect: clear the dedup memory first. On
|
|
3740
|
+
// reconnect the browser grid is usually unchanged, so without this the
|
|
3741
|
+
// dedup in sendResize() would suppress the resize — but a reconnect often
|
|
3742
|
+
// means the server respawned the CLI PTY at the default 160x50 (daemon
|
|
3743
|
+
// restart). If we never re-send our real grid, the PTY stays 160 while this
|
|
3744
|
+
// xterm renders narrower, and Claude's height-relative redraws drift a row
|
|
3745
|
+
// (status-line update bleeds into the line below). Always re-assert size.
|
|
3746
|
+
ws.onopen=function(){el.textContent='connected';el.className='ok';_lastC=_lastR=0;sendResize()};
|
|
3607
3747
|
ws.onmessage=function(e){
|
|
3608
3748
|
var data=typeof e.data==='string'?e.data:new TextDecoder().decode(e.data);
|
|
3609
3749
|
// botmux OSC 1989: pin the xterm to the adopted pane's fixed size (the pane
|