@agentteams/runner 0.0.84-dev.208 → 0.0.85
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/dist/api-client.d.ts +2 -2
- package/dist/api-client.js +66 -66
- package/dist/api-client.js.map +1 -1
- package/dist/api-client.test.js +54 -63
- package/dist/api-client.test.js.map +1 -1
- package/dist/autostart.js +81 -81
- package/dist/autostart.js.map +1 -1
- package/dist/autostart.test.js +35 -35
- package/dist/autostart.test.js.map +1 -1
- package/dist/commands/cleanup.js +4 -4
- package/dist/commands/init.js +14 -14
- package/dist/commands/restart.js +3 -3
- package/dist/commands/start.js +10 -10
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.js +7 -7
- package/dist/commands/stop.js +7 -7
- package/dist/commands/uninstall.js +6 -6
- package/dist/commands/update.d.ts +4 -4
- package/dist/commands/update.js +22 -20
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/update.test.js +42 -38
- package/dist/commands/update.test.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +12 -12
- package/dist/config.test.js +61 -61
- package/dist/config.test.js.map +1 -1
- package/dist/daemon-control.d.ts +5 -5
- package/dist/daemon-control.js +22 -21
- package/dist/daemon-control.js.map +1 -1
- package/dist/daemon-control.test.js +29 -29
- package/dist/executable.d.ts +3 -3
- package/dist/executable.js +49 -46
- package/dist/executable.js.map +1 -1
- package/dist/executable.test.js +62 -62
- package/dist/executable.test.js.map +1 -1
- package/dist/handlers/trigger-handler.d.ts +6 -6
- package/dist/handlers/trigger-handler.js +124 -118
- package/dist/handlers/trigger-handler.js.map +1 -1
- package/dist/handlers/trigger-handler.test.js +365 -373
- package/dist/handlers/trigger-handler.test.js.map +1 -1
- package/dist/index.js +25 -25
- package/dist/logger.js +1 -1
- package/dist/pid.js +6 -6
- package/dist/poller.d.ts +7 -7
- package/dist/poller.js +53 -54
- package/dist/poller.js.map +1 -1
- package/dist/poller.test.js +181 -209
- package/dist/poller.test.js.map +1 -1
- package/dist/runners/amp.d.ts +1 -1
- package/dist/runners/amp.js +81 -74
- package/dist/runners/amp.js.map +1 -1
- package/dist/runners/antigravity.d.ts +3 -3
- package/dist/runners/antigravity.js +127 -116
- package/dist/runners/antigravity.js.map +1 -1
- package/dist/runners/antigravity.replay.test.js +25 -25
- package/dist/runners/antigravity.replay.test.js.map +1 -1
- package/dist/runners/antigravity.test.js +98 -98
- package/dist/runners/antigravity.test.js.map +1 -1
- package/dist/runners/claude-code.d.ts +1 -1
- package/dist/runners/claude-code.js +84 -85
- package/dist/runners/claude-code.js.map +1 -1
- package/dist/runners/claude-code.test.js +40 -37
- package/dist/runners/claude-code.test.js.map +1 -1
- package/dist/runners/codex.d.ts +1 -1
- package/dist/runners/codex.js +96 -87
- package/dist/runners/codex.js.map +1 -1
- package/dist/runners/codex.test.js +68 -68
- package/dist/runners/codex.test.js.map +1 -1
- package/dist/runners/index.d.ts +1 -1
- package/dist/runners/index.js +10 -10
- package/dist/runners/index.test.js +16 -16
- package/dist/runners/log-reporter.d.ts +2 -2
- package/dist/runners/log-reporter.js +10 -10
- package/dist/runners/log-reporter.test.js +70 -70
- package/dist/runners/log-reporter.test.js.map +1 -1
- package/dist/runners/opencode.d.ts +1 -1
- package/dist/runners/opencode.js +75 -68
- package/dist/runners/opencode.js.map +1 -1
- package/dist/runners/process-control.d.ts +1 -1
- package/dist/runners/process-control.js +11 -13
- package/dist/runners/process-control.js.map +1 -1
- package/dist/runners/stream-json-parser.d.ts +1 -1
- package/dist/runners/stream-json-parser.js +67 -70
- package/dist/runners/stream-json-parser.js.map +1 -1
- package/dist/runners/stream-json-parser.replay.test.js +17 -17
- package/dist/runners/stream-json-parser.replay.test.js.map +1 -1
- package/dist/runners/stream-json-parser.test.js +78 -76
- package/dist/runners/stream-json-parser.test.js.map +1 -1
- package/dist/types.d.ts +4 -4
- package/dist/utils/auth-path-store.js +7 -7
- package/dist/utils/auth-path-store.test.js +29 -24
- package/dist/utils/auth-path-store.test.js.map +1 -1
- package/dist/utils/auto-update.d.ts +4 -4
- package/dist/utils/auto-update.js +28 -30
- package/dist/utils/auto-update.js.map +1 -1
- package/dist/utils/auto-update.test.js +30 -30
- package/dist/utils/convention-evaluator.d.ts +1 -1
- package/dist/utils/convention-evaluator.js +21 -22
- package/dist/utils/convention-evaluator.js.map +1 -1
- package/dist/utils/convention-evaluator.test.js +110 -120
- package/dist/utils/convention-evaluator.test.js.map +1 -1
- package/dist/utils/convention-sync.d.ts +3 -3
- package/dist/utils/convention-sync.js +10 -10
- package/dist/utils/convention-sync.test.js +25 -39
- package/dist/utils/convention-sync.test.js.map +1 -1
- package/dist/utils/git-worktree.js +18 -20
- package/dist/utils/git-worktree.js.map +1 -1
- package/dist/utils/git-worktree.test.js +98 -98
- package/dist/utils/git-worktree.test.js.map +1 -1
- package/dist/utils/origin-issue-safeguard.js +30 -35
- package/dist/utils/origin-issue-safeguard.js.map +1 -1
- package/dist/utils/power-save-blocker.d.ts +4 -4
- package/dist/utils/power-save-blocker.js +33 -33
- package/dist/utils/power-save-blocker.test.js +37 -37
- package/dist/utils/power-save-blocker.test.js.map +1 -1
- package/dist/utils/runner-cleanup.d.ts +3 -3
- package/dist/utils/runner-cleanup.js +13 -13
- package/dist/utils/runner-cleanup.test.js +35 -35
- package/dist/utils/runner-history.js +3 -3
- package/dist/utils/runner-history.test.js +17 -17
- package/package.json +1 -4
- package/readme.md +10 -10
package/dist/executable.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { execFileSync, spawn } from
|
|
2
|
-
import { existsSync } from
|
|
3
|
-
import { platform as getPlatform } from
|
|
4
|
-
import { join } from
|
|
5
|
-
const DEFAULT_WINDOWS_EXTENSIONS = [
|
|
1
|
+
import { execFileSync, spawn } from "node:child_process";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { platform as getPlatform } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
const DEFAULT_WINDOWS_EXTENSIONS = [".com", ".exe", ".bat", ".cmd"];
|
|
6
6
|
const getOutputLines = (output) => output
|
|
7
7
|
.split(/\r?\n/u)
|
|
8
8
|
.map((line) => line.trim())
|
|
@@ -11,18 +11,18 @@ const getFirstOutputLine = (output) => {
|
|
|
11
11
|
const firstLine = getOutputLines(output)[0];
|
|
12
12
|
return firstLine ?? null;
|
|
13
13
|
};
|
|
14
|
-
const getWindowsCommandBaseName = (name) => name.replace(/\.(?:cmd|exe|bat|com)$/iu,
|
|
14
|
+
const getWindowsCommandBaseName = (name) => name.replace(/\.(?:cmd|exe|bat|com)$/iu, "").toLowerCase();
|
|
15
15
|
const getWindowsPathFileName = (path) => {
|
|
16
16
|
const parts = path.split(/[\\/]/u);
|
|
17
|
-
return parts[parts.length - 1]?.toLowerCase() ??
|
|
17
|
+
return parts[parts.length - 1]?.toLowerCase() ?? "";
|
|
18
18
|
};
|
|
19
19
|
const selectPathLookupResult = (name, output, os) => {
|
|
20
|
-
if (os !==
|
|
20
|
+
if (os !== "win32") {
|
|
21
21
|
return getFirstOutputLine(output);
|
|
22
22
|
}
|
|
23
23
|
const lines = getOutputLines(output);
|
|
24
24
|
const commandBaseName = getWindowsCommandBaseName(name);
|
|
25
|
-
if (commandBaseName ===
|
|
25
|
+
if (commandBaseName === "npm" || commandBaseName === "npx") {
|
|
26
26
|
const cmdShim = lines.find((line) => getWindowsPathFileName(line) === `${commandBaseName}.cmd`);
|
|
27
27
|
if (cmdShim) {
|
|
28
28
|
return cmdShim;
|
|
@@ -34,7 +34,8 @@ const getWindowsExecutableNames = (name, env) => {
|
|
|
34
34
|
if (/\.[^./\\]+$/u.test(name)) {
|
|
35
35
|
return [name];
|
|
36
36
|
}
|
|
37
|
-
const pathExt = env.PATHEXT
|
|
37
|
+
const pathExt = env.PATHEXT
|
|
38
|
+
?.split(";")
|
|
38
39
|
.map((entry) => entry.trim().toLowerCase())
|
|
39
40
|
.filter((entry) => entry.length > 0);
|
|
40
41
|
const extensions = pathExt && pathExt.length > 0 ? pathExt : DEFAULT_WINDOWS_EXTENSIONS;
|
|
@@ -43,7 +44,7 @@ const getWindowsExecutableNames = (name, env) => {
|
|
|
43
44
|
const getNpmGlobalBinPath = (deps) => {
|
|
44
45
|
const run = deps.execFileSync ?? execFileSync;
|
|
45
46
|
try {
|
|
46
|
-
const output = run(
|
|
47
|
+
const output = run("npm", ["prefix", "-g"], { encoding: "utf8", windowsHide: true }).trim();
|
|
47
48
|
return output.length > 0 ? output : null;
|
|
48
49
|
}
|
|
49
50
|
catch {
|
|
@@ -53,9 +54,9 @@ const getNpmGlobalBinPath = (deps) => {
|
|
|
53
54
|
const resolveFromPathLookup = (name, deps) => {
|
|
54
55
|
const os = (deps.platform ?? getPlatform)();
|
|
55
56
|
const run = deps.execFileSync ?? execFileSync;
|
|
56
|
-
const lookupCommand = os ===
|
|
57
|
+
const lookupCommand = os === "win32" ? "where" : "which";
|
|
57
58
|
try {
|
|
58
|
-
const output = run(lookupCommand, [name], { encoding:
|
|
59
|
+
const output = run(lookupCommand, [name], { encoding: "utf8", windowsHide: true });
|
|
59
60
|
return selectPathLookupResult(name, output, os);
|
|
60
61
|
}
|
|
61
62
|
catch {
|
|
@@ -69,7 +70,7 @@ const resolveFromNpmGlobalBin = (name, deps) => {
|
|
|
69
70
|
if (!npmGlobalBinPath) {
|
|
70
71
|
return null;
|
|
71
72
|
}
|
|
72
|
-
const candidateNames = os ===
|
|
73
|
+
const candidateNames = os === "win32" ? getWindowsExecutableNames(name, deps.env ?? process.env) : [name];
|
|
73
74
|
for (const candidateName of candidateNames) {
|
|
74
75
|
const candidatePath = join(npmGlobalBinPath, candidateName);
|
|
75
76
|
if (fileExists(candidatePath)) {
|
|
@@ -80,15 +81,15 @@ const resolveFromNpmGlobalBin = (name, deps) => {
|
|
|
80
81
|
};
|
|
81
82
|
const getKnownWindowsBinPaths = (name, deps) => {
|
|
82
83
|
const env = deps.env ?? process.env;
|
|
83
|
-
const normalizedName = name.replace(/\.(?:cmd|exe|bat|com)$/iu,
|
|
84
|
-
if (normalizedName !==
|
|
84
|
+
const normalizedName = name.replace(/\.(?:cmd|exe|bat|com)$/iu, "");
|
|
85
|
+
if (normalizedName !== "agy") {
|
|
85
86
|
return [];
|
|
86
87
|
}
|
|
87
|
-
return env.LOCALAPPDATA ? [join(env.LOCALAPPDATA,
|
|
88
|
+
return env.LOCALAPPDATA ? [join(env.LOCALAPPDATA, "agy", "bin")] : [];
|
|
88
89
|
};
|
|
89
90
|
const resolveFromKnownWindowsBin = (name, deps) => {
|
|
90
91
|
const os = (deps.platform ?? getPlatform)();
|
|
91
|
-
if (os !==
|
|
92
|
+
if (os !== "win32") {
|
|
92
93
|
return null;
|
|
93
94
|
}
|
|
94
95
|
const fileExists = deps.existsSync ?? existsSync;
|
|
@@ -106,22 +107,24 @@ const resolveFromKnownWindowsBin = (name, deps) => {
|
|
|
106
107
|
const escapeForPowerShell = (value) => `'${value.replaceAll("'", "''")}'`;
|
|
107
108
|
export const buildPowerShellCommand = (executablePath, args) => {
|
|
108
109
|
const serializedArgs = [escapeForPowerShell(executablePath), ...args.map(escapeForPowerShell)];
|
|
109
|
-
return `& ${serializedArgs.join(
|
|
110
|
+
return `& ${serializedArgs.join(" ")}`;
|
|
110
111
|
};
|
|
111
112
|
export const resolveExecutablePath = (name, deps = {}) => {
|
|
112
113
|
const os = (deps.platform ?? getPlatform)();
|
|
113
|
-
const resolvedPath = resolveFromPathLookup(name, deps)
|
|
114
|
+
const resolvedPath = resolveFromPathLookup(name, deps)
|
|
115
|
+
?? resolveFromNpmGlobalBin(name, deps)
|
|
116
|
+
?? resolveFromKnownWindowsBin(name, deps);
|
|
114
117
|
if (resolvedPath) {
|
|
115
118
|
return resolvedPath;
|
|
116
119
|
}
|
|
117
|
-
const checkedLocations = os ===
|
|
120
|
+
const checkedLocations = os === "win32" ? "PATH, npm global bin, and known app install paths" : "PATH";
|
|
118
121
|
throw new Error(`Cannot find '${name}' executable. Checked ${checkedLocations}. Ensure it is installed and available globally.`);
|
|
119
122
|
};
|
|
120
123
|
export const resolveExecutablePathWithPreference = (name, preferredNames, deps = {}) => {
|
|
121
124
|
for (const preferredName of preferredNames) {
|
|
122
|
-
const resolvedPath = resolveFromPathLookup(preferredName, deps)
|
|
123
|
-
resolveFromNpmGlobalBin(preferredName, deps)
|
|
124
|
-
resolveFromKnownWindowsBin(preferredName, deps);
|
|
125
|
+
const resolvedPath = resolveFromPathLookup(preferredName, deps)
|
|
126
|
+
?? resolveFromNpmGlobalBin(preferredName, deps)
|
|
127
|
+
?? resolveFromKnownWindowsBin(preferredName, deps);
|
|
125
128
|
if (resolvedPath) {
|
|
126
129
|
return resolvedPath;
|
|
127
130
|
}
|
|
@@ -134,54 +137,54 @@ export const describeExecutableResolution = (name, deps = {}) => {
|
|
|
134
137
|
requestedCommand: name,
|
|
135
138
|
resolvedExecutablePath: resolveExecutablePath(name, deps),
|
|
136
139
|
platform: os,
|
|
137
|
-
shell: false
|
|
140
|
+
shell: false
|
|
138
141
|
};
|
|
139
142
|
};
|
|
140
143
|
export const spawnExecutable = (name, args, options) => {
|
|
141
144
|
const os = (options.platform ?? getPlatform)();
|
|
142
145
|
const executablePath = resolveExecutablePath(name, options);
|
|
143
|
-
if (os ===
|
|
144
|
-
return spawn(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
buildPowerShellCommand(executablePath, args)
|
|
146
|
+
if (os === "win32") {
|
|
147
|
+
return spawn("powershell.exe", [
|
|
148
|
+
"-NoLogo",
|
|
149
|
+
"-NonInteractive",
|
|
150
|
+
"-ExecutionPolicy",
|
|
151
|
+
"Bypass",
|
|
152
|
+
"-Command",
|
|
153
|
+
buildPowerShellCommand(executablePath, args)
|
|
151
154
|
], {
|
|
152
155
|
...options,
|
|
153
156
|
shell: false,
|
|
154
|
-
windowsHide: options.windowsHide ?? true
|
|
157
|
+
windowsHide: options.windowsHide ?? true
|
|
155
158
|
});
|
|
156
159
|
}
|
|
157
160
|
return spawn(executablePath, args, {
|
|
158
161
|
...options,
|
|
159
|
-
shell: false
|
|
162
|
+
shell: false
|
|
160
163
|
});
|
|
161
164
|
};
|
|
162
165
|
export const runExecutableSync = (name, args, options = {}) => {
|
|
163
166
|
const os = (options.platform ?? getPlatform)();
|
|
164
167
|
const run = options.execFileSync ?? execFileSync;
|
|
165
168
|
const executablePath = resolveExecutablePath(name, options);
|
|
166
|
-
if (os ===
|
|
167
|
-
return String(run(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
buildPowerShellCommand(executablePath, args)
|
|
169
|
+
if (os === "win32") {
|
|
170
|
+
return String(run("powershell.exe", [
|
|
171
|
+
"-NoLogo",
|
|
172
|
+
"-NonInteractive",
|
|
173
|
+
"-ExecutionPolicy",
|
|
174
|
+
"Bypass",
|
|
175
|
+
"-Command",
|
|
176
|
+
buildPowerShellCommand(executablePath, args)
|
|
174
177
|
], {
|
|
175
178
|
cwd: options.cwd,
|
|
176
179
|
env: options.env,
|
|
177
|
-
encoding:
|
|
178
|
-
windowsHide: true
|
|
180
|
+
encoding: "utf8",
|
|
181
|
+
windowsHide: true
|
|
179
182
|
}));
|
|
180
183
|
}
|
|
181
184
|
return String(run(executablePath, args, {
|
|
182
185
|
cwd: options.cwd,
|
|
183
186
|
env: options.env,
|
|
184
|
-
encoding:
|
|
187
|
+
encoding: "utf8"
|
|
185
188
|
}));
|
|
186
189
|
};
|
|
187
190
|
//# sourceMappingURL=executable.js.map
|
package/dist/executable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executable.js","sourceRoot":"","sources":["../src/executable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAwC,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAcpE,MAAM,cAAc,GAAG,CAAC,MAAc,EAAY,EAAE,CAClD,MAAM;KACH,KAAK,CAAC,QAAQ,CAAC;KACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEvC,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAiB,EAAE;IAC3D,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,IAAY,EAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"executable.js","sourceRoot":"","sources":["../src/executable.ts"],"names":[],"mappings":"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"}
|
package/dist/executable.test.js
CHANGED
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
import assert from
|
|
2
|
-
import test from
|
|
3
|
-
import { buildPowerShellCommand, resolveExecutablePath, resolveExecutablePathWithPreference } from
|
|
4
|
-
test(
|
|
5
|
-
const resolved = resolveExecutablePath(
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import test from "node:test";
|
|
3
|
+
import { buildPowerShellCommand, resolveExecutablePath, resolveExecutablePathWithPreference } from "./executable.js";
|
|
4
|
+
test("resolveExecutablePath falls back to npm global bin on Windows", () => {
|
|
5
|
+
const resolved = resolveExecutablePath("opencode", {
|
|
6
6
|
env: {
|
|
7
|
-
PATHEXT:
|
|
7
|
+
PATHEXT: ".COM;.EXE;.BAT;.CMD"
|
|
8
8
|
},
|
|
9
|
-
platform: () =>
|
|
9
|
+
platform: () => "win32",
|
|
10
10
|
execFileSync: ((command, args) => {
|
|
11
|
-
if (command ===
|
|
12
|
-
throw new Error(
|
|
11
|
+
if (command === "where") {
|
|
12
|
+
throw new Error("not found");
|
|
13
13
|
}
|
|
14
|
-
if (command ===
|
|
15
|
-
return
|
|
14
|
+
if (command === "npm" && args[0] === "prefix") {
|
|
15
|
+
return "C:\\Users\\rlaru\\AppData\\Roaming\\npm\n";
|
|
16
16
|
}
|
|
17
17
|
throw new Error(`unexpected command: ${command}`);
|
|
18
18
|
}),
|
|
19
|
-
existsSync: ((path) => /AppData[\\/]+Roaming[\\/]+npm[\\/]+opencode\.cmd$/u.test(path))
|
|
19
|
+
existsSync: ((path) => /AppData[\\/]+Roaming[\\/]+npm[\\/]+opencode\.cmd$/u.test(path))
|
|
20
20
|
});
|
|
21
21
|
assert.match(resolved, /C:\\Users\\rlaru\\AppData\\Roaming\\npm[\\/]opencode\.cmd$/u);
|
|
22
22
|
});
|
|
23
|
-
test(
|
|
24
|
-
const resolved = resolveExecutablePath(
|
|
25
|
-
platform: () =>
|
|
23
|
+
test("resolveExecutablePath prefers npm.cmd when Windows PATH lookup returns npm first", () => {
|
|
24
|
+
const resolved = resolveExecutablePath("npm", {
|
|
25
|
+
platform: () => "win32",
|
|
26
26
|
execFileSync: ((command, args) => {
|
|
27
|
-
if (command ===
|
|
28
|
-
return
|
|
27
|
+
if (command === "where" && args[0] === "npm") {
|
|
28
|
+
return "C:\\nvm4w\\nodejs\\npm\nC:\\nvm4w\\nodejs\\npm.cmd\n";
|
|
29
29
|
}
|
|
30
|
-
throw new Error(`unexpected command: ${command} ${args.join(
|
|
31
|
-
})
|
|
30
|
+
throw new Error(`unexpected command: ${command} ${args.join(" ")}`);
|
|
31
|
+
})
|
|
32
32
|
});
|
|
33
|
-
assert.equal(resolved,
|
|
33
|
+
assert.equal(resolved, "C:\\nvm4w\\nodejs\\npm.cmd");
|
|
34
34
|
});
|
|
35
|
-
test(
|
|
36
|
-
const resolved = resolveExecutablePath(
|
|
35
|
+
test("resolveExecutablePath falls back to Antigravity local app bin on Windows", () => {
|
|
36
|
+
const resolved = resolveExecutablePath("agy", {
|
|
37
37
|
env: {
|
|
38
|
-
LOCALAPPDATA:
|
|
39
|
-
PATHEXT:
|
|
38
|
+
LOCALAPPDATA: "C:\\Users\\rlaru\\AppData\\Local",
|
|
39
|
+
PATHEXT: ".COM;.EXE;.BAT;.CMD"
|
|
40
40
|
},
|
|
41
|
-
platform: () =>
|
|
41
|
+
platform: () => "win32",
|
|
42
42
|
execFileSync: ((command, args) => {
|
|
43
|
-
if (command ===
|
|
44
|
-
throw new Error(
|
|
43
|
+
if (command === "where") {
|
|
44
|
+
throw new Error("not found");
|
|
45
45
|
}
|
|
46
|
-
if (command ===
|
|
47
|
-
throw new Error(
|
|
46
|
+
if (command === "npm" && args?.[0] === "prefix") {
|
|
47
|
+
throw new Error("npm unavailable");
|
|
48
48
|
}
|
|
49
49
|
throw new Error(`unexpected command: ${command}`);
|
|
50
50
|
}),
|
|
51
|
-
existsSync: ((path) => /AppData[\\/]+Local[\\/]+agy[\\/]+bin[\\/]+agy\.exe$/u.test(path))
|
|
51
|
+
existsSync: ((path) => /AppData[\\/]+Local[\\/]+agy[\\/]+bin[\\/]+agy\.exe$/u.test(path))
|
|
52
52
|
});
|
|
53
53
|
assert.match(resolved, /C:\\Users\\rlaru\\AppData\\Local[\\/]agy[\\/]bin[\\/]agy\.exe$/u);
|
|
54
54
|
});
|
|
55
|
-
test(
|
|
56
|
-
const resolved = resolveExecutablePath(
|
|
57
|
-
platform: () =>
|
|
55
|
+
test("resolveExecutablePath prefers PATH lookup results", () => {
|
|
56
|
+
const resolved = resolveExecutablePath("codex", {
|
|
57
|
+
platform: () => "linux",
|
|
58
58
|
execFileSync: ((command) => {
|
|
59
|
-
if (command ===
|
|
60
|
-
return
|
|
59
|
+
if (command === "which") {
|
|
60
|
+
return "/usr/local/bin/codex\n";
|
|
61
61
|
}
|
|
62
62
|
throw new Error(`unexpected command: ${command}`);
|
|
63
|
-
})
|
|
63
|
+
})
|
|
64
64
|
});
|
|
65
|
-
assert.equal(resolved,
|
|
65
|
+
assert.equal(resolved, "/usr/local/bin/codex");
|
|
66
66
|
});
|
|
67
|
-
test(
|
|
68
|
-
const resolved = resolveExecutablePathWithPreference(
|
|
69
|
-
platform: () =>
|
|
67
|
+
test("resolveExecutablePathWithPreference prefers opencode.cmd on Windows", () => {
|
|
68
|
+
const resolved = resolveExecutablePathWithPreference("opencode", ["opencode.cmd", "opencode"], {
|
|
69
|
+
platform: () => "win32",
|
|
70
70
|
execFileSync: ((command, args) => {
|
|
71
|
-
if (command ===
|
|
72
|
-
return
|
|
71
|
+
if (command === "where" && args[0] === "opencode.cmd") {
|
|
72
|
+
return "C:\\Users\\rlaru\\AppData\\Roaming\\npm\\opencode.cmd\n";
|
|
73
73
|
}
|
|
74
|
-
if (command ===
|
|
75
|
-
return
|
|
74
|
+
if (command === "where" && args[0] === "opencode") {
|
|
75
|
+
return "C:\\Users\\rlaru\\AppData\\Roaming\\npm\\opencode\n";
|
|
76
76
|
}
|
|
77
|
-
throw new Error(`unexpected command: ${command} ${args.join(
|
|
78
|
-
})
|
|
77
|
+
throw new Error(`unexpected command: ${command} ${args.join(" ")}`);
|
|
78
|
+
})
|
|
79
79
|
});
|
|
80
|
-
assert.equal(resolved,
|
|
80
|
+
assert.equal(resolved, "C:\\Users\\rlaru\\AppData\\Roaming\\npm\\opencode.cmd");
|
|
81
81
|
});
|
|
82
|
-
test(
|
|
83
|
-
const resolved = resolveExecutablePathWithPreference(
|
|
82
|
+
test("resolveExecutablePathWithPreference falls back to agy.exe for preferred agy names on Windows", () => {
|
|
83
|
+
const resolved = resolveExecutablePathWithPreference("agy", ["agy.cmd", "agy"], {
|
|
84
84
|
env: {
|
|
85
|
-
LOCALAPPDATA:
|
|
86
|
-
PATHEXT:
|
|
85
|
+
LOCALAPPDATA: "C:\\Users\\rlaru\\AppData\\Local",
|
|
86
|
+
PATHEXT: ".COM;.EXE;.BAT;.CMD"
|
|
87
87
|
},
|
|
88
|
-
platform: () =>
|
|
88
|
+
platform: () => "win32",
|
|
89
89
|
execFileSync: ((command, args) => {
|
|
90
|
-
if (command ===
|
|
91
|
-
throw new Error(
|
|
90
|
+
if (command === "where") {
|
|
91
|
+
throw new Error("not found");
|
|
92
92
|
}
|
|
93
|
-
if (command ===
|
|
94
|
-
throw new Error(
|
|
93
|
+
if (command === "npm" && args?.[0] === "prefix") {
|
|
94
|
+
throw new Error("npm unavailable");
|
|
95
95
|
}
|
|
96
|
-
throw new Error(`unexpected command: ${command} ${args?.join(
|
|
96
|
+
throw new Error(`unexpected command: ${command} ${args?.join(" ") ?? ""}`);
|
|
97
97
|
}),
|
|
98
|
-
existsSync: ((path) => /AppData[\\/]+Local[\\/]+agy[\\/]+bin[\\/]+agy\.exe$/u.test(path))
|
|
98
|
+
existsSync: ((path) => /AppData[\\/]+Local[\\/]+agy[\\/]+bin[\\/]+agy\.exe$/u.test(path))
|
|
99
99
|
});
|
|
100
100
|
assert.match(resolved, /C:\\Users\\rlaru\\AppData\\Local[\\/]agy[\\/]bin[\\/]agy\.exe$/u);
|
|
101
101
|
});
|
|
102
|
-
test(
|
|
103
|
-
const command = buildPowerShellCommand(
|
|
104
|
-
|
|
105
|
-
"line 1\nline '2'"
|
|
102
|
+
test("buildPowerShellCommand preserves multiline arguments and escapes single quotes", () => {
|
|
103
|
+
const command = buildPowerShellCommand("C:\\Users\\rlaru\\AppData\\Roaming\\npm\\opencode.cmd", [
|
|
104
|
+
"run",
|
|
105
|
+
"line 1\nline '2'"
|
|
106
106
|
]);
|
|
107
107
|
assert.equal(command, "& 'C:\\Users\\rlaru\\AppData\\Roaming\\npm\\opencode.cmd' 'run' 'line 1\nline ''2'''");
|
|
108
108
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executable.test.js","sourceRoot":"","sources":["../src/executable.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"executable.test.js","sourceRoot":"","sources":["../src/executable.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type { DaemonTrigger, RuntimeConfig } from
|
|
2
|
-
import { DaemonApiClient } from
|
|
3
|
-
import { createRunnerFactory } from
|
|
4
|
-
import { TriggerLogReporter } from
|
|
5
|
-
import { resolveRunnerHistoryPaths } from
|
|
1
|
+
import type { DaemonTrigger, RuntimeConfig } from "../types.js";
|
|
2
|
+
import { DaemonApiClient } from "../api-client.js";
|
|
3
|
+
import { createRunnerFactory } from "../runners/index.js";
|
|
4
|
+
import { TriggerLogReporter } from "../runners/log-reporter.js";
|
|
5
|
+
import { resolveRunnerHistoryPaths } from "../utils/runner-history.js";
|
|
6
6
|
type TriggerHandlerOptions = {
|
|
7
7
|
config: RuntimeConfig;
|
|
8
8
|
client: DaemonApiClient;
|
|
9
9
|
onAuthPathDiscovered?: (authPath: string) => void;
|
|
10
10
|
};
|
|
11
|
-
type ReporterLike = Pick<TriggerLogReporter,
|
|
11
|
+
type ReporterLike = Pick<TriggerLogReporter, "start" | "append" | "stop">;
|
|
12
12
|
type ReadHistoryFile = (path: string, encoding: BufferEncoding) => Promise<string>;
|
|
13
13
|
type WriteHistoryFile = (path: string, content: string) => Promise<void>;
|
|
14
14
|
type FetchAttachmentFile = (downloadUrl: string) => Promise<Uint8Array>;
|