@fnndsc/brasa 0.33.4 → 0.34.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/dist/buildinfo.json +1 -1
- package/dist/core/engine.d.ts +16 -0
- package/dist/core/engine.js +4 -2
- package/dist/core/engine.js.map +1 -1
- package/dist/core/sink.d.ts +2 -24
- package/dist/core/sink.js.map +1 -1
- package/dist/core/surface.d.ts +3 -179
- package/dist/core/surface.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +4 -4
package/dist/buildinfo.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"hash":"
|
|
1
|
+
{"hash":"85eca2"}
|
package/dist/core/engine.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { FileReadRefusal, fileRefusal_name } from './fileRefusal.js';
|
|
2
2
|
import type { CommandEnvelope } from '@fnndsc/cumin';
|
|
3
3
|
import type { Regard, WatchState, AmbientEvent } from '@fnndsc/menu';
|
|
4
|
+
import { type Surface } from './surface.js';
|
|
4
5
|
import { type Numbering } from '../session/answer.js';
|
|
6
|
+
import { type OutputSink } from './sink.js';
|
|
5
7
|
/**
|
|
6
8
|
* Result of a completion request: the candidates and the prefix they
|
|
7
9
|
* complete, matching what a readline completer consumes.
|
|
@@ -112,6 +114,20 @@ export interface BrasaEngine {
|
|
|
112
114
|
* @returns Function that unsubscribes.
|
|
113
115
|
*/
|
|
114
116
|
ambient_listen?(listener: (event: AmbientEvent) => void): () => void;
|
|
117
|
+
/**
|
|
118
|
+
* Installs where the engine's output goes from now on: a daemon's sink
|
|
119
|
+
* relays it to every attached surface, a terminal's writes it to stdout.
|
|
120
|
+
*
|
|
121
|
+
* @param sink - The sink.
|
|
122
|
+
*/
|
|
123
|
+
sink_install(sink: OutputSink): void;
|
|
124
|
+
/**
|
|
125
|
+
* Installs who the engine asks for what only a surface can give: a hidden
|
|
126
|
+
* prompt, a local editor, a host shell, a delivered file.
|
|
127
|
+
*
|
|
128
|
+
* @param surface - The surface.
|
|
129
|
+
*/
|
|
130
|
+
surface_install(surface: Surface): void;
|
|
115
131
|
}
|
|
116
132
|
/**
|
|
117
133
|
* Sets the shared stop-on-error flag. Exposed so the boot layer (which owns
|
package/dist/core/engine.js
CHANGED
|
@@ -33,12 +33,12 @@ import { session } from '../session/index.js';
|
|
|
33
33
|
import { semicolons_parse } from '../lib/semicolonParser.js';
|
|
34
34
|
import { pipes_parse, redirect_parse, command_shellEscape_detect, } from './preprocess.js';
|
|
35
35
|
import { command_executeToEnvelope, command_timingMaybePrint, redirect_execute, pipe_execute, } from './dispatch.js';
|
|
36
|
-
import { capability_require, surface_get } from './surface.js';
|
|
36
|
+
import { capability_require, surface_get, surface_set } from './surface.js';
|
|
37
37
|
import { commandCancellation_request, commandCancellation_run } from './cancellation.js';
|
|
38
38
|
import { recorder_note } from '../session/recorder.js';
|
|
39
39
|
import { answerAdapters_register } from '../session/answerAdapters.js';
|
|
40
40
|
import { numbering_get } from '../session/answer.js';
|
|
41
|
-
import { sink_get } from './sink.js';
|
|
41
|
+
import { sink_get, sink_set } from './sink.js';
|
|
42
42
|
/**
|
|
43
43
|
* Whether a batch (semicolon list, script) should abort on the first error.
|
|
44
44
|
* Read by the batch loop; set by the boot layer for `-e` / script modes.
|
|
@@ -281,6 +281,8 @@ export async function engine_create() {
|
|
|
281
281
|
},
|
|
282
282
|
watch_release: (owner) => procWatch_release(owner),
|
|
283
283
|
ambient_listen,
|
|
284
|
+
sink_install: (sink) => { sink_set(sink); },
|
|
285
|
+
surface_install: (surface) => { surface_set(surface); },
|
|
284
286
|
};
|
|
285
287
|
}
|
|
286
288
|
/**
|
package/dist/core/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAmB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnI,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,cAAc,EACd,0BAA0B,GAE3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/core/sink.d.ts
CHANGED
|
@@ -23,30 +23,8 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import type { CommandEnvelope } from '@fnndsc/cumin';
|
|
25
25
|
import { type ProgressEvent, type ProgressRenderer } from './progress.js';
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*/
|
|
29
|
-
export interface OutputSink {
|
|
30
|
-
/**
|
|
31
|
-
* Writes command output (the data channel).
|
|
32
|
-
*
|
|
33
|
-
* @param chunk - Printable text (ANSI permitted) or raw bytes.
|
|
34
|
-
*/
|
|
35
|
-
data_write(chunk: string | Buffer): void;
|
|
36
|
-
/**
|
|
37
|
-
* Writes error-stream output (the err channel).
|
|
38
|
-
*
|
|
39
|
-
* @param chunk - Printable text (ANSI permitted) or raw bytes.
|
|
40
|
-
*/
|
|
41
|
-
err_write(chunk: string | Buffer): void;
|
|
42
|
-
/**
|
|
43
|
-
* Writes an ephemeral status line (the status channel).
|
|
44
|
-
*
|
|
45
|
-
* @param text - Transient text; consumers may overwrite or drop it.
|
|
46
|
-
*/
|
|
47
|
-
status_write(text: string): void;
|
|
48
|
-
progress_write(event: ProgressEvent): void;
|
|
49
|
-
}
|
|
26
|
+
import type { OutputSink } from '@fnndsc/menu/surface';
|
|
27
|
+
export type { OutputSink } from '@fnndsc/menu/surface';
|
|
50
28
|
/**
|
|
51
29
|
* Sink that writes both channels to the process's standard output.
|
|
52
30
|
*
|
package/dist/core/sink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/core/sink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAA6C,oBAAoB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/core/sink.ts"],"names":[],"mappings":"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"}
|
package/dist/core/surface.d.ts
CHANGED
|
@@ -23,186 +23,10 @@
|
|
|
23
23
|
* @see docs/calypso.adoc — "Interactivity is a declared surface capability".
|
|
24
24
|
* @module
|
|
25
25
|
*/
|
|
26
|
-
/**
|
|
27
|
-
* What interaction an attached surface can provide.
|
|
28
|
-
*
|
|
29
|
-
* @property hiddenInput - The surface can read a line without echoing it
|
|
30
|
-
* (password entry).
|
|
31
|
-
* @property localEdit - The surface can open content in a local editor and
|
|
32
|
-
* return the edited result.
|
|
33
|
-
* @property tty - The surface is an interactive terminal (as opposed to a
|
|
34
|
-
* pipe, a script, or a headless host).
|
|
35
|
-
* @property color - The surface renders ANSI colour. A colour terminal and a
|
|
36
|
-
* browser console both do; a bare pipe or a file does not. A command that
|
|
37
|
-
* can render richly with colour and plainly without it — an image thumbnail
|
|
38
|
-
* as ANSI half-blocks or an ASCII ramp — reads this to choose, and the
|
|
39
|
-
* plain rendering is always the floor.
|
|
40
|
-
* @property pipeSegments - The surface can run a pipeline's non-first
|
|
41
|
-
* segments (`... | grep foo`) through its own tools. Nothing ever spawns on
|
|
42
|
-
* a daemon host: the local CLI runs segments in-process, a remote CLI runs
|
|
43
|
-
* them on the client machine, and a browser surface lacks the capability
|
|
44
|
-
* and fails such pipelines with a clear message.
|
|
45
|
-
* @property shellCommands - The surface can run a `!`-prefixed host-shell
|
|
46
|
-
* command on its own machine. A daemon delegates this capability to the
|
|
47
|
-
* command's originating surface and never launches the process itself.
|
|
48
|
-
* @property fileDelivery - The surface can put a file where its operator can
|
|
49
|
-
* reach it. What that means is the surface's business — a path on the local
|
|
50
|
-
* CLI's disk, a path on a remote CLI's client machine, a saved file in a
|
|
51
|
-
* browser — but never the daemon host's disk.
|
|
52
|
-
* @property engineFilesystem - The surface's operator sits at the same
|
|
53
|
-
* filesystem the engine runs on, so a path the engine resolves is a path
|
|
54
|
-
* they can open. True only for an in-process local shell. When false, a
|
|
55
|
-
* builtin that would write to disk must deliver through the surface instead,
|
|
56
|
-
* because the engine's disk is somebody else's machine.
|
|
57
|
-
* @property localFilesystem - The surface can put many files into a directory
|
|
58
|
-
* structure of its own. True for any shell, remote included; false for a
|
|
59
|
-
* browser, which has no directory to fill and can only accept files one at a
|
|
60
|
-
* time. It answers a different question from `engineFilesystem`: not *whose*
|
|
61
|
-
* disk, but whether there is one at all.
|
|
62
|
-
*/
|
|
63
|
-
export interface SurfaceCapabilities {
|
|
64
|
-
hiddenInput: boolean;
|
|
65
|
-
localEdit: boolean;
|
|
66
|
-
tty: boolean;
|
|
67
|
-
color: boolean;
|
|
68
|
-
pipeSegments: boolean;
|
|
69
|
-
shellCommands: boolean;
|
|
70
|
-
fileDelivery: boolean;
|
|
71
|
-
engineFilesystem: boolean;
|
|
72
|
-
localFilesystem: boolean;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* A request to prompt the user for a line of input.
|
|
76
|
-
*
|
|
77
|
-
* `wants` is what the question is asking FOR, so a surface can choose the
|
|
78
|
-
* instrument that answers it — a browser to walk for a location, a masked
|
|
79
|
-
* field for a secret, two capsules for a yes/no — rather than reading the
|
|
80
|
-
* wording and guessing. A terminal ignores all of it and reads a line,
|
|
81
|
-
* which is why every field beyond `message` is optional.
|
|
82
|
-
*
|
|
83
|
-
* @property message - The prompt text to display.
|
|
84
|
-
* @property hidden - When true, the entered text is not echoed; requires the
|
|
85
|
-
* `hiddenInput` capability. Kept beside `wants` because it is what an
|
|
86
|
-
* older surface reads.
|
|
87
|
-
* @property wants - The kind of value that answers this.
|
|
88
|
-
* @property path - Where browsing starts and what to compose, for a `path`.
|
|
89
|
-
* @property commit - The word the committing control should read.
|
|
90
|
-
*/
|
|
91
|
-
export interface PromptRequest {
|
|
92
|
-
message: string;
|
|
93
|
-
hidden?: boolean;
|
|
94
|
-
wants?: PromptKind;
|
|
95
|
-
path?: PromptPath;
|
|
96
|
-
commit?: string;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Content handed to a surface's local editor.
|
|
100
|
-
*
|
|
101
|
-
* @property content - The text to open in the editor.
|
|
102
|
-
* @property extension - Optional filename extension (e.g. `.txt`, `.json`) so
|
|
103
|
-
* the editor can apply the right syntax mode.
|
|
104
|
-
*/
|
|
105
|
-
export interface LocalEditRequest {
|
|
106
|
-
content: string;
|
|
107
|
-
extension?: string;
|
|
108
|
-
/** The file being edited; an editor that stays open saves back to it. */
|
|
109
|
-
path?: string;
|
|
110
|
-
}
|
|
111
26
|
export type { FileDeliverRequest, FileDeliverResult, PromptKind, PromptPath } from '@fnndsc/menu';
|
|
112
|
-
import type { FileDeliverRequest, FileDeliverResult
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
*
|
|
116
|
-
* @property content - The content after editing.
|
|
117
|
-
* @property changed - Whether the content differs from what was opened.
|
|
118
|
-
*/
|
|
119
|
-
export interface LocalEditResult {
|
|
120
|
-
content: string;
|
|
121
|
-
changed: boolean;
|
|
122
|
-
/**
|
|
123
|
-
* The surface opened an editor that stays open (a browser pane) instead of
|
|
124
|
-
* returning the edited text. The command has nothing to save: every save
|
|
125
|
-
* made in that editor runs as its own command line.
|
|
126
|
-
*/
|
|
127
|
-
opened?: boolean;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* The interaction seam a host installs. Builtins reach it through
|
|
131
|
-
* {@link surface_get}; hosts declare their capabilities and back the
|
|
132
|
-
* prompt and local-edit operations with whatever their surface supports.
|
|
133
|
-
*/
|
|
134
|
-
/** Another surface on the same session, as the host sees it. */
|
|
135
|
-
export interface SurfacePeer {
|
|
136
|
-
/** The host's name for it. */
|
|
137
|
-
id: string;
|
|
138
|
-
/** A terminal or a browser. */
|
|
139
|
-
kind: 'chell' | 'browser';
|
|
140
|
-
/** Whether it is the surface running the current command. */
|
|
141
|
-
you: boolean;
|
|
142
|
-
}
|
|
143
|
-
export interface Surface {
|
|
144
|
-
/** What this surface can do; read by builtins before they interact. */
|
|
145
|
-
readonly capabilities: SurfaceCapabilities;
|
|
146
|
-
/**
|
|
147
|
-
* The surfaces attached to this session, when the host knows of more than
|
|
148
|
-
* itself (a daemon does; a local shell is alone). Absent means unknown.
|
|
149
|
-
*/
|
|
150
|
-
peers?(): SurfacePeer[];
|
|
151
|
-
/**
|
|
152
|
-
* Prompts for a line of input.
|
|
153
|
-
*
|
|
154
|
-
* @param request - The prompt message and whether to hide the input.
|
|
155
|
-
* @returns The entered line, trimmed.
|
|
156
|
-
* @throws {CapabilityError} When hidden input is requested but the surface
|
|
157
|
-
* lacks the `hiddenInput` capability, or the surface cannot prompt.
|
|
158
|
-
*/
|
|
159
|
-
prompt(request: PromptRequest): Promise<string>;
|
|
160
|
-
/**
|
|
161
|
-
* Runs one pipeline segment against an input, returning its output. Where
|
|
162
|
-
* this runs is the surface's business — in-process for the local CLI, on
|
|
163
|
-
* the client machine for a remote CLI — but never on a daemon host.
|
|
164
|
-
*
|
|
165
|
-
* @param command - The segment command line (e.g. `grep foo`).
|
|
166
|
-
* @param input - The bytes to feed the segment on stdin.
|
|
167
|
-
* @returns The segment's stdout.
|
|
168
|
-
* @throws {CapabilityError} When the surface lacks the `pipeSegments`
|
|
169
|
-
* capability.
|
|
170
|
-
*/
|
|
171
|
-
pipeSegment(command: string, input: Buffer): Promise<Buffer>;
|
|
172
|
-
/**
|
|
173
|
-
* Runs one host-shell command on the surface machine.
|
|
174
|
-
*
|
|
175
|
-
* @param command - The shell command without the leading `!`.
|
|
176
|
-
* @returns The process exit code.
|
|
177
|
-
* @throws {CapabilityError} When the surface lacks `shellCommands`.
|
|
178
|
-
*/
|
|
179
|
-
shellCommand(command: string): Promise<number>;
|
|
180
|
-
/**
|
|
181
|
-
* Opens content in the surface's local editor and returns the result. The
|
|
182
|
-
* editor mechanics are the surface's business — a temp file and `$EDITOR`
|
|
183
|
-
* for the local CLI, the client's editor for a remote CLI, an editor
|
|
184
|
-
* component in a browser.
|
|
185
|
-
*
|
|
186
|
-
* @param request - The content to edit and an optional extension.
|
|
187
|
-
* @returns The edited content and whether it changed.
|
|
188
|
-
* @throws {CapabilityError} When the surface lacks the `localEdit`
|
|
189
|
-
* capability.
|
|
190
|
-
*/
|
|
191
|
-
localEdit(request: LocalEditRequest): Promise<LocalEditResult>;
|
|
192
|
-
/**
|
|
193
|
-
* Places one file where this surface's operator can reach it.
|
|
194
|
-
*
|
|
195
|
-
* The mechanics are the surface's: a write to the resolved path for the
|
|
196
|
-
* local CLI, a write on the client machine for a remote CLI, a saved file
|
|
197
|
-
* for a browser. A daemon never writes to its own disk on a surface's
|
|
198
|
-
* behalf, for the same reason it never spawns a shell there.
|
|
199
|
-
*
|
|
200
|
-
* @param request - What to deliver and where the operator asked for it.
|
|
201
|
-
* @returns Where it landed and how large it was.
|
|
202
|
-
* @throws {CapabilityError} When the surface lacks `fileDelivery`.
|
|
203
|
-
*/
|
|
204
|
-
fileDeliver(request: FileDeliverRequest): Promise<FileDeliverResult>;
|
|
205
|
-
}
|
|
27
|
+
import type { FileDeliverRequest, FileDeliverResult } from '@fnndsc/menu';
|
|
28
|
+
import type { SurfaceCapabilities, PromptRequest, LocalEditRequest, LocalEditResult, Surface } from '@fnndsc/menu/surface';
|
|
29
|
+
export type { SurfaceCapabilities, PromptRequest, LocalEditRequest, LocalEditResult, SurfacePeer, Surface } from '@fnndsc/menu/surface';
|
|
206
30
|
/**
|
|
207
31
|
* Raised when a builtin requests an interaction the attached surface cannot
|
|
208
32
|
* provide. Carries the capability name so a host can present it uniformly.
|
package/dist/core/surface.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../src/core/surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../src/core/surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAuBH;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,mDAAmD;IACnC,UAAU,CAA4B;IAEtD;;;OAGG;IACH,YAAY,UAAqC,EAAE,OAAe;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IAC1B,kBAAkB;IACF,YAAY,GAAwB;QAClD,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,KAAK;QAChB,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,KAAK;QACnB,gBAAgB,EAAE,KAAK;QACvB,eAAe,EAAE,KAAK;KACvB,CAAC;IAEF,kBAAkB;IACX,MAAM,CAAC,QAAuB;QACnC,MAAM,IAAI,eAAe,CAAC,KAAK,EAAE,uCAAuC,CAAC,CAAC;IAC5E,CAAC;IAED,kBAAkB;IACX,WAAW,CAAC,QAAgB,EAAE,MAAc;QACjD,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE,4CAA4C,CAAC,CAAC;IAC1F,CAAC;IAED,kBAAkB;IACX,YAAY,CAAC,QAAgB;QAClC,MAAM,IAAI,eAAe,CAAC,eAAe,EAAE,yCAAyC,CAAC,CAAC;IACxF,CAAC;IAED,kBAAkB;IACX,SAAS,CAAC,QAA0B;QACzC,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,0CAA0C,CAAC,CAAC;IACrF,CAAC;IAED,kBAAkB;IACX,WAAW,CAAC,QAA4B;QAC7C,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE,qCAAqC,CAAC,CAAC;IACnF,CAAC;CACF;AAED,0EAA0E;AAC1E,IAAI,aAAa,GAAY,IAAI,eAAe,EAAE,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,QAAQ,GAAY,aAAa,CAAC;IACxC,aAAa,GAAG,OAAO,CAAC;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAqC,EACrC,OAAe;IAEf,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
|