@plurnk/plurnk-execs 3.1.1 → 4.0.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.md CHANGED
@@ -108,7 +108,8 @@ delivery. The consumer routes SEND to the existing execution address and owns
108
108
  ordering, deadlines, permissions, and proposals. This does not expose Worker
109
109
  identity or grant access to stored output.
110
110
 
111
- `SubprocessExecutor` supplies this receiver when launched with `[{"stdin": "open"}]`.
111
+ `SubprocessExecutor` supplies this receiver when launched with `[{"stdin": "open"}]`, and
112
+ its preparation declares it (`input: "open"`) so the consumer knows a receiver is coming.
112
113
  SEND writes exact UTF-8 input; `[{"eof": true}]` ends stdin. No option means ordinary
113
114
  batch EOF. See [the live-input contract](SPEC.md#executor-live-input-invocation-local-input).
114
115
 
package/SPEC.md CHANGED
@@ -148,6 +148,11 @@ signal: AbortSignal }` and resolves a universal `SchemeResult`. The body is exac
148
148
  authored text; metadata belongs to the receiver. Registration is once per run,
149
149
  never executor-instance state. An absent callback means the consumer cannot
150
150
  deliver live input. A receiver must honor cancellation at each delivery boundary.
151
+ Preparation declares the receiver: an invocation that will register one returns
152
+ `input: "open"` from `prepare` ({§executor-metadata}), so the consumer can tell input
153
+ that has not opened yet from input that never will. Registering without the
154
+ declaration is the executor's defect, refused at registration; declaring and settling
155
+ without registering closes input when the run settles.
151
156
 
152
157
  | Responsibility | Owner |
153
158
  | --- | --- |
@@ -158,7 +163,8 @@ deliver live input. A receiver must honor cancellation at each delivery boundary
158
163
 
159
164
  #### §executor-stdin Subprocess input
160
165
 
161
- `SubprocessExecutor` accepts `[{"stdin": "open"}]` at invocation. The initial recipe
166
+ `SubprocessExecutor` accepts `[{"stdin": "open"}]` at invocation, and its preparation
167
+ then declares `input: "open"` ({§executor-live-input}). The initial recipe
162
168
  input precedes SEND bodies and stdin remains open; without this option, existing
163
169
  batch input and EOF behavior is unchanged. The same input adapter serves `jq`.
164
170
 
@@ -268,10 +274,11 @@ reclassifies the materialized path.
268
274
  | `pure` | Has no externally observable side effect. | Automatically accepted. |
269
275
 
270
276
  The classification controls admission policy and may be reused as operational
271
- metadata; it never changes within the invocation. After acceptance, every execution
277
+ metadata; it never changes within the invocation. After acceptance, an external execution
272
278
  uses the same background stream path: output is not returned in the dispatching
273
279
  turn. Core owns that composed behavior in {§exec-host-proposes},
274
- {§exec-readpure-ungated}, and {§exec-stream}.
280
+ {§exec-readpure-ungated}, and {§exec-stream}; its ordered subsystem commands use
281
+ {§functionality-model-mutation}.
275
282
 
276
283
  ### §executor-probe Availability is per runtime tag
277
284
 
@@ -595,7 +602,7 @@ package discovery also returns them in `Discovery.disabled`.
595
602
  Workspace and loop admission remain consumer concerns;
596
603
  the framework does not define a second Active/Available state machine.
597
604
 
598
- §executor-spawn-account **Every subprocess runtime spawns as one configured account.** `PLURNK_EXECS_SPAWN_USER` names the account each subprocess runtime's child runs as: an account name, resolved once through the host's account database, or `uid[:gid]` taken as written; unset, the daemon's own. The child's environment names it, `HOME`, `USER` and `LOGNAME` following a named account, applied after the composed environment the service hands over and before the spawn. Availability probes run as the same account, so a runtime the account cannot execute is not advertised. A value that resolves to no account is an invalid configuration at the spawn, named by the knob. The key sits outside the runtime policy grammar above; the privilege to assume the account is the daemon's to have, nothing here grants it.
605
+ §executor-spawn-account **Every subprocess runtime spawns as one configured account.** `PLURNK_EXECS_SPAWN_USER` names the account each subprocess runtime's child runs as: an account name, resolved once through the host's account database with `getent passwd`, or `uid[:gid]` taken as written; unset, the daemon's own. A host without `getent` names the account as `uid[:gid]`. The child's environment names it, `HOME`, `USER` and `LOGNAME` following a named account, applied after the composed environment the service hands over and before the spawn. Availability probes run as the same account, so a runtime the account cannot execute is not advertised. A value that resolves to no account is an invalid configuration at the spawn, named by the knob: a name the database does not hold `names no account on this host`; a lookup that did not run, exited otherwise or answered another record `was not resolved`, with what the lookup did, and is never reported as an absent account. An account the daemon may not assume fails the spawn with the host's error; nothing runs as the daemon's own account in its place. The key sits outside the runtime policy grammar above; the privilege to assume the account is the daemon's to have, nothing here grants it.
599
606
 
600
607
  ## §executor-default-inventory Current installed set
601
608
 
@@ -636,11 +643,18 @@ interface SpawnArgs {
636
643
 
637
644
  | Runtime | No-target spawn |
638
645
  | -------------------------- | -------------------------------------------------------------------- |
639
- | `sh` | Shell command line. |
646
+ | `sh` | `<shell> -c <body>`, the environment's shell ({§executor-shell}). |
640
647
  | `node` | `node -e <body>`. |
641
648
  | `python3` | `python3 -c <body>`. |
642
649
  | Other default-base runtime | `<runtime> -c <body>`; specialized executors override this fallback. |
643
650
 
651
+ §executor-shell **`sh` runs the environment's shell, and says which.** The shell is `$SHELL` when it
652
+ is an absolute path to an executable file, and `/bin/sh`, the system shell, otherwise. It is resolved
653
+ once per daemon process, and that one resolution serves both the spawn and the declaration's summary,
654
+ which names the program the path runs, the version its `--version` reports when it reports one, and
655
+ the path: `Run shell commands and scripts with bash 5.2.37 (/bin/bash).` A script target runs under
656
+ the same shell. Nothing about the dialect is promised beyond what the summary names.
657
+
644
658
  With a target, the target is the program and the body is its stdin. Each executor
645
659
  uses its interpreter's file form (`awk -f <target>`, for example). The working
646
660
  directory is the consumer's `cwd` — the project root, or the directory a
@@ -1 +1 @@
1
- {"version":3,"file":"InvocationMetadata.d.ts","sourceRoot":"","sources":["../src/InvocationMetadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7D,KAAK,OAAO,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAChE,KAAK,QAAQ,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACpD,KAAK,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAM/D,MAAM,CAAC,OAAO,OAAO,kBAAkB;;IACnC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAE,QAAa,GAAG,MAAM,CA6B9D;IAWD,OAAa,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAE,QAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAgBxF;CACJ"}
1
+ {"version":3,"file":"InvocationMetadata.d.ts","sourceRoot":"","sources":["../src/InvocationMetadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7D,KAAK,OAAO,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAChE,KAAK,QAAQ,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACpD,KAAK,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAM/D,MAAM,CAAC,OAAO,OAAO,kBAAkB;;IACnC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAE,QAAa,GAAG,MAAM,CA6B9D;IAWD,OAAa,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAE,QAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAkBxF;CACJ"}
@@ -51,13 +51,15 @@ export default class InvocationMetadata {
51
51
  const parsed = this.parse(input, accepted);
52
52
  if ("failure" in parsed)
53
53
  return parsed.failure;
54
+ // {§executor-live-input} — `stdin: "open"` is the declaration that a receiver will register.
55
+ const declared = parsed.options.stdin === "open" ? { input: "open" } : {};
54
56
  const directory = parsed.options.cwd;
55
57
  if (directory === undefined)
56
- return { status: 200, cwd: input.cwd };
58
+ return { status: 200, cwd: input.cwd, ...declared };
57
59
  const cwd = resolve(input.cwd ?? process.cwd(), directory);
58
60
  try {
59
61
  if ((await stat(cwd)).isDirectory())
60
- return { status: 200, cwd };
62
+ return { status: 200, cwd, ...declared };
61
63
  }
62
64
  catch (cause) {
63
65
  const code = cause.code;
@@ -1 +1 @@
1
- {"version":3,"file":"InvocationMetadata.js","sourceRoot":"","sources":["../src/InvocationMetadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InvocationMetadata.js","sourceRoot":"","sources":["../src/InvocationMetadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface ShellChoice {
2
+ readonly path: string;
3
+ readonly program: string;
4
+ readonly version: string | null;
5
+ }
6
+ export default class Shell {
7
+ #private;
8
+ static readonly SYSTEM = "/bin/sh";
9
+ static resolve(env?: NodeJS.ProcessEnv): ShellChoice;
10
+ static current(): ShellChoice;
11
+ static summary({ path, program, version }: ShellChoice): string;
12
+ }
13
+ //# sourceMappingURL=Shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../src/Shell.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAExB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,OAAO,KAAK;;IACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa;IAGnC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,WAAW,CAIhE;IAGD,MAAM,CAAC,OAAO,IAAI,WAAW,CAE5B;IAED,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,MAAM,CAE9D;CAuBJ"}
package/dist/Shell.js ADDED
@@ -0,0 +1,51 @@
1
+ // {§executor-shell} The shell `sh` runs: the environment's `$SHELL` when it names an executable file, else
2
+ // the system shell. One resolution per process serves both the declaration's summary and the spawn.
3
+ import { spawnSync } from "node:child_process";
4
+ import { accessSync, constants, realpathSync, statSync } from "node:fs";
5
+ import { basename, isAbsolute } from "node:path";
6
+ import SpawnAccounts from "./SpawnAccount.js";
7
+ export default class Shell {
8
+ static SYSTEM = "/bin/sh";
9
+ static #current = null;
10
+ static resolve(env = process.env) {
11
+ const declared = env.SHELL;
12
+ const path = declared !== undefined && isAbsolute(declared) && Shell.#executable(declared) ? declared : Shell.SYSTEM;
13
+ return { path, program: Shell.#program(path), version: Shell.#version(path, env) };
14
+ }
15
+ // Resolved on first use and held for the process, so what the summary names is what runs.
16
+ static current() {
17
+ return Shell.#current ??= Shell.resolve();
18
+ }
19
+ static summary({ path, program, version }) {
20
+ return `Run shell commands and scripts with ${program}${version === null ? "" : ` ${version}`} (${path}).`;
21
+ }
22
+ static #executable(path) {
23
+ try {
24
+ if (!statSync(path).isFile())
25
+ return false;
26
+ accessSync(path, constants.X_OK);
27
+ return true;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ static #program(path) {
34
+ try {
35
+ return basename(realpathSync(path));
36
+ }
37
+ catch {
38
+ return basename(path);
39
+ }
40
+ }
41
+ // The first dotted number on the first line; a shell without `--version` (dash) reports none.
42
+ static #version(path, env) {
43
+ const probe = spawnSync(path, ["--version"], {
44
+ encoding: "utf8", timeout: 2_000, stdio: ["ignore", "pipe", "ignore"], ...SpawnAccounts.options(env), // {§executor-spawn-account}
45
+ });
46
+ if (probe.status !== 0)
47
+ return null;
48
+ return /\d+(?:\.\d+)+/u.exec(probe.stdout.split("\n")[0] ?? "")?.[0] ?? null;
49
+ }
50
+ }
51
+ //# sourceMappingURL=Shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shell.js","sourceRoot":"","sources":["../src/Shell.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,oGAAoG;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAW9C,MAAM,CAAC,OAAO,OAAO,KAAK;IACtB,MAAM,CAAU,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,QAAQ,GAAuB,IAAI,CAAC;IAE3C,MAAM,CAAC,OAAO,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;QAC3B,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACrH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;IACvF,CAAC;IAED,0FAA0F;IAC1F,MAAM,CAAC,OAAO;QACV,OAAO,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAe;QAClD,OAAO,uCAAuC,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;IAC/G,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC3B,IAAI,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC3C,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QACxB,IAAI,CAAC;YAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAC5C,MAAM,CAAC;YAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;IACpC,CAAC;IAED,8FAA8F;IAC9F,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,GAAsB;QAChD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;YACzC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,4BAA4B;SACrI,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACjF,CAAC;CACJ"}
@@ -5,6 +5,13 @@ export type SpawnAccount = {
5
5
  readonly gid: number;
6
6
  readonly home: string | null;
7
7
  };
8
+ /** What the host's account lookup answered: the fields of `spawnSync` this resolver reads. */
9
+ export type AccountLookup = (name: string) => {
10
+ readonly error?: Error;
11
+ readonly status: number | null;
12
+ readonly signal?: NodeJS.Signals | null;
13
+ readonly stdout: string;
14
+ };
8
15
  export default class SpawnAccounts {
9
16
  #private;
10
17
  static configured(env?: NodeJS.ProcessEnv): SpawnAccount | null;
@@ -13,5 +20,6 @@ export default class SpawnAccounts {
13
20
  gid?: number;
14
21
  };
15
22
  static environment(base: NodeJS.ProcessEnv, env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
23
+ static resolve(value: string, lookup?: AccountLookup): SpawnAccount;
16
24
  }
17
25
  //# sourceMappingURL=SpawnAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpawnAccount.d.ts","sourceRoot":"","sources":["../src/SpawnAccount.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAKF,MAAM,CAAC,OAAO,OAAO,aAAa;;IAG9B,MAAM,CAAC,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,GAAG,IAAI,CAQ3E;IAGD,MAAM,CAAC,OAAO,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAGnF;IAID,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAInG;CAcJ"}
1
+ {"version":3,"file":"SpawnAccount.d.ts","sourceRoot":"","sources":["../src/SpawnAccount.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,8FAA8F;AAC9F,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B,CAAC;AASF,MAAM,CAAC,OAAO,OAAO,aAAa;;IAG9B,MAAM,CAAC,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,GAAG,IAAI,CAQ3E;IAGD,MAAM,CAAC,OAAO,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAGnF;IAID,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAInG;IAID,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,aAAsB,GAAG,YAAY,CAoB1E;CACJ"}
@@ -1,5 +1,8 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  export const SPAWN_USER = "PLURNK_EXECS_SPAWN_USER";
3
+ // getent(1): 2 is "the key is not in the database", distinct from a lookup that failed.
4
+ const GETENT_ABSENT = 2;
5
+ const getent = (name) => spawnSync("getent", ["passwd", name], { encoding: "utf8" });
3
6
  // {§executor-spawn-account} — the account every subprocess runtime spawns as. Unset, the
4
7
  // daemon's own; a name is resolved once through the host's account database, `uid[:gid]`
5
8
  // is taken as written. An unresolvable value is an invalid configuration at the spawn.
@@ -12,7 +15,7 @@ export default class SpawnAccounts {
12
15
  const known = SpawnAccounts.#resolved.get(value);
13
16
  if (known !== undefined)
14
17
  return known;
15
- const account = SpawnAccounts.#resolve(value);
18
+ const account = SpawnAccounts.resolve(value);
16
19
  SpawnAccounts.#resolved.set(value, account);
17
20
  return account;
18
21
  }
@@ -29,16 +32,26 @@ export default class SpawnAccounts {
29
32
  return base;
30
33
  return { ...base, ...(account.home === null ? {} : { HOME: account.home }), USER: account.name, LOGNAME: account.name };
31
34
  }
32
- static #resolve(value) {
35
+ // One value resolved, uncached. A lookup that did not run or did not answer says nothing about
36
+ // the account, so it is never reported as an absent one.
37
+ static resolve(value, lookup = getent) {
33
38
  const numeric = /^(\d+)(?::(\d+))?$/u.exec(value);
34
39
  if (numeric !== null) {
35
40
  return { name: null, uid: Number(numeric[1]), gid: Number(numeric[2] ?? numeric[1]), home: null };
36
41
  }
37
- const lookup = spawnSync("getent", ["passwd", value], { encoding: "utf8" });
38
- const fields = lookup.status === 0 ? lookup.stdout.trim().split(":") : [];
39
- if (fields.length < 7 || fields[0] !== value) {
42
+ const answer = lookup(value);
43
+ const unresolved = (what, cause) => new Error(`${SPAWN_USER}='${value}' was not resolved: the host's account lookup, \`getent passwd\`, ${what}; write uid[:gid] to name the account without a lookup.`, cause === undefined ? undefined : { cause });
44
+ if (answer.error !== undefined)
45
+ throw unresolved(`did not run (${answer.error.message})`, answer.error);
46
+ if (answer.status === GETENT_ABSENT) {
40
47
  throw new Error(`${SPAWN_USER}='${value}' names no account on this host; write an account name or uid[:gid].`);
41
48
  }
