botmux 2.82.3 → 2.84.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 +1 -1
- package/README.md +1 -1
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +2 -42
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/mir.d.ts +4 -0
- package/dist/adapters/cli/mir.d.ts.map +1 -0
- package/dist/adapters/cli/mir.js +81 -0
- package/dist/adapters/cli/mir.js.map +1 -0
- package/dist/adapters/cli/registry.d.ts +2 -1
- package/dist/adapters/cli/registry.d.ts.map +1 -1
- package/dist/adapters/cli/registry.js +3 -1
- package/dist/adapters/cli/registry.js.map +1 -1
- package/dist/adapters/cli/shared-hints.d.ts +17 -0
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +56 -0
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +1 -1
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/autostart.d.ts.map +1 -1
- package/dist/autostart.js +161 -2
- package/dist/autostart.js.map +1 -1
- package/dist/cli/pm2-command.d.ts +1 -0
- package/dist/cli/pm2-command.d.ts.map +1 -1
- package/dist/cli/pm2-command.js +12 -0
- package/dist/cli/pm2-command.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +55 -38
- package/dist/cli.js.map +1 -1
- package/dist/core/botmux-wrapper.d.ts +23 -0
- package/dist/core/botmux-wrapper.d.ts.map +1 -0
- package/dist/core/botmux-wrapper.js +39 -0
- package/dist/core/botmux-wrapper.js.map +1 -0
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +12 -4
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts +1 -0
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +4 -0
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/scheduler.d.ts +25 -1
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +43 -0
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +13 -2
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +20 -8
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +17 -13
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +12 -0
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/schedules.d.ts.map +1 -1
- package/dist/dashboard/web/schedules.js +6 -2
- package/dist/dashboard/web/schedules.js.map +1 -1
- package/dist/dashboard/web/workflows.js +1 -1
- package/dist/dashboard/web/workflows.js.map +1 -1
- package/dist/dashboard-web/app.js +227 -225
- package/dist/dashboard.js +9 -6
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +2 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +2 -0
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +1 -0
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/mir-local-runtime.d.ts +20 -0
- package/dist/mir-local-runtime.d.ts.map +1 -0
- package/dist/mir-local-runtime.js +168 -0
- package/dist/mir-local-runtime.js.map +1 -0
- package/dist/mir-runner.d.ts +3 -0
- package/dist/mir-runner.d.ts.map +1 -0
- package/dist/mir-runner.js +482 -0
- package/dist/mir-runner.js.map +1 -0
- package/dist/services/schedule-store.d.ts +2 -2
- package/dist/services/schedule-store.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +2 -0
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/cli-selection.d.ts.map +1 -1
- package/dist/setup/cli-selection.js +74 -6
- package/dist/setup/cli-selection.js.map +1 -1
- package/dist/setup/ensure-tmux.d.ts.map +1 -1
- package/dist/setup/ensure-tmux.js +20 -3
- package/dist/setup/ensure-tmux.js.map +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +2 -1
- package/dist/skills/definitions.js.map +1 -1
- package/dist/types.d.ts +6 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.js +49 -31
- package/dist/worker.js.map +1 -1
- package/dist/workflows/attempt-resume.d.ts.map +1 -1
- package/dist/workflows/attempt-resume.js +3 -2
- package/dist/workflows/attempt-resume.js.map +1 -1
- package/dist/workflows/daemon-spawn.d.ts.map +1 -1
- package/dist/workflows/daemon-spawn.js +1 -0
- package/dist/workflows/daemon-spawn.js.map +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.js +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Mir CLI (mircli) runner — the `mir` adapter's backend.
|
|
4
|
+
*
|
|
5
|
+
* Unlike the interactive PTY adapters, `mir` drives mircli through its
|
|
6
|
+
* non-interactive Print Mode: each botmux turn spawns
|
|
7
|
+
*
|
|
8
|
+
* mircli -p <content> --lean --output-format text --session-id <sid> -y \
|
|
9
|
+
* --append-system-prompt <local-runtime-context>
|
|
10
|
+
*
|
|
11
|
+
* in the botmux workspace cwd, captures stdout, and ships it back to the daemon
|
|
12
|
+
* as an OSC `final` marker (parsed by the worker, see APP_RUNNER_OSC_CLI_IDS).
|
|
13
|
+
*
|
|
14
|
+
* Why Print Mode instead of driving the TUI (the original interactive `mir`):
|
|
15
|
+
* - no "恢复上次对话? [y/N]" startup prompt, no ≥10-line paste folding, no
|
|
16
|
+
* lazy-save (so no MIRA_HOME isolation / /save flush / transcript drain);
|
|
17
|
+
* - `mircli` is local-first (`comprehensive=0`): file/bash tools execute on
|
|
18
|
+
* THIS machine, so `mir` operates on the real workspace (needs the user's
|
|
19
|
+
* local MCP bridge connected — same prerequisite as standalone mircli);
|
|
20
|
+
* - delivery is the runner's stdout, so it needs neither `botmux send` nor
|
|
21
|
+
* BOTMUX_SESSION_ID injection — the daemon already owns the session.
|
|
22
|
+
*
|
|
23
|
+
* Limitation: because delivery is stdout (not `botmux send`), `mir` is a passive
|
|
24
|
+
* participant — it answers when @-mentioned but cannot proactively @ another bot
|
|
25
|
+
* (a structured outbound-mention channel is a separate follow-up).
|
|
26
|
+
*/
|
|
27
|
+
import { spawn } from 'node:child_process';
|
|
28
|
+
import { homedir } from 'node:os';
|
|
29
|
+
import { join } from 'node:path';
|
|
30
|
+
import { Buffer } from 'node:buffer';
|
|
31
|
+
import { getMiraRuntimePaths, ensureMiramcpSandboxAllows } from './mir-local-runtime.js';
|
|
32
|
+
const OSC_PREFIX = '\x1b]777;botmux:';
|
|
33
|
+
const OSC_END = '\x07';
|
|
34
|
+
const DEFAULT_QUERY_TIMEOUT = '10m';
|
|
35
|
+
const DEFAULT_RUNNER_TIMEOUT_MS = 12 * 60 * 1000;
|
|
36
|
+
const MARKER_PREFIX = '::botmux-mir:';
|
|
37
|
+
// Backend Claude-harness builtin tools that route to the cloud sandbox; mircli's
|
|
38
|
+
// own local tools are the lowercase equivalents. Optionally hard-disallow these
|
|
39
|
+
// (MIRCLI_DISALLOW_BUILTIN=1) to push the model onto the local tools. Off by
|
|
40
|
+
// default — the validated path relies on --lean + the local MCP bridge.
|
|
41
|
+
const BUILTIN_SANDBOX_TOOLS = ['Bash', 'Read', 'Write', 'Edit', 'Glob', 'Grep'];
|
|
42
|
+
function parseArgs(argv) {
|
|
43
|
+
const out = { sessionId: '' };
|
|
44
|
+
for (let i = 0; i < argv.length; i++) {
|
|
45
|
+
const key = argv[i];
|
|
46
|
+
const val = argv[i + 1];
|
|
47
|
+
if (key === '--session-id' && val !== undefined) {
|
|
48
|
+
out.sessionId = val;
|
|
49
|
+
i++;
|
|
50
|
+
}
|
|
51
|
+
else if (key === '--bot-name' && val !== undefined) {
|
|
52
|
+
out.botName = val;
|
|
53
|
+
i++;
|
|
54
|
+
}
|
|
55
|
+
else if (key === '--bot-open-id' && val !== undefined) {
|
|
56
|
+
out.botOpenId = val;
|
|
57
|
+
i++;
|
|
58
|
+
}
|
|
59
|
+
else if (key === '--locale' && val !== undefined) {
|
|
60
|
+
out.locale = val;
|
|
61
|
+
i++;
|
|
62
|
+
}
|
|
63
|
+
else if (key === '--mircli-bin' && val !== undefined) {
|
|
64
|
+
out.mircliBin = val;
|
|
65
|
+
i++;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (!out.sessionId)
|
|
69
|
+
throw new Error('--session-id is required');
|
|
70
|
+
return out;
|
|
71
|
+
}
|
|
72
|
+
function b64Json(value) {
|
|
73
|
+
return Buffer.from(JSON.stringify(value), 'utf8').toString('base64');
|
|
74
|
+
}
|
|
75
|
+
function emitMarker(kind, payload) {
|
|
76
|
+
process.stdout.write(`${OSC_PREFIX}${kind}:${b64Json(payload)}${OSC_END}`);
|
|
77
|
+
}
|
|
78
|
+
function writeLine(text = '') {
|
|
79
|
+
process.stdout.write(text + '\n');
|
|
80
|
+
}
|
|
81
|
+
function prompt() {
|
|
82
|
+
process.stdout.write('› ');
|
|
83
|
+
}
|
|
84
|
+
function errorMessage(err) {
|
|
85
|
+
if (err instanceof Error)
|
|
86
|
+
return err.message;
|
|
87
|
+
return String(err);
|
|
88
|
+
}
|
|
89
|
+
function boolEnv(name, fallback) {
|
|
90
|
+
const raw = process.env[name]?.trim().toLowerCase();
|
|
91
|
+
if (raw === undefined || raw === '')
|
|
92
|
+
return fallback;
|
|
93
|
+
return raw === '1' || raw === 'true' || raw === 'yes' || raw === 'on';
|
|
94
|
+
}
|
|
95
|
+
function splitEnvArgs(value) {
|
|
96
|
+
return (value || '').split(/\s+/).map(s => s.trim()).filter(Boolean);
|
|
97
|
+
}
|
|
98
|
+
/** Strip OSC/CSI/escape sequences so the captured stdout is plain text. */
|
|
99
|
+
function stripAnsi(text) {
|
|
100
|
+
return text
|
|
101
|
+
.replace(/\x1b\][\s\S]*?(?:\x07|\x1b\\)/g, '')
|
|
102
|
+
.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, '')
|
|
103
|
+
.replace(/\x1b[@-Z\\-_]/g, '');
|
|
104
|
+
}
|
|
105
|
+
/** Ensure ~/.local/bin (where mircli installs) is on PATH for the child. */
|
|
106
|
+
function localPathEnv() {
|
|
107
|
+
const existing = process.env.PATH || '';
|
|
108
|
+
const localBin = join(homedir(), '.local', 'bin');
|
|
109
|
+
return existing.split(':').includes(localBin) ? existing : `${localBin}:${existing}`;
|
|
110
|
+
}
|
|
111
|
+
function runtimeSystemPrompt() {
|
|
112
|
+
const paths = getMiraRuntimePaths();
|
|
113
|
+
const lines = [
|
|
114
|
+
'You are invoked by BotMux inside the user machine through the local Mir CLI.',
|
|
115
|
+
`Actual local runtime cwd: ${paths.cwd}`,
|
|
116
|
+
`Actual local home: ${paths.home}`,
|
|
117
|
+
];
|
|
118
|
+
if (paths.logicalCwd && paths.logicalCwd !== paths.cwd) {
|
|
119
|
+
lines.push(`Local tool path alias for the same cwd: ${paths.logicalCwd}`, 'If a local tool reports the physical cwd is outside allowed roots, retry the same operation with this local tool path alias.');
|
|
120
|
+
}
|
|
121
|
+
lines.push(`Local tool allowed path candidates: ${paths.allowedPathCandidates.join(', ')}`, 'BotMux invokes you in a non-interactive message bridge. NEVER emit ```ask_user_call``` or ```ask_user_form_call``` fences for local path, permission, or environment issues.', 'If the target path is not obvious, use the actual local runtime cwd above. Do not ask the user to choose a path when this cwd is provided.', 'This BotMux session is not running in /home/mira/.session. Do not report /home/mira/.session as the working directory for this session.', 'Local filesystem, shell/bash, git, and BotMux CLI tools are available through the Mir CLI local tool bridge for this process.', 'When the user asks to create, read, list, edit, or inspect local files, run bash/shell commands, inspect git, or operate BotMux, you MUST call the local tools against the actual local cwd above.', 'Prefer local bash commands that operate from the current cwd with relative paths first; if an absolute physical cwd fails, retry the same operation from the current cwd and then with the local tool path alias before reporting failure.', 'Do not say the local MCP bridge is disconnected, that only a cloud sandbox is available, or that the operation is cancelled unless a concrete local tool invocation actually returned that error.', 'If a local tool invocation fails, report the exact failed operation and error concisely, then stop or ask for the missing input.');
|
|
122
|
+
return [
|
|
123
|
+
...lines,
|
|
124
|
+
].join('\n');
|
|
125
|
+
}
|
|
126
|
+
function decodeXmlEntities(text) {
|
|
127
|
+
return text
|
|
128
|
+
.replace(/</g, '<')
|
|
129
|
+
.replace(/>/g, '>')
|
|
130
|
+
.replace(/"/g, '"')
|
|
131
|
+
.replace(/'/g, "'")
|
|
132
|
+
.replace(/&/g, '&');
|
|
133
|
+
}
|
|
134
|
+
function extractTaggedBlock(content, tag) {
|
|
135
|
+
const open = new RegExp(`<${tag}\\b[^>]*>`, 'i').exec(content);
|
|
136
|
+
if (!open)
|
|
137
|
+
return undefined;
|
|
138
|
+
const start = open.index + open[0].length;
|
|
139
|
+
const close = content.toLowerCase().indexOf(`</${tag}>`, start);
|
|
140
|
+
if (close < 0)
|
|
141
|
+
return undefined;
|
|
142
|
+
return content.slice(start, close).trim();
|
|
143
|
+
}
|
|
144
|
+
function extractOpeningTagAttributes(content, tag) {
|
|
145
|
+
const open = new RegExp(`<${tag}\\b([^>]*)>`, 'i').exec(content);
|
|
146
|
+
return open ? open[1] : undefined;
|
|
147
|
+
}
|
|
148
|
+
function extractXmlAttribute(attrs, name) {
|
|
149
|
+
const pattern = new RegExp(`\\b${name}="([^"]*)"`, 'i');
|
|
150
|
+
const match = pattern.exec(attrs);
|
|
151
|
+
return match ? decodeXmlEntities(match[1]) : undefined;
|
|
152
|
+
}
|
|
153
|
+
function summarizeAttachments(content) {
|
|
154
|
+
const block = extractTaggedBlock(content, 'attachments');
|
|
155
|
+
if (!block)
|
|
156
|
+
return [];
|
|
157
|
+
const out = [];
|
|
158
|
+
const itemPattern = /<(image|file)\b([^>]*)\/?>/gi;
|
|
159
|
+
for (const match of block.matchAll(itemPattern)) {
|
|
160
|
+
const type = match[1].toLowerCase();
|
|
161
|
+
const attrs = match[2];
|
|
162
|
+
const n = extractXmlAttribute(attrs, 'n');
|
|
163
|
+
const path = extractXmlAttribute(attrs, 'path');
|
|
164
|
+
const name = extractXmlAttribute(attrs, 'name');
|
|
165
|
+
if (!path)
|
|
166
|
+
continue;
|
|
167
|
+
const label = type === 'image' ? 'image' : 'file';
|
|
168
|
+
const index = n ? ` ${n}` : '';
|
|
169
|
+
const suffix = name ? ` (${name})` : '';
|
|
170
|
+
out.push(`${label}${index}: ${path}${suffix}`);
|
|
171
|
+
}
|
|
172
|
+
return out;
|
|
173
|
+
}
|
|
174
|
+
function summarizeRole(content) {
|
|
175
|
+
const block = extractTaggedBlock(content, 'role');
|
|
176
|
+
if (!block)
|
|
177
|
+
return undefined;
|
|
178
|
+
const role = decodeXmlEntities(block).trim();
|
|
179
|
+
if (!role)
|
|
180
|
+
return undefined;
|
|
181
|
+
return ['Role context from BotMux:', role].join('\n');
|
|
182
|
+
}
|
|
183
|
+
function summarizeBotmuxRouting(content) {
|
|
184
|
+
const block = extractTaggedBlock(content, 'botmux_routing');
|
|
185
|
+
if (!block)
|
|
186
|
+
return undefined;
|
|
187
|
+
const routing = decodeXmlEntities(block).trim();
|
|
188
|
+
if (!routing)
|
|
189
|
+
return undefined;
|
|
190
|
+
return ['BotMux routing instructions:', routing].join('\n');
|
|
191
|
+
}
|
|
192
|
+
function summarizeAvailableBots(content) {
|
|
193
|
+
const block = extractTaggedBlock(content, 'available_bots');
|
|
194
|
+
if (!block)
|
|
195
|
+
return undefined;
|
|
196
|
+
const lines = [];
|
|
197
|
+
const attrs = extractOpeningTagAttributes(content, 'available_bots') || '';
|
|
198
|
+
const hint = extractXmlAttribute(attrs, 'hint');
|
|
199
|
+
if (hint)
|
|
200
|
+
lines.push(hint);
|
|
201
|
+
const botPattern = /<bot\b([^>]*)\/?>/gi;
|
|
202
|
+
for (const match of block.matchAll(botPattern)) {
|
|
203
|
+
const name = extractXmlAttribute(match[1], 'name');
|
|
204
|
+
const openId = extractXmlAttribute(match[1], 'open_id');
|
|
205
|
+
if (!name && !openId)
|
|
206
|
+
continue;
|
|
207
|
+
lines.push(`- ${name || '(unnamed bot)'}: ${openId || '(missing open_id)'}`);
|
|
208
|
+
}
|
|
209
|
+
if (lines.length === 0)
|
|
210
|
+
return undefined;
|
|
211
|
+
return [
|
|
212
|
+
'Available BotMux bots for handoff:',
|
|
213
|
+
...lines,
|
|
214
|
+
'To hand work off to one of these bots, use local bash to run: botmux send --mention <open_id> "message".',
|
|
215
|
+
].join('\n');
|
|
216
|
+
}
|
|
217
|
+
function summarizeMentions(content) {
|
|
218
|
+
const block = extractTaggedBlock(content, 'mentions');
|
|
219
|
+
if (!block)
|
|
220
|
+
return undefined;
|
|
221
|
+
const mentions = [];
|
|
222
|
+
const mentionPattern = /<mention\b([^>]*)\/?>/gi;
|
|
223
|
+
for (const match of block.matchAll(mentionPattern)) {
|
|
224
|
+
const name = extractXmlAttribute(match[1], 'name');
|
|
225
|
+
const openId = extractXmlAttribute(match[1], 'open_id');
|
|
226
|
+
if (!name && !openId)
|
|
227
|
+
continue;
|
|
228
|
+
mentions.push(`- ${name || '(unnamed mention)'}${openId ? `: ${openId}` : ''}`);
|
|
229
|
+
}
|
|
230
|
+
if (mentions.length === 0)
|
|
231
|
+
return undefined;
|
|
232
|
+
return ['Mentions in this BotMux turn:', ...mentions].join('\n');
|
|
233
|
+
}
|
|
234
|
+
function summarizeSender(content) {
|
|
235
|
+
const attrs = extractOpeningTagAttributes(content, 'sender');
|
|
236
|
+
if (attrs === undefined)
|
|
237
|
+
return undefined;
|
|
238
|
+
const type = extractXmlAttribute(attrs, 'type');
|
|
239
|
+
const name = extractXmlAttribute(attrs, 'name');
|
|
240
|
+
const openId = extractXmlAttribute(attrs, 'open_id');
|
|
241
|
+
if (!name && !openId && !type)
|
|
242
|
+
return undefined;
|
|
243
|
+
const who = `${name || '(unknown)'}${openId ? ` (${openId})` : ''}${type ? ` [${type}]` : ''}`;
|
|
244
|
+
const lines = [`Message sender: ${who}`];
|
|
245
|
+
if (type === 'bot') {
|
|
246
|
+
lines.push('The sender is another bot — your reply is delivered back to it automatically; do not worry about @-mentioning to wake it.');
|
|
247
|
+
}
|
|
248
|
+
return lines.join('\n');
|
|
249
|
+
}
|
|
250
|
+
function normalizeMircliPrompt(content) {
|
|
251
|
+
const userMessage = extractTaggedBlock(content, 'user_message');
|
|
252
|
+
if (!userMessage)
|
|
253
|
+
return content;
|
|
254
|
+
const context = [
|
|
255
|
+
summarizeBotmuxRouting(content),
|
|
256
|
+
summarizeRole(content),
|
|
257
|
+
summarizeSender(content),
|
|
258
|
+
summarizeMentions(content),
|
|
259
|
+
summarizeAvailableBots(content),
|
|
260
|
+
].filter((section) => Boolean(section));
|
|
261
|
+
const sections = [];
|
|
262
|
+
if (context.length > 0) {
|
|
263
|
+
sections.push(['BotMux context:', ...context].join('\n\n'));
|
|
264
|
+
}
|
|
265
|
+
sections.push(['User request:', decodeXmlEntities(userMessage)].join('\n'));
|
|
266
|
+
const attachments = summarizeAttachments(content);
|
|
267
|
+
if (attachments.length > 0) {
|
|
268
|
+
sections.push([
|
|
269
|
+
'Attachments available on the local filesystem:',
|
|
270
|
+
...attachments.map(item => `- ${item}`),
|
|
271
|
+
].join('\n'));
|
|
272
|
+
}
|
|
273
|
+
return sections.join('\n\n');
|
|
274
|
+
}
|
|
275
|
+
class MircliClient {
|
|
276
|
+
sessionId;
|
|
277
|
+
mircliBin;
|
|
278
|
+
constructor(args) {
|
|
279
|
+
this.sessionId = args.sessionId;
|
|
280
|
+
this.mircliBin = args.mircliBin;
|
|
281
|
+
}
|
|
282
|
+
async ensureSession() {
|
|
283
|
+
emitMarker('thread', { threadId: this.sessionId });
|
|
284
|
+
return this.sessionId;
|
|
285
|
+
}
|
|
286
|
+
async complete(content) {
|
|
287
|
+
const startedAt = Date.now();
|
|
288
|
+
// Unwrap botmux's envelope (extract <user_message>, summarize routing/role/
|
|
289
|
+
// mentions/available_bots) before handing the prompt to mircli.
|
|
290
|
+
const finalText = await this.runMircli(normalizeMircliPrompt(content));
|
|
291
|
+
return { finalText: finalText.trim(), turnId: `mircli-${startedAt}` };
|
|
292
|
+
}
|
|
293
|
+
runMircli(content) {
|
|
294
|
+
return new Promise((resolve, reject) => {
|
|
295
|
+
// Precedence: adapter cliPathOverride (--mircli-bin) > MIRCLI_BIN env > PATH.
|
|
296
|
+
const bin = this.mircliBin || process.env.MIRCLI_BIN || 'mircli';
|
|
297
|
+
// Patch the local MCP bridge sandbox so writes to this workspace aren't
|
|
298
|
+
// blocked (workspace may sit outside the default /root,/tmp allow-list).
|
|
299
|
+
if (boolEnv('MIRCLI_PATCH_MIRAMCP_CONFIG', true)) {
|
|
300
|
+
try {
|
|
301
|
+
ensureMiramcpSandboxAllows(getMiraRuntimePaths().allowedPathCandidates);
|
|
302
|
+
}
|
|
303
|
+
catch {
|
|
304
|
+
// Best-effort: the system prompt still gives physical + logical cwd
|
|
305
|
+
// aliases so the model can recover if the bridge hasn't reloaded.
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
const args = splitEnvArgs(process.env.MIRCLI_EXTRA_ARGS);
|
|
309
|
+
if (boolEnv('MIRCLI_LEAN', true) && !args.includes('--lean') && !args.includes('--ultra')) {
|
|
310
|
+
args.push('--lean');
|
|
311
|
+
}
|
|
312
|
+
args.push('-p', content, '--output-format', 'text', '--session-id', this.sessionId, '--query-timeout', process.env.MIRCLI_QUERY_TIMEOUT || DEFAULT_QUERY_TIMEOUT, '--append-system-prompt', runtimeSystemPrompt());
|
|
313
|
+
if (boolEnv('MIRCLI_YOLO', true))
|
|
314
|
+
args.push('-y');
|
|
315
|
+
// Optional reliability lever: hard-block the backend's cloud-sandbox
|
|
316
|
+
// builtins so the model is pushed onto mircli's local tools.
|
|
317
|
+
if (boolEnv('MIRCLI_DISALLOW_BUILTIN', false)) {
|
|
318
|
+
for (const tool of BUILTIN_SANDBOX_TOOLS)
|
|
319
|
+
args.push('--disallowed-tool', tool);
|
|
320
|
+
}
|
|
321
|
+
let closed = false;
|
|
322
|
+
let timedOut = false;
|
|
323
|
+
const child = spawn(bin, args, {
|
|
324
|
+
cwd: process.cwd(),
|
|
325
|
+
env: { ...process.env, PATH: localPathEnv() },
|
|
326
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
327
|
+
});
|
|
328
|
+
let stdout = '';
|
|
329
|
+
let stderr = '';
|
|
330
|
+
const timeoutMs = Number(process.env.MIRCLI_RUNNER_TIMEOUT_MS || DEFAULT_RUNNER_TIMEOUT_MS);
|
|
331
|
+
const timer = Number.isFinite(timeoutMs) && timeoutMs > 0
|
|
332
|
+
? setTimeout(() => {
|
|
333
|
+
timedOut = true;
|
|
334
|
+
child.kill('SIGTERM');
|
|
335
|
+
setTimeout(() => { if (!closed)
|
|
336
|
+
child.kill('SIGKILL'); }, 5_000).unref();
|
|
337
|
+
}, timeoutMs)
|
|
338
|
+
: undefined;
|
|
339
|
+
timer?.unref();
|
|
340
|
+
child.stdout.on('data', chunk => { stdout += chunk.toString('utf8'); });
|
|
341
|
+
child.stderr.on('data', chunk => { stderr += chunk.toString('utf8'); });
|
|
342
|
+
child.on('error', err => {
|
|
343
|
+
if (timer)
|
|
344
|
+
clearTimeout(timer);
|
|
345
|
+
reject(new Error(`Failed to start mircli (${bin}): ${errorMessage(err)}. Install mircli (curl -fsSL https://tosv.byted.org/obj/juren-cn/mircli/install.sh | bash) or set MIRCLI_BIN.`));
|
|
346
|
+
});
|
|
347
|
+
child.on('close', (code, signal) => {
|
|
348
|
+
closed = true;
|
|
349
|
+
if (timer)
|
|
350
|
+
clearTimeout(timer);
|
|
351
|
+
const cleanStdout = stripAnsi(stdout).trim();
|
|
352
|
+
const cleanStderr = stripAnsi(stderr).trim();
|
|
353
|
+
if (code === 0) {
|
|
354
|
+
resolve(cleanStdout || cleanStderr);
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
const detail = (cleanStderr || cleanStdout || `signal ${signal ?? 'unknown'}`).slice(0, 1200);
|
|
358
|
+
const suffix = timedOut ? ` after ${timeoutMs}ms` : '';
|
|
359
|
+
reject(new Error(`mircli exited with code ${code ?? 'null'}${suffix}: ${detail}`));
|
|
360
|
+
});
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
let args;
|
|
365
|
+
try {
|
|
366
|
+
args = parseArgs(process.argv.slice(2));
|
|
367
|
+
}
|
|
368
|
+
catch (err) {
|
|
369
|
+
console.error(`Mir runner: ${errorMessage(err)}`);
|
|
370
|
+
process.exit(2);
|
|
371
|
+
}
|
|
372
|
+
const client = new MircliClient(args);
|
|
373
|
+
const queue = [];
|
|
374
|
+
let inputBuffer = '';
|
|
375
|
+
let processing = false;
|
|
376
|
+
async function runTurn(content) {
|
|
377
|
+
const startedAtMs = Date.now();
|
|
378
|
+
writeLine();
|
|
379
|
+
writeLine('[user]');
|
|
380
|
+
writeLine(content);
|
|
381
|
+
writeLine();
|
|
382
|
+
writeLine('[mir] thinking...');
|
|
383
|
+
const result = await client.complete(content);
|
|
384
|
+
const completedAtMs = Date.now();
|
|
385
|
+
if (result.finalText) {
|
|
386
|
+
writeLine();
|
|
387
|
+
writeLine(result.finalText);
|
|
388
|
+
emitMarker('final', {
|
|
389
|
+
turnId: result.turnId,
|
|
390
|
+
content: result.finalText,
|
|
391
|
+
startedAtMs,
|
|
392
|
+
completedAtMs,
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
writeLine('[mir] completed without text output.');
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
async function drainQueue() {
|
|
400
|
+
if (processing)
|
|
401
|
+
return;
|
|
402
|
+
processing = true;
|
|
403
|
+
try {
|
|
404
|
+
while (queue.length > 0) {
|
|
405
|
+
const next = queue.shift();
|
|
406
|
+
try {
|
|
407
|
+
await runTurn(next);
|
|
408
|
+
}
|
|
409
|
+
catch (err) {
|
|
410
|
+
const now = Date.now();
|
|
411
|
+
const message = `Mir runner error: ${errorMessage(err)}`;
|
|
412
|
+
writeLine(message);
|
|
413
|
+
emitMarker('final', {
|
|
414
|
+
turnId: `mir-error-${now}`,
|
|
415
|
+
content: message,
|
|
416
|
+
startedAtMs: now,
|
|
417
|
+
completedAtMs: now,
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
prompt();
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
finally {
|
|
424
|
+
processing = false;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
function enqueueLine(line) {
|
|
428
|
+
const trimmed = line.trim();
|
|
429
|
+
if (!trimmed)
|
|
430
|
+
return;
|
|
431
|
+
if (trimmed.startsWith(MARKER_PREFIX)) {
|
|
432
|
+
const encoded = trimmed.slice(MARKER_PREFIX.length);
|
|
433
|
+
try {
|
|
434
|
+
const decoded = JSON.parse(Buffer.from(encoded, 'base64').toString('utf8'));
|
|
435
|
+
if (decoded?.type === 'message' && typeof decoded.content === 'string') {
|
|
436
|
+
queue.push(decoded.content);
|
|
437
|
+
void drainQueue();
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
catch (err) {
|
|
441
|
+
writeLine(`[mir] bad botmux input: ${errorMessage(err)}`);
|
|
442
|
+
}
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
queue.push(line);
|
|
446
|
+
void drainQueue();
|
|
447
|
+
}
|
|
448
|
+
function handleInput(data) {
|
|
449
|
+
const text = data.toString('utf8');
|
|
450
|
+
for (const ch of text) {
|
|
451
|
+
const code = ch.charCodeAt(0);
|
|
452
|
+
if (code === 3) { // Ctrl-C
|
|
453
|
+
process.exit(130);
|
|
454
|
+
}
|
|
455
|
+
else if (ch === '\r' || ch === '\n') {
|
|
456
|
+
const line = inputBuffer;
|
|
457
|
+
inputBuffer = '';
|
|
458
|
+
enqueueLine(line);
|
|
459
|
+
}
|
|
460
|
+
else if (code === 127 || code === 8) { // DEL / Backspace
|
|
461
|
+
inputBuffer = inputBuffer.slice(0, -1);
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
inputBuffer += ch;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
async function main() {
|
|
469
|
+
await client.ensureSession();
|
|
470
|
+
writeLine('Mir CLI runner ready.');
|
|
471
|
+
if (process.stdin.isTTY)
|
|
472
|
+
process.stdin.setRawMode(true);
|
|
473
|
+
process.stdin.resume();
|
|
474
|
+
process.stdin.on('data', handleInput);
|
|
475
|
+
prompt();
|
|
476
|
+
}
|
|
477
|
+
process.on('SIGTERM', () => { process.exit(0); });
|
|
478
|
+
main().catch(err => {
|
|
479
|
+
console.error(`Mir runner failed: ${errorMessage(err)}`);
|
|
480
|
+
process.exit(1);
|
|
481
|
+
});
|
|
482
|
+
//# sourceMappingURL=mir-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mir-runner.js","sourceRoot":"","sources":["../src/mir-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,11 +54,11 @@ export declare function createTask(params: {
|
|
|
54
54
|
times: number | null;
|
|
55
55
|
completed: number;
|
|
56
56
|
};
|
|
57
|
-
deliver?: 'origin' | 'local';
|
|
57
|
+
deliver?: 'origin' | 'local' | 'new-topic';
|
|
58
58
|
}): ScheduledTask;
|
|
59
59
|
export declare function getTask(id: string): ScheduledTask | undefined;
|
|
60
60
|
export declare function removeTask(id: string): boolean;
|
|
61
|
-
export declare function updateTask(id: string, updates: Partial<Pick<ScheduledTask, 'enabled' | 'lastRunAt' | 'nextRunAt' | 'lastStatus' | 'lastError' | 'lastDeliveryError' | 'repeat' | 'rootMessageId' | 'chatType'>>): void;
|
|
61
|
+
export declare function updateTask(id: string, updates: Partial<Pick<ScheduledTask, 'enabled' | 'lastRunAt' | 'nextRunAt' | 'lastStatus' | 'lastError' | 'lastDeliveryError' | 'repeat' | 'rootMessageId' | 'chatType' | 'deliver'>>): void;
|
|
62
62
|
/**
|
|
63
63
|
* Record a run outcome and auto-manage repeat counter. If the task has a
|
|
64
64
|
* finite repeat count and we've hit it, the task is removed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-store.d.ts","sourceRoot":"","sources":["../../src/services/schedule-store.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIjE;;;;;;;GAOG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBACvB,MAAM,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;KAC3B;CAUF;AA0ED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAuGD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"schedule-store.d.ts","sourceRoot":"","sources":["../../src/services/schedule-store.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIjE;;;;;;;GAOG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBACvB,MAAM,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;KAC3B;CAUF;AA0ED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAuGD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;CAC5C,GAAG,aAAa,CAmDhB;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAG7D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAQ9C;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EACjC,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,mBAAmB,GAAG,QAAQ,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,CAC/I,CAAC,GACD,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CA6BlG;AAED,wBAAgB,SAAS,IAAI,aAAa,EAAE,CAG3C;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOvE;AAcD,wBAAgB,yBAAyB,IAAI,IAAI,CAiDhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-config-editor.d.ts","sourceRoot":"","sources":["../../src/setup/bot-config-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"bot-config-editor.d.ts","sourceRoot":"","sources":["../../src/setup/bot-config-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export const CLI_ID_CHOICES = {
|
|
|
17
17
|
'16': 'copilot',
|
|
18
18
|
'17': 'oh-my-pi',
|
|
19
19
|
'18': 'relay',
|
|
20
|
+
'19': 'mir',
|
|
20
21
|
};
|
|
21
22
|
const VALID_CLI_IDS = new Set(Object.values(CLI_ID_CHOICES));
|
|
22
23
|
/**
|
|
@@ -43,6 +44,7 @@ const CLI_DISPLAY_LABELS = {
|
|
|
43
44
|
'copilot': 'Copilot',
|
|
44
45
|
'oh-my-pi': 'Oh My Pi',
|
|
45
46
|
'relay': 'Relay',
|
|
47
|
+
'mir': 'Mir CLI',
|
|
46
48
|
};
|
|
47
49
|
/**
|
|
48
50
|
* 有序 CLI 选项 (id + 展示名), 顺序与 setup 交互菜单 (CLI_ID_CHOICES 序号)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-config-editor.js","sourceRoot":"","sources":["../../src/setup/bot-config-editor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"bot-config-editor.js","sourceRoot":"","sources":["../../src/setup/bot-config-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-selection.d.ts","sourceRoot":"","sources":["../../src/setup/cli-selection.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"cli-selection.d.ts","sourceRoot":"","sources":["../../src/setup/cli-selection.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA+DD,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,iDAAiD;AACjD,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAOzD,CAAC;AAwBF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,cAAc,CAqBzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,eAAe,CAe7D,CAAC;AAMF,qCAAqC;AACrC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3E;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAM7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAQrE;AAID,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CASvE;AAED,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEtE;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIzE;AAED,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAmCD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,CAGvF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAC9B,WAAW,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAiB,EAC/C,IAAI,GAAE,oBAAyB,GAC9B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAMjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,MAAM,CAQR"}
|