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
@@ -15,15 +15,17 @@
15
15
  */
16
16
  import { ToolRegistry } from '@zelari/core/harness/tools/registry';
17
17
  import { readFileTool, writeFileTool, editFileTool, } from '@zelari/core/harness/tools/builtin/filesystem';
18
- import { bashTool } from '@zelari/core/harness/tools/builtin/shell';
18
+ import { createBashTool } from '@zelari/core/harness/tools/builtin/shell';
19
19
  import { grepContentTool } from '@zelari/core/harness/tools/builtin/search';
20
20
  import { listFilesTool } from '@zelari/core/harness/tools/builtin/listFiles';
21
21
  import { showDiffTool, applyDiffTool } from '@zelari/core/harness/tools/builtin/diff';
22
22
  import { fetchUrlTool, webSearchTool } from '@zelari/core/harness/tools/builtin/web';
23
- import { resolveSandboxedPath, SandboxViolationError } from './safety/sandboxPath.js';
23
+ import { resolveSandboxedPath, SandboxViolationError, verifyContainment } from './safety/sandboxPath.js';
24
24
  import { assertShellAllowed, ShellBlockedError } from './safety/shellBlocklist.js';
25
25
  import { AuditLogger } from './safety/auditLogger.js';
26
- import { runDiagnosticsForFile, formatDiagnostics } from './diagnostics/engine.js';
26
+ import { DEFAULT_PROVIDERS, formatDiagnostics, runDiagnosticsForFile, } from './diagnostics/engine.js';
27
+ import { existsSync } from 'node:fs';
28
+ import path from 'node:path';
27
29
  import { createTaskTool } from './tools/taskTool.js';
28
30
  import { createKrakenSelectTool } from './tools/krakenSelectTool.js';
29
31
  import { createAskUserTool } from './tools/askUser.js';
@@ -45,13 +47,19 @@ import { providerFromEnv, providerConfigFor, } from './provider/openai-compatibl
45
47
  import { buildProviderStream } from './provider/resolveStream.js';
46
48
  import { getKrakenVerifierOverride } from './providerConfig.js';
47
49
  import { defaultPermissionPolicy, intersectPermissionPolicy, resolveToolPermission, } from './safety/toolPermissions.js';
48
- import { createDefaultLifecycleHooks } from './safety/lifecycleHooks.js';
50
+ import { createDefaultLifecycleHooks, HOOKS_FAILURE_ENV, resolveHookFailureMode } from './safety/lifecycleHooks.js';
51
+ // t30 (Pilastro C): ExtensionAPI seam — extension tools ride the SAME
52
+ // wrapWithPermissions path as builtins; onPreToolUse handlers ride the t22
53
+ // failure semantics (resolveHookFailureMode, same env override as hooks).
54
+ import { extensionToolToDefinition, withExtensionPreToolUse } from './extensions/extensionToolWiring.js';
49
55
  import { agentLayersFor, emptyPolicySet, loadPolicySet, mergeRuleEffect, PolicyLoadError, } from './safety/policyEngine.js';
50
56
  import { activePolicyLoadMode } from './safety/policyLoadMode.js';
51
57
  import { intersectEffects, matchAgentPolicyRuleLayered } from './safety/policyLayers.js';
52
58
  // t22: the TaskContract compiles into a NON-OVERRIDABLE restrict-only layer.
53
59
  import { matchContractCapabilityRule } from './kraken/contractCompiler.js';
54
- import { resolveClaimsVerdict } from './safety/resourceClaims.js';
60
+ import { matchResourceClaimLayered, resourceClaimsFor, resolveClaimsVerdict } from './safety/resourceClaims.js';
61
+ // v2.17 (t28): OS jail (Pilastro A) — the ONLY spawn choke-point for exec/bash.
62
+ import { buildJailSpec, jailAdvisoryNotice, jailAvailability, jailDenyReason, networkSpecFromClaimHosts, spawnJailed, } from './safety/osJail.js';
55
63
  import { withResultCache } from './toolResultCache.js';
56
64
  import { typedErr } from '@zelari/core/harness/tools/toolTypes';