49
+ if (answer.status !== 0)
50
+ throw unresolved(answer.status === null ? `was ended by ${answer.signal ?? "a signal"}` : `exited ${answer.status}`);
51
+ const fields = answer.stdout.trim().split(":");
52
+ if (fields.length < 7 || fields[0] !== value || !/^\d+$/u.test(fields[2]) || !/^\d+$/u.test(fields[3])) {
53
+ throw unresolved("answered a record that is not this account's");
54
+ }
42
55
  return { name: fields[0], uid: Number(fields[2]), gid: Number(fields[3]), home: fields[5] === "" ? null : fields[5] };
43
56
  }
44
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SpawnAccount.js","sourceRoot":"","sources":["../src/SpawnAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpawnAccount.js","sourceRoot":"","sources":["../src/SpawnAccount.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export { default as SubprocessInput } from "./SubprocessInput.ts";
5
5
  export { default as InvocationMetadata } from "./InvocationMetadata.ts";
6
6
  export { default as ErrorDetail, ERROR_DETAIL_LIMIT } from "./ErrorDetail.ts";
7
7
  export { default as SpawnAccounts, SPAWN_USER } from "./SpawnAccount.ts";
8
+ export { default as Shell } from "./Shell.ts";
9
+ export type { ShellChoice } from "./Shell.ts";
8
10
  export type { SpawnAccount } from "./SpawnAccount.ts";
