tmuxes 0.1.5 → 0.1.7
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 +13 -6
- package/dist/agentHooks.js +1 -1
- package/dist/agentHooks.js.map +1 -1
- package/dist/agentOutput.js +30 -0
- package/dist/agentOutput.js.map +1 -0
- package/dist/agentState.js +1 -1
- package/dist/agentState.js.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/files.js +7 -14
- package/dist/files.js.map +1 -1
- package/dist/foldersStore.js +16 -14
- package/dist/foldersStore.js.map +1 -1
- package/dist/targetCommand.js +41 -0
- package/dist/targetCommand.js.map +1 -0
- package/dist/tmux/builder.js +79 -34
- package/dist/tmux/builder.js.map +1 -1
- package/dist/tmux/sessions.js +29 -9
- package/dist/tmux/sessions.js.map +1 -1
- package/package.json +1 -1
- package/public/assets/index-BpVrfoZw.js +44 -0
- package/public/assets/{index-BorZEUXh.css → index-D_X5SnGx.css} +1 -1
- package/public/index.html +2 -2
- package/public/assets/index-20SlKNO6.js +0 -44
package/dist/tmux/sessions.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { runCommand } from '../exec.js';
|
|
2
1
|
import { managementArgv, newSessionArgv } from './builder.js';
|
|
3
|
-
import {
|
|
2
|
+
import { runTargetCommand } from '../targetCommand.js';
|
|
3
|
+
import { AGENT_OPTION, agentValue, agentInitialValue, parseAgentValue, } from '../agentState.js';
|
|
4
4
|
import { augmentAgentCommand } from '../agentHooks.js';
|
|
5
|
+
import { classifyAgentTerminalError } from '../agentOutput.js';
|
|
5
6
|
import { SESSION_FORMAT, WINDOW_FORMAT, parseSessions, parseWindows, isEmptySessionsError, } from './formats.js';
|
|
6
7
|
import { isValidSessionName } from '../validate.js';
|
|
7
8
|
/** A management error carrying the HTTP status the router should return. */
|
|
@@ -20,8 +21,9 @@ function timeoutFor(target) {
|
|
|
20
21
|
return target.kind === 'local' ? undefined : REMOTE_TIMEOUT_MS;
|
|
21
22
|
}
|
|
22
23
|
async function run(target, sub) {
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
return runTargetCommand(target, (opts) => managementArgv(target, sub, opts), {
|
|
25
|
+
timeoutMs: timeoutFor(target),
|
|
26
|
+
});
|
|
25
27
|
}
|
|
26
28
|
function firstStderrLine(stderr) {
|
|
27
29
|
return stderr.trim().split('\n')[0] || 'command failed';
|
|
@@ -29,20 +31,39 @@ function firstStderrLine(stderr) {
|
|
|
29
31
|
export async function listSessions(target) {
|
|
30
32
|
const r = await run(target, ['list-sessions', '-F', SESSION_FORMAT]);
|
|
31
33
|
if (r.code === 0)
|
|
32
|
-
return parseSessions(r.stdout);
|
|
34
|
+
return reconcileAgentTerminalErrors(target, parseSessions(r.stdout));
|
|
33
35
|
// "no server running" / "no sessions" is the normal empty case.
|
|
34
36
|
if (isEmptySessionsError(r.stderr))
|
|
35
37
|
return [];
|
|
36
38
|
throw new TmuxError(502, firstStderrLine(r.stderr));
|
|
37
39
|
}
|
|
40
|
+
async function reconcileAgentTerminalErrors(target, sessions) {
|
|
41
|
+
return Promise.all(sessions.map((session) => reconcileAgentTerminalError(target, session)));
|
|
42
|
+
}
|
|
43
|
+
async function reconcileAgentTerminalError(target, session) {
|
|
44
|
+
if (!session.agentKind || session.agentState !== 'running')
|
|
45
|
+
return session;
|
|
46
|
+
const pane = await run(target, ['capture-pane', '-t', session.name, '-p', '-S', '-20']);
|
|
47
|
+
if (pane.code !== 0)
|
|
48
|
+
return session;
|
|
49
|
+
const event = classifyAgentTerminalError(pane.stdout, session.agentKind);
|
|
50
|
+
if (!event)
|
|
51
|
+
return session;
|
|
52
|
+
const value = agentValue(session.agentKind, 'idle', 'error', event, String(Date.now()));
|
|
53
|
+
const set = await run(target, ['set-option', '-t', session.name, '-q', AGENT_OPTION, value]);
|
|
54
|
+
if (set.code !== 0)
|
|
55
|
+
return session;
|
|
56
|
+
const snapshot = parseAgentValue(value);
|
|
57
|
+
return snapshot ? { ...session, ...snapshot } : session;
|
|
58
|
+
}
|
|
38
59
|
export async function createSession(target, opts) {
|
|
39
60
|
let name = opts.name;
|
|
40
61
|
// New sessions always start in the user's home directory (newSessionArgv).
|
|
41
62
|
if (name) {
|
|
42
63
|
if (!isValidSessionName(name))
|
|
43
64
|
throw new TmuxError(400, 'invalid session name');
|
|
44
|
-
const
|
|
45
|
-
const r = await
|
|
65
|
+
const sessionName = name;
|
|
66
|
+
const r = await runTargetCommand(target, (opts) => newSessionArgv(target, ['new-session', '-d', '-s', sessionName], opts), { timeoutMs: timeoutFor(target) });
|
|
46
67
|
if (r.code !== 0) {
|
|
47
68
|
if (/duplicate session/i.test(r.stderr)) {
|
|
48
69
|
throw new TmuxError(409, `session "${name}" already exists`);
|
|
@@ -52,8 +73,7 @@ export async function createSession(target, opts) {
|
|
|
52
73
|
}
|
|
53
74
|
else {
|
|
54
75
|
// Let tmux assign a numeric name and report it back.
|
|
55
|
-
const
|
|
56
|
-
const r = await runCommand(file, args, { timeoutMs: timeoutFor(target) });
|
|
76
|
+
const r = await runTargetCommand(target, (opts) => newSessionArgv(target, ['new-session', '-d', '-P', '-F', '#{session_name}'], opts), { timeoutMs: timeoutFor(target) });
|
|
57
77
|
if (r.code !== 0)
|
|
58
78
|
throw new TmuxError(502, firstStderrLine(r.stderr));
|
|
59
79
|
name = r.stdout.trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tmux/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tmux/sessions.ts"],"names":[],"mappings":"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"}
|