57
65
  import { cliToolToEnhanced, registerCustomTool } from '@zelari/core/skills';
@@ -63,7 +71,9 @@ import { cliToolToEnhanced, registerCustomTool } from '@zelari/core/skills';
63
71
  * - filesystem tools: resolveSandboxedPath() on every path arg; throws
64
72
  * SandboxViolationError if the path escapes the root.
65
73
  * - bash: assertShellAllowed() on the command; throws ShellBlockedError
66
- * on any blocklist match.
74
+ * on any blocklist match. Since v2.17 (t27) the cwd arg is ALSO jailed:
75
+ * resolveSandboxedPath() resolves it against the root before the spawn
76
+ * and a cwd outside the root is a typed `[sandbox]` deny.
67
77
  * - every tool: AuditLogger.runTool() wraps the call to record ts,
68
78
  * args (redacted), ok, duration, summary.
69
79
  */
@@ -76,24 +86,67 @@ export function createBuiltinToolRegistry(options = {}) {
76
86
  // loop: after a successful edit, a fast file-scoped checker runs on the
77
87
  // touched file and its errors/warnings are appended to the tool result so
78
88
  // the model sees compiler feedback in the same turn (opt out: ZELARI_DIAGNOSTICS=0).
89
+ // t31 (2.21 §6.6): the execute tools (bash/exec_process) share the same
90
+ // loop post-execute, on the source paths the invocation claims.
79
91
  const diagnosticsOn = options.diagnostics ?? process.env.ZELARI_DIAGNOSTICS !== '0';
80
92
  const withDiag = (t) => diagnosticsOn ? wrapWithDiagnostics(t, root, options.diagnosticsRunner) : t;
93
+ // t31 (2.21 §6.6): the EXECUTE tools (bash/exec_process) get the same
94
+ // diagnostics loop, post-execute, on the source paths the invocation
95
+ // claims — same engine, same result channel, same opt-out as withDiag.
96
+ const withExecDiag = (t) => diagnosticsOn ? wrapWithExecuteDiagnostics(t, root, options.diagnosticsRunner) : t;
81
97
  // Cache sits inside the sandbox wrap so permission + path checks still
82
98
  // run on every call; only the disk/search work is skipped on a hit.
83
99
  const safeReadFile = wrapWithSandbox(withResultCache(readFileTool, { kind: 'stat' }), ['path'], root, audit, sessionId);
84
- const safeWriteFile = withDiag(wrapWithSandbox(writeFileTool, ['path'], root, audit, sessionId));
85
- const safeEditFile = withDiag(wrapWithSandbox(editFileTool, ['path'], root, audit, sessionId));
100
+ // v2.16 (t26): write tools additionally re-verify containment (fresh
101
+ // syscalls) immediately before execute see wrapWithSandbox opts.verifyWrite.
102
+ const safeWriteFile = withDiag(wrapWithSandbox(writeFileTool, ['path'], root, audit, sessionId, { verifyWrite: true }));
103
+ const safeEditFile = withDiag(wrapWithSandbox(editFileTool, ['path'], root, audit, sessionId, { verifyWrite: true }));
86
104
  const safeGrepContent = wrapWithSandbox(withResultCache(grepContentTool, { kind: 'ttl' }), ['path'], root, audit, sessionId);
87
105
  const safeListFiles = wrapWithSandbox(withResultCache(listFilesTool, { kind: 'ttl' }), ['path'], root, audit, sessionId);
88
106
  const safeShowDiff = wrapWithSandbox(showDiffTool, ['path'], root, audit, sessionId);
89
- const safeApplyDiff = withDiag(wrapWithSandbox(applyDiffTool, ['path'], root, audit, sessionId));
90
- // Wrap bash: shell blocklist + audit.
91
- const safeBash = wrapWithShellSafety(bashTool, audit, sessionId);
107
+ const safeApplyDiff = withDiag(wrapWithSandbox(applyDiffTool, ['path'], root, audit, sessionId, { verifyWrite: true }));
108
+ // v2.17 (t28, Pilastro A): ONE JailSpec per registry, from the SAME root
109
+ // decision the sandbox wrappers use (no second policy engine). The bash
110
+ // tool is rebuilt with the osJail spawn seam so its ONLY spawn route is
111
+ // safety/osJail.spawnJailed; the network posture is narrowed per
112
+ // invocation from the SAME layered claims engine the permission wrapper
113
+ // uses (agentPolicyLayers below — the resolver only runs inside
114
+ // execute(), never at construction, so the declaration order is safe).
115
+ const jailSpec = buildJailSpec({ root });
116
+ const resolveJailNetwork = (toolName, args) => {
117
+ const allowedHosts = [];
118
+ for (const claim of resourceClaimsFor(toolName, args)) {
119
+ if (claim.kind !== 'network')
120
+ continue;
121
+ const hit = matchResourceClaimLayered(agentPolicyLayers, agentPolicySet.precedence, claim, root);
122
+ if (hit?.effect === 'allow')
123
+ allowedHosts.push(claim.host);
124
+ }
125
+ return networkSpecFromClaimHosts(allowedHosts);
126
+ };
127
+ const jailedBashSeam = (req) => {
128
+ const res = spawnJailed(jailSpec, req);
129
+ if (res.outcome === 'spawned') {
130
+ return { outcome: 'spawned', child: res.child, ...(res.notice ? { notice: res.notice } : {}) };
131
+ }
132
+ return res.outcome === 'denied'
133
+ ? { outcome: 'denied', reason: res.reason }
134
+ : { outcome: 'failed', reason: res.reason };
135
+ };
136
+ // Wrap bash: shell blocklist + sandboxed cwd (v2.17 t27) + OS-jail
137
+ // preflight (v2.17 t28) + audit — spawned ONLY through the seam above.
138
+ // t31 (2.21 §6.6): after a successful run, diagnostics run on the source
139
+ // paths the command claims (post-execute, same loop as the edit tools).
140
+ const safeBash = withExecDiag(wrapWithShellSafety(createBashTool(jailedBashSeam), audit, sessionId, root, jailSpec));
92
141
  // P0.C2 (t17): structured exec_process — same shell-safety discipline as
93
142
  // bash (blocklist + audit) with an evidence-grade audit summary
94
143
  // (`program argv -> exitCode=N`); registered THROUGH the permission
95
- // wrapper below so policy claims gate every execution.
96
- const safeExecProcess = wrapWithExecEvidence(createExecProcessTool(root), audit, sessionId);
144
+ // wrapper below so policy claims gate every execution. v2.17 (t28): the
145
+ // tool spawns via spawnJailed internally (network = claims verdict).
146
+ // t31 (2.21 §6.6): post-execute diagnostics on claimed source paths.
147
+ const safeExecProcess = withExecDiag(wrapWithExecEvidence(createExecProcessTool(root, {
148
+ resolveNetwork: (input) => resolveJailNetwork('exec_process', input),
149
+ }), audit, sessionId));
97
150
  // v0.7.5: network tools — audit-only wrap (no filesystem paths to sandbox;
98
151
  // the tools themselves enforce http(s)-only + timeout + size caps).
99
152
  const safeFetchUrl = wrapWithAudit(fetchUrlTool, audit, sessionId);
@@ -410,6 +463,37 @@ export function createBuiltinToolRegistry(options = {}) {
410
463
  tools.push({ name: t.name, description: t.description, permissions: t.permissions ?? [] });
411
464
  }
412
465
  }