9
11
  export { CommandSyntaxError, tokenizeArgv } from "./tokenizeArgv.ts";
10
12
  export { default as RuntimeTag } from "./RuntimeTag.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAKlD,eAAO,MAAM,QAAQ,sBAAgB,CAAC;AAMtC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,YAAY,EACR,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,IAAI,qBAAqB,EAC1C,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,GACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrF,YAAY,EACR,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,GAC7B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAKlD,eAAO,MAAM,QAAQ,sBAAgB,CAAC;AAMtC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,YAAY,EACR,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,IAAI,qBAAqB,EAC1C,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,GACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrF,YAAY,EACR,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,GAC7B,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export { default as SubprocessInput } from "./SubprocessInput.js";
6
6
  export { default as InvocationMetadata } from "./InvocationMetadata.js";
7
7
  export { default as ErrorDetail, ERROR_DETAIL_LIMIT } from "./ErrorDetail.js";
8
8
  export { default as SpawnAccounts, SPAWN_USER } from "./SpawnAccount.js";
9
+ export { default as Shell } from "./Shell.js";
9
10
  export { CommandSyntaxError, tokenizeArgv } from "./tokenizeArgv.js";
10
11
  export { default as RuntimeTag } from "./RuntimeTag.js";
11
12
  export { default as RuntimeInvocation } from "./RuntimeInvocation.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,oBAAoB;AACpB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,2EAA2E;AAC3E,8EAA8E;AAC9E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;AAEtC,kFAAkF;AAClF,+EAA+E;AAC/E,+EAA+E;AAC/E,2CAA2C;AAC3C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAEhD,gFAAgF;AAChF,wEAAwE;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,oBAAoB;AACpB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,2EAA2E;AAC3E,8EAA8E;AAC9E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;AAEtC,kFAAkF;AAClF,+EAA+E;AAC/E,+EAA+E;AAC/E,2CAA2C;AAC3C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAEhD,gFAAgF;AAChF,wEAAwE;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,GAAG,SAAS,CAaxF;CACJ"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,GAAG,SAAS,CAexF;CACJ"}
