zelari-code 2.15.0 → 2.16.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.
Files changed (46) hide show
  1. package/dist/cli/companion/cors.js +52 -0
  2. package/dist/cli/companion/cors.js.map +1 -0
  3. package/dist/cli/companion/runManager.js +233 -1
  4. package/dist/cli/companion/runManager.js.map +1 -1
  5. package/dist/cli/companion/serve.js +21 -4
  6. package/dist/cli/companion/serve.js.map +1 -1
  7. package/dist/cli/extensions/extensionToolWiring.js +57 -0
  8. package/dist/cli/extensions/extensionToolWiring.js.map +1 -0
  9. package/dist/cli/extensions/loader.js +213 -0
  10. package/dist/cli/extensions/loader.js.map +1 -0
  11. package/dist/cli/extensions/sandboxedFs.js +69 -0
  12. package/dist/cli/extensions/sandboxedFs.js.map +1 -0
  13. package/dist/cli/headless/runOneTurn.js +783 -0
  14. package/dist/cli/headless/runOneTurn.js.map +1 -0
  15. package/dist/cli/kraken/completionGate.js +22 -5
  16. package/dist/cli/kraken/completionGate.js.map +1 -1
  17. package/dist/cli/lsp/manager.js +16 -0
  18. package/dist/cli/lsp/manager.js.map +1 -1
  19. package/dist/cli/main.bundled.js +17714 -15752
  20. package/dist/cli/main.bundled.js.map +4 -4
  21. package/dist/cli/main.js +20 -0
  22. package/dist/cli/main.js.map +1 -1
  23. package/dist/cli/runHeadless.js +5 -695
  24. package/dist/cli/runHeadless.js.map +1 -1
  25. package/dist/cli/safety/jails/darwin.js +87 -0
  26. package/dist/cli/safety/jails/darwin.js.map +1 -0
  27. package/dist/cli/safety/jails/linux.js +80 -0
  28. package/dist/cli/safety/jails/linux.js.map +1 -0
  29. package/dist/cli/safety/jails/win32.js +19 -0
  30. package/dist/cli/safety/jails/win32.js.map +1 -0
  31. package/dist/cli/safety/lifecycleHooks.js +33 -3
  32. package/dist/cli/safety/lifecycleHooks.js.map +1 -1
  33. package/dist/cli/safety/osJail.js +289 -0
  34. package/dist/cli/safety/osJail.js.map +1 -0
  35. package/dist/cli/safety/policyLoadMode.js.map +1 -1
  36. package/dist/cli/serve/harnessClient.js +150 -0
  37. package/dist/cli/serve/harnessClient.js.map +1 -0
  38. package/dist/cli/serve/harnessServer.js +333 -0
  39. package/dist/cli/serve/harnessServer.js.map +1 -0
  40. package/dist/cli/serve/sessionControl.js +67 -0
  41. package/dist/cli/serve/sessionControl.js.map +1 -0
  42. package/dist/cli/toolRegistry.js +338 -33
  43. package/dist/cli/toolRegistry.js.map +1 -1
  44. package/dist/cli/tools/execProcess.js +36 -15
  45. package/dist/cli/tools/execProcess.js.map +1 -1
  46. package/package.json +2 -2
@@ -17,15 +17,24 @@
17
17
  * - the shell blocklist still runs on the joined program+argv as
18
18
  * defense-in-depth against destructive payloads.
19
19
  *
20
+ * v2.17 (t28, Pilastro A): the spawn goes through the osJail choke-point
21
+ * {@link spawnJailed} — NO direct child_process spawn remains on this path
22
+ * (grep-gated by scripts/verify-os-jail.mjs). Under the active jail the
23
+ * child gets an allowlisted env only; a missing backend with
24
+ * ZELARI_OS_JAIL=required DENIES the tool (typed `[jail]` error) and with
25
+ * `advisory` runs unjailed with a visible warning on the result. The
26
+ * network posture comes from the SAME resourceClaims decision as the
27
+ * permission layer (hosts whose claim resolved to `allow`).
28
+ *
20
29
  * Windows note: direct spawn like the bash tool's win32 branch — plain .exe
21
30
  * binaries on PATH work; `.cmd`/`.bat` shims may need the full path (no
22
31
  * shell indirection exists here to resolve them).
23
32
  */
24
- import { spawn } from 'node:child_process';
25
33
  import { z } from 'zod';
26
34
  import { typedErr, typedOk } from '@zelari/core/harness/tools/toolTypes';
27
35
  import { findBlockedReason } from '../safety/shellBlocklist.js';
