dsh-ssh-tui 0.7.3 → 0.8.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.en.md +101 -27
- package/README.md +83 -27
- package/docs/remote-ops.md +80 -1
- package/docs/terminals.md +17 -4
- package/docs/windows.md +128 -0
- package/lib/attach.js +14 -1
- package/lib/attach.js.map +1 -1
- package/lib/auth-failure.js +92 -0
- package/lib/auth-failure.js.map +1 -0
- package/lib/commands.js +2 -0
- package/lib/commands.js.map +1 -1
- package/lib/copy-text.js +2 -0
- package/lib/copy-text.js.map +1 -1
- package/lib/diag.js +3 -0
- package/lib/diag.js.map +1 -1
- package/lib/dialogs.js.map +1 -1
- package/lib/display-sock.js +313 -2
- package/lib/display-sock.js.map +1 -1
- package/lib/dsh-compat.js +46 -0
- package/lib/dsh-compat.js.map +1 -1
- package/lib/i18n/en.js +49 -14
- package/lib/i18n/en.js.map +1 -1
- package/lib/i18n/index.js +5 -0
- package/lib/i18n/index.js.map +1 -1
- package/lib/i18n/zh.js +49 -14
- package/lib/i18n/zh.js.map +1 -1
- package/lib/index.js +76 -15
- package/lib/index.js.map +1 -1
- package/lib/line-mode.js +4 -0
- package/lib/line-mode.js.map +1 -1
- package/lib/paint.js +32 -1
- package/lib/paint.js.map +1 -1
- package/lib/picker.js +104 -15
- package/lib/picker.js.map +1 -1
- package/lib/plan.js +8 -0
- package/lib/plan.js.map +1 -1
- package/lib/platform.js +81 -0
- package/lib/platform.js.map +1 -1
- package/lib/preset-rows.js +54 -24
- package/lib/preset-rows.js.map +1 -1
- package/lib/question-wait.js +418 -0
- package/lib/question-wait.js.map +1 -0
- package/lib/selection.js +26 -8
- package/lib/selection.js.map +1 -1
- package/lib/term-text.js +79 -8
- package/lib/term-text.js.map +1 -1
- package/lib/terminal-input.js +13 -0
- package/lib/terminal-input.js.map +1 -1
- package/lib/tui.js +713 -51
- package/lib/tui.js.map +1 -1
- package/lib/types/attach.d.ts +8 -0
- package/lib/types/auth-failure.d.ts +48 -0
- package/lib/types/commands.d.ts +6 -0
- package/lib/types/diag.d.ts +2 -0
- package/lib/types/dialogs.d.ts +16 -0
- package/lib/types/display-sock.d.ts +78 -2
- package/lib/types/dsh-compat.d.ts +44 -12
- package/lib/types/i18n/index.d.ts +13 -3
- package/lib/types/index.d.ts +7 -0
- package/lib/types/paint.d.ts +21 -0
- package/lib/types/picker.d.ts +22 -0
- package/lib/types/platform.d.ts +22 -0
- package/lib/types/preset-rows.d.ts +18 -10
- package/lib/types/question-wait.d.ts +221 -0
- package/lib/types/selection.d.ts +12 -4
- package/lib/types/settings-subagent.d.ts +3 -3
- package/lib/types/subagent-model.d.ts +3 -3
- package/lib/types/term-text.d.ts +14 -0
- package/lib/types/terminal-input.d.ts +10 -0
- package/lib/types/transcript-types.d.ts +22 -0
- package/lib/types/tui.d.ts +149 -3
- package/lib/types/update-check.d.ts +19 -4
- package/lib/types/workspace-changes.d.ts +135 -0
- package/lib/update-check.js +25 -8
- package/lib/update-check.js.map +1 -1
- package/lib/workspace-changes.js +120 -0
- package/lib/workspace-changes.js.map +1 -0
- package/package.json +104 -69
package/lib/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/lib/preset-rows.js
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* STORE accepts additive rows with plugin-owned ids and no `@deepseek-ai/*`
|
|
8
8
|
* module names. The profile's user layer is the supported home for the row, so
|
|
9
9
|
* both the install script and the running TUI write the same block here — the
|
|
10
|
-
* TUI needs it because `dsh plugin add
|
|
11
|
-
*
|
|
10
|
+
* TUI needs it because the in-app update (`dsh plugin add`, at whatever version)
|
|
11
|
+
* never runs `scripts/`, which npm installs do not ship.
|
|
12
12
|
*
|
|
13
13
|
* The roster is not cosmetic: without it `/mode` cannot switch, and the tools
|
|
14
14
|
* the shipped presets own (`ask_user_question`, `present`, PTC's presentation)
|
|
@@ -40,21 +40,17 @@ export const ROSTER_ROWS = [
|
|
|
40
40
|
* per-session declarations a surface mounts (`@deepseek-ai/dsh-agent-preset`
|
|
41
41
|
* rows over the `agent-preset-registry` service), and `dsh-base` keeps the
|
|
42
42
|
* agent-plane rows enabled for the TUI, which is single-session and composes
|
|
43
|
-
* its agent process-wide.
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
43
|
+
* its agent process-wide. Beyond the base, upstream's standard preset declares a
|
|
44
|
+
* persona and these two tools. Only the tools are mounted here: a *preset* is an
|
|
45
|
+
* agent scope, but a profile is not one, and `@deepseek-ai/dsh-persona`
|
|
46
|
+
* registers the two prompt sections `dsh-system-prompt` already owns at this
|
|
47
|
+
* layer — the loader rejects the row ("prompt section
|
|
48
|
+
* \"deployment:persona-prefix\" is already registered") and one entry then
|
|
49
|
+
* silently never activates. The deployment persona this line ships with is
|
|
50
|
+
* `dsh-system-prompt`'s own empty default, which is what a profile is meant to
|
|
51
|
+
* use unless it deliberately sets one.
|
|
48
52
|
*/
|
|
49
53
|
export const FORMS_ROWS = [
|
|
50
|
-
{
|
|
51
|
-
id: 'persona',
|
|
52
|
-
name: '@deepseek-ai/dsh-persona',
|
|
53
|
-
config: [
|
|
54
|
-
'suffix: Your working directory is {{cwd}}.',
|
|
55
|
-
'prefix: You are a coding agent powered by the {{model}} model.',
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
54
|
{ id: 'tool-ask-user', name: '@deepseek-ai/dsh-tool-ask-user' },
|
|
59
55
|
{ id: 'present', name: '@deepseek-ai/dsh-tool-present' },
|
|
60
56
|
];
|
|
@@ -74,9 +70,10 @@ export const ROSTER_PATCH_HEADER = `# dsh-ssh-tui /mode: the agent-preset roster
|
|
|
74
70
|
/** The same header on a host that composes its agent process-wide. */
|
|
75
71
|
export const FORMS_PATCH_HEADER = `# dsh-ssh-tui: the agent-plane rows a 0.1.7 terminal profile mounts for itself.
|
|
76
72
|
# That line composes the agent process-wide (presets are a per-session Web
|
|
77
|
-
# feature now), and dsh-base already carries
|
|
78
|
-
#
|
|
79
|
-
#
|
|
73
|
+
# feature now), and dsh-base already carries the rest of what the standard
|
|
74
|
+
# preset declares: dsh-system-prompt owns the persona sections at this layer, so
|
|
75
|
+
# only the two tools are left to mount. @deepseek-ai/dsh-persona is deliberately
|
|
76
|
+
# absent — mounting it here collides with those sections and never activates.
|
|
80
77
|
`;
|
|
81
78
|
/** The header for one host line. */
|
|
82
79
|
export function rosterPatchHeader(generation) {
|
|
@@ -92,8 +89,12 @@ function rosterItemText(row) {
|
|
|
92
89
|
}
|
|
93
90
|
return `${lines.join('\n')}\n`;
|
|
94
91
|
}
|
|
95
|
-
/**
|
|
96
|
-
|
|
92
|
+
/**
|
|
93
|
+
* The entries one host line's rows need: a single `- insert:` list.
|
|
94
|
+
* @param rows - the rows to write.
|
|
95
|
+
* @returns the YAML text, ending in a newline.
|
|
96
|
+
*/
|
|
97
|
+
export function rosterEntriesText(rows) {
|
|
97
98
|
return `- insert:\n${rows.map(rosterItemText).join('\n')}`;
|
|
98
99
|
}
|
|
99
100
|
/**
|
|
@@ -101,9 +102,9 @@ export function rosterInsertEntry(rows) {
|
|
|
101
102
|
* services the shipped presets need. `scripts/ensure-profile-rows.sh` carries
|
|
102
103
|
* the same text; a test compares the two so they cannot drift.
|
|
103
104
|
*/
|
|
104
|
-
export const ROSTER_PATCH_BLOCK = `${ROSTER_PATCH_HEADER}${
|
|
105
|
+
export const ROSTER_PATCH_BLOCK = `${ROSTER_PATCH_HEADER}${rosterEntriesText(ROSTER_ROWS)}`;
|
|
105
106
|
/** The 0.1.7 block, the same way. */
|
|
106
|
-
export const FORMS_PATCH_BLOCK = `${FORMS_PATCH_HEADER}${
|
|
107
|
+
export const FORMS_PATCH_BLOCK = `${FORMS_PATCH_HEADER}${rosterEntriesText(FORMS_ROWS)}`;
|
|
107
108
|
/** The block for one host line. */
|
|
108
109
|
export function rosterPatchBlock(generation) {
|
|
109
110
|
return generation === 'forms' ? FORMS_PATCH_BLOCK : ROSTER_PATCH_BLOCK;
|
|
@@ -141,6 +142,35 @@ function idLines(text) {
|
|
|
141
142
|
});
|
|
142
143
|
return out;
|
|
143
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* The `!!js` tag the loader registers, and a permissive stand-in for it.
|
|
147
|
+
*
|
|
148
|
+
* A patch is allowed to carry one — the file's own header says so, and the
|
|
149
|
+
* launcher writes exactly that into this plugin's row to bind the session id
|
|
150
|
+
* the process was started with:
|
|
151
|
+
*
|
|
152
|
+
* ```yaml
|
|
153
|
+
* - id: ssh-tui
|
|
154
|
+
* name: dsh-ssh-tui
|
|
155
|
+
* config:
|
|
156
|
+
* sessionId: !!js ctx.sshTuiStartup.sessionId
|
|
157
|
+
* ```
|
|
158
|
+
*
|
|
159
|
+
* `js-yaml` refuses an unknown tag outright, so a profile that was working
|
|
160
|
+
* perfectly read as "the patch cannot be parsed" and `/doctor` could not judge
|
|
161
|
+
* the agent-plane rows at all. The host parses the same file with a permissive
|
|
162
|
+
* tag of its own (`dsh-plugin-manager`: `customTags` with a pass-through
|
|
163
|
+
* `resolve`), so this mirrors the loader rather than inventing a rule. The
|
|
164
|
+
* value is never used here: the analysis reads ids, module names and insert
|
|
165
|
+
* structure, and an expression is opaque to all three.
|
|
166
|
+
*/
|
|
167
|
+
const JS_EXPRESSION_TAG = 'tag:yaml.org,2002:js';
|
|
168
|
+
/** One entry per kind, since js-yaml resolves the tag by node kind. */
|
|
169
|
+
const PATCH_SCHEMA = yaml.DEFAULT_SCHEMA.extend([
|
|
170
|
+
new yaml.Type(JS_EXPRESSION_TAG, { kind: 'scalar', construct: (data) => data }),
|
|
171
|
+
new yaml.Type(JS_EXPRESSION_TAG, { kind: 'sequence', construct: (data) => data }),
|
|
172
|
+
new yaml.Type(JS_EXPRESSION_TAG, { kind: 'mapping', construct: (data) => data }),
|
|
173
|
+
]);
|
|
144
174
|
/**
|
|
145
175
|
* Read one patch file into the rows it declares.
|
|
146
176
|
*
|
|
@@ -152,7 +182,7 @@ function idLines(text) {
|
|
|
152
182
|
export function analyzePatch(text) {
|
|
153
183
|
let loaded;
|
|
154
184
|
try {
|
|
155
|
-
loaded = yaml.load(text);
|
|
185
|
+
loaded = yaml.load(text, { schema: PATCH_SCHEMA });
|
|
156
186
|
}
|
|
157
187
|
catch (error) {
|
|
158
188
|
return { parseable: false, error: error instanceof Error ? error.message : String(error), rows: [] };
|
|
@@ -265,7 +295,7 @@ export function planRosterRepair(existing, missing = ROSTER_ROWS, generation = '
|
|
|
265
295
|
: [...missing];
|
|
266
296
|
if (toAdd.length === 0)
|
|
267
297
|
return undefined;
|
|
268
|
-
const entry = `${rosterPatchHeader(generation)}${
|
|
298
|
+
const entry = `${rosterPatchHeader(generation)}${rosterEntriesText(toAdd)}`;
|
|
269
299
|
if (/^\s*\[\s*\]\s*$/m.test(existing)) {
|
|
270
300
|
return { text: existing.replace(/^\s*\[\s*\]\s*$/m, entry.trimEnd() + '\n'), added: toAdd.map(row => row.id), removed: [] };
|
|
271
301
|
}
|
package/lib/preset-rows.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset-rows.js","sourceRoot":"","sources":["../src/preset-rows.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"preset-rows.js","sourceRoot":"","sources":["../src/preset-rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a question does while nobody is attached to answer it.
|
|
3
|
+
*
|
|
4
|
+
* A dropped SSH link leaves the question queued in memory, and the only trace of
|
|
5
|
+
* it used to be a transcript line written *after* the user reconnected — which is
|
|
6
|
+
* how a turn spent waiting for an answer went unnoticed until then. Two signals
|
|
7
|
+
* exist before that:
|
|
8
|
+
*
|
|
9
|
+
* - a marker file under `$DSH_HOME/tui-socks/`, so logging back into the jump
|
|
10
|
+
* host shows a session waiting on an answer before the TUI is even open;
|
|
11
|
+
* - one command the user configured, run once, carrying the question in its
|
|
12
|
+
* environment. Mail and WeCom are presets of that command rather than clients
|
|
13
|
+
* of their own: a jump host has whichever of them it already has, and neither
|
|
14
|
+
* belongs in this plugin's dependency tree.
|
|
15
|
+
* @module dsh-ssh-tui/question-wait
|
|
16
|
+
*/
|
|
17
|
+
import { spawn } from 'node:child_process';
|
|
18
|
+
import { mkdir, unlink, writeFile } from 'node:fs/promises';
|
|
19
|
+
import { basename, dirname, join } from 'node:path';
|
|
20
|
+
import { sessionErrPath, sessionSockDir } from './display-sock.js';
|
|
21
|
+
import { t } from './i18n/index.js';
|
|
22
|
+
import { restrictPathToUser } from './platform.js';
|
|
23
|
+
/** How long a notify command may run before it is killed. It must not stall the turn. */
|
|
24
|
+
const NOTIFY_TIMEOUT_MS = 10_000;
|
|
25
|
+
/**
|
|
26
|
+
* The marker for one session.
|
|
27
|
+
*
|
|
28
|
+
* Beside the session's stderr log, under the same digested label, so a long id
|
|
29
|
+
* stays inside a Windows path and two ids that sanitize to the same stem do not
|
|
30
|
+
* share a file. `.waiting` rather than a dotfile: the point is that `ls` shows it.
|
|
31
|
+
* @param sessionId - the session that is waiting.
|
|
32
|
+
* @param dshHome - the harness home; defaults to the process one.
|
|
33
|
+
* @returns the marker path.
|
|
34
|
+
*/
|
|
35
|
+
export function waitingMarkerPath(sessionId, dshHome) {
|
|
36
|
+
const dir = dshHome === undefined ? sessionSockDir() : sessionSockDir(dshHome);
|
|
37
|
+
const err = dshHome === undefined ? sessionErrPath(sessionId) : sessionErrPath(sessionId, dshHome);
|
|
38
|
+
// The stderr log's own stem, so the marker can never drift onto a name that
|
|
39
|
+
// log does not already occupy. `basename` and `join` carry the separators of
|
|
40
|
+
// the running platform, so the marker is a real sibling on Windows too rather
|
|
41
|
+
// than a mixed `\\dir/name` — which is what hand-splitting on `/` produced.
|
|
42
|
+
return join(dir, `${basename(err, '.err')}.waiting`);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Write the marker, replacing one already there.
|
|
46
|
+
*
|
|
47
|
+
* The question text is the only sensitive part, so the file is owner-only. A
|
|
48
|
+
* failure to write is reported as `false` and never thrown: the question is
|
|
49
|
+
* still queued, and a marker is not worth failing it over.
|
|
50
|
+
*
|
|
51
|
+
* Deliberately a plain `writeFile`, not a staged sibling renamed into place.
|
|
52
|
+
* The rename is atomic on POSIX, but Windows refuses to replace a file another
|
|
53
|
+
* process has open — and the whole point of this marker is that something else
|
|
54
|
+
* polls it (a jump-host `cat` in a loop), so the "atomic" version stops updating
|
|
55
|
+
* exactly while it is being read. The cost of the plain write is a window
|
|
56
|
+
* between the create and the first byte where a reader sees an empty file; the
|
|
57
|
+
* marker is rewritten on every change, so that window is what a consumer has to
|
|
58
|
+
* tolerate rather than something the writer can hide.
|
|
59
|
+
* @param question - the question that just started waiting.
|
|
60
|
+
* @param dshHome - the harness home; defaults to the process one.
|
|
61
|
+
* @returns whether the marker is on disk.
|
|
62
|
+
*/
|
|
63
|
+
export async function writeWaitingMarker(question, dshHome) {
|
|
64
|
+
const path = waitingMarkerPath(question.sessionId, dshHome);
|
|
65
|
+
const body = [
|
|
66
|
+
`session=${question.sessionId}`,
|
|
67
|
+
`waiting=${question.count}`,
|
|
68
|
+
`since=${new Date(question.since).toISOString()}`,
|
|
69
|
+
`question=${question.question.replaceAll('\n', ' ')}`,
|
|
70
|
+
'',
|
|
71
|
+
].join('\n');
|
|
72
|
+
try {
|
|
73
|
+
await mkdir(dirname(path), { recursive: true });
|
|
74
|
+
await restrictPathToUser(dirname(path), { mode: 0o700, directory: true });
|
|
75
|
+
await writeFile(path, body, { mode: 0o600 });
|
|
76
|
+
await restrictPathToUser(path, { mode: 0o600 });
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Remove the marker. Missing is fine: the question may have been answered, or
|
|
85
|
+
* the marker may never have been written.
|
|
86
|
+
* @param sessionId - the session whose wait ended.
|
|
87
|
+
* @param dshHome - the harness home; defaults to the process one.
|
|
88
|
+
*/
|
|
89
|
+
export async function clearWaitingMarker(sessionId, dshHome) {
|
|
90
|
+
try {
|
|
91
|
+
await unlink(waitingMarkerPath(sessionId, dshHome));
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// Already gone, or never written.
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The command to run when a question starts waiting, if the user configured one.
|
|
99
|
+
*
|
|
100
|
+
* The environment wins over settings, the same order `/disconnect` uses, so a
|
|
101
|
+
* one-off invocation can point somewhere else without editing the profile.
|
|
102
|
+
* Empty and whitespace are "not configured".
|
|
103
|
+
* @param env - the process environment.
|
|
104
|
+
* @param saved - the `ssh-tui.notify` value, when settings has one.
|
|
105
|
+
* @returns the command, or undefined when notifications are off.
|
|
106
|
+
*/
|
|
107
|
+
export function notifyCommand(env = process.env, saved) {
|
|
108
|
+
const fromEnv = (env.DSH_TUI_NOTIFY ?? '').trim();
|
|
109
|
+
if (fromEnv !== '')
|
|
110
|
+
return fromEnv;
|
|
111
|
+
const fromSaved = (saved ?? '').trim();
|
|
112
|
+
return fromSaved === '' ? undefined : fromSaved;
|
|
113
|
+
}
|
|
114
|
+
const SMTP_PORT_DEFAULT = 587;
|
|
115
|
+
const LOCAL_PORT_DEFAULT = 25;
|
|
116
|
+
/**
|
|
117
|
+
* Parse one `/notify` argument into a target.
|
|
118
|
+
*
|
|
119
|
+
* Four shapes, deliberately small:
|
|
120
|
+
*
|
|
121
|
+
* - empty, `off`, `none` — turn it off;
|
|
122
|
+
* - `mail you@example.com` — the local mailer;
|
|
123
|
+
* - `smtp host[:port] from to [user [password]]` — an SMTP server, port 587
|
|
124
|
+
* when omitted, authenticated only when a user is given;
|
|
125
|
+
* - `local [port] from to` — the machine's own mailer on 25, or another port.
|
|
126
|
+
*
|
|
127
|
+
* @param raw - everything after `/notify`.
|
|
128
|
+
* @returns the target, or undefined when the shape is not one of those.
|
|
129
|
+
*/
|
|
130
|
+
export function parseNotifyTarget(raw) {
|
|
131
|
+
const parts = raw.trim().split(/\s+/u).filter(part => part !== '');
|
|
132
|
+
if (parts.length === 0)
|
|
133
|
+
return { kind: 'off' };
|
|
134
|
+
const head = (parts[0] ?? '').toLowerCase();
|
|
135
|
+
if (head === 'off' || head === 'none')
|
|
136
|
+
return parts.length === 1 ? { kind: 'off' } : undefined;
|
|
137
|
+
if (head === 'mail') {
|
|
138
|
+
const address = parts[1];
|
|
139
|
+
if (parts.length !== 2 || address === undefined || !address.includes('@'))
|
|
140
|
+
return undefined;
|
|
141
|
+
return { kind: 'mail', address };
|
|
142
|
+
}
|
|
143
|
+
if (head === 'smtp')
|
|
144
|
+
return parseSmtpTarget(parts.slice(1));
|
|
145
|
+
if (head === 'local')
|
|
146
|
+
return parseLocalTarget(parts.slice(1));
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
/** `host[:port] from to [user [password]]`, port defaulting to submission. */
|
|
150
|
+
function parseSmtpTarget(parts) {
|
|
151
|
+
const server = splitHostPort(parts[0] ?? '', SMTP_PORT_DEFAULT);
|
|
152
|
+
const from = parts[1];
|
|
153
|
+
const to = parts[2];
|
|
154
|
+
if (server === undefined || from === undefined || to === undefined)
|
|
155
|
+
return undefined;
|
|
156
|
+
if (!from.includes('@') || !to.includes('@'))
|
|
157
|
+
return undefined;
|
|
158
|
+
if (parts.length > 5)
|
|
159
|
+
return undefined;
|
|
160
|
+
const user = parts[3];
|
|
161
|
+
const password = parts[4];
|
|
162
|
+
return {
|
|
163
|
+
kind: 'smtp',
|
|
164
|
+
host: server.host,
|
|
165
|
+
port: server.port,
|
|
166
|
+
from,
|
|
167
|
+
to,
|
|
168
|
+
...(user === undefined ? {} : { user }),
|
|
169
|
+
...(password === undefined ? {} : { password }),
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/** `[port] from to`, the port defaulting to 25. */
|
|
173
|
+
function parseLocalTarget(parts) {
|
|
174
|
+
const leadingPort = parts.length === 3 && /^\d{1,5}$/u.test(parts[0] ?? '');
|
|
175
|
+
const port = leadingPort ? Number(parts[0]) : LOCAL_PORT_DEFAULT;
|
|
176
|
+
const from = parts[leadingPort ? 1 : 0];
|
|
177
|
+
const to = parts[leadingPort ? 2 : 1];
|
|
178
|
+
if (parts.length !== (leadingPort ? 3 : 2))
|
|
179
|
+
return undefined;
|
|
180
|
+
if (from === undefined || to === undefined || !from.includes('@') || !to.includes('@'))
|
|
181
|
+
return undefined;
|
|
182
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535)
|
|
183
|
+
return undefined;
|
|
184
|
+
return { kind: 'local', port, from, to };
|
|
185
|
+
}
|
|
186
|
+
/** `host`, `host:587`, or `[::1]:25`. */
|
|
187
|
+
function splitHostPort(text, fallback) {
|
|
188
|
+
const trimmed = text.trim();
|
|
189
|
+
if (trimmed === '')
|
|
190
|
+
return undefined;
|
|
191
|
+
const bracketed = /^\[([^\]]+)\](?::(\d{1,5}))?$/u.exec(trimmed);
|
|
192
|
+
if (bracketed !== null) {
|
|
193
|
+
const port = bracketed[2] === undefined ? fallback : Number(bracketed[2]);
|
|
194
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535)
|
|
195
|
+
return undefined;
|
|
196
|
+
return { host: bracketed[1] ?? '', port };
|
|
197
|
+
}
|
|
198
|
+
const colon = trimmed.lastIndexOf(':');
|
|
199
|
+
if (colon > 0 && /^\d{1,5}$/u.test(trimmed.slice(colon + 1))) {
|
|
200
|
+
const port = Number(trimmed.slice(colon + 1));
|
|
201
|
+
if (port < 1 || port > 65535)
|
|
202
|
+
return undefined;
|
|
203
|
+
return { host: trimmed.slice(0, colon), port };
|
|
204
|
+
}
|
|
205
|
+
return { host: trimmed, port: fallback };
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* The shell command one target runs.
|
|
209
|
+
*
|
|
210
|
+
* SMTP and the local mailer both go through Python's stdlib `smtplib`, which
|
|
211
|
+
* is present on every jump host this plugin runs on (Node itself is). The
|
|
212
|
+
* password, when there is one, is read from `DSH_TUI_NOTIFY_SMTP_PASSWORD` at
|
|
213
|
+
* send time rather than written into the command, so it never lands in the
|
|
214
|
+
* settings file or the process list. The message text arrives on stdin.
|
|
215
|
+
* @param target - a parsed target other than `off`.
|
|
216
|
+
* @returns the command `/notify` stores.
|
|
217
|
+
*/
|
|
218
|
+
/**
|
|
219
|
+
* What `/notify` confirms back: the target in the user's own words, without the
|
|
220
|
+
* password.
|
|
221
|
+
* @param target - a parsed target other than `off`.
|
|
222
|
+
* @returns a short label.
|
|
223
|
+
*/
|
|
224
|
+
export function notifyTargetLabel(target) {
|
|
225
|
+
if (target.kind === 'mail')
|
|
226
|
+
return `mail ${target.address}`;
|
|
227
|
+
if (target.kind === 'local')
|
|
228
|
+
return `127.0.0.1:${target.port} → ${target.to}`;
|
|
229
|
+
const auth = target.user === undefined ? '' : ` (${target.user})`;
|
|
230
|
+
return `${target.host}:${target.port}${auth} → ${target.to}`;
|
|
231
|
+
}
|
|
232
|
+
export function notifyTargetCommand(target) {
|
|
233
|
+
if (target.kind === 'mail')
|
|
234
|
+
return mailNotifyCommand(target.address);
|
|
235
|
+
const host = target.kind === 'local' ? '127.0.0.1' : target.host;
|
|
236
|
+
return `python3 -c ${shellWord(smtpBridge(target.kind === 'smtp'))} ${shellWord(host)} ${String(target.port)} ${shellWord(target.from)} ${shellWord(target.to)}`;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* The Python that reads the notice on stdin and hands it to `smtplib`.
|
|
240
|
+
*
|
|
241
|
+
* One script for both targets: the local mailer is the same call with no login.
|
|
242
|
+
* Authentication happens only when the environment holds a password, so a
|
|
243
|
+
* server that accepts unauthenticated submission needs nothing else.
|
|
244
|
+
* @param authenticated - whether this target may log in.
|
|
245
|
+
* @returns the script, with no host-specific data in it.
|
|
246
|
+
*/
|
|
247
|
+
function smtpBridge(authenticated) {
|
|
248
|
+
const login = authenticated
|
|
249
|
+
? [
|
|
250
|
+
' user=os.environ.get("DSH_TUI_NOTIFY_SMTP_USER","")',
|
|
251
|
+
' password=os.environ.get("DSH_TUI_NOTIFY_SMTP_PASSWORD","")',
|
|
252
|
+
' if user and password:',
|
|
253
|
+
' try:',
|
|
254
|
+
' s.login(user,password)',
|
|
255
|
+
' except smtplib.SMTPNotSupportedError:',
|
|
256
|
+
' pass',
|
|
257
|
+
].join('\n')
|
|
258
|
+
: '';
|
|
259
|
+
return [
|
|
260
|
+
'import os,smtplib,sys',
|
|
261
|
+
'host,port,sender,recipient=sys.argv[1],int(sys.argv[2]),sys.argv[3],sys.argv[4]',
|
|
262
|
+
'body=sys.stdin.read()',
|
|
263
|
+
'subject=os.environ.get("DSH_TUI_NOTIFY_SUBJECT","dsh")',
|
|
264
|
+
'msg="Subject: "+subject+"\\r\\nContent-Type: text/plain; charset=utf-8\\r\\n\\r\\n"+body',
|
|
265
|
+
's=smtplib.SMTP(host,port,timeout=10)',
|
|
266
|
+
'try:',
|
|
267
|
+
login.trimEnd(),
|
|
268
|
+
' s.sendmail(sender,[recipient],msg.encode("utf-8"))',
|
|
269
|
+
'finally:',
|
|
270
|
+
' s.quit()',
|
|
271
|
+
].filter(line => line !== '').join('\n');
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* A mail command for an address, using whichever sender the host has.
|
|
275
|
+
*
|
|
276
|
+
* `mail` (or `mailx`) is on most jump hosts and speaks SMTP for them; no
|
|
277
|
+
* provider, token, or library joins this plugin. The body arrives on stdin, so
|
|
278
|
+
* the question text is never a shell argument.
|
|
279
|
+
* @param address - where the mail goes.
|
|
280
|
+
* @returns the command.
|
|
281
|
+
*/
|
|
282
|
+
export function mailNotifyCommand(address) {
|
|
283
|
+
return `mail -s ${shellWord(t('notify.mailSubject'))} -- ${shellWord(address)}`;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* A WeCom group-robot command for one webhook key.
|
|
287
|
+
*
|
|
288
|
+
* The payload is assembled by the caller and sent with `curl`, which a jump
|
|
289
|
+
* host already has. The key is the only secret, and it stays in the command the
|
|
290
|
+
* user configured rather than in this repo.
|
|
291
|
+
* @param key - the robot's webhook key.
|
|
292
|
+
* @returns the command.
|
|
293
|
+
*/
|
|
294
|
+
export function wecomNotifyCommand(key) {
|
|
295
|
+
const endpoint = `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=${encodeURIComponent(key)}`;
|
|
296
|
+
return `curl -fsS -m 10 -X POST -H "Content-Type: application/json" --data-binary @- ${shellWord(endpoint)}`;
|
|
297
|
+
}
|
|
298
|
+
/** One single-quoted shell word, so an address or URL survives the command line. */
|
|
299
|
+
function shellWord(value) {
|
|
300
|
+
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* The text a notification shows. Short on purpose: a mail subject and a WeCom
|
|
304
|
+
* message both get truncated by their carrier, so the resume command has to fit.
|
|
305
|
+
* @param context - the question being announced.
|
|
306
|
+
* @returns the message, one fact per line.
|
|
307
|
+
*/
|
|
308
|
+
export function notifyMessage(context) {
|
|
309
|
+
return [
|
|
310
|
+
t('notify.body', {
|
|
311
|
+
session: context.sessionId,
|
|
312
|
+
count: context.count,
|
|
313
|
+
waited: formatWaited(context.waitedMs),
|
|
314
|
+
}),
|
|
315
|
+
context.question,
|
|
316
|
+
t('notify.resume', { command: context.resumeCommand }),
|
|
317
|
+
].join('\n');
|
|
318
|
+
}
|
|
319
|
+
/** `45s`, `3m`, `2h` — coarse, since the carrier will not show seconds anyway. */
|
|
320
|
+
function formatWaited(ms) {
|
|
321
|
+
const seconds = Math.max(0, Math.round(ms / 1000));
|
|
322
|
+
if (seconds < 60)
|
|
323
|
+
return `${seconds}s`;
|
|
324
|
+
const minutes = Math.round(seconds / 60);
|
|
325
|
+
if (minutes < 60)
|
|
326
|
+
return `${minutes}m`;
|
|
327
|
+
return `${Math.round(minutes / 60)}h`;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* The body a WeCom robot expects: a text message whose content is the notice.
|
|
331
|
+
* @param context - the question being announced.
|
|
332
|
+
* @returns JSON.
|
|
333
|
+
*/
|
|
334
|
+
export function wecomPayload(context) {
|
|
335
|
+
return JSON.stringify({ msgtype: 'text', text: { content: notifyMessage(context) } });
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Run the user's notify command once.
|
|
339
|
+
*
|
|
340
|
+
* The message goes to stdin and the facts go to the environment, so a command
|
|
341
|
+
* can be either `mail` (reads stdin) or anything that reads the variables. The
|
|
342
|
+
* command runs through a shell because it is a shell command by nature — the
|
|
343
|
+
* user wrote it as one — and the platform's own shell, so a Windows host uses
|
|
344
|
+
* `cmd`. Nothing it prints or fails with comes back: a notification that errors
|
|
345
|
+
* must not surface in the transcript or delay the question.
|
|
346
|
+
* @param command - the configured command.
|
|
347
|
+
* @param context - the question being announced.
|
|
348
|
+
* @param deps - injectable process spawn and clock, for tests.
|
|
349
|
+
* @returns once the command has exited, timed out, or failed to start.
|
|
350
|
+
*/
|
|
351
|
+
export async function runNotify(command, context, deps = {}) {
|
|
352
|
+
const spawnFn = deps.spawnFn ?? spawn;
|
|
353
|
+
const message = notifyMessage(context);
|
|
354
|
+
const shell = notifyShell(deps.platform);
|
|
355
|
+
const env = {
|
|
356
|
+
...process.env,
|
|
357
|
+
DSH_TUI_NOTIFY_SESSION: context.sessionId,
|
|
358
|
+
DSH_TUI_NOTIFY_COUNT: String(context.count),
|
|
359
|
+
DSH_TUI_NOTIFY_QUESTION: context.question,
|
|
360
|
+
DSH_TUI_NOTIFY_WAITED_MS: String(Math.max(0, context.waitedMs)),
|
|
361
|
+
DSH_TUI_NOTIFY_RESUME: context.resumeCommand,
|
|
362
|
+
DSH_TUI_NOTIFY_SUBJECT: t('notify.mailSubject'),
|
|
363
|
+
...(context.smtpUser === undefined ? {} : { DSH_TUI_NOTIFY_SMTP_USER: context.smtpUser }),
|
|
364
|
+
...(context.smtpPassword === undefined ? {} : { DSH_TUI_NOTIFY_SMTP_PASSWORD: context.smtpPassword }),
|
|
365
|
+
};
|
|
366
|
+
await new Promise(resolve => {
|
|
367
|
+
let child;
|
|
368
|
+
try {
|
|
369
|
+
child = spawnFn(shell.command, [shell.flag, command], {
|
|
370
|
+
env,
|
|
371
|
+
stdio: ['pipe', 'ignore', 'ignore'],
|
|
372
|
+
windowsHide: true,
|
|
373
|
+
detached: false,
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
catch {
|
|
377
|
+
resolve();
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
let settled = false;
|
|
381
|
+
const finish = () => {
|
|
382
|
+
if (settled)
|
|
383
|
+
return;
|
|
384
|
+
settled = true;
|
|
385
|
+
clearTimeout(timer);
|
|
386
|
+
resolve();
|
|
387
|
+
};
|
|
388
|
+
const timer = setTimeout(() => {
|
|
389
|
+
try {
|
|
390
|
+
child.kill();
|
|
391
|
+
}
|
|
392
|
+
catch { /* already gone */ }
|
|
393
|
+
finish();
|
|
394
|
+
}, deps.timeoutMs ?? NOTIFY_TIMEOUT_MS);
|
|
395
|
+
timer.unref?.();
|
|
396
|
+
child.on('error', finish);
|
|
397
|
+
child.on('exit', finish);
|
|
398
|
+
child.stdin?.on('error', finish);
|
|
399
|
+
try {
|
|
400
|
+
child.stdin?.end(message);
|
|
401
|
+
}
|
|
402
|
+
catch {
|
|
403
|
+
finish();
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* The shell that runs a notify command, and the flag that precedes it.
|
|
409
|
+
*
|
|
410
|
+
* A jump host means `sh -c`. Windows has no `sh` on PATH as a rule, so there
|
|
411
|
+
* the command runs under `cmd /c` and the user writes it for `cmd`.
|
|
412
|
+
* @param platform - injectable so the Windows shape is testable from POSIX.
|
|
413
|
+
* @returns the executable and its command flag.
|
|
414
|
+
*/
|
|
415
|
+
export function notifyShell(platform = process.platform) {
|
|
416
|
+
return platform === 'win32' ? { command: 'cmd', flag: '/c' } : { command: 'sh', flag: '-c' };
|
|
417
|
+
}
|
|
418
|
+
//# sourceMappingURL=question-wait.js.map
|