package/dist/runtime.js CHANGED
@@ -1,15 +1,18 @@
1
1
  // Spawn-argument recipes used internally by SubprocessExecutor.
2
+ import Shell from "./Shell.js";
2
3
  export default class Runtime {
3
4
  static resolve(runtime, command, target = null) {
5
+ // {§executor-shell} `sh` runs the environment's shell.
4
6
  const shell = runtime === "" || runtime === "sh";
7
+ const cmd = shell ? Shell.current().path : runtime;
5
8
  // With a target the program IS the target and the body is its stdin
6
9
  // ({§executor-subprocess-routing}). Every interpreter reads one script
7
10
  // file; neither shell command parsing nor an executable bit is required.
8
11
  if (target !== null) {
9
- return { cmd: runtime || "sh", args: [target], useShell: false, stdin: command };
12
+ return { cmd, args: [target], useShell: false, stdin: command };
10
13
  }
11
14
  if (shell)
12
- return { cmd: runtime || "sh", args: ["-c", command], useShell: false };
15
+ return { cmd, args: ["-c", command], useShell: false };
13
16
  if (runtime === "node")
14
17
  return { cmd: "node", args: ["-e", command], useShell: false };
15
18
  if (runtime === "python3")
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAIhE,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,OAAe,EAAE,MAAM,GAAkB,IAAI;QACzE,MAAM,KAAK,GAAG,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,IAAI,CAAC;QACjD,oEAAoE;QACpE,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACrF,CAAC;QACD,IAAI,KAAK;YAAE,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACnF,IAAI,OAAO,KAAK,MAAM;YAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvF,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC7F,kEAAkE;QAClE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;CACJ"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAGhE,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,OAAe,EAAE,MAAM,GAAkB,IAAI;QACzE,uDAAuD;QACvD,MAAM,KAAK,GAAG,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,IAAI,CAAC;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACnD,oEAAoE;QACpE,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACpE,CAAC;QACD,IAAI,KAAK;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAClE,IAAI,OAAO,KAAK,MAAM;YAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvF,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC7F,kEAAkE;QAClE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;CACJ"}
package/dist/types.d.ts CHANGED
@@ -38,6 +38,7 @@ export interface ExecInputMessage {
38
38
  export type ExecInputReceiver = (message: ExecInputMessage) => Promise<SchemeResult>;
39
39
  export interface ExecPreparation extends SchemeResult {
40
40
  readonly cwd?: string | null;
41
+ readonly input?: "open";
41
42
  }
42
43
  export interface ExecResult extends ChannelProducerResult {
43
44
  exitCode?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-execs",
3
- "version": "3.1.1",
3
+ "version": "4.0.0",
4
4
  "description": "Framework + contract for the @plurnk/plurnk-execs-* runtime executor packages.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -50,10 +50,10 @@
50
50
  "prepublishOnly": "npm audit --audit-level=moderate && npm test"
51
51
  },
52
52
  "dependencies": {
53
- "@plurnk/plurnk-contracts": "^3.2.0",
54
- "@plurnk/plurnk-parser": "^3.0.1",
53
+ "@plurnk/plurnk-contracts": "^4.0.0",
54
+ "@plurnk/plurnk-parser": "^4.0.0",
55
55
  "@plurnk/plurnk-meta": "^2.1.0",
56
- "@plurnk/plurnk-schemes": "^3.1.0"
56
+ "@plurnk/plurnk-schemes": "^3.2.0"
57
57
  },
58
- "gitHead": "f96502a26d62a6f87b22950a9e2006348ac8a6bc"
58
+ "gitHead": "9f92ceac0af7bdb64e57ebc73c0288bb0f36b720"
59
59
  }