466
+ // t30 (Pilastro C): ExtensionAPI seam. Extension tools enter through the
467
+ // SAME `withPerm` wrapper as every builtin above — category policy, agent
468
+ // rules, resource claims and the TaskContract capability layer all still
469
+ // intersect (contract LAST), so a declared permission can never widen the
470
+ // parent policy. Tool names never collide: an already-registered tool
471
+ // wins and the extension tool is skipped LOUDLY (no shadowing builtins).
472
+ const extRegistry = options.extensions;
473
+ if (extRegistry) {
474
+ for (const entry of extRegistry.listExtensionTools()) {
475
+ if (registry.get(entry.spec.name)) {
476
+ process.stderr.write(`[extensions] tool "${entry.spec.name}" from extension "${entry.extensionId}" collides with an existing tool — skipped\n`);
477
+ continue;
478
+ }
479
+ registry.register(withPerm(extensionToolToDefinition(entry)));
480
+ }
481
+ // Extension onPreToolUse handlers: additive post-pass over EVERY tool
482
+ // (builtins included), mirroring the PreToolUse phase ordering (hooks
483
+ // run before the tool body). t22 failure semantics via the SAME
484
+ // resolver that drives the JSON lifecycle hooks. No handlers ⇒ no wrap,
485
+ // zero overhead on registries without extensions.
486
+ const preHandlers = extRegistry.preToolUseHandlers;
487
+ if (preHandlers.length > 0) {
488
+ const failureMode = resolveHookFailureMode(process.env[HOOKS_FAILURE_ENV]);
489
+ const wrapExtPre = withExtensionPreToolUse(preHandlers, { failureMode });
490
+ for (const name of registry.list()) {
491
+ const def = registry.get(name);
492
+ if (def)
493
+ registry.register(wrapExtPre(def));
494
+ }
495
+ }
496
+ }
413
497
  return { registry, tools };
