@plurnk/plurnk-execs 0.4.1 → 0.4.2
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/SPEC.md +1 -1
- package/package.json +9 -1
package/SPEC.md
CHANGED
|
@@ -131,7 +131,7 @@ interface SpawnArgs { cmd: string; args: string[]; useShell: boolean; }
|
|
|
131
131
|
|
|
132
132
|
`resolveRuntime` never throws; consumers gate unknown runtimes with `isKnownRuntime` and return 501 before invoking.
|
|
133
133
|
|
|
134
|
-
The framework wraps this in **`SubprocessExecutor extends BaseExecutor`** — declares `{ stdout, stderr }` channels and implements `run()` (spawn via `resolveRuntime`, stream into the channels, honor `signal`, `emit` `spawn_failed` on a failed start, return `{ status, exitCode }`). Subclasses with their own interpreter table override the **`protected spawnArgs(runtime, command) → SpawnArgs`** hook (default delegates to `resolveRuntime`) — and so inherit run()'s streaming + process-group abort handling. `SpawnArgs.stdin?` lets filter-style runtimes feed their program/input via stdin (`bc`, `tclsh`; or `""` for an `awk` BEGIN with EOF). On abort it kills the whole **process group** (`detached` spawn + `process.kill(-pid, …)`, SIGTERM→SIGKILL grace) so shell grandchildren can't leak (plurnk-execs#4). The `plurnk-execs-
|
|
134
|
+
The framework wraps this in **`SubprocessExecutor extends BaseExecutor`** — declares `{ stdout, stderr }` channels and implements `run()` (spawn via `resolveRuntime`, stream into the channels, honor `signal`, `emit` `spawn_failed` on a failed start, return `{ status, exitCode }`). Subclasses with their own interpreter table override the **`protected spawnArgs(runtime, command) → SpawnArgs`** hook (default delegates to `resolveRuntime`) — and so inherit run()'s streaming + process-group abort handling. `SpawnArgs.stdin?` lets filter-style runtimes feed their program/input via stdin (`bc`, `tclsh`; or `""` for an `awk` BEGIN with EOF). On abort it kills the whole **process group** (`detached` spawn + `process.kill(-pid, …)`, SIGTERM→SIGKILL grace) so shell grandchildren can't leak (plurnk-execs#4). The `plurnk-execs-common` sibling subclasses it — claiming the whole subprocess set (sh/bash/node/python plus detected host interpreters) via a recipe table behind a `spawnArgs()` / `probe()` override. `isKnownRuntime` / `KNOWN_RUNTIMES` are the legacy 501 gate; the discovery registry + `probe()` supersede them once a consumer wires the registry.
|
|
135
135
|
|
|
136
136
|
## §5 Consumer surface (plurnk-service)
|
|
137
137
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-execs",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Framework + contract for the @plurnk/plurnk-execs-* runtime executor family.",
|
|
5
5
|
"keywords": ["plurnk", "exec", "runtime", "executor"],
|
|
6
6
|
"homepage": "https://github.com/plurnk/plurnk-execs#readme",
|
|
@@ -40,6 +40,14 @@
|
|
|
40
40
|
"build": "npm run build:dist",
|
|
41
41
|
"prepare": "npm run build"
|
|
42
42
|
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@plurnk/plurnk-execs-common": "0.2.1",
|
|
45
|
+
"@plurnk/plurnk-execs-search": "0.2.3",
|
|
46
|
+
"@plurnk/plurnk-execs-sqlite": "0.1.3",
|
|
47
|
+
"@plurnk/plurnk-execs-wasm": "0.1.2",
|
|
48
|
+
"@plurnk/plurnk-execs-git": "0.1.1",
|
|
49
|
+
"@plurnk/plurnk-execs-jq": "0.1.1"
|
|
50
|
+
},
|
|
43
51
|
"devDependencies": {
|
|
44
52
|
"@types/node": "^25.8.0",
|
|
45
53
|
"typescript": "^6.0.3"
|