@agentteams/runner 0.0.117 → 0.0.119
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.js +10 -1
- package/dist/api-client.js.map +1 -1
- package/dist/commands/init.js +2 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/executable.d.ts +4 -3
- package/dist/executable.js +50 -14
- package/dist/executable.js.map +1 -1
- package/dist/executable.test.js +86 -1
- package/dist/executable.test.js.map +1 -1
- package/dist/help.d.ts +16 -0
- package/dist/help.js +35 -0
- package/dist/help.js.map +1 -0
- package/dist/help.test.d.ts +1 -0
- package/dist/help.test.js +42 -0
- package/dist/help.test.js.map +1 -0
- package/dist/index.js +2 -18
- package/dist/index.js.map +1 -1
- package/dist/poller.js +2 -1
- package/dist/poller.js.map +1 -1
- package/dist/poller.test.js +34 -0
- package/dist/poller.test.js.map +1 -1
- package/dist/utils/auto-update.js +84 -35
- package/dist/utils/auto-update.js.map +1 -1
- package/dist/utils/auto-update.test.js +269 -0
- package/dist/utils/auto-update.test.js.map +1 -1
- package/dist/utils/convention-sync.d.ts +2 -0
- package/dist/utils/convention-sync.js +11 -4
- package/dist/utils/convention-sync.js.map +1 -1
- package/dist/utils/convention-sync.test.js +37 -2
- package/dist/utils/convention-sync.test.js.map +1 -1
- package/dist/utils/engine-probe.d.ts +2 -2
- package/dist/utils/engine-probe.js +3 -3
- package/dist/utils/engine-probe.js.map +1 -1
- package/dist/utils/engine-probe.test.js +31 -14
- package/dist/utils/engine-probe.test.js.map +1 -1
- package/dist/utils/model-enumerator.d.ts +1 -1
- package/dist/utils/model-enumerator.js +17 -8
- package/dist/utils/model-enumerator.js.map +1 -1
- package/dist/utils/model-enumerator.test.js +43 -0
- package/dist/utils/model-enumerator.test.js.map +1 -1
- package/dist/utils/npm-global-permission.js +2 -2
- package/dist/utils/npm-global-permission.js.map +1 -1
- package/dist/utils/npm-install-error.d.ts +9 -1
- package/dist/utils/npm-install-error.js +27 -5
- package/dist/utils/npm-install-error.js.map +1 -1
- package/dist/utils/npm-install-error.test.js +23 -1
- package/dist/utils/npm-install-error.test.js.map +1 -1
- package/native/bin/win32-x64/agentrunner-launcher.exe +0 -0
- package/native/bin/win32-x64/manifest.json +2 -2
- package/package.json +3 -2
- package/readme.md +14 -2
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
2
3
|
import { logger } from '../logger.js';
|
|
3
4
|
type ConventionSyncDeps = {
|
|
4
5
|
spawn?: typeof spawn;
|
|
6
|
+
existsSync?: typeof existsSync;
|
|
5
7
|
logger?: Pick<typeof logger, 'info' | 'warn'>;
|
|
6
8
|
};
|
|
7
9
|
export declare const runConventionSync: (authPath: string, deps?: ConventionSyncDeps) => Promise<void>;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
2
3
|
import { logger } from '../logger.js';
|
|
3
|
-
const runAgentteamsConventionCommand = async (authPath, args, spawnFn, log) => {
|
|
4
|
+
const runAgentteamsConventionCommand = async (authPath, args, spawnFn, log, pathExists) => {
|
|
5
|
+
if (!pathExists(authPath)) {
|
|
6
|
+
log.warn('Convention sync skipped; working directory no longer exists', { authPath });
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
4
9
|
try {
|
|
5
10
|
return await new Promise((resolve) => {
|
|
6
11
|
const child = spawnFn('agentteams', ['convention', ...args], {
|
|
@@ -17,7 +22,8 @@ const runAgentteamsConventionCommand = async (authPath, args, spawnFn, log) => {
|
|
|
17
22
|
stderrChunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
18
23
|
});
|
|
19
24
|
child.on('error', (err) => {
|
|
20
|
-
|
|
25
|
+
const isMissingExecutable = err.code === 'ENOENT';
|
|
26
|
+
log.warn(isMissingExecutable ? 'Convention sync spawn error; CLI executable not found' : 'Convention sync spawn error', {
|
|
21
27
|
authPath,
|
|
22
28
|
command: `agentteams convention ${args.join(' ')}`,
|
|
23
29
|
error: err.message,
|
|
@@ -52,8 +58,9 @@ const parseConventionStatus = (stdout) => {
|
|
|
52
58
|
export const runConventionSync = async (authPath, deps = {}) => {
|
|
53
59
|
const log = deps.logger ?? logger;
|
|
54
60
|
const spawnFn = deps.spawn ?? spawn;
|
|
61
|
+
const pathExists = deps.existsSync ?? existsSync;
|
|
55
62
|
try {
|
|
56
|
-
const statusResult = await runAgentteamsConventionCommand(authPath, ['status'], spawnFn, log);
|
|
63
|
+
const statusResult = await runAgentteamsConventionCommand(authPath, ['status'], spawnFn, log, pathExists);
|
|
57
64
|
if (statusResult === null) {
|
|
58
65
|
return;
|
|
59
66
|
}
|
|
@@ -84,7 +91,7 @@ export const runConventionSync = async (authPath, deps = {}) => {
|
|
|
84
91
|
log.info('Convention sync skipped; conventions are up to date', { authPath });
|
|
85
92
|
return;
|
|
86
93
|
}
|
|
87
|
-
const downloadResult = await runAgentteamsConventionCommand(authPath, ['download'], spawnFn, log);
|
|
94
|
+
const downloadResult = await runAgentteamsConventionCommand(authPath, ['download'], spawnFn, log, pathExists);
|
|
88
95
|
if (downloadResult === null) {
|
|
89
96
|
return;
|
|
90
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convention-sync.js","sourceRoot":"","sources":["../../src/utils/convention-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"convention-sync.js","sourceRoot":"","sources":["../../src/utils/convention-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAkBtC,MAAM,8BAA8B,GAAG,KAAK,EAC1C,QAAgB,EAChB,IAAc,EACd,OAAqB,EACrB,GAAgC,EAChC,UAA6B,EACY,EAAE;IAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,6DAA6D,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,OAAO,CAAiC,CAAC,OAAO,EAAE,EAAE;YACnE,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,EAAE;gBAC3D,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,MAAM,YAAY,GAAa,EAAE,CAAC;YAElC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;gBAClD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;gBAClD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,MAAM,mBAAmB,GAAI,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAC7E,GAAG,CAAC,IAAI,CACN,mBAAmB,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,6BAA6B,EAC7G;oBACE,QAAQ;oBACR,OAAO,EAAE,yBAAyB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAClD,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB,CACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,CAAC;oBACN,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACpD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;iBACrD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE;YACzC,QAAQ;YACR,OAAO,EAAE,yBAAyB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAiC,EAAE;IAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAoC,CAAC;IACrE,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,QAAgB,EAAE,OAA2B,EAAE,EAAiB,EAAE;IACxG,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,8BAA8B,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC1G,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,YAAY,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,6CAA6C,EAAE;gBACtD,QAAQ;gBACR,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS;aAChD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,MAAM,GAAkC,IAAI,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE;gBAClD,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,4CAA4C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,qDAAqD,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,8BAA8B,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC9G,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,cAAc,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,2CAA2C,EAAE;gBACpD,QAAQ;gBACR,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;YACjC,QAAQ;YACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import assert from 'node:assert/strict';
|
|
|
2
2
|
import test, { mock } from 'node:test';
|
|
3
3
|
import { EventEmitter } from 'node:events';
|
|
4
4
|
import { runConventionSync } from './convention-sync.js';
|
|
5
|
+
const existingDir = () => true;
|
|
5
6
|
const createFakeSpawn = (responses, calls = []) => {
|
|
6
7
|
return (cmd, args, opts) => {
|
|
7
8
|
calls.push({ cmd, args, opts });
|
|
@@ -42,6 +43,7 @@ test('runConventionSync skips download when status reports no update', async ()
|
|
|
42
43
|
await runConventionSync('/fake/path', {
|
|
43
44
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
45
|
spawn: createFakeSpawn([{ exitCode: 0, stdout: JSON.stringify({ updateAvailable: false }) }], calls),
|
|
46
|
+
existsSync: existingDir,
|
|
45
47
|
logger: fakeLogger,
|
|
46
48
|
});
|
|
47
49
|
assert.deepEqual(calls.map((call) => call.args), [['convention', 'status']]);
|
|
@@ -63,6 +65,7 @@ test('runConventionSync downloads when status reports an update', async () => {
|
|
|
63
65
|
await runConventionSync('/fake/path', {
|
|
64
66
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
67
|
spawn: createFakeSpawn([{ exitCode: 0, stdout: JSON.stringify({ updateAvailable: true }) }, { exitCode: 0 }], calls),
|
|
68
|
+
existsSync: existingDir,
|
|
66
69
|
logger: fakeLogger,
|
|
67
70
|
});
|
|
68
71
|
assert.deepEqual(calls.map((call) => call.args), [
|
|
@@ -87,6 +90,7 @@ test('runConventionSync logs warn when status exits non-zero', async () => {
|
|
|
87
90
|
await runConventionSync('/fake/path', {
|
|
88
91
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
92
|
spawn: createFakeSpawn([{ exitCode: 1, stderr: 'not configured' }], calls),
|
|
93
|
+
existsSync: existingDir,
|
|
90
94
|
logger: fakeLogger,
|
|
91
95
|
});
|
|
92
96
|
assert.deepEqual(calls.map((call) => call.args), [['convention', 'status']]);
|
|
@@ -107,6 +111,7 @@ test('runConventionSync logs warn when status returns invalid JSON', async () =>
|
|
|
107
111
|
await runConventionSync('/fake/path', {
|
|
108
112
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
109
113
|
spawn: createFakeSpawn([{ exitCode: 0, stdout: 'not-json' }]),
|
|
114
|
+
existsSync: existingDir,
|
|
110
115
|
logger: fakeLogger,
|
|
111
116
|
});
|
|
112
117
|
assert.equal(logs.length, 1);
|
|
@@ -129,6 +134,7 @@ test('runConventionSync logs warn when download exits non-zero', async () => {
|
|
|
129
134
|
{ exitCode: 0, stdout: JSON.stringify({ updateAvailable: true }) },
|
|
130
135
|
{ exitCode: 1, stderr: 'download failed' },
|
|
131
136
|
]),
|
|
137
|
+
existsSync: existingDir,
|
|
132
138
|
logger: fakeLogger,
|
|
133
139
|
});
|
|
134
140
|
assert.equal(logs.length, 1);
|
|
@@ -137,6 +143,7 @@ test('runConventionSync logs warn when download exits non-zero', async () => {
|
|
|
137
143
|
});
|
|
138
144
|
test('runConventionSync logs warn on spawn error', async () => {
|
|
139
145
|
const logs = [];
|
|
146
|
+
const calls = [];
|
|
140
147
|
const fakeLogger = {
|
|
141
148
|
info: (message, meta) => {
|
|
142
149
|
logs.push({ level: 'info', message, meta });
|
|
@@ -145,14 +152,41 @@ test('runConventionSync logs warn on spawn error', async () => {
|
|
|
145
152
|
logs.push({ level: 'warn', message, meta });
|
|
146
153
|
},
|
|
147
154
|
};
|
|
155
|
+
const spawnError = Object.assign(new Error('spawn agentteams ENOENT'), { code: 'ENOENT' });
|
|
148
156
|
await runConventionSync('/fake/path', {
|
|
149
157
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
150
|
-
spawn: createFakeSpawn([{ exitCode: null, error:
|
|
158
|
+
spawn: createFakeSpawn([{ exitCode: null, error: spawnError }], calls),
|
|
159
|
+
existsSync: existingDir,
|
|
160
|
+
logger: fakeLogger,
|
|
161
|
+
});
|
|
162
|
+
assert.equal(calls.length, 1, 'cwd exists so spawn must still be attempted');
|
|
163
|
+
assert.equal(logs.length, 1);
|
|
164
|
+
assert.equal(logs[0].level, 'warn');
|
|
165
|
+
assert.match(logs[0].message, /CLI executable not found/i);
|
|
166
|
+
assert.doesNotMatch(logs[0].message, /working directory no longer exists/i);
|
|
167
|
+
});
|
|
168
|
+
test('runConventionSync skips spawn when the working directory no longer exists', async () => {
|
|
169
|
+
const logs = [];
|
|
170
|
+
const calls = [];
|
|
171
|
+
const fakeLogger = {
|
|
172
|
+
info: (message, meta) => {
|
|
173
|
+
logs.push({ level: 'info', message, meta });
|
|
174
|
+
},
|
|
175
|
+
warn: (message, meta) => {
|
|
176
|
+
logs.push({ level: 'warn', message, meta });
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
await runConventionSync('/deleted/worktree', {
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
181
|
+
spawn: createFakeSpawn([{ exitCode: 0, stdout: JSON.stringify({ updateAvailable: false }) }], calls),
|
|
182
|
+
existsSync: () => false,
|
|
151
183
|
logger: fakeLogger,
|
|
152
184
|
});
|
|
185
|
+
assert.equal(calls.length, 0, 'missing cwd must not spawn agentteams');
|
|
153
186
|
assert.equal(logs.length, 1);
|
|
154
187
|
assert.equal(logs[0].level, 'warn');
|
|
155
|
-
assert.match(logs[0].message, /
|
|
188
|
+
assert.match(logs[0].message, /working directory no longer exists/i);
|
|
189
|
+
assert.doesNotMatch(logs[0].message, /CLI executable not found/i);
|
|
156
190
|
});
|
|
157
191
|
test('runConventionSync never throws', async () => {
|
|
158
192
|
const fakeLogger = {
|
|
@@ -165,6 +199,7 @@ test('runConventionSync never throws', async () => {
|
|
|
165
199
|
await assert.doesNotReject(runConventionSync('/fake/path', {
|
|
166
200
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
167
201
|
spawn: throwingSpawn,
|
|
202
|
+
existsSync: existingDir,
|
|
168
203
|
logger: fakeLogger,
|
|
169
204
|
}));
|
|
170
205
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convention-sync.test.js","sourceRoot":"","sources":["../../src/utils/convention-sync.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"convention-sync.test.js","sourceRoot":"","sources":["../../src/utils/convention-sync.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAezD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;AAE/B,MAAM,eAAe,GAAG,CAAC,SAA8B,EAAE,QAAyB,EAAE,EAAE,EAAE;IACtF,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAY,EAAgB,EAAE;QACjE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,YAAY,EAAkB,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YACpB,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,QAAQ,CAAC,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,QAAQ,CAAC,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;IAClB,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;IAChF,MAAM,IAAI,GAA6D,EAAE,CAAC;IAC1E,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,iBAAiB,CAAC,YAAY,EAAE;QACpC,8DAA8D;QAC9D,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAQ;QAC3G,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CACd,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;IAC3E,MAAM,IAAI,GAA6D,EAAE,CAAC;IAC1E,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,iBAAiB,CAAC,YAAY,EAAE;QACpC,8DAA8D;QAC9D,KAAK,EAAE,eAAe,CACpB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EACrF,KAAK,CACC;QACR,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CACd,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B;QACE,CAAC,YAAY,EAAE,QAAQ,CAAC;QACxB,CAAC,YAAY,EAAE,UAAU,CAAC;KAC3B,CACF,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,IAAI,GAA6D,EAAE,CAAC;IAC1E,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,iBAAiB,CAAC,YAAY,EAAE;QACpC,8DAA8D;QAC9D,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,KAAK,CAAQ;QACjF,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CACd,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;IAC9E,MAAM,IAAI,GAA6D,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,iBAAiB,CAAC,YAAY,EAAE;QACpC,8DAA8D;QAC9D,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAQ;QACpE,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IAC1E,MAAM,IAAI,GAA6D,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,iBAAiB,CAAC,YAAY,EAAE;QACpC,8DAA8D;QAC9D,KAAK,EAAE,eAAe,CAAC;YACrB,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE;YAClE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE;SAC3C,CAAQ;QACT,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,IAAI,GAA6D,EAAE,CAAC;IAC1E,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3F,MAAM,iBAAiB,CAAC,YAAY,EAAE;QACpC,8DAA8D;QAC9D,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,CAAQ;QAC7E,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,6CAA6C,CAAC,CAAC;IAC7E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IAC5D,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;IAC3F,MAAM,IAAI,GAA6D,EAAE,CAAC;IAC1E,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,iBAAiB,CAAC,mBAAmB,EAAE;QAC3C,8DAA8D;QAC9D,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAQ;QAC3G,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;QACvB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,uCAAuC,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;IACtE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;IAChD,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACf,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,MAAM,CAAC,aAAa,CACxB,iBAAiB,CAAC,YAAY,EAAE;QAC9B,8DAA8D;QAC9D,KAAK,EAAE,aAAoB;QAC3B,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,UAAU;KACnB,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RunnerType } from '@agentteams/core-constants';
|
|
2
|
-
import {
|
|
2
|
+
import { getNpmGlobalPrefixAsync, isExecutableLookupAvailable, resolveExecutablePathWithPreferenceAsync, resolveExecutablePathsWithPreferenceAsync, runProbeCommand, type AsyncExecutableDeps } from '../executable.js';
|
|
3
3
|
type EngineProbeDependencies = AsyncExecutableDeps & {
|
|
4
|
-
|
|
4
|
+
getNpmGlobalPrefixAsync?: typeof getNpmGlobalPrefixAsync;
|
|
5
5
|
resolveExecutablePathWithPreferenceAsync?: typeof resolveExecutablePathWithPreferenceAsync;
|
|
6
6
|
resolveExecutablePathsWithPreferenceAsync?: typeof resolveExecutablePathsWithPreferenceAsync;
|
|
7
7
|
isExecutableLookupAvailable?: typeof isExecutableLookupAvailable;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getNpmGlobalPrefixAsync, isExecutableLookupAvailable, resolveExecutablePathWithPreferenceAsync, runProbeCommand, } from '../executable.js';
|
|
2
2
|
import { ENGINE_COMMANDS, getEngineCommand, getEngineExecutablePreference } from '../runners/engine-commands.js';
|
|
3
3
|
import { findGrokBuildExecutable } from '../runners/grok-build-identity.js';
|
|
4
4
|
const isCursorAgent = async (executablePath, run, deps) => {
|
|
@@ -7,14 +7,14 @@ const isCursorAgent = async (executablePath, run, deps) => {
|
|
|
7
7
|
};
|
|
8
8
|
export const probeInstalledEngines = async (runnerCmd, deps = {}) => {
|
|
9
9
|
const resolve = deps.resolveExecutablePathWithPreferenceAsync ?? resolveExecutablePathWithPreferenceAsync;
|
|
10
|
-
const
|
|
10
|
+
const resolveNpmGlobalPrefix = deps.getNpmGlobalPrefixAsync ?? getNpmGlobalPrefixAsync;
|
|
11
11
|
const checkLookupAvailable = deps.isExecutableLookupAvailable ?? isExecutableLookupAvailable;
|
|
12
12
|
const runCommand = deps.runProbeCommand ?? runProbeCommand;
|
|
13
13
|
const isWindows = (deps.platform ?? (() => process.platform))() === 'win32';
|
|
14
14
|
const executableDeps = {
|
|
15
15
|
...deps,
|
|
16
16
|
// 미설치 엔진마다 `npm prefix -g`를 반복하지 않도록 프로브 사이클에서 한 번만 계산한다.
|
|
17
|
-
|
|
17
|
+
npmGlobalPrefix: await resolveNpmGlobalPrefix(deps),
|
|
18
18
|
};
|
|
19
19
|
const engines = [];
|
|
20
20
|
for (const runnerType of Object.keys(ENGINE_COMMANDS)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-probe.js","sourceRoot":"","sources":["../../src/utils/engine-probe.ts"],"names":[],"mappings":"AACA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"engine-probe.js","sourceRoot":"","sources":["../../src/utils/engine-probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,26 +2,26 @@ import assert from 'node:assert/strict';
|
|
|
2
2
|
import { describe, it } from 'node:test';
|
|
3
3
|
import { probeInstalledEngines } from './engine-probe.js';
|
|
4
4
|
describe('probeInstalledEngines', () => {
|
|
5
|
-
it('returns only installed engines and resolves npm global
|
|
6
|
-
let
|
|
5
|
+
it('returns only installed engines and resolves the npm global prefix once per cycle', async () => {
|
|
6
|
+
let npmGlobalPrefixCalls = 0;
|
|
7
7
|
const result = await probeInstalledEngines('custom-opencode', {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return '/global/
|
|
8
|
+
getNpmGlobalPrefixAsync: async () => {
|
|
9
|
+
npmGlobalPrefixCalls += 1;
|
|
10
|
+
return '/global/prefix';
|
|
11
11
|
},
|
|
12
12
|
resolveExecutablePathWithPreferenceAsync: async (name, _preferredNames, deps) => {
|
|
13
|
-
assert.equal(deps?.
|
|
13
|
+
assert.equal(deps?.npmGlobalPrefix, '/global/prefix');
|
|
14
14
|
return name === 'codex' ? '/bin/codex' : null;
|
|
15
15
|
},
|
|
16
16
|
});
|
|
17
17
|
assert.deepEqual(result.engines, ['CODEX']);
|
|
18
18
|
assert.equal(result.reliable, true);
|
|
19
|
-
assert.equal(
|
|
19
|
+
assert.equal(npmGlobalPrefixCalls, 1);
|
|
20
20
|
});
|
|
21
21
|
it('uses the configured OpenCode command and absorbs individual probe failures', async () => {
|
|
22
22
|
const requestedCommands = [];
|
|
23
23
|
const result = await probeInstalledEngines('custom-opencode', {
|
|
24
|
-
|
|
24
|
+
getNpmGlobalPrefixAsync: async () => null,
|
|
25
25
|
resolveExecutablePathWithPreferenceAsync: async (name) => {
|
|
26
26
|
requestedCommands.push(name);
|
|
27
27
|
return name === 'custom-opencode' ? '/bin/custom-opencode' : null;
|
|
@@ -35,7 +35,7 @@ describe('probeInstalledEngines', () => {
|
|
|
35
35
|
const preferences = new Map();
|
|
36
36
|
await probeInstalledEngines('opencode', {
|
|
37
37
|
platform: () => 'win32',
|
|
38
|
-
|
|
38
|
+
getNpmGlobalPrefixAsync: async () => null,
|
|
39
39
|
resolveExecutablePathWithPreferenceAsync: async (name, preferredNames) => {
|
|
40
40
|
preferences.set(name, preferredNames);
|
|
41
41
|
return null;
|
|
@@ -47,9 +47,26 @@ describe('probeInstalledEngines', () => {
|
|
|
47
47
|
assert.deepEqual(preferences.get('agent'), ['agent']);
|
|
48
48
|
assert.deepEqual(preferences.get('grok'), ['grok.exe', 'grok']);
|
|
49
49
|
});
|
|
50
|
+
// 리눅스 공식 설치 스크립트는 opencode를 PATH 밖 $HOME/.opencode/bin에 두고 PATH 보강은
|
|
51
|
+
// 셸 rc에만 넣는다. 러너는 비대화형이라 rc를 읽지 않으므로, 알려진 설치 경로 폴백이 없으면
|
|
52
|
+
// 정상 설치된 OpenCode가 탐지에서 통째로 빠진다(2026-08-24 linux-dev 재현).
|
|
53
|
+
it('detects OpenCode installed at the official Linux path outside PATH', async () => {
|
|
54
|
+
const result = await probeInstalledEngines('opencode', {
|
|
55
|
+
platform: () => 'linux',
|
|
56
|
+
env: { HOME: '/home/justin' },
|
|
57
|
+
// PATH 조회(`which -a`)와 `npm prefix -g`가 모두 실패하는 상황을 그대로 재현한다.
|
|
58
|
+
execFileAsync: (async () => {
|
|
59
|
+
throw new Error('not found');
|
|
60
|
+
}),
|
|
61
|
+
existsSync: ((path) => path === '/home/justin/.opencode/bin/opencode'),
|
|
62
|
+
runProbeCommand: async () => null,
|
|
63
|
+
});
|
|
64
|
+
assert.deepEqual(result.engines, ['OPENCODE']);
|
|
65
|
+
assert.equal(result.reliable, true);
|
|
66
|
+
});
|
|
50
67
|
it('accepts Cursor only when the executable identifies itself as Cursor Agent', async () => {
|
|
51
68
|
const probe = (helpText) => probeInstalledEngines('opencode', {
|
|
52
|
-
|
|
69
|
+
getNpmGlobalPrefixAsync: async () => null,
|
|
53
70
|
runProbeCommand: async () => helpText,
|
|
54
71
|
resolveExecutablePathWithPreferenceAsync: async (name) => (name === 'agent' ? '/bin/agent' : null),
|
|
55
72
|
});
|
|
@@ -62,7 +79,7 @@ describe('probeInstalledEngines', () => {
|
|
|
62
79
|
// 설치된 것으로 보고하면 안 된다. 서드파티를 GROK_BUILD로 오탐하면 실행이 통째로 깨진다.
|
|
63
80
|
it('accepts Grok only when the executable identifies itself as Grok Build', async () => {
|
|
64
81
|
const probe = (helpText) => probeInstalledEngines('opencode', {
|
|
65
|
-
|
|
82
|
+
getNpmGlobalPrefixAsync: async () => null,
|
|
66
83
|
runProbeCommand: async () => helpText,
|
|
67
84
|
resolveExecutablePathWithPreferenceAsync: async (name) => (name === 'grok' ? '/bin/grok' : null),
|
|
68
85
|
});
|
|
@@ -74,7 +91,7 @@ describe('probeInstalledEngines', () => {
|
|
|
74
91
|
it('skips a conflicting Grok candidate and accepts the next official installation', async () => {
|
|
75
92
|
const probed = [];
|
|
76
93
|
const result = await probeInstalledEngines('opencode', {
|
|
77
|
-
|
|
94
|
+
getNpmGlobalPrefixAsync: async () => null,
|
|
78
95
|
resolveExecutablePathsWithPreferenceAsync: async (name) => name === 'grok' ? ['/custom/bin/grok', '/usr/local/bin/grok'] : [],
|
|
79
96
|
resolveExecutablePathWithPreferenceAsync: async () => null,
|
|
80
97
|
runProbeCommand: async (executablePath) => {
|
|
@@ -88,7 +105,7 @@ describe('probeInstalledEngines', () => {
|
|
|
88
105
|
// 빈 목록은 서버에서 "제한 없음"으로 해석되므로, 조회 자체가 불가능한 환경은 보고 대상에서 빼야 한다.
|
|
89
106
|
it('marks a zero-engine result unreliable when the lookup command cannot run', async () => {
|
|
90
107
|
const result = await probeInstalledEngines('opencode', {
|
|
91
|
-
|
|
108
|
+
getNpmGlobalPrefixAsync: async () => null,
|
|
92
109
|
resolveExecutablePathWithPreferenceAsync: async () => null,
|
|
93
110
|
isExecutableLookupAvailable: async () => false,
|
|
94
111
|
});
|
|
@@ -97,7 +114,7 @@ describe('probeInstalledEngines', () => {
|
|
|
97
114
|
});
|
|
98
115
|
it('keeps a zero-engine result reliable when the lookup command works', async () => {
|
|
99
116
|
const result = await probeInstalledEngines('opencode', {
|
|
100
|
-
|
|
117
|
+
getNpmGlobalPrefixAsync: async () => null,
|
|
101
118
|
resolveExecutablePathWithPreferenceAsync: async () => null,
|
|
102
119
|
isExecutableLookupAvailable: async () => true,
|
|
103
120
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-probe.test.js","sourceRoot":"","sources":["../../src/utils/engine-probe.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"engine-probe.test.js","sourceRoot":"","sources":["../../src/utils/engine-probe.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,5 +49,5 @@ export declare const parseCursorModels: (output: string) => ModelEnumerationResu
|
|
|
49
49
|
* 새어 들어간다. 값 뒤의 `(default)` 표시는 값의 일부가 아니라 기본 모델 마커라 떼어낸다.
|
|
50
50
|
*/
|
|
51
51
|
export declare const parseGrokModels: (output: string) => ModelEnumerationResult;
|
|
52
|
-
export declare const enumerateModels: (runnerType: RunnerType, dependencies?: Partial<ModelEnumeratorDependencies
|
|
52
|
+
export declare const enumerateModels: (runnerType: RunnerType, dependencies?: Partial<ModelEnumeratorDependencies>, opencodeCommand?: string) => Promise<ModelEnumerationResult>;
|
|
53
53
|
export {};
|
|
@@ -3,8 +3,7 @@ import { platform } from 'node:os';
|
|
|
3
3
|
import { buildPowerShellCommand, resolveExecutablePathWithPreference } from '../executable.js';
|
|
4
4
|
import { sanitizeAntigravityInternalLogLine } from '../runners/antigravity.js';
|
|
5
5
|
import { RUNNER_CAPABILITIES } from '../runners/capabilities.js';
|
|
6
|
-
import {
|
|
7
|
-
import { getKiroExecutablePreference } from '../runners/kiro-cli.js';
|
|
6
|
+
import { getEngineCommand, getEngineExecutablePreference } from '../runners/engine-commands.js';
|
|
8
7
|
const RESERVED_MODEL_PREFIX = '__fast__:';
|
|
9
8
|
const ENUMERATION_TIMEOUT_MS = 30_000;
|
|
10
9
|
const MAX_ERROR_OUTPUT_LENGTH = 500;
|
|
@@ -245,20 +244,30 @@ const commandFailure = (error) => ({
|
|
|
245
244
|
status: 'COMMAND_FAILED',
|
|
246
245
|
message: error instanceof Error ? error.message : String(error),
|
|
247
246
|
});
|
|
248
|
-
|
|
247
|
+
/// OPENCODE 실행 파일 이름의 기본값. `config.ts`의 `DEFAULT_RUNNER_CMD`와 같은 값이며,
|
|
248
|
+
/// 인자를 주지 않는 기존 호출부의 동작을 유지하기 위한 폴백이다.
|
|
249
|
+
const DEFAULT_OPENCODE_COMMAND = 'opencode';
|
|
250
|
+
export const enumerateModels = async (runnerType, dependencies = {},
|
|
251
|
+
/// OPENCODE 실행 파일 이름(`config.runnerCmd`). 엔진 탐지·러너 기동과 같은 이름을 봐야
|
|
252
|
+
/// RUNNER_CMD를 바꾼 환경에서 "탐지는 되는데 열거만 실패하는" 어긋남이 생기지 않는다.
|
|
253
|
+
opencodeCommand = DEFAULT_OPENCODE_COMMAND) => {
|
|
249
254
|
if (!RUNNER_CAPABILITIES[runnerType].modelEnumeration) {
|
|
250
255
|
return { status: 'UNSUPPORTED' };
|
|
251
256
|
}
|
|
252
257
|
const deps = { ...defaultDependencies, ...dependencies };
|
|
253
258
|
const isWindows = deps.platform() === 'win32';
|
|
254
259
|
try {
|
|
260
|
+
const resolveEngineExecutable = (type) => {
|
|
261
|
+
const command = getEngineCommand(type, opencodeCommand);
|
|
262
|
+
return deps.resolveExecutable(command, getEngineExecutablePreference(type, opencodeCommand, isWindows));
|
|
263
|
+
};
|
|
255
264
|
switch (runnerType) {
|
|
256
265
|
case 'KIRO_CLI': {
|
|
257
|
-
const executable =
|
|
266
|
+
const executable = resolveEngineExecutable(runnerType);
|
|
258
267
|
return parseKiroModels((await deps.execute(executable, ['chat', '--list-models', '--format', 'json'])).stdout);
|
|
259
268
|
}
|
|
260
269
|
case 'OPENCODE': {
|
|
261
|
-
const executable =
|
|
270
|
+
const executable = resolveEngineExecutable(runnerType);
|
|
262
271
|
try {
|
|
263
272
|
const verbose = parseOpenCodeVerboseModels((await deps.execute(executable, ['models', '--verbose'])).stdout);
|
|
264
273
|
if (verbose.status === 'SUCCESS')
|
|
@@ -275,15 +284,15 @@ export const enumerateModels = async (runnerType, dependencies = {}) => {
|
|
|
275
284
|
}
|
|
276
285
|
}
|
|
277
286
|
case 'ANTIGRAVITY': {
|
|
278
|
-
const executable =
|
|
287
|
+
const executable = resolveEngineExecutable(runnerType);
|
|
279
288
|
return parseLineModels((await deps.execute(executable, ['models'])).stdout, 'tab');
|
|
280
289
|
}
|
|
281
290
|
case 'CURSOR_CLI': {
|
|
282
|
-
const executable =
|
|
291
|
+
const executable = resolveEngineExecutable(runnerType);
|
|
283
292
|
return parseCursorModels((await deps.execute(executable, ['models'])).stdout);
|
|
284
293
|
}
|
|
285
294
|
case 'GROK_BUILD': {
|
|
286
|
-
const executable =
|
|
295
|
+
const executable = resolveEngineExecutable(runnerType);
|
|
287
296
|
return parseGrokModels((await deps.execute(executable, ['models'])).stdout);
|
|
288
297
|
}
|
|
289
298
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-enumerator.js","sourceRoot":"","sources":["../../src/utils/model-enumerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model-enumerator.js","sourceRoot":"","sources":["../../src/utils/model-enumerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,6 +117,34 @@ describe('enumerateModels', () => {
|
|
|
117
117
|
values: [{ value: 'provider/model-a', label: 'provider/model-a' }],
|
|
118
118
|
});
|
|
119
119
|
});
|
|
120
|
+
// 엔진 탐지(engine-commands.ts)와 러너 기동(opencode.ts)은 config.runnerCmd를 따르는데
|
|
121
|
+
// 열거만 'opencode'를 하드코딩하면, RUNNER_CMD를 바꾼 환경에서 탐지는 되고 열거만 실패한다.
|
|
122
|
+
test('enumerates OpenCode with the configured runner command', async () => {
|
|
123
|
+
const requestedNames = [];
|
|
124
|
+
const result = await enumerateModels('OPENCODE', {
|
|
125
|
+
execute: async () => ({ stdout: 'provider/model-a\n' }),
|
|
126
|
+
platform: () => 'darwin',
|
|
127
|
+
resolveExecutable: (name) => {
|
|
128
|
+
requestedNames.push(name);
|
|
129
|
+
return `/bin/${name}`;
|
|
130
|
+
},
|
|
131
|
+
}, 'custom-opencode');
|
|
132
|
+
assert.deepEqual(requestedNames, ['custom-opencode']);
|
|
133
|
+
assert.equal(result.status, 'SUCCESS');
|
|
134
|
+
});
|
|
135
|
+
// 인자를 주지 않는 기존 호출부는 그대로 'opencode'를 해석해야 한다.
|
|
136
|
+
test('falls back to the default OpenCode command when none is provided', async () => {
|
|
137
|
+
const requestedNames = [];
|
|
138
|
+
await enumerateModels('OPENCODE', {
|
|
139
|
+
execute: async () => ({ stdout: 'provider/model-a\n' }),
|
|
140
|
+
platform: () => 'darwin',
|
|
141
|
+
resolveExecutable: (name) => {
|
|
142
|
+
requestedNames.push(name);
|
|
143
|
+
return `/bin/${name}`;
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
assert.deepEqual(requestedNames, ['opencode']);
|
|
147
|
+
});
|
|
120
148
|
test('classifies command failures instead of throwing', async () => {
|
|
121
149
|
const result = await enumerateModels('KIRO_CLI', dependencies(async () => {
|
|
122
150
|
throw new Error('offline');
|
|
@@ -144,6 +172,21 @@ describe('enumerateModels', () => {
|
|
|
144
172
|
values: [{ value: 'gemini-3.7-flash-high', label: 'Gemini 3.7 Flash (High)' }],
|
|
145
173
|
});
|
|
146
174
|
});
|
|
175
|
+
test('uses the engine command SSOT for Windows executable preferences', async () => {
|
|
176
|
+
const preferences = new Map();
|
|
177
|
+
const deps = {
|
|
178
|
+
execute: async () => ({ stdout: 'model-a\n' }),
|
|
179
|
+
platform: () => 'win32',
|
|
180
|
+
resolveExecutable: (name, preferredNames) => {
|
|
181
|
+
preferences.set(name, preferredNames);
|
|
182
|
+
return `C:\\bin\\${name}`;
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
await enumerateModels('CURSOR_CLI', deps);
|
|
186
|
+
await enumerateModels('ANTIGRAVITY', deps);
|
|
187
|
+
assert.deepEqual(preferences.get('agent'), ['agent']);
|
|
188
|
+
assert.deepEqual(preferences.get('agy'), ['agy.cmd', 'agy']);
|
|
189
|
+
});
|
|
147
190
|
});
|
|
148
191
|
describe('sanitizeErrorOutput', () => {
|
|
149
192
|
test('redacts sensitive credentials and JWTs from error output', () => {
|