@fnndsc/brasa 0.9.2 → 0.10.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/dist/buildinfo.json +1 -0
- package/dist/builtins/argumentTokens.d.ts +18 -0
- package/dist/builtins/argumentTokens.js +58 -0
- package/dist/builtins/argumentTokens.js.map +1 -0
- package/dist/builtins/executable.d.ts +3 -7
- package/dist/builtins/executable.js +32 -29
- package/dist/builtins/executable.js.map +1 -1
- package/dist/builtins/feedCreation.d.ts +23 -0
- package/dist/builtins/feedCreation.js +45 -0
- package/dist/builtins/feedCreation.js.map +1 -0
- package/dist/builtins/fs/cat.args.d.ts +36 -0
- package/dist/builtins/fs/cat.args.js +63 -0
- package/dist/builtins/fs/cat.args.js.map +1 -0
- package/dist/builtins/fs/cat.d.ts +2 -2
- package/dist/builtins/fs/cat.js +222 -101
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/cd.js +41 -5
- package/dist/builtins/fs/cd.js.map +1 -1
- package/dist/builtins/fs/cp.js +3 -2
- package/dist/builtins/fs/cp.js.map +1 -1
- package/dist/builtins/fs/download.d.ts +1 -1
- package/dist/builtins/fs/download.js +52 -13
- package/dist/builtins/fs/download.js.map +1 -1
- package/dist/builtins/fs/du.js +15 -1
- package/dist/builtins/fs/du.js.map +1 -1
- package/dist/builtins/fs/ls.js +10 -1
- package/dist/builtins/fs/ls.js.map +1 -1
- package/dist/builtins/fs/mv.js +7 -3
- package/dist/builtins/fs/mv.js.map +1 -1
- package/dist/builtins/fs/pull.args.d.ts +14 -1
- package/dist/builtins/fs/pull.args.js +72 -9
- package/dist/builtins/fs/pull.args.js.map +1 -1
- package/dist/builtins/fs/pull.d.ts +1 -0
- package/dist/builtins/fs/pull.js +191 -259
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/fs/rm.js +4 -0
- package/dist/builtins/fs/rm.js.map +1 -1
- package/dist/builtins/fs/tree.js +7 -3
- package/dist/builtins/fs/tree.js.map +1 -1
- package/dist/builtins/fs/upload.js +29 -2
- package/dist/builtins/fs/upload.js.map +1 -1
- package/dist/builtins/help.d.ts +7 -0
- package/dist/builtins/help.js +144 -36
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/index.d.ts +1 -0
- package/dist/builtins/index.js +1 -0
- package/dist/builtins/index.js.map +1 -1
- package/dist/builtins/net/cubepath.js +1 -2
- package/dist/builtins/net/cubepath.js.map +1 -1
- package/dist/builtins/net/pacs.d.ts +1 -0
- package/dist/builtins/net/pacs.js +5 -1
- package/dist/builtins/net/pacs.js.map +1 -1
- package/dist/builtins/net/pacsUtils.d.ts +4 -23
- package/dist/builtins/net/pacsUtils.js +11 -32
- package/dist/builtins/net/pacsUtils.js.map +1 -1
- package/dist/builtins/net/query.js +4 -1
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/net/status.d.ts +14 -0
- package/dist/builtins/net/status.js +210 -0
- package/dist/builtins/net/status.js.map +1 -0
- package/dist/builtins/pluginExecute.d.ts +3 -2
- package/dist/builtins/pluginExecute.js +41 -70
- package/dist/builtins/pluginExecute.js.map +1 -1
- package/dist/builtins/pluginSelector.d.ts +15 -0
- package/dist/builtins/pluginSelector.js +21 -0
- package/dist/builtins/pluginSelector.js.map +1 -0
- package/dist/builtins/proc.js +106 -4
- package/dist/builtins/proc.js.map +1 -1
- package/dist/builtins/res/compute.js +8 -3
- package/dist/builtins/res/compute.js.map +1 -1
- package/dist/builtins/res/feed.js +3 -3
- package/dist/builtins/res/feed.js.map +1 -1
- package/dist/builtins/res/files.js +2 -2
- package/dist/builtins/res/files.js.map +1 -1
- package/dist/builtins/res/group.d.ts +1 -1
- package/dist/builtins/res/group.js +124 -7
- package/dist/builtins/res/group.js.map +1 -1
- package/dist/builtins/res/pipeline.args.d.ts +4 -0
- package/dist/builtins/res/pipeline.args.js +63 -12
- package/dist/builtins/res/pipeline.args.js.map +1 -1
- package/dist/builtins/res/pipeline.d.ts +3 -1
- package/dist/builtins/res/pipeline.js +155 -60
- package/dist/builtins/res/pipeline.js.map +1 -1
- package/dist/builtins/res/pipeline.manifest.d.ts +15 -0
- package/dist/builtins/res/pipeline.manifest.js +93 -0
- package/dist/builtins/res/pipeline.manifest.js.map +1 -0
- package/dist/builtins/res/plugin.js +16 -9
- package/dist/builtins/res/plugin.js.map +1 -1
- package/dist/builtins/res/plugininstance.js +2 -2
- package/dist/builtins/res/plugininstance.js.map +1 -1
- package/dist/builtins/res/pluginmeta.js +2 -2
- package/dist/builtins/res/pluginmeta.js.map +1 -1
- package/dist/builtins/res/tag.js +2 -2
- package/dist/builtins/res/tag.js.map +1 -1
- package/dist/builtins/res/user.d.ts +8 -0
- package/dist/builtins/res/user.js +87 -0
- package/dist/builtins/res/user.js.map +1 -0
- package/dist/builtins/res/workflow.js +2 -2
- package/dist/builtins/res/workflow.js.map +1 -1
- package/dist/builtins/store.js +24 -3
- package/dist/builtins/store.js.map +1 -1
- package/dist/builtins/sys/fortune.d.ts +9 -0
- package/dist/builtins/sys/fortune.js +16 -1
- package/dist/builtins/sys/fortune.js.map +1 -1
- package/dist/builtins/sys/whoami.d.ts +13 -1
- package/dist/builtins/sys/whoami.js +47 -2
- package/dist/builtins/sys/whoami.js.map +1 -1
- package/dist/builtins/utils.d.ts +25 -1
- package/dist/builtins/utils.js +30 -3
- package/dist/builtins/utils.js.map +1 -1
- package/dist/builtins/wildcard.d.ts +31 -0
- package/dist/builtins/wildcard.js +114 -51
- package/dist/builtins/wildcard.js.map +1 -1
- package/dist/command-keys.js +2 -1
- package/dist/command-keys.js.map +1 -1
- package/dist/core/cancellation.d.ts +28 -0
- package/dist/core/cancellation.js +70 -0
- package/dist/core/cancellation.js.map +1 -0
- package/dist/core/dispatch.d.ts +1 -8
- package/dist/core/dispatch.js +82 -82
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/elevation.d.ts +35 -0
- package/dist/core/elevation.js +77 -0
- package/dist/core/elevation.js.map +1 -0
- package/dist/core/engine.d.ts +12 -0
- package/dist/core/engine.js +35 -8
- package/dist/core/engine.js.map +1 -1
- package/dist/core/preprocess.d.ts +11 -4
- package/dist/core/preprocess.js +43 -10
- package/dist/core/preprocess.js.map +1 -1
- package/dist/core/progress.d.ts +15 -5
- package/dist/core/progress.js +14 -0
- package/dist/core/progress.js.map +1 -1
- package/dist/core/promptContext.d.ts +3 -5
- package/dist/core/promptContext.js +9 -2
- package/dist/core/promptContext.js.map +1 -1
- package/dist/core/sink.d.ts +9 -0
- package/dist/core/sink.js +23 -3
- package/dist/core/sink.js.map +1 -1
- package/dist/core/surface.d.ts +14 -0
- package/dist/core/surface.js +5 -0
- package/dist/core/surface.js.map +1 -1
- package/dist/core/version.d.ts +34 -0
- package/dist/core/version.js +51 -0
- package/dist/core/version.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/completer/index.js +41 -2
- package/dist/lib/completer/index.js.map +1 -1
- package/dist/lib/parser.d.ts +75 -2
- package/dist/lib/parser.js +158 -15
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/vfs/listing.d.ts +22 -0
- package/dist/lib/vfs/listing.js +14 -0
- package/dist/lib/vfs/listing.js.map +1 -0
- package/dist/lib/vfs/providers/binEntry.d.ts +20 -0
- package/dist/lib/vfs/providers/binEntry.js +47 -0
- package/dist/lib/vfs/providers/binEntry.js.map +1 -0
- package/dist/lib/vfs/providers/static.js +1 -0
- package/dist/lib/vfs/providers/static.js.map +1 -1
- package/dist/lib/vfs/providers/static_content.js +7 -38
- package/dist/lib/vfs/providers/static_content.js.map +1 -1
- package/dist/lib/vfs/vfs.d.ts +7 -0
- package/dist/lib/vfs/vfs.js +28 -2
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/dist/session/index.d.ts +18 -0
- package/dist/session/index.js +29 -1
- package/dist/session/index.js.map +1 -1
- package/package.json +10 -5
package/dist/core/dispatch.js
CHANGED
|
@@ -14,19 +14,19 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { writeFileSync, appendFileSync } from 'fs';
|
|
16
16
|
import chalk from 'chalk';
|
|
17
|
-
import {
|
|
18
|
-
import { builtin_cd, builtin_ls, builtin_pwd, builtin_connect, builtin_logout, builtin_cat, builtin_cp, builtin_mv, builtin_upload, builtin_pacs, builtin_pipeline, builtin_pull, builtin_query, builtin_cubepath, builtin_rm, builtin_touch, builtin_mkdir, builtin_plugin, builtin_feed, builtin_compute, builtin_tag, builtin_group, builtin_pluginmeta, builtin_plugininstance, builtin_workflow, builtin_download, builtin_edit, builtin_files, builtin_links, builtin_dirs, builtin_context, builtin_parametersofplugin, builtin_physicalmode, builtin_timing, builtin_whoami, builtin_whereami, builtin_version, builtin_fortune, builtin_date, builtin_cal, builtin_debug, builtin_help, builtin_tree, builtin_du, builtin_store, error_stripDebugPrefix } from '../builtins/index.js';
|
|
17
|
+
import { builtin_cd, builtin_ls, builtin_pwd, builtin_connect, builtin_logout, builtin_cat, builtin_cp, builtin_mv, builtin_upload, builtin_pacs, builtin_pipeline, builtin_pull, builtin_query, builtin_cubepath, builtin_rm, builtin_touch, builtin_mkdir, builtin_plugin, builtin_feed, builtin_compute, builtin_tag, builtin_group, builtin_user, builtin_pluginmeta, builtin_plugininstance, builtin_workflow, builtin_download, builtin_edit, builtin_files, builtin_links, builtin_dirs, builtin_context, builtin_parametersofplugin, builtin_physicalmode, builtin_timing, builtin_id, builtin_whoami, builtin_whereami, builtin_version, builtin_fortune, builtin_date, builtin_cal, builtin_debug, builtin_help, builtin_tree, builtin_du, builtin_store, error_stripDebugPrefix } from '../builtins/index.js';
|
|
19
18
|
import { builtin_executePlugin } from '../builtins/pluginExecute.js';
|
|
20
19
|
import { builtin_proc } from '../builtins/proc.js';
|
|
21
|
-
import {
|
|
20
|
+
import { shellWords_expand } from '../builtins/wildcard.js';
|
|
22
21
|
import { help_render, commandHelp_get, pipelineExecutableHelp_render, args_checkHasHelpFlag, } from '../builtins/help.js';
|
|
23
22
|
import { pluginExecutable_handle } from '../builtins/executable.js';
|
|
24
|
-
import { errorStack, Ok,
|
|
23
|
+
import { errorStack, Ok, envelope_error } from '@fnndsc/cumin';
|
|
25
24
|
import { envelopeHandler_wrap, envelope_deliver, sink_get, PipeCaptureSink, sinkScope_run } from './sink.js';
|
|
26
25
|
import { vfs } from '../lib/vfs/vfs.js';
|
|
27
|
-
import {
|
|
26
|
+
import { shellArguments_envRefsExpand, shellWords_tokenize, shellWords_values, } from '../lib/parser.js';
|
|
28
27
|
import { surface_get, capability_require } from './surface.js';
|
|
29
|
-
import {
|
|
28
|
+
import { sudoCommand_run } from './elevation.js';
|
|
29
|
+
import { redirectTarget_resolve, pathnameExpansion_isEligible, } from './preprocess.js';
|
|
30
30
|
import { chiliCommand_run, chiliCommand_exists, chiliDelegationNotice_build } from './chiliDelegate.js';
|
|
31
31
|
export { chiliCommand_run };
|
|
32
32
|
/**
|
|
@@ -51,31 +51,6 @@ async function unknownCommand_delegate(command, args) {
|
|
|
51
51
|
envelope_deliver(chiliEnvelope);
|
|
52
52
|
return chiliEnvelope;
|
|
53
53
|
}
|
|
54
|
-
/**
|
|
55
|
-
* Executes a shell command on the host system (shell escape with ! prefix).
|
|
56
|
-
*
|
|
57
|
-
* @param shellCommand - The command to execute on the host shell.
|
|
58
|
-
* @returns A Promise resolving to the command's exit code (1 on spawn failure).
|
|
59
|
-
*/
|
|
60
|
-
export async function shellCommand_execute(shellCommand) {
|
|
61
|
-
return new Promise((resolve) => {
|
|
62
|
-
const child = spawn(shellCommand, {
|
|
63
|
-
shell: true,
|
|
64
|
-
stdio: 'inherit',
|
|
65
|
-
env: process.env
|
|
66
|
-
});
|
|
67
|
-
child.on('close', (code) => {
|
|
68
|
-
if (code !== null && code !== 0) {
|
|
69
|
-
console.error(chalk.red(`Shell command exited with code ${code}`));
|
|
70
|
-
}
|
|
71
|
-
resolve(code ?? 0);
|
|
72
|
-
});
|
|
73
|
-
child.on('error', (err) => {
|
|
74
|
-
console.error(chalk.red(`Failed to execute shell command: ${err.message}`));
|
|
75
|
-
resolve(1);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
54
|
/**
|
|
80
55
|
* Builtins that have been converted to return envelopes, keyed by command
|
|
81
56
|
* name. Entries here are also present in COMMAND_HANDLERS in wrapped form;
|
|
@@ -91,6 +66,7 @@ export const ENVELOPE_HANDLERS = {
|
|
|
91
66
|
mkdir: builtin_mkdir,
|
|
92
67
|
touch: builtin_touch,
|
|
93
68
|
pwd: builtin_pwd,
|
|
69
|
+
id: builtin_id,
|
|
94
70
|
whoami: builtin_whoami,
|
|
95
71
|
whereami: builtin_whereami,
|
|
96
72
|
timing: builtin_timing,
|
|
@@ -116,6 +92,8 @@ export const ENVELOPE_HANDLERS = {
|
|
|
116
92
|
tags: builtin_tag,
|
|
117
93
|
group: builtin_group,
|
|
118
94
|
groups: builtin_group,
|
|
95
|
+
user: builtin_user,
|
|
96
|
+
users: builtin_user,
|
|
119
97
|
pluginmeta: builtin_pluginmeta,
|
|
120
98
|
pluginmetas: builtin_pluginmeta,
|
|
121
99
|
meta: builtin_pluginmeta,
|
|
@@ -173,6 +151,7 @@ export const COMMAND_HANDLERS = {
|
|
|
173
151
|
parametersofplugin: envelopeHandler_wrap(builtin_parametersofplugin),
|
|
174
152
|
physicalmode: envelopeHandler_wrap(builtin_physicalmode),
|
|
175
153
|
timing: envelopeHandler_wrap(builtin_timing),
|
|
154
|
+
id: envelopeHandler_wrap(builtin_id),
|
|
176
155
|
whoami: envelopeHandler_wrap(builtin_whoami),
|
|
177
156
|
whereami: envelopeHandler_wrap(builtin_whereami),
|
|
178
157
|
debug: envelopeHandler_wrap(builtin_debug),
|
|
@@ -224,7 +203,7 @@ export function command_timingMaybePrint(startTime, enabled) {
|
|
|
224
203
|
if (!enabled)
|
|
225
204
|
return;
|
|
226
205
|
const elapsed = performance.now() - startTime;
|
|
227
|
-
|
|
206
|
+
sink_get().data_write(`${chalk.gray(`[${elapsed.toFixed(2)}ms]`)}\n`);
|
|
228
207
|
}
|
|
229
208
|
/**
|
|
230
209
|
* Handles a pipeline name invoked directly as an executable from /bin.
|
|
@@ -233,6 +212,7 @@ export function command_timingMaybePrint(startTime, enabled) {
|
|
|
233
212
|
* --signalflow → pipeline diagram --signalflow
|
|
234
213
|
* --help / -h → contextual pipeline-executable help
|
|
235
214
|
* --nodes / --parameters → pipeline info
|
|
215
|
+
* --manifest → pipeline manifest
|
|
236
216
|
* --source / --readme → pipeline source
|
|
237
217
|
* (bare or --compute) → pipeline run
|
|
238
218
|
*
|
|
@@ -253,6 +233,9 @@ async function pipelineExecutable_handle(name, args) {
|
|
|
253
233
|
else if (args.includes('--signalflow')) {
|
|
254
234
|
envelope = await builtin_pipeline(['diagram', name, '--signalflow']);
|
|
255
235
|
}
|
|
236
|
+
else if (args.includes('--manifest')) {
|
|
237
|
+
envelope = await builtin_pipeline(['manifest', name]);
|
|
238
|
+
}
|
|
256
239
|
else if (args.includes('--nodes') || args.includes('--parameters')) {
|
|
257
240
|
envelope = await builtin_pipeline(['info', name]);
|
|
258
241
|
}
|
|
@@ -312,15 +295,16 @@ function exitCode_read() {
|
|
|
312
295
|
return typeof process.exitCode === 'number' ? process.exitCode : 0;
|
|
313
296
|
}
|
|
314
297
|
/**
|
|
315
|
-
* Runs a
|
|
316
|
-
* exit-code delta.
|
|
298
|
+
* Runs a printing handler uncaptured, preserving an explicit envelope or
|
|
299
|
+
* deriving one from the exit-code delta for legacy handlers.
|
|
317
300
|
*
|
|
318
301
|
* This is the passthrough for commands that cannot be captured yet: the
|
|
319
302
|
* interactive holdouts (their prompts must reach the terminal) and the
|
|
320
303
|
* progress writers (their live updates must stay live). The handler prints
|
|
321
304
|
* exactly as it always has; the placeholder envelope records only the
|
|
322
305
|
* outcome, with no rendered text, so envelope consumers never re-print what
|
|
323
|
-
* the terminal already showed.
|
|
306
|
+
* the terminal already showed. Migrated handlers may return that envelope
|
|
307
|
+
* directly while retaining the same live-output behavior.
|
|
324
308
|
*
|
|
325
309
|
* @param handler - A legacy printing command handler.
|
|
326
310
|
* @param args - Parsed arguments.
|
|
@@ -328,7 +312,9 @@ function exitCode_read() {
|
|
|
328
312
|
*/
|
|
329
313
|
async function handler_runDirect(handler, args) {
|
|
330
314
|
const exitCodeBefore = exitCode_read();
|
|
331
|
-
await handler(args);
|
|
315
|
+
const explicitEnvelope = await handler(args);
|
|
316
|
+
if (explicitEnvelope !== undefined)
|
|
317
|
+
return explicitEnvelope;
|
|
332
318
|
const exitCodeAfter = exitCode_read();
|
|
333
319
|
const failed = exitCodeAfter !== 0 && exitCodeAfter !== exitCodeBefore;
|
|
334
320
|
return { status: failed ? 'error' : 'ok', rendered: '' };
|
|
@@ -390,7 +376,10 @@ async function commandDispatchEnvelope_run(command, args) {
|
|
|
390
376
|
if (command === 'exit') {
|
|
391
377
|
process.exit(0);
|
|
392
378
|
}
|
|
393
|
-
args = args
|
|
379
|
+
args = shellArguments_envRefsExpand(args, envRefs_expand);
|
|
380
|
+
if (command === 'sudo') {
|
|
381
|
+
return await sudoCommand_run(args, commandDispatchEnvelope_run);
|
|
382
|
+
}
|
|
394
383
|
const envelopeHandler = ENVELOPE_HANDLERS[command];
|
|
395
384
|
if (envelopeHandler) {
|
|
396
385
|
// A handler that resolves without an envelope (as stubbed handlers in
|
|
@@ -445,7 +434,7 @@ export async function redirect_execute(redirectInfo) {
|
|
|
445
434
|
const targetResult = redirectTarget_resolve(redirectInfo.filePath, redirectInfo.command);
|
|
446
435
|
if (!targetResult.ok) {
|
|
447
436
|
const lastError = errorStack.stack_pop();
|
|
448
|
-
|
|
437
|
+
sink_get().err_write(`${chalk.red(lastError ? lastError.message : 'Redirect error')}\n`);
|
|
449
438
|
return { status: 'error', rendered: '' };
|
|
450
439
|
}
|
|
451
440
|
if (redirectInfo.operator === '>') {
|
|
@@ -485,25 +474,24 @@ async function helpEnvelope_maybe(command, args) {
|
|
|
485
474
|
return envelope;
|
|
486
475
|
}
|
|
487
476
|
/**
|
|
488
|
-
* Expands
|
|
489
|
-
* Returns Ok(expanded args) or Err if expansion fails.
|
|
477
|
+
* Expands eligible shell words in the ChELL CFS/VFS namespace.
|
|
490
478
|
*
|
|
491
|
-
* @param command -
|
|
492
|
-
* @param args -
|
|
479
|
+
* @param command - Command word being executed.
|
|
480
|
+
* @param args - Parsed argument words.
|
|
481
|
+
* @returns Expanded compatibility arguments with expansion provenance.
|
|
493
482
|
*/
|
|
494
|
-
async function
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
const
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
return Ok(expandResult.value);
|
|
483
|
+
async function commandWords_expand(command, args) {
|
|
484
|
+
const sudoNestedCommand = command === 'sudo' ? args[0] : undefined;
|
|
485
|
+
const targetCommand = sudoNestedCommand?.value ?? command;
|
|
486
|
+
const targetArgs = sudoNestedCommand ? args.slice(1) : args;
|
|
487
|
+
const values = targetArgs.map((word) => word.value);
|
|
488
|
+
const result = await shellWords_expand(targetArgs, (_word, index) => pathnameExpansion_isEligible(targetCommand, index, targetArgs.length, values));
|
|
489
|
+
if (!result.ok)
|
|
490
|
+
return result;
|
|
491
|
+
const expandedWords = sudoNestedCommand
|
|
492
|
+
? [sudoNestedCommand, ...result.value]
|
|
493
|
+
: result.value;
|
|
494
|
+
return Ok(shellWords_values(expandedWords));
|
|
507
495
|
}
|
|
508
496
|
/**
|
|
509
497
|
* Executes a chell command and captures its output.
|
|
@@ -517,20 +505,19 @@ async function chellCommand_executeAndCapture(commandLine) {
|
|
|
517
505
|
const trimmedLine = commandLine.trim();
|
|
518
506
|
if (!trimmedLine)
|
|
519
507
|
return { text: '', buffer: Buffer.alloc(0) };
|
|
520
|
-
const
|
|
521
|
-
if (
|
|
508
|
+
const words = shellWords_tokenize(trimmedLine);
|
|
509
|
+
if (words.length === 0) {
|
|
522
510
|
return { text: '', buffer: Buffer.alloc(0) };
|
|
523
511
|
}
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
}
|
|
532
|
-
args = expandResult.value;
|
|
512
|
+
const [commandWord, ...argumentWords] = words;
|
|
513
|
+
const command = commandWord.value;
|
|
514
|
+
const expandResult = await commandWords_expand(command, argumentWords);
|
|
515
|
+
if (!expandResult.ok) {
|
|
516
|
+
const lastError = errorStack.stack_pop();
|
|
517
|
+
const errorMsg = lastError ? error_stripDebugPrefix(lastError.message) : 'Unknown error';
|
|
518
|
+
return { text: chalk.red(`${errorMsg}\n`), buffer: Buffer.from('') };
|
|
533
519
|
}
|
|
520
|
+
const args = expandResult.value;
|
|
534
521
|
if (command === 'exit') {
|
|
535
522
|
process.exit(0);
|
|
536
523
|
}
|
|
@@ -539,8 +526,11 @@ async function chellCommand_executeAndCapture(commandLine) {
|
|
|
539
526
|
// rendered text through the sink (ANSI-stripped for the plain-pipe contract);
|
|
540
527
|
// streaming commands and binary cat write to the same sink directly (raw
|
|
541
528
|
// bytes kept byte-for-byte). The err channel passes through to stderr live.
|
|
542
|
-
const pipeSink = new PipeCaptureSink();
|
|
529
|
+
const pipeSink = new PipeCaptureSink(sink_get());
|
|
543
530
|
await sinkScope_run(pipeSink, async () => {
|
|
531
|
+
const helpEnvelope = await helpEnvelope_maybe(command, args);
|
|
532
|
+
if (helpEnvelope)
|
|
533
|
+
return;
|
|
544
534
|
const envelopeHandler = ENVELOPE_HANDLERS[command];
|
|
545
535
|
if (envelopeHandler) {
|
|
546
536
|
const envelope = await envelopeHandler(args);
|
|
@@ -549,7 +539,9 @@ async function chellCommand_executeAndCapture(commandLine) {
|
|
|
549
539
|
}
|
|
550
540
|
return;
|
|
551
541
|
}
|
|
552
|
-
|
|
542
|
+
const pluginEnvelope = await pluginExecutable_handle(command, args);
|
|
543
|
+
if (pluginEnvelope) {
|
|
544
|
+
envelope_deliver(pluginEnvelope);
|
|
553
545
|
return;
|
|
554
546
|
}
|
|
555
547
|
const handler = COMMAND_HANDLERS[command];
|
|
@@ -613,31 +605,39 @@ export async function pipe_execute(segments) {
|
|
|
613
605
|
* @returns The command's envelope, or null when the line held no tokens.
|
|
614
606
|
*/
|
|
615
607
|
export async function command_executeToEnvelope(trimmedLine, startTime, timingEnabled) {
|
|
616
|
-
const
|
|
617
|
-
if (
|
|
608
|
+
const words = shellWords_tokenize(trimmedLine);
|
|
609
|
+
if (words.length === 0)
|
|
618
610
|
return null;
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
const helpEnvelope = await helpEnvelope_maybe(command, args);
|
|
623
|
-
if (helpEnvelope) {
|
|
624
|
-
return helpEnvelope;
|
|
625
|
-
}
|
|
626
|
-
// Expand wildcards for commands that support it
|
|
627
|
-
const expandResult = await wildcards_expand(command, args);
|
|
611
|
+
const [commandWord, ...argumentWords] = words;
|
|
612
|
+
const command = commandWord.value;
|
|
613
|
+
const expandResult = await commandWords_expand(command, argumentWords);
|
|
628
614
|
if (!expandResult.ok) {
|
|
615
|
+
const lastError = errorStack.stack_pop();
|
|
616
|
+
if (lastError) {
|
|
617
|
+
sink_get().err_write(`${chalk.red(error_stripDebugPrefix(lastError.message))}\n`);
|
|
618
|
+
}
|
|
629
619
|
return { status: 'error', rendered: '' };
|
|
630
620
|
}
|
|
631
|
-
args = expandResult.value;
|
|
621
|
+
const args = expandResult.value;
|
|
622
|
+
// Help travels through the same expanded-word path as a pipe's first
|
|
623
|
+
// ChELL segment, ensuring that structural execution forms agree.
|
|
624
|
+
const helpEnvelope = await helpEnvelope_maybe(command, args);
|
|
625
|
+
if (helpEnvelope)
|
|
626
|
+
return helpEnvelope;
|
|
632
627
|
// Attempt to handle as a simulated plugin execution. This path bypasses
|
|
633
628
|
// command_dispatchEnvelope, so it drains the errorStack itself.
|
|
634
629
|
const checkpoint = errorStack.checkpoint_mark();
|
|
635
630
|
const exitCodeBefore = exitCode_read();
|
|
636
|
-
|
|
631
|
+
const pluginEnvelope = await pluginExecutable_handle(command, args);
|
|
632
|
+
if (pluginEnvelope) {
|
|
633
|
+
envelope_deliver(pluginEnvelope);
|
|
637
634
|
command_timingMaybePrint(startTime, timingEnabled);
|
|
638
635
|
const exitCodeAfter = exitCode_read();
|
|
639
636
|
const failed = exitCodeAfter !== 0 && exitCodeAfter !== exitCodeBefore;
|
|
640
|
-
|
|
637
|
+
const result = failed
|
|
638
|
+
? { ...pluginEnvelope, status: 'error' }
|
|
639
|
+
: pluginEnvelope;
|
|
640
|
+
return envelope_drainErrorsInto(checkpoint, result);
|
|
641
641
|
}
|
|
642
642
|
const envelope = await command_dispatchEnvelope(command, args);
|
|
643
643
|
command_timingMaybePrint(startTime, timingEnabled);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/core/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,WAAW,EACX,eAAe,EACf,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAU,UAAU,EAAE,EAAE,EAAE,GAAG,EAAgB,cAAc,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7G,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAExG,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,KAAK,UAAU,uBAAuB,CAAC,OAAe,EAAE,IAAc;IACpE,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAoB,cAAc,CAC9C,EAAE,EACF,SAAS,EACT,GAAG,KAAK,CAAC,GAAG,CAAC,6BAA6B,OAAO,EAAE,CAAC,IAAI,CACzD,CAAC;QACF,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,QAAQ,EAAE,CAAC,UAAU,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAoB,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACxF,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,YAAoB;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAA+B,EAAE,EAAE;QACrD,MAAM,KAAK,GAAiB,KAAK,CAAC,YAAY,EAAE;YAC9C,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;YACxC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAWD;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,GAAG,EAAE,WAAW;IAChB,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,GAAG,EAAE,WAAW;IAChB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,gBAAgB;IAC1B,MAAM,EAAE,cAAc;IACtB,YAAY,EAAE,oBAAoB;IAClC,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,eAAe;IACzB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,aAAa;IACrB,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,kBAAkB;IAC/B,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,kBAAkB;IACzB,cAAc,EAAE,sBAAsB;IACtC,eAAe,EAAE,sBAAsB;IACvC,QAAQ,EAAE,sBAAsB;IAChC,SAAS,EAAE,sBAAsB;IACjC,GAAG,EAAE,sBAAsB;IAC3B,IAAI,EAAE,sBAAsB;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,gBAAgB;IAC3B,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,eAAe;IACxB,kBAAkB,EAAE,0BAA0B;IAC9C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,CAAC,IAAc,EAA4B,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3G,WAAW,EAAE,CAAC,IAAc,EAA4B,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3G,YAAY,EAAE,CAAC,IAAc,EAA4B,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7G,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,gBAAgB;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC;IAC9C,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC;IAC5C,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC;IACpC,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC;IACpC,GAAG,EAAE,oBAAoB,CAAC,WAAW,CAAC;IACtC,GAAG,EAAE,oBAAoB,CAAC,WAAW,CAAC;IACtC,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC;IACpC,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC;IACpC,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC;IACpC,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC1C,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC1C,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC;IAC5C,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,QAAQ,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAChD,SAAS,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IACjD,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC1C,QAAQ,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAChD,QAAQ,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAChD,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC;IAC9C,kBAAkB,EAAE,oBAAoB,CAAC,0BAA0B,CAAC;IACpE,YAAY,EAAE,oBAAoB,CAAC,oBAAoB,CAAC;IACxD,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC;IAC5C,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC;IAC5C,QAAQ,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAChD,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC1C,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC;IAC9C,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,GAAG,EAAE,oBAAoB,CAAC,WAAW,CAAC;IACtC,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC;IACpC,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC1C,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC;IAC5C,OAAO,EAAE,oBAAoB,CAAC,cAAc,CAAC;IAC7C,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,KAAK,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACzC,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC;IAC9C,QAAQ,EAAE,oBAAoB,CAAC,eAAe,CAAC;IAC/C,GAAG,EAAE,oBAAoB,CAAC,WAAW,CAAC;IACtC,IAAI,EAAE,oBAAoB,CAAC,WAAW,CAAC;IACvC,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC1C,MAAM,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC3C,UAAU,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;IACpD,WAAW,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;IACrD,IAAI,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;IAC9C,KAAK,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;IAC/C,cAAc,EAAE,oBAAoB,CAAC,sBAAsB,CAAC;IAC5D,eAAe,EAAE,oBAAoB,CAAC,sBAAsB,CAAC;IAC7D,QAAQ,EAAE,oBAAoB,CAAC,sBAAsB,CAAC;IACtD,SAAS,EAAE,oBAAoB,CAAC,sBAAsB,CAAC;IACvD,GAAG,EAAE,oBAAoB,CAAC,sBAAsB,CAAC;IACjD,IAAI,EAAE,oBAAoB,CAAC,sBAAsB,CAAC;IAClD,QAAQ,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAChD,SAAS,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IACjD,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC1C,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC;IAC1C,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACxC,WAAW,EAAE,oBAAoB,CAAC,CAAC,IAAc,EAA4B,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACjI,WAAW,EAAE,oBAAoB,CAAC,CAAC,IAAc,EAA4B,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACjI,YAAY,EAAE,oBAAoB,CAAC,CAAC,IAAc,EAA4B,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;CACpI,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB,EAAE,OAAgB;IAC1E,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,OAAO,GAAW,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,yBAAyB,CAAC,IAAY,EAAE,IAAc;IACnE,MAAM,cAAc,GAAW,aAAa,EAAE,CAAC;IAC/C,IAAI,QAAqC,CAAC;IAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,QAAQ,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7E,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,GAAa,IAAI,CAAC,MAAM,CAAC,CAAC,QAAgB,EAAW,EAAE,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC;QACnG,QAAQ,GAAG,MAAM,gBAAgB,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,QAAQ,GAAG,MAAM,gBAAgB,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACrE,QAAQ,GAAG,MAAM,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,QAAQ,GAAG,MAAM,gBAAgB,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,MAAM,gBAAgB,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,MAAM,GAAoB,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3E,MAAM,aAAa,GAAW,aAAa,EAAE,CAAC;IAC9C,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,cAAc;QAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;IACrF,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD;;;;;GAKG;AACH,KAAK,UAAU,wBAAwB,CAAC,OAAe;IACrD,MAAM,SAAS,GAA0B,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IACD,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAC1B,CAAC,IAAiB,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAChF;QACD,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAC5B,CAAC,IAAiB,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAClF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,OAAO,CAClB,8DAA8D,EAC9D,CAAC,KAAa,EAAE,MAA0B,EAAE,IAAwB,EAAE,EAAE;QACtE,MAAM,KAAK,GAAuB,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QACpE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa;IACpB,OAAO,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,iBAAiB,CAAC,OAAuB,EAAE,IAAc;IACtE,MAAM,cAAc,GAAW,aAAa,EAAE,CAAC;IAC/C,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,aAAa,GAAW,aAAa,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAY,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,cAAc,CAAC;IAChF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,wBAAwB,CAAC,UAAkB,EAAE,QAAyB;IAC7E,MAAM,OAAO,GAAmB,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;QAC1B,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAqB,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;YAC3G,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAe,EAAE,IAAc;IAC5E,MAAM,UAAU,GAAW,UAAU,CAAC,eAAe,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAoB,MAAM,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnF,OAAO,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,2BAA2B,CAAC,OAAe,EAAE,IAAc;IACxE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC,MAAM,eAAe,GAAgC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChF,IAAI,eAAe,EAAE,CAAC;QACpB,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,QAAQ,GAAgC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACxC,CAAC;QACD,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAA+B,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,UAAU,GAAyB,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACjF,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC,CAAC,UAAoB,EAAiB,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;IACtH,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAoB,MAAM,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjF,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wEAAwE;IACxE,+DAA+D;IAC/D,OAAO,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,IAAc;IACpE,MAAM,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,YAA0B;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,8BAA8B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAmB,sBAAsB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACzG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,SAAS,GAA6B,UAAU,CAAC,SAAS,EAAE,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC3E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAClC,aAAa,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,IAAc;IAC/D,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAgB,CAAC;IACrB,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAC3C,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAyB,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjF,QAAQ,GAAG,UAAU,CAAC,QAAQ;YAC5B,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC;YACxC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,QAAQ,GAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC7D,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,IAAc;IAC7D,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,YAAY,GAAqB,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,SAAS,GAA6B,UAAU,CAAC,SAAS,EAAE,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,8BAA8B,CAAC,WAAmB;IAC/D,MAAM,WAAW,GAAW,WAAW,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,MAAM,MAAM,GAAa,aAAa,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAa,MAAM,CAAC;IAE1C,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,YAAY,GAAqB,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,SAAS,GAA6B,UAAU,CAAC,SAAS,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAW,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACjG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,QAAQ,GAAoB,IAAI,eAAe,EAAE,CAAC;IACxD,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,IAAmB,EAAE;QACtD,MAAM,eAAe,GAAgC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChF,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAgC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,QAAQ,EAAE,CAAC;gBACb,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,MAAM,uBAAuB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAClE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAA+B,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAyB,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjF,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAoB,MAAM,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjF,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAW,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAkB;IACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,kEAAkE;IAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,kBAAkB,CAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;IAClF,CAAC;IAED,oDAAoD;IACpD,MAAM,YAAY,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,8BAA8B,CAAC,YAAY,CAAC,CAAC;IAEtE,4DAA4D;IAC5D,IAAI,YAAY,GAAW,MAAM,CAAC;IAClC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,YAAY,GAAG,MAAM,WAAW,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED,sBAAsB;IACtB,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,WAAmB,EACnB,SAAiB,EACjB,aAAsB;IAEtB,MAAM,MAAM,GAAa,aAAa,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAa,MAAM,CAAC;IAE1C,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,YAAY,GAA2B,MAAM,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrF,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,gDAAgD;IAChD,MAAM,YAAY,GAAqB,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAE1B,wEAAwE;IACxE,gEAAgE;IAChE,MAAM,UAAU,GAAW,UAAU,CAAC,eAAe,EAAE,CAAC;IACxD,MAAM,cAAc,GAAW,aAAa,EAAE,CAAC;IAC/C,IAAI,MAAM,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QACjD,wBAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACnD,MAAM,aAAa,GAAW,aAAa,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAY,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,cAAc,CAAC;QAChF,OAAO,wBAAwB,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,QAAQ,GAAoB,MAAM,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChF,wBAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/core/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Explicit, scoped CUBE elevation for shell commands.
|
|
3
|
+
*
|
|
4
|
+
* The host surface owns credential input; Chili/Salsa/Cumin own the temporary
|
|
5
|
+
* CUBE client. No elevated token is saved or becomes ambient after the nested
|
|
6
|
+
* command completes.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { type CommandEnvelope } from '@fnndsc/cumin';
|
|
11
|
+
/** Execution seam used by `sudo` to run its nested command. */
|
|
12
|
+
export type ElevatedCommandRunner = (command: string, args: string[]) => Promise<CommandEnvelope>;
|
|
13
|
+
/**
|
|
14
|
+
* Detects an authorization failure suitable for an explicit elevation hint.
|
|
15
|
+
*
|
|
16
|
+
* @param message - User-facing failure returned by CUBE.
|
|
17
|
+
* @returns True when the failure denotes missing authorization.
|
|
18
|
+
*/
|
|
19
|
+
export declare function authorizationFailure_is(message: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Builds the one-line, copyable rerun hint for an elevation-eligible command.
|
|
22
|
+
*
|
|
23
|
+
* @param command - Command name without an existing `sudo` prefix.
|
|
24
|
+
* @param args - Already-tokenized command arguments.
|
|
25
|
+
* @returns A user-facing rerun hint.
|
|
26
|
+
*/
|
|
27
|
+
export declare function sudoHint_build(command: string, args: string[]): string;
|
|
28
|
+
/**
|
|
29
|
+
* Runs the command nested below `sudo` with a temporary elevated CUBE client.
|
|
30
|
+
*
|
|
31
|
+
* @param args - Nested command name followed by its arguments.
|
|
32
|
+
* @param run - Dispatch seam for the nested command.
|
|
33
|
+
* @returns The nested command result, or an elevation/input error envelope.
|
|
34
|
+
*/
|
|
35
|
+
export declare function sudoCommand_run(args: string[], run: ElevatedCommandRunner): Promise<CommandEnvelope>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Explicit, scoped CUBE elevation for shell commands.
|
|
3
|
+
*
|
|
4
|
+
* The host surface owns credential input; Chili/Salsa/Cumin own the temporary
|
|
5
|
+
* CUBE client. No elevated token is saved or becomes ambient after the nested
|
|
6
|
+
* command completes.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import chalk from 'chalk';
|
|
11
|
+
import { envelope_error } from '@fnndsc/cumin';
|
|
12
|
+
import { elevation_run } from '@fnndsc/chili/commands/connect/elevation.js';
|
|
13
|
+
import { shellArguments_slice } from '../lib/parser.js';
|
|
14
|
+
import { surface_get } from './surface.js';
|
|
15
|
+
/**
|
|
16
|
+
* Detects an authorization failure suitable for an explicit elevation hint.
|
|
17
|
+
*
|
|
18
|
+
* @param message - User-facing failure returned by CUBE.
|
|
19
|
+
* @returns True when the failure denotes missing authorization.
|
|
20
|
+
*/
|
|
21
|
+
export function authorizationFailure_is(message) {
|
|
22
|
+
return /\b(?:401|403)\b|unauthorized|forbidden|permission denied|admin credentials required|administrator privileges/i.test(message);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Builds the one-line, copyable rerun hint for an elevation-eligible command.
|
|
26
|
+
*
|
|
27
|
+
* @param command - Command name without an existing `sudo` prefix.
|
|
28
|
+
* @param args - Already-tokenized command arguments.
|
|
29
|
+
* @returns A user-facing rerun hint.
|
|
30
|
+
*/
|
|
31
|
+
export function sudoHint_build(command, args) {
|
|
32
|
+
return `Try: ${chalk.cyan(`sudo ${[command, ...args].join(' ')}`)}\n`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Runs the command nested below `sudo` with a temporary elevated CUBE client.
|
|
36
|
+
*
|
|
37
|
+
* @param args - Nested command name followed by its arguments.
|
|
38
|
+
* @param run - Dispatch seam for the nested command.
|
|
39
|
+
* @returns The nested command result, or an elevation/input error envelope.
|
|
40
|
+
*/
|
|
41
|
+
export async function sudoCommand_run(args, run) {
|
|
42
|
+
const command = args[0];
|
|
43
|
+
const commandArgs = shellArguments_slice(args, 1);
|
|
44
|
+
if (!command) {
|
|
45
|
+
process.exitCode = 1;
|
|
46
|
+
return envelope_error('', undefined, `${chalk.red('Usage: sudo <command> [arguments...]')}\n`);
|
|
47
|
+
}
|
|
48
|
+
if (command === 'sudo') {
|
|
49
|
+
process.exitCode = 1;
|
|
50
|
+
return envelope_error('', undefined, `${chalk.red('sudo: nested elevation is not supported.')}\n`);
|
|
51
|
+
}
|
|
52
|
+
const surface = surface_get();
|
|
53
|
+
if (!surface.capabilities.hiddenInput) {
|
|
54
|
+
process.exitCode = 1;
|
|
55
|
+
return envelope_error('', undefined, `${chalk.red('sudo: this surface cannot securely collect administrator credentials.')}\n`);
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const username = await surface.prompt({ message: 'Administrator username: ' });
|
|
59
|
+
const password = await surface.prompt({ message: 'Administrator password: ', hidden: true });
|
|
60
|
+
if (!username || !password) {
|
|
61
|
+
process.exitCode = 1;
|
|
62
|
+
return envelope_error('', undefined, `${chalk.red('sudo: administrator credentials cannot be empty.')}\n`);
|
|
63
|
+
}
|
|
64
|
+
return await elevation_run({ username, password }, async () => {
|
|
65
|
+
return await run(command, commandArgs);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
process.exitCode = 1;
|
|
70
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
71
|
+
if (message.includes('cannot securely collect hidden input')) {
|
|
72
|
+
return envelope_error('', undefined, `${chalk.red(`sudo: ${message}`)}\n`);
|
|
73
|
+
}
|
|
74
|
+
return envelope_error('', undefined, `${chalk.red(`sudo: authentication failed: ${message}`)}\n`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=elevation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevation.js","sourceRoot":"","sources":["../../src/core/elevation.ts"],"names":[],"mappings":"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"}
|
package/dist/core/engine.d.ts
CHANGED
|
@@ -26,6 +26,12 @@ export interface BrasaEngine {
|
|
|
26
26
|
* @returns The envelopes of the executed commands, in execution order.
|
|
27
27
|
*/
|
|
28
28
|
line_execute(line: string): Promise<CommandEnvelope[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Requests cancellation of the foreground command when it supports it.
|
|
31
|
+
*
|
|
32
|
+
* @returns True when the active command accepted the request.
|
|
33
|
+
*/
|
|
34
|
+
line_cancel?(): boolean;
|
|
29
35
|
/**
|
|
30
36
|
* Computes completion candidates for a partial input line.
|
|
31
37
|
*
|
|
@@ -57,6 +63,12 @@ export declare function stopOnError_set(value: boolean): void;
|
|
|
57
63
|
* @returns The envelopes of the executed commands, in execution order.
|
|
58
64
|
*/
|
|
59
65
|
export declare function line_execute(line: string): Promise<CommandEnvelope[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Requests cancellation of the active foreground command.
|
|
68
|
+
*
|
|
69
|
+
* @returns True when a command can honor the request.
|
|
70
|
+
*/
|
|
71
|
+
export declare function line_cancel(): boolean;
|
|
60
72
|
/**
|
|
61
73
|
* Computes completion candidates for a partial input line.
|
|
62
74
|
*
|
package/dist/core/engine.js
CHANGED
|
@@ -28,7 +28,10 @@ import chalk from 'chalk';
|
|
|
28
28
|
import { session } from '../session/index.js';
|
|
29
29
|
import { semicolons_parse } from '../lib/semicolonParser.js';
|
|
30
30
|
import { pipes_parse, redirect_parse, command_shellEscape_detect, } from './preprocess.js';
|
|
31
|
-
import {
|
|
31
|
+
import { command_executeToEnvelope, command_timingMaybePrint, redirect_execute, pipe_execute, } from './dispatch.js';
|
|
32
|
+
import { capability_require, surface_get } from './surface.js';
|
|
33
|
+
import { commandCancellation_request, commandCancellation_run } from './cancellation.js';
|
|
34
|
+
import { sink_get } from './sink.js';
|
|
32
35
|
/**
|
|
33
36
|
* Whether a batch (semicolon list, script) should abort on the first error.
|
|
34
37
|
* Read by the batch loop; set by the boot layer for `-e` / script modes.
|
|
@@ -57,9 +60,16 @@ async function shellEscape_execute(trimmedLine, startTime, timingEnabled) {
|
|
|
57
60
|
const shellCommand = trimmedLine.substring(1).trim();
|
|
58
61
|
if (!shellCommand)
|
|
59
62
|
return [];
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
try {
|
|
64
|
+
capability_require('shellCommands', 'this surface cannot run shell commands');
|
|
65
|
+
const exitCode = await surface_get().shellCommand(shellCommand);
|
|
66
|
+
command_timingMaybePrint(startTime, timingEnabled);
|
|
67
|
+
return [{ status: exitCode === 0 ? 'ok' : 'error', rendered: '' }];
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
71
|
+
return [{ status: 'error', rendered: '', renderedErr: `${chalk.red(`Shell command failed: ${message}`)}\n` }];
|
|
72
|
+
}
|
|
63
73
|
}
|
|
64
74
|
/**
|
|
65
75
|
* Executes a semicolon batch, one segment at a time, collecting each
|
|
@@ -83,7 +93,7 @@ async function batch_execute(commands, startTime, timingEnabled) {
|
|
|
83
93
|
}
|
|
84
94
|
catch (error) {
|
|
85
95
|
const msg = error instanceof Error ? error.message : String(error);
|
|
86
|
-
|
|
96
|
+
sink_get().err_write(`${chalk.red(`Command error: ${msg}`)}\n`);
|
|
87
97
|
envelopes.push({ status: 'error', rendered: '' });
|
|
88
98
|
if (stopOnError) {
|
|
89
99
|
return envelopes;
|
|
@@ -92,7 +102,7 @@ async function batch_execute(commands, startTime, timingEnabled) {
|
|
|
92
102
|
}
|
|
93
103
|
if (timingEnabled) {
|
|
94
104
|
const elapsed = performance.now() - startTime;
|
|
95
|
-
|
|
105
|
+
sink_get().data_write(`${chalk.gray(`[Total: ${elapsed.toFixed(2)}ms]`)}\n`);
|
|
96
106
|
}
|
|
97
107
|
return envelopes;
|
|
98
108
|
}
|
|
@@ -111,6 +121,15 @@ async function batch_execute(commands, startTime, timingEnabled) {
|
|
|
111
121
|
* @returns The envelopes of the executed commands, in execution order.
|
|
112
122
|
*/
|
|
113
123
|
export async function line_execute(line) {
|
|
124
|
+
return await commandCancellation_run(async () => line_execute_run(line));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Executes one line inside its already-established cancellation scope.
|
|
128
|
+
*
|
|
129
|
+
* @param line - The raw input line.
|
|
130
|
+
* @returns The envelopes of the executed commands, in execution order.
|
|
131
|
+
*/
|
|
132
|
+
async function line_execute_run(line) {
|
|
114
133
|
const trimmedLine = line.trim();
|
|
115
134
|
if (!trimmedLine)
|
|
116
135
|
return [];
|
|
@@ -133,7 +152,7 @@ export async function line_execute(line) {
|
|
|
133
152
|
}
|
|
134
153
|
catch (error) {
|
|
135
154
|
const msg = error instanceof Error ? error.message : String(error);
|
|
136
|
-
|
|
155
|
+
sink_get().err_write(`${chalk.red(`Pipe error: ${msg}`)}\n`);
|
|
137
156
|
return [{ status: 'error', rendered: '' }];
|
|
138
157
|
}
|
|
139
158
|
}
|
|
@@ -148,6 +167,14 @@ export async function line_execute(line) {
|
|
|
148
167
|
const envelope = await command_executeToEnvelope(trimmedLine, startTime, timingEnabled);
|
|
149
168
|
return envelope ? [envelope] : [];
|
|
150
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Requests cancellation of the active foreground command.
|
|
172
|
+
*
|
|
173
|
+
* @returns True when a command can honor the request.
|
|
174
|
+
*/
|
|
175
|
+
export function line_cancel() {
|
|
176
|
+
return commandCancellation_request();
|
|
177
|
+
}
|
|
151
178
|
/**
|
|
152
179
|
* Computes completion candidates for a partial input line.
|
|
153
180
|
*
|
|
@@ -219,6 +246,6 @@ async function vfsProviders_register() {
|
|
|
219
246
|
export async function engine_create() {
|
|
220
247
|
await session.init();
|
|
221
248
|
await vfsProviders_register();
|
|
222
|
-
return { line_execute, line_complete };
|
|
249
|
+
return { line_execute, line_cancel, line_complete };
|
|
223
250
|
}
|
|
224
251
|
//# sourceMappingURL=engine.js.map
|