@sigil0/looking-glass 0.1.0 → 0.2.1

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 (75) hide show
  1. package/README.md +143 -61
  2. package/dist/agents/coordinator.js +1 -1
  3. package/dist/agents/coordinator.js.map +1 -1
  4. package/dist/cli.js +17 -15
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +5 -3
  8. package/dist/config.js.map +1 -1
  9. package/dist/doctor.d.ts +14 -0
  10. package/dist/doctor.d.ts.map +1 -0
  11. package/dist/doctor.js +26 -0
  12. package/dist/doctor.js.map +1 -0
  13. package/dist/paths.d.ts +8 -4
  14. package/dist/paths.d.ts.map +1 -1
  15. package/dist/paths.js +39 -15
  16. package/dist/paths.js.map +1 -1
  17. package/dist/scheduler/index.d.ts +5 -1
  18. package/dist/scheduler/index.d.ts.map +1 -1
  19. package/dist/scheduler/index.js +3 -1
  20. package/dist/scheduler/index.js.map +1 -1
  21. package/dist/scheduler/runner.d.ts.map +1 -1
  22. package/dist/scheduler/runner.js +35 -3
  23. package/dist/scheduler/runner.js.map +1 -1
  24. package/dist/scheduler/service.d.ts +15 -0
  25. package/dist/scheduler/service.d.ts.map +1 -0
  26. package/dist/scheduler/service.js +20 -0
  27. package/dist/scheduler/service.js.map +1 -0
  28. package/dist/scheduler/windows.d.ts +87 -0
  29. package/dist/scheduler/windows.d.ts.map +1 -0
  30. package/dist/scheduler/windows.js +505 -0
  31. package/dist/scheduler/windows.js.map +1 -0
  32. package/dist/storage/artifact-store.d.ts +2 -1
  33. package/dist/storage/artifact-store.d.ts.map +1 -1
  34. package/dist/storage/artifact-store.js +8 -3
  35. package/dist/storage/artifact-store.js.map +1 -1
  36. package/dist/storage/database.d.ts +1 -1
  37. package/dist/storage/database.d.ts.map +1 -1
  38. package/dist/storage/database.js +10 -6
  39. package/dist/storage/database.js.map +1 -1
  40. package/dist/tools/apply-patch.d.ts +15 -0
  41. package/dist/tools/apply-patch.d.ts.map +1 -1
  42. package/dist/tools/apply-patch.js +81 -12
  43. package/dist/tools/apply-patch.js.map +1 -1
  44. package/dist/tools/bash.d.ts +2 -0
  45. package/dist/tools/bash.d.ts.map +1 -1
  46. package/dist/tools/bash.js +43 -22
  47. package/dist/tools/bash.js.map +1 -1
  48. package/dist/tools/executable.d.ts +13 -0
  49. package/dist/tools/executable.d.ts.map +1 -0
  50. package/dist/tools/executable.js +82 -0
  51. package/dist/tools/executable.js.map +1 -0
  52. package/dist/tools/process.d.ts +8 -0
  53. package/dist/tools/process.d.ts.map +1 -1
  54. package/dist/tools/process.js +105 -35
  55. package/dist/tools/process.js.map +1 -1
  56. package/dist/tools/safety.d.ts +5 -1
  57. package/dist/tools/safety.d.ts.map +1 -1
  58. package/dist/tools/safety.js +125 -7
  59. package/dist/tools/safety.js.map +1 -1
  60. package/dist/tools/schedule.d.ts.map +1 -1
  61. package/dist/tools/schedule.js +4 -3
  62. package/dist/tools/schedule.js.map +1 -1
  63. package/dist/tools/search.d.ts.map +1 -1
  64. package/dist/tools/search.js +9 -4
  65. package/dist/tools/search.js.map +1 -1
  66. package/dist/tools/shell.d.ts +30 -0
  67. package/dist/tools/shell.d.ts.map +1 -0
  68. package/dist/tools/shell.js +51 -0
  69. package/dist/tools/shell.js.map +1 -0
  70. package/dist/ui/tui.d.ts +6 -0
  71. package/dist/ui/tui.d.ts.map +1 -1
  72. package/dist/ui/tui.js +44 -21
  73. package/dist/ui/tui.js.map +1 -1
  74. package/looking-glass-title.svg +69 -0
  75. package/package.json +7 -5