28
36
  import { resolveSandboxedPath, SandboxViolationError } from '../safety/sandboxPath.js';
37
+ import { buildJailSpec, spawnJailed } from '../safety/osJail.js';
29
38
  export const execProcessInputSchema = z.object({
30
39
  /** Program to execute: bare name resolved via PATH, or an absolute path. */
31
40
  program: z.string().min(1),
@@ -38,7 +47,10 @@ export const execProcessInputSchema = z.object({
38
47
  });
39
48
  /** Per-stream output cap — same budget as the bash tool. */
40
49
  const MAX_STREAM_CHARS = 1024 * 1024;
41
- export function createExecProcessTool(root) {
50
+ export function createExecProcessTool(root, opts = {}) {
51
+ // The spec is per-registry (root is constant); only the network posture
52
+ // is narrowed per invocation from the claims verdict.
53
+ const baseSpec = buildJailSpec({ root });
42
54
  return {
43
55
  name: 'exec_process',
44
56
  description: 'Execute ONE program with structured arguments WITHOUT shell interpolation: no pipes, globs, variable expansion or quoting pitfalls — exactly the argv you pass is executed. ' +
@@ -68,21 +80,30 @@ export function createExecProcessTool(root) {
68
80
  }
69
81
  return new Promise((resolve) => {
70
82
  const start = Date.now();
71
- let child;
72
- try {
73
- // Direct spawn, shell:false argv array reaches the OS untouched.
74
- child = spawn(input.program, argv, {
75
- cwd,
76
- signal: ctx?.signal,
77
- shell: false,
78
- env: { ...process.env, CI: process.env.CI ?? '1' },
79
- stdio: ['ignore', 'pipe', 'pipe'], // non-interactive by construction
80
- });
83
+ // v2.17 (t28): THE choke-point. Deny/notice/fail are handled below;
84
+ // this path never touches child_process directly.
85
+ const spec = { ...baseSpec, network: opts.resolveNetwork?.(input) ?? baseSpec.network };
86
+ const res = spawnJailed(spec, {
87
+ program: input.program,
88
+ argv,
89
+ cwd,
90
+ signal: ctx?.signal,
91
+ env: process.env,
92
+ envExtras: { CI: process.env.CI ?? '1' },
93
+ });
94
+ if (res.outcome === 'denied') {
95
+ resolve(typedErr(res.reason));
96
+ return;
81
97
  }
82
- catch (err) {
83
- resolve(typedErr(`exec_process could not launch ${input.program}: ${err instanceof Error ? err.message : String(err)}`));
98
+ if (res.outcome === 'failed') {
99
+ resolve(typedErr(`exec_process could not launch ${input.program}: ${res.reason}`));
84
100
  return;
85
101
  }
102
+ // Visible fail-open (advisory): the notice rides on the result meta.
103
+ const meta = res.notice
104
+ ? { status: 'complete', warnings: [`os-jail: ${res.notice}`] }
105
+ : undefined;
106
+ const child = res.child;
86
107
  let stdout = '';
87
108
  let stderr = '';
88
109
  child.stdout?.on('data', (d) => {
@@ -112,7 +133,7 @@ export function createExecProcessTool(root) {
112
133
  stdout: stdout.slice(0, MAX_STREAM_CHARS),
113
134
  stderr: stderr.slice(0, MAX_STREAM_CHARS),
114
135
  durationMs: Date.now() - start,
115
- }));
136
+ }, meta));
116
137
  });
117
138
  });
118
139
  },
@@ -1 +1 @@
1
- {"version":3,"file":"execProcess.js","sourceRoot":"","sources":["../../../src/cli/tools/execProcess.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execProcess.js","sourceRoot":"","sources":["../../../src/cli/tools/execProcess.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zelari-code",
3
- "version": "2.15.0",
3
+ "version": "2.16.0",
4
4
  "description": "Zelari Code — AI Council coding agent CLI. Multi-agent orchestration (Caronte, Nettuno, Gerione, Plutone, Minosse, Lucifero) with slash commands, provider-agnostic LLM streaming, and self-update.",
5
5
  "author": "Anathema Studio <https://anathema-studio.com/>",
6
6
  "license": "Apache-2.0",
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "devDependencies": {
62
62
  "@testing-library/react": "^16.3.2",
63
- "@zelari/core": "2.15.0",
63
+ "@zelari/core": "2.16.0",
64
64
  "@types/node": "^25.3.0",
65
65
  "@types/react": "^19.0.10",
66
66
  "esbuild": "^0.25.0",