@indianic/dialout 1.12.1 → 1.13.1
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 +4 -3
- package/dist/agent-restart.d.ts +46 -0
- package/dist/agent-restart.d.ts.map +1 -0
- package/dist/agent-restart.js +254 -0
- package/dist/agent-restart.js.map +1 -0
- package/dist/checklist.js +1 -1
- package/dist/checklist.js.map +1 -1
- package/dist/cli-client.d.ts +8 -0
- package/dist/cli-client.d.ts.map +1 -1
- package/dist/cli-client.js +33 -0
- package/dist/cli-client.js.map +1 -1
- package/dist/cli.js +106 -82
- package/dist/cli.js.map +1 -1
- package/dist/cowork.js +1 -1
- package/dist/has-command.d.ts +13 -0
- package/dist/has-command.d.ts.map +1 -1
- package/dist/has-command.js +92 -0
- package/dist/has-command.js.map +1 -1
- package/dist/ssh-local-network.js +1 -1
- package/dist/tmux-manager.d.ts +9 -0
- package/dist/tmux-manager.d.ts.map +1 -1
- package/dist/tmux-manager.js +31 -2
- package/dist/tmux-manager.js.map +1 -1
- package/dist/update-check.d.ts +9 -1
- package/dist/update-check.d.ts.map +1 -1
- package/dist/update-check.js +46 -14
- package/dist/update-check.js.map +1 -1
- package/dist/websocket.d.ts.map +1 -1
- package/dist/websocket.js +10 -1
- package/dist/websocket.js.map +1 -1
- package/node_modules/@indianic/dialout-shared/dist/index.d.ts +2 -0
- package/node_modules/@indianic/dialout-shared/dist/index.d.ts.map +1 -1
- package/node_modules/@indianic/dialout-shared/dist/index.js +20 -2
- package/node_modules/@indianic/dialout-shared/dist/notify-template.d.ts +129 -0
- package/node_modules/@indianic/dialout-shared/dist/notify-template.d.ts.map +1 -0
- package/node_modules/@indianic/dialout-shared/dist/notify-template.js +302 -0
- package/node_modules/@indianic/dialout-shared/dist/notify-template.test.d.ts +2 -0
- package/node_modules/@indianic/dialout-shared/dist/notify-template.test.d.ts.map +1 -0
- package/node_modules/@indianic/dialout-shared/dist/notify-template.test.js +285 -0
- package/node_modules/@indianic/dialout-shared/src/index.ts +29 -0
- package/node_modules/@indianic/dialout-shared/src/notify-template.test.ts +352 -0
- package/node_modules/@indianic/dialout-shared/src/notify-template.ts +319 -0
- package/node_modules/@indianic/dialout-shared/src/session-announce.test.ts +48 -0
- package/node_modules/@indianic/dialout-shared/src/session-announce.ts +40 -0
- package/package.json +2 -2
- package/scripts/postinstall.js +8 -9
package/README.md
CHANGED
|
@@ -246,12 +246,13 @@ Repeat steps 3 to 6 for every other machine you want in the room.
|
|
|
246
246
|
| `dialout uninstall-service` | Remove the OS service, either mode |
|
|
247
247
|
| `dialout setup-cron` | Install a cron watchdog that restarts the agent if it dies |
|
|
248
248
|
| `dialout remove-cron` | Remove the cron watchdog |
|
|
249
|
-
| `dialout
|
|
249
|
+
| `dialout remote-control` / `rc` / `--rc` | Choose which terminal apps auto-wrap into tmux for remote access (`setup-cowork` still works) |
|
|
250
250
|
| `dialout repair` | Diagnose and fix a stale or competing supervisor |
|
|
251
251
|
| `dialout profiles` / `dialout use <profile>` | Switch between saved server configurations |
|
|
252
|
-
| `dialout update` | Update to the latest published version |
|
|
252
|
+
| `dialout update` / `upgrade` | Update to the latest published version, then restart the running agent (`-y` skips the confirm) |
|
|
253
253
|
| `dialout config show` \| `path` \| `set <key> <value>` \| `reset` | Inspect and edit configuration |
|
|
254
|
-
| `dialout
|
|
254
|
+
| `dialout -v` / `-V` / `--version` | Print the installed version |
|
|
255
|
+
| `dialout help` / `-h` / `--help` | Top-level help |
|
|
255
256
|
| `dialout login` | Sign in with email, PIN, and a TOTP code. Stores `~/.dialout/cli-session.json` |
|
|
256
257
|
| `dialout logout` | Delete the stored CLI session |
|
|
257
258
|
| `dialout machines` | List machines and whether each is online |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ServiceStatus, RestartServiceResult } from './service-installer';
|
|
2
|
+
export interface RestartAgentOpts {
|
|
3
|
+
sudoPassword?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface RestartAgentResult {
|
|
6
|
+
ok: boolean;
|
|
7
|
+
kind: 'service' | 'daemon' | 'none';
|
|
8
|
+
message: string;
|
|
9
|
+
reason?: 'restarted' | 'not-installed' | 'not-running' | 'timeout' | 'need-password' | 'failed' | 'none';
|
|
10
|
+
}
|
|
11
|
+
export interface RestartAgentDeps {
|
|
12
|
+
getServiceStatus?: () => ServiceStatus;
|
|
13
|
+
restartService?: () => RestartServiceResult;
|
|
14
|
+
existsSync?: (p: string) => boolean;
|
|
15
|
+
readFileSync?: (p: string, enc: BufferEncoding) => string;
|
|
16
|
+
writeFileSync?: (p: string, data: string) => void;
|
|
17
|
+
unlinkSync?: (p: string) => void;
|
|
18
|
+
kill?: (pid: number, signal?: NodeJS.Signals | number) => void;
|
|
19
|
+
fork?: (modulePath: string, args: string[], opts: object) => {
|
|
20
|
+
pid?: number;
|
|
21
|
+
unref: () => void;
|
|
22
|
+
};
|
|
23
|
+
getPidFile?: () => string;
|
|
24
|
+
runSudo?: (cmd: string, password?: string) => {
|
|
25
|
+
ok: boolean;
|
|
26
|
+
reason?: 'need-password' | 'failed';
|
|
27
|
+
};
|
|
28
|
+
isRoot?: () => boolean;
|
|
29
|
+
isTty?: () => boolean;
|
|
30
|
+
uid?: () => number;
|
|
31
|
+
}
|
|
32
|
+
export declare function resolveSudoPassword(cliPassword?: string, env?: NodeJS.ProcessEnv): string | undefined;
|
|
33
|
+
export declare function agentIsSupervised(deps?: RestartAgentDeps): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Run `cmd` as root. Password is written to sudo's stdin (`-S`) and is never
|
|
36
|
+
* placed on argv. A missing password on a non-TTY is `need-password`, not a
|
|
37
|
+
* hang.
|
|
38
|
+
*/
|
|
39
|
+
export declare function runSudoCommand(cmd: string, password: string | undefined, deps?: Pick<RestartAgentDeps, 'isRoot' | 'isTty'> & {
|
|
40
|
+
exec?: (command: string, opts?: object) => void;
|
|
41
|
+
}): {
|
|
42
|
+
ok: boolean;
|
|
43
|
+
reason?: 'need-password' | 'failed';
|
|
44
|
+
};
|
|
45
|
+
export declare function restartRunningAgent(opts?: RestartAgentOpts, deps?: RestartAgentDeps): Promise<RestartAgentResult>;
|
|
46
|
+
//# sourceMappingURL=agent-restart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-restart.d.ts","sourceRoot":"","sources":["../src/agent-restart.ts"],"names":[],"mappings":"AAYA,OAAO,EAAiD,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEzH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC1G;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,MAAM,aAAa,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,oBAAoB,CAAC;IAC5C,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IACjG,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAA;KAAE,CAAC;IACnG,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAKlH;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAMtE;AAcD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,GAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG;IACjD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,GACL;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAA;CAAE,CAgCtD;AAqGD,wBAAsB,mBAAmB,CACvC,IAAI,GAAE,gBAAqB,EAC3B,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAwC7B"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Restart whichever supervisor is actually running the agent.
|
|
3
|
+
//
|
|
4
|
+
// `dialout update` used to print "uninstall-service then install-service".
|
|
5
|
+
// That reinstalls the unit file; it does not pick up a new binary. The
|
|
6
|
+
// service-managed path signals the process and lets launchd/systemd respawn
|
|
7
|
+
// it (restartService). The pidfile-daemon path is stop + fork. Boot units
|
|
8
|
+
// that fail that SIGTERM path can be kicked with sudo.
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.resolveSudoPassword = resolveSudoPassword;
|
|
44
|
+
exports.agentIsSupervised = agentIsSupervised;
|
|
45
|
+
exports.runSudoCommand = runSudoCommand;
|
|
46
|
+
exports.restartRunningAgent = restartRunningAgent;
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const child_process_1 = require("child_process");
|
|
50
|
+
const config_1 = require("./config");
|
|
51
|
+
const service_installer_1 = require("./service-installer");
|
|
52
|
+
function resolveSudoPassword(cliPassword, env = process.env) {
|
|
53
|
+
if (cliPassword && cliPassword.length > 0)
|
|
54
|
+
return cliPassword;
|
|
55
|
+
const fromEnv = env.DIALOUT_SUDO_PASSWORD;
|
|
56
|
+
if (fromEnv && fromEnv.length > 0)
|
|
57
|
+
return fromEnv;
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
function agentIsSupervised(deps = {}) {
|
|
61
|
+
const status = (deps.getServiceStatus ?? service_installer_1.getServiceStatus)();
|
|
62
|
+
if (status.installed)
|
|
63
|
+
return true;
|
|
64
|
+
const pidFile = (deps.getPidFile ?? config_1.getPidFile)();
|
|
65
|
+
const exists = deps.existsSync ?? ((p) => fs.existsSync(p));
|
|
66
|
+
return exists(pidFile);
|
|
67
|
+
}
|
|
68
|
+
function defaultIsRoot() {
|
|
69
|
+
return typeof process.getuid === 'function' && process.getuid() === 0;
|
|
70
|
+
}
|
|
71
|
+
function defaultIsTty() {
|
|
72
|
+
return Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
73
|
+
}
|
|
74
|
+
function defaultUid() {
|
|
75
|
+
return typeof process.getuid === 'function' ? process.getuid() : 0;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Run `cmd` as root. Password is written to sudo's stdin (`-S`) and is never
|
|
79
|
+
* placed on argv. A missing password on a non-TTY is `need-password`, not a
|
|
80
|
+
* hang.
|
|
81
|
+
*/
|
|
82
|
+
function runSudoCommand(cmd, password, deps = {}) {
|
|
83
|
+
const isRoot = deps.isRoot ?? defaultIsRoot;
|
|
84
|
+
const isTty = deps.isTty ?? defaultIsTty;
|
|
85
|
+
const exec = deps.exec ?? ((c, o) => { (0, child_process_1.execSync)(c, o); });
|
|
86
|
+
if (isRoot()) {
|
|
87
|
+
try {
|
|
88
|
+
exec(cmd, { stdio: 'inherit' });
|
|
89
|
+
return { ok: true };
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return { ok: false, reason: 'failed' };
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const wrapped = `sudo -S -p '' bash -c ${JSON.stringify(cmd)}`;
|
|
96
|
+
if (password) {
|
|
97
|
+
try {
|
|
98
|
+
exec(wrapped, {
|
|
99
|
+
input: password.endsWith('\n') ? password : `${password}\n`,
|
|
100
|
+
stdio: ['pipe', 'inherit', 'inherit'],
|
|
101
|
+
});
|
|
102
|
+
return { ok: true };
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return { ok: false, reason: 'failed' };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (isTty()) {
|
|
109
|
+
try {
|
|
110
|
+
exec(`sudo bash -c ${JSON.stringify(cmd)}`, { stdio: 'inherit' });
|
|
111
|
+
return { ok: true };
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return { ok: false, reason: 'failed' };
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return { ok: false, reason: 'need-password' };
|
|
118
|
+
}
|
|
119
|
+
function privilegedCmd(kind, uid, mode) {
|
|
120
|
+
switch (kind) {
|
|
121
|
+
case 'launchd-daemon':
|
|
122
|
+
return mode === 'restart'
|
|
123
|
+
? 'launchctl kickstart -k system/com.dialout.agent'
|
|
124
|
+
: 'launchctl kickstart system/com.dialout.agent';
|
|
125
|
+
case 'launchd-agent':
|
|
126
|
+
return mode === 'restart'
|
|
127
|
+
? `launchctl kickstart -k gui/${uid}/com.dialout.agent`
|
|
128
|
+
: `launchctl kickstart gui/${uid}/com.dialout.agent`;
|
|
129
|
+
case 'systemd-system':
|
|
130
|
+
return mode === 'restart' ? 'systemctl restart dialout' : 'systemctl start dialout';
|
|
131
|
+
case 'systemd-user':
|
|
132
|
+
return mode === 'restart' ? 'systemctl --user restart dialout' : 'systemctl --user start dialout';
|
|
133
|
+
default:
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function needsSudo(kind) {
|
|
138
|
+
return kind === 'launchd-daemon' || kind === 'systemd-system';
|
|
139
|
+
}
|
|
140
|
+
const NEED_PASSWORD_MSG = 'Boot service restart needs admin rights. Re-run with DIALOUT_SUDO_PASSWORD set, or pass --sudo-password, or run: dialout restart';
|
|
141
|
+
function kickSupervisor(svc, mode, opts, deps) {
|
|
142
|
+
const cmd = privilegedCmd(svc.kind, (deps.uid ?? defaultUid)(), mode);
|
|
143
|
+
if (!cmd) {
|
|
144
|
+
return { ok: false, kind: 'service', reason: 'failed', message: 'No supervisor restart command for this service kind.' };
|
|
145
|
+
}
|
|
146
|
+
const run = deps.runSudo ?? ((c, p) => {
|
|
147
|
+
if (needsSudo(svc.kind))
|
|
148
|
+
return runSudoCommand(c, p, { isRoot: deps.isRoot, isTty: deps.isTty });
|
|
149
|
+
try {
|
|
150
|
+
(0, child_process_1.execSync)(c, { stdio: 'inherit' });
|
|
151
|
+
return { ok: true };
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return { ok: false, reason: 'failed' };
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
const ran = run(cmd, opts.sudoPassword);
|
|
158
|
+
if (ran.ok) {
|
|
159
|
+
return {
|
|
160
|
+
ok: true,
|
|
161
|
+
kind: 'service',
|
|
162
|
+
reason: 'restarted',
|
|
163
|
+
message: `Agent ${mode === 'start' ? 'started' : 'restarted'} by ${svc.kind}`,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
if (ran.reason === 'need-password') {
|
|
167
|
+
return { ok: false, kind: 'service', reason: 'need-password', message: NEED_PASSWORD_MSG };
|
|
168
|
+
}
|
|
169
|
+
return { ok: false, kind: 'service', reason: 'failed', message: `Could not ${mode} the ${svc.kind} service.` };
|
|
170
|
+
}
|
|
171
|
+
function restartPidfileDaemon(deps) {
|
|
172
|
+
const pidFile = (deps.getPidFile ?? config_1.getPidFile)();
|
|
173
|
+
const exists = deps.existsSync ?? ((p) => fs.existsSync(p));
|
|
174
|
+
const read = deps.readFileSync ?? ((p, enc) => fs.readFileSync(p, enc));
|
|
175
|
+
const write = deps.writeFileSync ?? ((p, data) => fs.writeFileSync(p, data));
|
|
176
|
+
const unlink = deps.unlinkSync ?? ((p) => fs.unlinkSync(p));
|
|
177
|
+
const kill = deps.kill ?? ((pid, signal) => process.kill(pid, signal));
|
|
178
|
+
if (exists(pidFile)) {
|
|
179
|
+
const pid = parseInt(read(pidFile, 'utf-8').trim(), 10);
|
|
180
|
+
if (Number.isFinite(pid)) {
|
|
181
|
+
try {
|
|
182
|
+
kill(pid, 'SIGTERM');
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
const code = err.code;
|
|
186
|
+
if (code !== 'ESRCH') {
|
|
187
|
+
return { ok: false, kind: 'daemon', reason: 'failed', message: `Failed to stop agent: ${err.message}` };
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
try {
|
|
192
|
+
unlink(pidFile);
|
|
193
|
+
}
|
|
194
|
+
catch { /* stale file is fine */ }
|
|
195
|
+
}
|
|
196
|
+
const fork = deps.fork ?? ((modulePath, args, opts) => {
|
|
197
|
+
const { fork: nodeFork } = require('child_process');
|
|
198
|
+
return nodeFork(modulePath, args, opts);
|
|
199
|
+
});
|
|
200
|
+
const child = fork(path.resolve(__dirname, 'index.js'), [], {
|
|
201
|
+
detached: true,
|
|
202
|
+
stdio: 'ignore',
|
|
203
|
+
});
|
|
204
|
+
child.unref();
|
|
205
|
+
write(pidFile, String(child.pid));
|
|
206
|
+
return {
|
|
207
|
+
ok: true,
|
|
208
|
+
kind: 'daemon',
|
|
209
|
+
reason: 'restarted',
|
|
210
|
+
message: `Agent restarted in background (PID: ${child.pid})`,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
async function restartRunningAgent(opts = {}, deps = {}) {
|
|
214
|
+
const status = (deps.getServiceStatus ?? service_installer_1.getServiceStatus)();
|
|
215
|
+
if (status.installed) {
|
|
216
|
+
const result = (deps.restartService ?? service_installer_1.restartService)();
|
|
217
|
+
if (result.ok) {
|
|
218
|
+
return {
|
|
219
|
+
ok: true,
|
|
220
|
+
kind: 'service',
|
|
221
|
+
reason: 'restarted',
|
|
222
|
+
message: `Agent restarted by ${status.kind} (PID: ${result.oldPid} -> ${result.newPid})`,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
if (result.reason === 'not-running') {
|
|
226
|
+
return kickSupervisor(status, 'start', opts, deps);
|
|
227
|
+
}
|
|
228
|
+
if (result.reason === 'timeout') {
|
|
229
|
+
const kicked = kickSupervisor(status, 'restart', opts, deps);
|
|
230
|
+
if (kicked.ok)
|
|
231
|
+
return kicked;
|
|
232
|
+
if (kicked.reason === 'need-password')
|
|
233
|
+
return kicked;
|
|
234
|
+
return {
|
|
235
|
+
ok: false,
|
|
236
|
+
kind: 'service',
|
|
237
|
+
reason: 'timeout',
|
|
238
|
+
message: `Signalled PID ${result.oldPid} but the supervisor did not bring a new one up. Check: dialout status`,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
const pidFile = (deps.getPidFile ?? config_1.getPidFile)();
|
|
243
|
+
const exists = deps.existsSync ?? ((p) => fs.existsSync(p));
|
|
244
|
+
if (exists(pidFile)) {
|
|
245
|
+
return restartPidfileDaemon(deps);
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
ok: true,
|
|
249
|
+
kind: 'none',
|
|
250
|
+
reason: 'none',
|
|
251
|
+
message: 'No agent is running. Start one with: dialout start --daemon or dialout install-service',
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=agent-restart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-restart.js","sourceRoot":"","sources":["../src/agent-restart.ts"],"names":[],"mappings":"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"}
|
package/dist/checklist.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Pure state + rendering for the interactive terminal-app multi-select used by
|
|
3
|
-
// `
|
|
3
|
+
// `dialout remote-control`. All functions are immutable (return new state) so the
|
|
4
4
|
// raw-mode driver in cli.ts stays a thin keypress→state→redraw loop.
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.clampCursor = clampCursor;
|
package/dist/checklist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checklist.js","sourceRoot":"","sources":["../src/checklist.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"checklist.js","sourceRoot":"","sources":["../src/checklist.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-client.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export declare const RESERVED_COMMANDS: ReadonlySet<string>;
|
|
2
|
+
/**
|
|
3
|
+
* `dialout --rc` is the same command as `dialout remote-control`.
|
|
4
|
+
* A leading `--rc` (or `--rc` among flags before any other subcommand) is
|
|
5
|
+
* rewritten so Commander sees a real command, not an unknown root option.
|
|
6
|
+
*/
|
|
7
|
+
export declare function rewriteRemoteControlArgv(argv: string[]): string[];
|
|
8
|
+
/** Bare `-v` / `-V` / `--version` with no other args. */
|
|
9
|
+
export declare function isVersionArgv(argv: string[]): boolean;
|
|
2
10
|
export declare function rewriteConnectArgv(argv: string[], reserved: ReadonlySet<string>): string[];
|
|
3
11
|
export declare function apiOriginFromServerUrl(serverUrl: string): string | null;
|
|
4
12
|
export declare function terminalSocketUrl(serverUrl: string, machineId: number, token: string): string | null;
|
package/dist/cli-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-client.d.ts","sourceRoot":"","sources":["../src/cli-client.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"cli-client.d.ts","sourceRoot":"","sources":["../src/cli-client.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-client.js
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
// the user JWT only.
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.MAX_COPY_BYTES = exports.RESERVED_COMMANDS = void 0;
|
|
8
|
+
exports.rewriteRemoteControlArgv = rewriteRemoteControlArgv;
|
|
9
|
+
exports.isVersionArgv = isVersionArgv;
|
|
8
10
|
exports.rewriteConnectArgv = rewriteConnectArgv;
|
|
9
11
|
exports.apiOriginFromServerUrl = apiOriginFromServerUrl;
|
|
10
12
|
exports.terminalSocketUrl = terminalSocketUrl;
|
|
@@ -32,7 +34,11 @@ exports.RESERVED_COMMANDS = new Set([
|
|
|
32
34
|
'remove-cron',
|
|
33
35
|
'repair',
|
|
34
36
|
'setup-cowork',
|
|
37
|
+
'remote-control',
|
|
38
|
+
'rc',
|
|
35
39
|
'update',
|
|
40
|
+
'upgrade',
|
|
41
|
+
'help',
|
|
36
42
|
'config',
|
|
37
43
|
'tmux',
|
|
38
44
|
'ai-doctor',
|
|
@@ -43,6 +49,33 @@ exports.RESERVED_COMMANDS = new Set([
|
|
|
43
49
|
'cp',
|
|
44
50
|
'mcp',
|
|
45
51
|
]);
|
|
52
|
+
const REMOTE_CONTROL_NAMES = new Set(['remote-control', 'rc', 'setup-cowork']);
|
|
53
|
+
/**
|
|
54
|
+
* `dialout --rc` is the same command as `dialout remote-control`.
|
|
55
|
+
* A leading `--rc` (or `--rc` among flags before any other subcommand) is
|
|
56
|
+
* rewritten so Commander sees a real command, not an unknown root option.
|
|
57
|
+
*/
|
|
58
|
+
function rewriteRemoteControlArgv(argv) {
|
|
59
|
+
const rest = argv.slice(2);
|
|
60
|
+
const idx = rest.indexOf('--rc');
|
|
61
|
+
if (idx === -1)
|
|
62
|
+
return argv.slice();
|
|
63
|
+
const first = rest[0];
|
|
64
|
+
if (first && !first.startsWith('-') && !REMOTE_CONTROL_NAMES.has(first)) {
|
|
65
|
+
return argv.slice();
|
|
66
|
+
}
|
|
67
|
+
const next = rest.slice();
|
|
68
|
+
next.splice(idx, 1);
|
|
69
|
+
if (first && REMOTE_CONTROL_NAMES.has(first)) {
|
|
70
|
+
return [argv[0], argv[1], ...next];
|
|
71
|
+
}
|
|
72
|
+
return [argv[0], argv[1], 'remote-control', ...next];
|
|
73
|
+
}
|
|
74
|
+
/** Bare `-v` / `-V` / `--version` with no other args. */
|
|
75
|
+
function isVersionArgv(argv) {
|
|
76
|
+
const rest = argv.slice(2).filter((a) => a !== '--');
|
|
77
|
+
return rest.length === 1 && (rest[0] === '-v' || rest[0] === '-V' || rest[0] === '--version');
|
|
78
|
+
}
|
|
46
79
|
// A bare name becomes `connect <name>`. Reserved words and flags are left
|
|
47
80
|
// alone so `dialout status` is not turned into a connect. Nothing is printed.
|
|
48
81
|
function rewriteConnectArgv(argv, reserved) {
|
package/dist/cli-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-client.js","sourceRoot":"","sources":["../src/cli-client.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,qBAAqB;;;
|
|
1
|
+
{"version":3,"file":"cli-client.js","sourceRoot":"","sources":["../src/cli-client.ts"],"names":[],"mappings":"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"}
|