414
498
  }
415
499
  /**
@@ -656,12 +740,43 @@ function wrapWithPermissions(original, policy, onAsk, agentLayers, precedence =
656
740
  },
657
741
  };
658
742
  }
659
- function wrapWithSandbox(original, pathArgs, root, audit, sessionId) {
743
+ /**
744
+ * Wrap a filesystem tool so every path argument is sandboxed to `root` before
745
+ * the tool runs: lexical + symlink-safe resolution (resolveSandboxedPath), a
746
+ * typed SandboxViolationError → `{ ok: false, error: '[sandbox] …' }` deny,
747
+ * and an audit record for every violation.
748
+ *
749
+ * v2.16 (t26): write tools (write_file / edit_file / apply_diff) pass
750
+ * `{ verifyWrite: true }` — the resolved destination is re-checked with
751
+ * verifyContainment (BOTH layers, fresh syscalls) as the LAST step before
752
+ * execute, closing the TOCTOU window between the resolve above and the
753
+ * actual disk mutation (links swapped during an approval UI / hook await).
754
+ * Read-side tools stay resolve-only.
755
+ */
756
+ export function wrapWithSandbox(original, pathArgs, root, audit, sessionId, opts = {}) {
660
757
  return {
661
758
  ...original,
662
759
  execute: async (rawArgs, ctx) => {
663
760
  // Pre-flight: sandbox all path args; rewrite them in-place.
664
761
  const args = rawArgs;
762
+ // Audit + typedErr so the caller gets a friendly error (the resolver
763
+ // below and the t26 re-check share the same deny shape).
764
+ const denySandbox = async (err) => {
765
+ await audit.append({
766
+ ts: new Date().toISOString(),
767
+ sessionId,
768
+ tool: original.name,
769
+ args: redactForAudit(args),
770
+ ok: false,
771
+ resultSummary: err.message,
772
+ durationMs: 0,
773
+ error: 'sandbox_violation',
774
+ });
775
+ return {
776
+ ok: false,
777
+ error: `[sandbox] ${err.message}`,
778
+ };
779
+ };
665
780
  for (const key of pathArgs) {
666
781
  const v = args[key];
667
782
  if (typeof v === 'string' && v.length > 0) {
@@ -670,21 +785,27 @@ function wrapWithSandbox(original, pathArgs, root, audit, sessionId) {
670
785
  }
671
786
  catch (err) {
672
787
  if (err instanceof SandboxViolationError) {
673
- // Audit + return typedErr so the caller gets a friendly error.
674
- await audit.append({
675
- ts: new Date().toISOString(),
676
- sessionId,
677
- tool: original.name,
678
- args: redactForAudit(args),
679
- ok: false,
680
- resultSummary: err.message,
681
- durationMs: 0,
682
- error: 'sandbox_violation',
683
- });
684
- return {
685
- ok: false,
686
- error: `[sandbox] ${err.message}`,
687
- };
788
+ return denySandbox(err);
789
+ }
790
+ throw err;
791
+ }
792
+ }
793
+ }
794
+ // v2.16 (t26): TOCTOU re-check on the write path — verifyContainment
795
+ // re-runs BOTH layers on fresh syscalls as the last step before the
796
+ // tool mutates disk. Same EPERM → lexical-layer degradation semantics
797
+ // as sandboxPath itself (reused as-is, not reimplemented).
798
+ if (opts.verifyWrite) {
799
+ for (const key of pathArgs) {
800
+ const v = args[key];
801
+ if (typeof v !== 'string' || v.length === 0)
802
+ continue;
803
+ try {
804
+ verifyContainment(v, { root });
805
+ }
806
+ catch (err) {
807
+ if (err instanceof SandboxViolationError) {
808
+ return await denySandbox(err);
688
809
  }
689
810
  throw err;
690
811
  }
@@ -759,6 +880,115 @@ function wrapWithDiagnostics(original, root, runner) {
759
880
  },
760
881
  };
761
882
  }
883
+ // ---------------------------------------------------------------------------
884
+ // t31 (2.21 §6.6): post-execute diagnostics on CLAIMED source paths for the
885
+ // execute tools (bash / exec_process). The edit tools run the loop through
886
+ // wrapWithDiagnostics; an execute touches source files too (`node gen.ts`,
887
+ // `eslint src/a.ts`) — after a successful run, the SAME fast file-scoped
888
+ // checker runs on the source paths the invocation claims (the process
889
+ // claims of resourceClaimsFor — the SAME claims table the permission and
890
+ // jail-network layers read) and the formatted block lands under
891
+ // `diagnostics` in the result value — the SAME channel, no second mechanism.
892
+ // Conservative by construction: a token counts only when it (a) has an
893
+ // extension the diagnostics engine can check (DEFAULT_PROVIDERS surface),
894
+ // (b) resolves INSIDE the workspace root (same sandbox policy as path args),
895
+ // and (c) exists on disk after the run. Missing/outside paths are skipped.
896
+ // Best-effort like the edit loop: never blocks, never fails the tool.
897
+ // ---------------------------------------------------------------------------
898
+ const DIAG_SOURCE_EXTENSIONS = new Set(DEFAULT_PROVIDERS.flatMap((p) => p.extensions));
899
+ /** Cap the post-execute fan-out (an execute can mention many paths). */
900
+ const EXEC_DIAGNOSTICS_MAX_FILES = 4;
901
+ /** One claimed token → existing in-root source path, or null. */
902
+ function claimedSourcePath(token, args, root) {
903
+ const cleaned = token.replace(/^["']|["']$/g, '');
904
+ if (!cleaned || cleaned.startsWith('-'))
905
+ return null; // flags are not paths
906
+ if (!DIAG_SOURCE_EXTENSIONS.has(path.extname(cleaned).toLowerCase()))
907
+ return null;
908
+ // Bases: the (jailed, absolute) cwd the child ran in, then the root — a
909
+ // relative cwd value still resolves against the root, never process.cwd().
910
+ const bases = [root];
911
+ const cwd = args['cwd'];
912
+ if (typeof cwd === 'string' && cwd.length > 0) {
913
+ bases.unshift(path.isAbsolute(cwd) ? cwd : path.resolve(root, cwd));
914
+ }
915
+ for (const base of bases) {
916
+ const candidate = path.isAbsolute(cleaned) ? path.normalize(cleaned) : path.resolve(base, cleaned);
917
+ try {
918
+ // Same containment policy as every path arg (symlink-safe resolve).
919
+ const contained = resolveSandboxedPath(candidate, { root });
920
+ if (existsSync(contained))
921
+ return contained;
922
+ }
923
+ catch {
924
+ // Resolves outside the root → not a workspace source path; skip.
925
+ }
926
+ }
927
+ return null;
928
+ }
929
+ /** Source paths claimed by an execute invocation (process claims → tokens). */
930
+ function claimedSourcePaths(toolName, args, root) {
931
+ const out = [];
932
+ for (const claim of resourceClaimsFor(toolName, args)) {
933
+ if (claim.kind !== 'process')
934
+ continue;
935
+ const tokens = [
936
+ claim.executable,
937
+ ...(claim.argv ?? []),
938
+ ...(claim.raw ? claim.raw.split(/\s+/) : []),
939
+ ];
940
+ for (const token of tokens) {
941
+ const p = claimedSourcePath(token, args, root);
942
+ if (p && !out.includes(p))
943
+ out.push(p);
944
+ }
945
+ }
946
+ return out;
947
+ }
948
+ /**
949
+ * Wrap an execute tool (bash / exec_process) with the post-execute
950
+ * diagnostics loop over its claimed source paths. After a successful run,
951
+ * each claimed in-root source file (capped) goes through the SAME
952
+ * runDiagnosticsForFile + formatDiagnostics pipeline the edit loop uses;
953
+ * a non-empty formatted block is appended to the result value under
954
+ * `diagnostics` so the model sees compiler feedback in the same turn.
955
+ * Never changes a failed result; diagnostics failures are swallowed.
956
+ */
957
+ function wrapWithExecuteDiagnostics(original, root, runner) {
958
+ return {
959
+ ...original,
960
+ execute: async (rawArgs, ctx) => {
961
+ const result = await original.execute(rawArgs, ctx);
962
+ if (!result.ok)
963
+ return result;
964
+ const value = result.value;
965
+ if (!value || typeof value !== 'object')
966
+ return result;
967
+ try {
968
+ const paths = claimedSourcePaths(original.name, rawArgs, root).slice(0, EXEC_DIAGNOSTICS_MAX_FILES);
969
+ if (paths.length === 0)
970
+ return result;
971
+ const timeoutMs = Number(process.env.ZELARI_DIAGNOSTICS_TIMEOUT_MS) || 5000;
972
+ const diags = [];
973
+ for (const p of paths) {
974
+ diags.push(...(await runDiagnosticsForFile(p, {
975
+ cwd: root,
976
+ timeoutMs,
977
+ ...(runner ? { runner } : {}),
978
+ })));
979
+ }
980
+ const formatted = formatDiagnostics(diags, { relativeTo: root });
981
+ if (formatted) {
982
+ return { ok: true, value: { ...value, diagnostics: formatted } };
983
+ }
984
+ }
985
+ catch {
986
+ // Diagnostics must never break an execution — swallow and return as-is.
987
+ }
988
+ return result;
989
+ },
990
+ };
991
+ }
762
992
  /** Audit-only wrap for tools with no path/shell args (network tools). */
763
993
  function wrapWithAudit(original, audit, sessionId) {
764
994
  return {
@@ -805,7 +1035,12 @@ function wrapWithExecEvidence(original, audit, sessionId) {
805
1035
  summarize: (result) => {
806
1036
  const r = result;
807
1037
  const code = r.ok ? r.value.exitCode : undefined;
808
- return `${what}${code !== undefined ? ` -> exitCode=${code}` : ''}`;
1038
+ // v2.17 (t28): carry the advisory os-jail signal into the audit
1039
+ // trail (visible fail-open must be auditable, not only on console).
1040
+ const jail = r.meta?.warnings
1041
+ ?.filter((w) => w.startsWith('os-jail:'))
1042
+ .join('; ');
1043
+ return `${what}${code !== undefined ? ` -> exitCode=${code}` : ''}${jail ? ` [${jail}]` : ''}`;
809
1044
  },
810
1045
  fn: () => original.execute(rawArgs, ctx),
811
1046
  });
@@ -820,10 +1055,21 @@ function wrapWithExecEvidence(original, audit, sessionId) {
820
1055
  };
821
1056
  }
822
1057
  /**
823
- * Wrap the bash tool: assertShellAllowed() runs before execute(), and
824
- * every invocation is audited.
1058
+ * Wrap the bash tool: assertShellAllowed() runs before execute(), the cwd
1059
+ * argument is jailed to the workspace root with resolveSandboxedPath()
1060
+ * (v2.17 t27 — the resolved ABSOLUTE cwd is injected so the child process
1061
+ * starts inside the sandbox; a cwd outside the root is a typed deny before
1062
+ * any process is created), and every invocation is audited.
1063
+ *
1064
+ * v2.17 (t28): OS-jail preflight when a JailSpec is provided —
1065
+ * - ZELARI_OS_JAIL=required + backend missing ⇒ audited typed `[jail]`
1066
+ * DENY before any spawn (golden rule: never warn/skip/upgrade);
1067
+ * - ZELARI_OS_JAIL=advisory + backend missing ⇒ the command still runs
1068
+ * (visible fail-open: the console signal is emitted by spawnJailed, the
1069
+ * audit entry is appended here);
1070
+ * - off / backend available ⇒ spawn proceeds through the osJail seam.
825
1071
  */
826
- function wrapWithShellSafety(original, audit, sessionId) {
1072
+ function wrapWithShellSafety(original, audit, sessionId, root, jail) {
827
1073
  return {
828
1074
  ...original,
829
1075
  execute: async (rawArgs, ctx) => {
@@ -853,6 +1099,65 @@ function wrapWithShellSafety(original, audit, sessionId) {
853
1099
  throw err;
854
1100
  }
855
1101
  }
1102
+ // v2.17 (t27): jail the bash cwd to the workspace root BEFORE the
1103
+ // builtin spawns — the same discipline wrapWithSandbox applies to
1104
+ // filesystem path args (symlink-safe resolve). Absent cwd resolves to
1105
+ // the root itself, so the child never inherits an unjailed ctx.cwd.
1106
+ // Rejection happens BEFORE any spawn: the command does not run.
1107
+ const rawCwd = args['cwd'];
1108
+ try {
1109
+ args['cwd'] = resolveSandboxedPath(typeof rawCwd === 'string' && rawCwd.length > 0 ? rawCwd : '.', { root });
1110
+ }
1111
+ catch (err) {
1112
+ if (!(err instanceof SandboxViolationError))
1113
+ throw err;
1114
+ await audit.append({
1115
+ ts: new Date().toISOString(),
1116
+ sessionId,
1117
+ tool: original.name,
1118
+ args: redactForAudit(args),
1119
+ ok: false,
1120
+ resultSummary: err.message,
1121
+ durationMs: 0,
1122
+ error: 'sandbox_violation',
1123
+ });
1124
+ return {
1125
+ ok: false,
1126
+ error: `[sandbox] ${err.message}`,
1127
+ };
1128
+ }
1129
+ // v2.17 (t28): OS-jail preflight — BEFORE any spawn the mode and the
1130
+ // honest backend probe decide. required + missing ⇒ typed `[jail]`
1131
+ // deny (the builtin below never runs); advisory + missing ⇒ audited
1132
+ // visible fail-open and the spawn (unjailed) proceeds.
1133
+ if (jail) {
1134
+ const { mode, probe } = jailAvailability();
1135
+ if (mode !== 'off' && !probe.available) {
1136
+ if (mode === 'required') {
1137
+ const reason = jailDenyReason(probe, mode);
1138
+ await audit.append({
1139
+ ts: new Date().toISOString(),
1140
+ sessionId,
1141
+ tool: original.name,
1142
+ args: redactForAudit(args),
1143
+ ok: false,
1144
+ resultSummary: reason,
1145
+ durationMs: 0,
1146
+ error: 'jail_denied',
1147
+ });
1148
+ return { ok: false, error: `[jail] ${reason}` };
1149
+ }
1150
+ await audit.append({
1151
+ ts: new Date().toISOString(),
1152
+ sessionId,
1153
+ tool: original.name,
1154
+ args: redactForAudit(args),
1155
+ ok: true,
1156
+ resultSummary: `[os-jail] ${jailAdvisoryNotice(probe)}`,
1157
+ durationMs: 0,
1158
+ });
1159
+ }
1160
+ }
856
1161
  try {
857
1162
  return await audit.runTool({
858
1163
  tool: original.name,
@@ -1 +1 @@
1
- {"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../src/cli/toolRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../src/cli/toolRegistry.ts"],"names":[],"mappings":"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"}