@@ -1,4 +1,5 @@
1
1
  import { spawn } from "node:child_process";
2
+ import { taskkillExecutable } from "./shell.js";
2
3
  function appendBounded(chunks, chunk, currentBytes, limit) {
3
4
  const remaining = limit - currentBytes;
4
5
  if (remaining <= 0)
@@ -9,12 +10,18 @@ export function runProcess(command, args, options) {
9
10
  if (options.signal?.aborted) {
10
11
  return Promise.reject(options.signal.reason ?? new Error("Process execution was aborted before start"));
11
12
  }
13
+ const platform = options.platform ?? process.platform;
14
+ const spawnProcess = options.spawnProcess ?? spawn;
15
+ const windows = platform === "win32";
16
+ const detached = options.detached ?? !windows;
12
17
  return new Promise((resolve, reject) => {
13
- const child = spawn(command, args, {
18
+ const child = spawnProcess(command, args, {
14
19
  cwd: options.cwd,
15
20
  env: options.env ?? process.env,
16
- detached: options.detached ?? true,
21
+ detached,
22
+ shell: false,
17
23
  stdio: ["ignore", "pipe", "pipe"],
24
+ windowsHide: windows,
18
25
  });
19
26
  const stdout = [];
20
27
  const stderr = [];
@@ -24,6 +31,33 @@ export function runProcess(command, args, options) {
24
31
  let settled = false;
25
32
  let terminating = false;
26
33
  let killTimer;
34
+ let fallbackTimer;
35
+ const cleanup = () => {
36
+ clearTimeout(timeout);
37
+ if (killTimer)
38
+ clearTimeout(killTimer);
39
+ if (fallbackTimer)
40
+ clearTimeout(fallbackTimer);
41
+ options.signal?.removeEventListener("abort", onAbort);
42
+ };
43
+ const complete = (exitCode, signal) => {
44
+ if (settled)
45
+ return;
46
+ settled = true;
47
+ cleanup();
48
+ resolve({
49
+ stdout: Buffer.concat(stdout),
50
+ stderr: Buffer.concat(stderr),
51
+ stdoutBytes,
52
+ stderrBytes,
53
+ stdoutTruncated: stdoutBytes > options.captureBytes,
54
+ stderrTruncated: stderrBytes > options.captureBytes,
55
+ exitCode,
56
+ // Windows taskkill has no POSIX signal equivalent.
57
+ signal: windows ? null : signal,
58
+ timedOut,
59
+ });
60
+ };
27
61
  const signalGroup = (signal) => {
28
62
  if (!child.pid)
29
63
  return;
@@ -39,26 +73,71 @@ export function runProcess(command, args, options) {
39
73
  }
40
74
  }
41
75
  };
76
+ const fallbackWindowsKill = () => {
77
+ if (settled)
78
+ return;
79
+ try {
80
+ // taskkill can be unavailable or can lose a race with process exit.
81
+ // Falling back to the direct child handle prevents cancellation from
82
+ // waiting forever when taskkill reports failure.
83
+ if (!child.kill()) {
84
+ complete(null, null);
85
+ return;
86
+ }
87
+ }
88
+ catch {
89
+ complete(null, null);
90
+ return;
91
+ }
92
+ fallbackTimer = setTimeout(() => complete(null, null), 1_000);
93
+ };
94
+ // Windows Job Objects are intentionally not used: this harness supports
95
+ // older Windows hosts and does not assign a job to arbitrary children.
96
+ // taskkill is only sent during timeout/abort termination, never from a
97
+ // normal close handler, because a recycled PID could target another job.
98
+ const terminateWindowsTree = () => {
99
+ if (settled)
100
+ return;
101
+ if (!child.pid) {
102
+ fallbackWindowsKill();
103
+ return;
104
+ }
105
+ try {
106
+ // Do not use a shell here: the command and PID are not shell text.
107
+ const killer = spawnProcess(taskkillExecutable(options.systemRoot), ["/PID", String(child.pid), "/T", "/F"], {
108
+ detached: false,
109
+ shell: false,
110
+ stdio: "ignore",
111
+ windowsHide: true,
112
+ });
113
+ killer.once("error", fallbackWindowsKill);
114
+ killer.once("close", (exitCode, signal) => {
115
+ if (exitCode !== 0 || signal !== null)
116
+ fallbackWindowsKill();
117
+ });
118
+ }
119
+ catch {
120
+ fallbackWindowsKill();
121
+ }
122
+ };
42
123
  const terminate = () => {
43
124
  if (settled || terminating)
44
125
  return;
45
126
  terminating = true;
46
- signalGroup("SIGTERM");
127
+ if (windows)
128
+ terminateWindowsTree();
129
+ else
130
+ signalGroup("SIGTERM");
47
131
  killTimer = setTimeout(() => {
48
- if (!settled)
49
- signalGroup("SIGKILL");
132
+ if (!settled) {
133
+ if (windows)
134
+ fallbackWindowsKill();
135
+ else
136
+ signalGroup("SIGKILL");
137
+ }
50
138
  }, 5_000);
51
139
  killTimer.unref();
52
140
  };
53
- const timeout = setTimeout(() => {
54
- timedOut = true;
55
- terminate();
56
- }, options.timeoutMs);
57
- timeout.unref();
58
- const onAbort = () => terminate();
59
- options.signal?.addEventListener("abort", onAbort, { once: true });
60
- if (options.signal?.aborted)
61
- terminate();
62
141
  child.stdout.on("data", (value) => {
63
142
  appendBounded(stdout, value, Math.min(stdoutBytes, options.captureBytes), options.captureBytes);
64
143
  stdoutBytes += value.byteLength;
@@ -71,34 +150,25 @@ export function runProcess(command, args, options) {
71
150
  if (settled)
72
151
  return;
73
152
  settled = true;
74
- clearTimeout(timeout);
75
- if (killTimer)
76
- clearTimeout(killTimer);
77
- options.signal?.removeEventListener("abort", onAbort);
153
+ cleanup();
78
154
  reject(error);
79
155
  });
80
156
  child.once("close", (exitCode, signal) => {
81
157
  if (settled)
82
158
  return;
83
- if (options.detached ?? true)
159
+ if (!windows && detached)
84
160
  signalGroup("SIGKILL");
85
- settled = true;
86
- clearTimeout(timeout);
87
- if (killTimer)
88
- clearTimeout(killTimer);
89
- options.signal?.removeEventListener("abort", onAbort);
90
- resolve({
91
- stdout: Buffer.concat(stdout),
92
- stderr: Buffer.concat(stderr),
93
- stdoutBytes,
94
- stderrBytes,
95
- stdoutTruncated: stdoutBytes > options.captureBytes,
96
- stderrTruncated: stderrBytes > options.captureBytes,
97
- exitCode,
98
- signal,
99
- timedOut,
100
- });
161
+ complete(exitCode, signal);
101
162
  });
163
+ const timeout = setTimeout(() => {
164
+ timedOut = true;
165
+ terminate();
166
+ }, options.timeoutMs);
167
+ timeout.unref();
168
+ const onAbort = () => terminate();
169
+ options.signal?.addEventListener("abort", onAbort, { once: true });
170
+ if (options.signal?.aborted)
171
+ terminate();
102
172
  });
103
173
  }
104
174
  //# sourceMappingURL=process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/tools/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/tools/process.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  import type { ToolRisk } from "./types.js";
2
+ import type { ShellKind } from "./shell.js";
2
3
  export declare function bashCommandRisk(command: string): ToolRisk;
3
4
  export declare function bashExecutionRisk(command: string): ToolRisk;
5
+ export declare function powershellCommandRisk(command: string): ToolRisk;
6
+ export declare function powershellExecutionRisk(command: string): ToolRisk;
7
+ export declare function shellCommandRisk(command: string, kind: ShellKind): ToolRisk;
4
8
  export declare function bashApprovalExecutable(command: string): string | null;
5
9
  export declare function isSensitiveMutationPath(path: string): boolean;
6
10
  export declare function patchRisk(patch: string): ToolRisk;
7
11
  export declare function workspacePatchRisk(workspace: string, patch: string): ToolRisk;
8
- export declare function shellEnvironment(base?: NodeJS.ProcessEnv, excludedKeys?: Iterable<string>): NodeJS.ProcessEnv;
12
+ export declare function shellEnvironment(base?: NodeJS.ProcessEnv, excludedKeys?: Iterable<string>, platform?: NodeJS.Platform): NodeJS.ProcessEnv;
9
13
  //# sourceMappingURL=safety.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/tools/safety.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwE3C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAGzD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6ErE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAI7D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CASjD;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAG7E;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,MAAM,CAAC,UAAwB,EACrC,YAAY,GAAE,QAAQ,CAAC,MAAM,CAAM,GAClC,MAAM,CAAC,UAAU,CAUnB"}
1
+ {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/tools/safety.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA4I5C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAGzD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAE3D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAW/D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,QAAQ,CAE3E;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6ErE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAI7D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CASjD;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAG7E;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,MAAM,CAAC,UAAwB,EACrC,YAAY,GAAE,QAAQ,CAAC,MAAM,CAAM,EACnC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAAC,UAAU,CAwCnB"}
@@ -1,4 +1,4 @@
1
- import { resolve } from "node:path";
1
+ import { posix as posixPath } from "node:path";
2
2
  const SHELL_ACCESS_PATH = String.raw `(?:(?:~|\$(?:HOME|\{HOME\})|\/root|\/home\/[^\/\s]+|\.)?\/?\.ssh(?:\/\S*)?|\/?etc\/(?:ssh|sudoers(?:\.d)?|pam\.d|network|netplan|NetworkManager\/system-connections)(?:\/\S*)?|\/?etc\/(?:passwd|shadow|group|gshadow))`;
3
3
  const CRITICAL_SHELL_PATTERNS = [
4
4
  /(^|[;&|()\s])(?:rm|rmdir|unlink|shred|wipefs|mkfs(?:\.\w+)?|fdisk|parted|dd|truncate)(?:\s|$)/i,
@@ -51,6 +51,46 @@ const CRITICAL_SHELL_PATTERNS = [
51
51
  new RegExp(String.raw `(^|[;&|()\s])(?:cp|mv|install)\b[^\n;&|]*[\s"']${SHELL_ACCESS_PATH}["']?\s*(?:$|[;&|])`, "i"),
52
52
  new RegExp(String.raw `(^|[;&|()\s])(?:cp|mv|install)\b[^\n;&|]*(?:--target-directory(?:=|\s+)|-t\s+)["']?${SHELL_ACCESS_PATH}`, "i"),
53
53
  ];
54
+ // Native PowerShell cmdlets and common Windows command aliases. Keep these
55
+ // separate from the Bash patterns so Windows coverage cannot weaken POSIX
56
+ // classification.
57
+ const CRITICAL_POWERSHELL_PATTERNS = [
58
+ // Wrappers and dynamic launchers can execute a different command from the
59
+ // visible leading token. Keep this lexical classification conservative; it
60
+ // is not intended to replace PowerShell parsing.
61
+ /(^|[\s;&|()])cmd(?:\.exe)?\s+\/c(?:\s|$)/i,
62
+ /(^|[\s;&|()])(?:powershell|pwsh)(?:\.exe)?\b/i,
63
+ /(^|[\s;&|()])(?:-|\/)EncodedCommand(?:\s|$)/i,
64
+ /\b(?:Process\s*\.\s*Start|(?:System\.)?Diagnostics\.Process\s*\]?\s*::\s*Start)\b/i,
65
+ /(^|[\s;&|()])(?:Invoke-Expression|Invoke-Command|iex)\b/i,
66
+ /(^|[\s;&|()])Start-Process\b/i,
67
+ /(^|[\s;&|()])&\s*(?:[$({]|(?:"[^"]*(?:[$`]\(|[$`])|\S*[$`]))/i,
68
+ /(^|[\s;&|()])(?:Remove-Item|del|erase|rmdir|rd|rm|ri)(?:\.exe)?\b/i,
69
+ /(^|[\s;&|()])(?:Stop|Restart)-Service\b/i,
70
+ /(^|[\s;&|()])(?:Remove|Set|New)-Service\b/i,
71
+ /(^|[\s;&|()])sc(?:\.exe)?\s+(?:delete|stop|config|failure|failureflag)\b/i,
72
+ /(^|[\s;&|()])(?:Stop-Process|taskkill|kill)(?:\.exe)?\b/i,
73
+ /(^|[\s;&|()])shutdown(?:\.exe)?\b/i,
74
+ /(^|[\s;&|()])(?:format|diskpart)(?:\.exe|\.com)?\b/i,
75
+ /(^|[\s;&|()])(?:Set-Acl|takeown|icacls)(?:\.exe)?\b/i,
76
+ /(^|[\s;&|()])(?:Clear-RecycleBin|(?:New|Remove|Set)-(?:SmbShare|ScheduledTask))\b/i,
77
+ /(^|[\s;&|()])(?:New|Remove|Set|Disable|Enable|Restart)-Net(?:Firewall(?:Rule|Profile)?|Adapter|IPAddress|IPInterface|Route|Nat)\b/i,
78
+ /(^|[\s;&|()])Set-DnsClientServerAddress\b/i,
79
+ /(^|[\s;&|()])reg(?:\.exe)?\s+delete\b/i,
80
+ /(^|[\s;&|()])(?:New|Remove|Set)-Item(?:Property)?\b[^\n;&|]*(?:Registry::|(?:HKLM|HKCU|HKCR|HKU|HKCC):|HKEY_(?:LOCAL_MACHINE|CURRENT_USER|CLASSES_ROOT|USERS|CURRENT_CONFIG))/i,
81
+ /(^|[\s;&|()])bcdedit(?:\.exe)?\s+\/(?:delete(?:value)?|set|remove|timeout|bootsequence|default)\b/i,
82
+ /(^|[\s;&|()])(?:New|Remove|Set|Rename|Disable|Enable)-(?:LocalUser|LocalGroup)(?:Member)?\b/i,
83
+ /(^|[\s;&|()])(?:Add|Remove)-(?:LocalGroupMember)\b/i,
84
+ /(^|[\s;&|()])net(?:\.exe)?\s+(?:user|localgroup)\b/i,
85
+ /(^|[\s;&|()])netsh(?:\.exe)?\b[^\n;&|]*(?:firewall|advfirewall|interface|ipsec|winsock|portproxy)\b/i,
86
+ /(^|[\s;&|()])(?:route|netsh)(?:\.exe)?\b[^\n;&|]*(?:\b(?:add|change|delete|del|remove|set|reset|flush)\b)/i,
87
+ ];
88
+ const POWERSHELL_SENSITIVE_DESTINATION = /(?:\$\{?env:(?:SystemRoot|WinDir|ProgramData|ProgramFiles(?:X86)?)\b\}?|(?:^|[\\/])(?:Windows|ProgramData|Program Files(?: \(x86\))?)(?:[\\/]|$)|(?:^|[\\/])(?:\.ssh|authorized_keys|hosts|SAM|SECURITY|SYSTEM)(?:[\\/]|$))/i;
89
+ const POWERSHELL_MUTATING_FILE_CMDLET = /(^|[\s;&|()])(?:Set-Content|Add-Content|Out-File|Clear-Content|(?:Move|Copy|Rename)-Item)\b/i;
90
+ const POWERSHELL_DESTRUCTIVE_FILE_OPERATION = /(^|[\s;&|()])(?:Clear-Content\b|(?:(?:Set|Add)-Content|Out-File|(?:Move|Copy|Rename)-Item)\b[^\n;&|]*(?:-Force\b|-Recurse\b|-Confirm\s*:\s*\$(?:false|0)\b))/i;
91
+ const POWERSHELL_SENSITIVE_REDIRECTION = /(?:^|[\s;&|()])(?:\d+|\*)?>{1,2}\s*(?:"([^"]*)"|'([^']*)'|([^\s;&|()]+))/g;
92
+ const POWERSHELL_DOTNET_FILE_WRITE = /\[(?:System\.)?IO\.File\]::(?:WriteAll(?:Text|Lines|Bytes)|AppendAll(?:Text|Lines)|Create(?:Text)?|Open(?:Write)?)(?:Async)?\s*\(\s*(?:"([^"]*)"|'([^']*)'|([^,\s)]+))/gi;
93
+ const POWERSHELL_DOTNET_FILE_DELETE = /\b(?:System\.)?IO\.File\]?\s*::\s*Delete\b|\b(?:System\.)?IO\.File\s*\.\s*Delete\b|\bFile\s*\.\s*Delete\b/i;
54
94
  const ACCESS_LOCKOUT_PATCH_PATH = /(?:^|\/)(?:\.ssh|authorized_keys|etc\/(?:ssh|sudoers(?:\.d)?|pam\.d|network|netplan|NetworkManager\/system-connections))(?:\/|$)/i;
55
95
  const NON_EXECUTABLE_SHELL_WORDS = new Set([
56
96
  ".", "!",
@@ -63,6 +103,31 @@ function normalizedShellText(command) {
63
103
  .replace(/(?<=[A-Za-z])["']{2}(?=[A-Za-z])/g, "")
64
104
  .replace(/(^|[;&|()\s])\/(?:usr\/)?s?bin\/(?=[\w.-])/g, "$1");
65
105
  }
106
+ function normalizedPowerShellText(command) {
107
+ // A quoted command name is still executable when invoked through `&`. Turn
108
+ // only literal names into the form covered by the native command patterns;
109
+ // interpolated names remain dynamic and retain their critical classification.
110
+ return command.replace(/(^|[\s;&|()])&\s*(["'])([^"'`$]+)\2/g, (_match, boundary, _quote, executable) => {
111
+ const basename = executable.replace(/^.*[\\/]/, "");
112
+ return `${boundary}${basename}`;
113
+ });
114
+ }
115
+ function hasSensitivePowerShellRedirection(command) {
116
+ for (const match of command.matchAll(POWERSHELL_SENSITIVE_REDIRECTION)) {
117
+ const destination = match[1] ?? match[2] ?? match[3] ?? "";
118
+ if (POWERSHELL_SENSITIVE_DESTINATION.test(destination))
119
+ return true;
120
+ }
121
+ return false;
122
+ }
123
+ function hasSensitiveDotNetFileWrite(command) {
124
+ for (const match of command.matchAll(POWERSHELL_DOTNET_FILE_WRITE)) {
125
+ const destination = match[1] ?? match[2] ?? match[3] ?? "";
126
+ if (POWERSHELL_SENSITIVE_DESTINATION.test(destination))
127
+ return true;
128
+ }
129
+ return false;
130
+ }
66
131
  export function bashCommandRisk(command) {
67
132
  const normalized = normalizedShellText(command);
68
133
  return CRITICAL_SHELL_PATTERNS.some((pattern) => pattern.test(normalized)) ? "critical" : "shell";
@@ -70,6 +135,26 @@ export function bashCommandRisk(command) {
70
135
  export function bashExecutionRisk(command) {
71
136
  return bashCommandRisk(command);
72
137
  }
138
+ export function powershellCommandRisk(command) {
139
+ const normalized = normalizedPowerShellText(command);
140
+ if (CRITICAL_POWERSHELL_PATTERNS.some((pattern) => pattern.test(normalized)))
141
+ return "critical";
142
+ if (hasSensitivePowerShellRedirection(normalized)
143
+ || hasSensitiveDotNetFileWrite(normalized)
144
+ || POWERSHELL_DOTNET_FILE_DELETE.test(normalized))
145
+ return "critical";
146
+ if (POWERSHELL_MUTATING_FILE_CMDLET.test(normalized)
147
+ && (POWERSHELL_SENSITIVE_DESTINATION.test(normalized) || POWERSHELL_DESTRUCTIVE_FILE_OPERATION.test(normalized))) {
148
+ return "critical";
149
+ }
150
+ return "shell";
151
+ }
152
+ export function powershellExecutionRisk(command) {
153
+ return powershellCommandRisk(command);
154
+ }
155
+ export function shellCommandRisk(command, kind) {
156
+ return kind === "powershell" ? powershellCommandRisk(command) : bashCommandRisk(command);
157
+ }
73
158
  export function bashApprovalExecutable(command) {
74
159
  if (!command.trim())
75
160
  return null;
@@ -162,7 +247,7 @@ export function bashApprovalExecutable(command) {
162
247
  return systemExecutable ?? executable;
163
248
  }
164
249
  export function isSensitiveMutationPath(path) {
165
- const normalized = resolve("/", path.replaceAll("\\", "/")).slice(1);
250
+ const normalized = posixPath.resolve("/", path.replaceAll("\\", "/")).slice(1);
166
251
  if (ACCESS_LOCKOUT_PATCH_PATH.test(normalized))
167
252
  return true;
168
253
  return /(?:^|\/)etc\/(?:passwd|shadow|group|gshadow)$/.test(normalized);
@@ -183,17 +268,50 @@ export function workspacePatchRisk(workspace, patch) {
183
268
  void workspace;
184
269
  return patchRisk(patch);
185
270
  }
186
- export function shellEnvironment(base = process.env, excludedKeys = []) {
271
+ export function shellEnvironment(base = process.env, excludedKeys = [], platform = process.platform) {
187
272
  const env = { ...base };
273
+ const windows = platform === "win32";
188
274
  for (const key of Object.keys(env)) {
189
- if (key.startsWith("BASH_FUNC_"))
275
+ if (windows ? key.toLowerCase().startsWith("bash_func_") : key.startsWith("BASH_FUNC_"))
190
276
  delete env[key];
191
277
  }
192
278
  for (const key of ["BASH_ENV", "ENV", "SHELLOPTS", "BASHOPTS", "CDPATH", "GLOBIGNORE", "PROMPT_COMMAND", "RIPGREP_CONFIG_PATH"]) {
193
- delete env[key];
279
+ if (windows) {
280
+ for (const candidate of Object.keys(env)) {
281
+ if (candidate.toLowerCase() === key.toLowerCase())
282
+ delete env[candidate];
283
+ }
284
+ }
285
+ else {
286
+ delete env[key];
287
+ }
288
+ }
289
+ if (windows) {
290
+ // -NoProfile prevents profile scripts, while these environment values can
291
+ // still affect module loading, execution policy, or profile discovery.
292
+ for (const key of [
293
+ "PSModulePath",
294
+ "PSExecutionPolicyPreference",
295
+ "__PSLockDownPolicy",
296
+ "PROFILE",
297
+ "PSProfile",
298
+ "PowerShellProfile",
299
+ "POWERSHELL_PROFILE",
300
+ "POWERSHELL_PROFILE_PATH",
301
+ ]) {
302
+ for (const candidate of Object.keys(env)) {
303
+ if (candidate.toLowerCase() === key.toLowerCase())
304
+ delete env[candidate];
305
+ }
306
+ }
307
+ }
308
+ const excluded = windows
309
+ ? new Set([...excludedKeys].map((key) => key.toLowerCase()))
310
+ : new Set(excludedKeys);
311
+ for (const key of Object.keys(env)) {
312
+ if (excluded.has(windows ? key.toLowerCase() : key))
313
+ delete env[key];
194
314
  }
195
- for (const key of excludedKeys)
196
- delete env[key];
197
315
  return env;
198
316
  }
199
317
  //# sourceMappingURL=safety.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/tools/safety.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/tools/safety.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA+C5C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAAE,CA6JtE"}
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgD5C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAAE,CA6JtE"}
@@ -1,5 +1,6 @@
1
1
  import { isWithin, resolveWorkspacePath } from "./paths.js";
2
- import { bashCommandRisk } from "./safety.js";
2
+ import { shellCommandRisk } from "./safety.js";
3
+ import { shellKind } from "./shell.js";
3
4
  function formatJob(job) {
4
5
  if (!job)
5
6
  return "Job not found.";
@@ -27,7 +28,7 @@ export function createScheduleTools(store) {
27
28
  name: "schedule_create",
28
29
  description: "Create a persistent reminder, deterministic shell command, or prompt for this persistent session. Use only after an explicit user request.",
29
30
  risk: "persistent",
30
- classifyRisk: (args) => args.kind === "command" && args.command && bashCommandRisk(args.command) === "critical"
31
+ classifyRisk: (args) => args.kind === "command" && args.command && shellCommandRisk(args.command, shellKind()) === "critical"
31
32
  ? "critical"
32
33
  : "persistent",
33
34
  parameters: {
@@ -128,7 +129,7 @@ export function createScheduleTools(store) {
128
129
  const job = store.getJob(args.id);
129
130
  if (job?.kind === "command"
130
131
  && (args.action === "resume" || args.action === "run_now" || args.action === "resolve_unknown")
131
- && bashCommandRisk(job.command ?? "") === "critical")
132
+ && shellCommandRisk(job.command ?? "", shellKind()) === "critical")
132
133
  return "critical";
133
134
  return "persistent";
134
135
  },
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAWD,eAAO,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ,CA4BxC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ,CA8BxC,CAAC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAWD,eAAO,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ,CA6BxC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ,CA+BxC,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { runProcess } from "./process.js";
2
2
  import { resolveWorkspacePath } from "./paths.js";
3
+ import { resolveExecutableFromPath } from "./executable.js";
4
+ import { shellEnvironment } from "./safety.js";
5
+ import { credentialEnvironmentNames } from "../security.js";
3
6
  function outputFromRg(stdout, stderr, exitCode, limit) {
4
7
  const error = stderr.toString("utf8").trim();
5
8
  if (exitCode !== 0 && exitCode !== 1)
@@ -27,11 +30,12 @@ export const globTool = {
27
30
  summarize: (args) => `Find files matching ${args.pattern}`,
28
31
  async execute(args, context) {
29
32
  const limit = Math.min(args.limit ?? 1_000, 5_000);
30
- const commandArgs = ["--no-config", "--files", "--hidden", "--glob", "!.git", "--glob", args.pattern];
33
+ const commandArgs = ["--no-config", "--path-separator", "/", "--files", "--hidden", "--glob", "!.git", "--glob", args.pattern];
31
34
  if (args.path)
32
35
  commandArgs.push(resolveWorkspacePath(context.workspace, args.path));
33
- const result = await runProcess("rg", commandArgs, {
36
+ const result = await runProcess(resolveExecutableFromPath("rg", { cwd: context.workspace }), commandArgs, {
34
37
  cwd: context.workspace,
38
+ env: shellEnvironment(process.env, credentialEnvironmentNames(context.config)),
35
39
  timeoutMs: 30_000,
36
40
  captureBytes: context.config.tools.maxOutputBytes * 4,
37
41
  signal: context.signal,
@@ -58,12 +62,13 @@ export const grepTool = {
58
62
  summarize: (args) => `Search for ${args.pattern}`,
59
63
  async execute(args, context) {
60
64
  const limit = Math.min(args.limit ?? 500, 5_000);
61
- const commandArgs = ["--no-config", "--line-number", "--column", "--no-heading", "--color", "never", "--hidden", "--glob", "!.git"];
65
+ const commandArgs = ["--no-config", "--path-separator", "/", "--line-number", "--column", "--no-heading", "--color", "never", "--hidden", "--glob", "!.git"];
62
66
  if (args.include)
63
67
  commandArgs.push("--glob", args.include);
64
68
  commandArgs.push("--", args.pattern, args.path ? resolveWorkspacePath(context.workspace, args.path) : ".");
65
- const result = await runProcess("rg", commandArgs, {
69
+ const result = await runProcess(resolveExecutableFromPath("rg", { cwd: context.workspace }), commandArgs, {
66
70
  cwd: context.workspace,
71
+ env: shellEnvironment(process.env, credentialEnvironmentNames(context.config)),
67
72
  timeoutMs: 30_000,
68
73
  captureBytes: context.config.tools.maxOutputBytes * 4,
69
74
  signal: context.signal,
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export type ShellKind = "bash" | "powershell";
2
+ export interface ShellDefinition {
3
+ kind: ShellKind;
4
+ executable: string;
5
+ args(command: string): string[];
6
+ description: string;
7
+ }
8
+ export interface ShellOptions {
9
+ /** Override SystemRoot in tests; production uses the host's SystemRoot. */
10
+ systemRoot?: string;
11
+ }
12
+ /**
13
+ * Return an absolute, deterministic Windows system root. A relative
14
+ * SystemRoot would make executable resolution depend on the working
15
+ * directory, so it is rejected rather than used for security-sensitive
16
+ * helpers such as PowerShell and taskkill.
17
+ */
18
+ export declare function windowsSystemRoot(systemRoot?: string | undefined): string;
19
+ export declare function windowsSystemExecutable(name: string, systemRoot?: string): string;
20
+ export declare function powershellExecutable(systemRoot?: string): string;
21
+ export declare function taskkillExecutable(systemRoot?: string): string;
22
+ /** Select arguments for a noninteractive UTF-8 Windows PowerShell process. */
23
+ export declare function powershellArguments(command: string): string[];
24
+ export declare function shellKind(platform?: NodeJS.Platform): ShellKind;
25
+ export declare function shellDefinition(platform?: NodeJS.Platform, options?: ShellOptions): ShellDefinition;
26
+ export declare function shellCommand(platform: NodeJS.Platform | undefined, command: string, options?: ShellOptions): {
27
+ executable: string;
28
+ args: string[];
29
+ };
30
+ //# sourceMappingURL=shell.d.ts.map