@agentteams/runner 0.0.116 → 0.0.118
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.js +25 -14
- package/dist/executable.js.map +1 -1
- package/dist/executable.test.js +38 -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/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/model-enumerator.d.ts +6 -2
- package/dist/utils/model-enumerator.js +19 -5
- package/dist/utils/model-enumerator.js.map +1 -1
- package/dist/utils/model-enumerator.test.js +79 -4
- package/dist/utils/model-enumerator.test.js.map +1 -1
- package/dist/utils/npm-global-permission.js +4 -3
- 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,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
2
|
import { runExecutableSync } from '../executable.js';
|
|
3
3
|
import { logger } from '../logger.js';
|
|
4
|
-
import { classifyInstallError, describeInstallError } from './npm-install-error.js';
|
|
4
|
+
import { classifyInstallError, describeInstallError, requiresManualFix, } from './npm-install-error.js';
|
|
5
5
|
import { canWriteGlobalNpmRoot as canWriteGlobalNpmRootDefault } from './npm-global-permission.js';
|
|
6
6
|
const require = createRequire(import.meta.url);
|
|
7
7
|
const packageJson = require('../../package.json');
|
|
@@ -9,23 +9,36 @@ const CLI_PACKAGE = '@agentteams/cli';
|
|
|
9
9
|
const RUNNER_PACKAGE = '@agentteams/runner';
|
|
10
10
|
const COOLDOWN_MS = 60 * 60 * 1000; // 1시간
|
|
11
11
|
/**
|
|
12
|
-
* 권한
|
|
13
|
-
* 얻는 것이 없으므로 대상 버전이 바뀔 때까지 24시간 대기한다.
|
|
12
|
+
* 권한 차단·전역 bin 이름 충돌은 사용자가 직접 고치기 전에는 절대 풀리지 않는다. 1시간마다 같은
|
|
13
|
+
* EACCES/EEXIST를 반복해도 얻는 것이 없으므로 대상 버전이 바뀔 때까지 24시간 대기한다.
|
|
14
14
|
*/
|
|
15
|
-
const
|
|
15
|
+
const MANUAL_FIX_COOLDOWN_MS = 24 * 60 * 60 * 1000;
|
|
16
|
+
/**
|
|
17
|
+
* 설치 실패가 아직 해소되지 않았을 때 "이미 최신인지"만 확인하는 프로브 주기.
|
|
18
|
+
* 설치 백오프(권한 실패 시 24시간)와 분리해, 사용자가 CLI를 직접 설치하면 최대 이 주기 안에
|
|
19
|
+
* 차단 상태가 자가 해제되게 한다. `npm list -g`는 동기 실행이라 폴링마다 돌리지는 않는다.
|
|
20
|
+
*/
|
|
21
|
+
const FAILURE_PROBE_COOLDOWN_MS = 5 * 60 * 1000;
|
|
16
22
|
const PERMISSION_BLOCKED_HINT = 'AgentRunner cannot write to the global npm directory, so auto-update is blocked. ' +
|
|
17
23
|
'Install the update manually with elevated permissions, or switch npm to a user-level prefix.';
|
|
18
24
|
let lastSuccessfulRunnerVersion = null;
|
|
19
25
|
/** 패키지별 마지막 설치 시도. 대상 버전이 바뀌면 쿨다운과 무관하게 즉시 다시 시도한다. */
|
|
20
26
|
const lastUpdateAttempts = new Map();
|
|
21
|
-
/**
|
|
22
|
-
const
|
|
27
|
+
/** 사용자 조치 전까지 회복 불가로 판정된 (package, version). 대상 버전이 바뀌면 즉시 재시도할 수 있게 버전을 함께 들고 있는다. */
|
|
28
|
+
const manualFixBlockedVersions = new Map();
|
|
23
29
|
/** 아직 서버에 전달하지 못한 실패 보고. 설치 백오프와 무관하게 매 폴링마다 재시도한다. */
|
|
24
30
|
const pendingFailureReports = new Map();
|
|
25
31
|
/** 보고가 성공한 실패 식별자. 서버 중복 계약과 같은 (version, reason) 조합만 억제한다. */
|
|
26
32
|
const reportedFailures = new Map();
|
|
27
33
|
/** 아직 서버에 전달하지 못한 설치 성공 (package → version). 매 폴링마다 재시도한다. */
|
|
28
34
|
const pendingSuccessReports = new Map();
|
|
35
|
+
/**
|
|
36
|
+
* 이미 최신인 패키지를 성공으로 보고한 (package → version).
|
|
37
|
+
* 프로세스당 같은 조합을 한 번만 큐에 넣어 폴링마다 재보고하지 않는다.
|
|
38
|
+
*/
|
|
39
|
+
const upToDateReported = new Map();
|
|
40
|
+
/** 설치 백오프와 무관하게 돌린 "이미 최신인지" 프로브의 마지막 실행 시각(package → at). */
|
|
41
|
+
const lastFailureProbes = new Map();
|
|
29
42
|
/** 서버의 중복 억제 계약과 동일하게 (version, reason)까지 봐야 사유 전환이 다시 보고된다. */
|
|
30
43
|
const failureIdentity = (input) => `${input.version}::${input.reason}`;
|
|
31
44
|
const getCurrentRunnerVersion = () => packageJson.version ?? '0.0.0';
|
|
@@ -47,21 +60,35 @@ const needsUpdate = (currentVersion, latestVersion) => {
|
|
|
47
60
|
const installPackage = (packageName, version, deps) => {
|
|
48
61
|
deps.runExecutableSync('npm', ['install', '-g', `${packageName}@${version}`]);
|
|
49
62
|
};
|
|
50
|
-
/**
|
|
51
|
-
const
|
|
63
|
+
/** 사용자 조치 대기로 백오프 중인지 판정한다. 대상 버전이 바뀌었으면 백오프를 해제한다. */
|
|
64
|
+
const isManualFixBlocked = (pkg, targetVersion) => manualFixBlockedVersions.get(pkg) === targetVersion;
|
|
52
65
|
/**
|
|
53
66
|
* 설치를 시도해도 되는 시점인지 판정한다.
|
|
54
67
|
*
|
|
55
|
-
* 대상 버전이 직전 시도와 다르면 쿨다운(
|
|
68
|
+
* 대상 버전이 직전 시도와 다르면 쿨다운(사용자 조치 대기 24시간 포함)을 무시하고 즉시 시도한다.
|
|
56
69
|
* 권한·패키징 문제를 고친 새 버전이 나왔는데 최대 1시간을 기다리는 일을 막는다.
|
|
57
70
|
*/
|
|
58
71
|
const shouldAttemptInstall = (pkg, targetVersion, now) => {
|
|
59
72
|
const lastAttempt = lastUpdateAttempts.get(pkg);
|
|
60
73
|
if (!lastAttempt || lastAttempt.targetVersion !== targetVersion)
|
|
61
74
|
return true;
|
|
62
|
-
const cooldown =
|
|
75
|
+
const cooldown = isManualFixBlocked(pkg, targetVersion) ? MANUAL_FIX_COOLDOWN_MS : COOLDOWN_MS;
|
|
63
76
|
return now - lastAttempt.at >= cooldown;
|
|
64
77
|
};
|
|
78
|
+
/** 서버에 남아 있는 차단 상태를 아직 해제하지 못했는지 판정한다. */
|
|
79
|
+
const hasUnresolvedFailure = (pkg) => manualFixBlockedVersions.has(pkg) || pendingFailureReports.has(pkg) || reportedFailures.has(pkg);
|
|
80
|
+
/**
|
|
81
|
+
* 설치 백오프에 걸려 있어도 "이미 최신인지"만 확인해도 되는 시점인지 판정한다.
|
|
82
|
+
*
|
|
83
|
+
* 사용자가 안내대로 CLI를 직접 설치하면 설치 쿨다운(권한 실패 시 24시간)이 끝날 때까지 기다리지 않고
|
|
84
|
+
* 자가 해제되어야 한다. 반대로 차단 상태가 없으면 프로브할 이유가 없으므로 설치 주기만 따른다.
|
|
85
|
+
*/
|
|
86
|
+
const shouldProbeWhileBlocked = (pkg, now) => {
|
|
87
|
+
if (!hasUnresolvedFailure(pkg))
|
|
88
|
+
return false;
|
|
89
|
+
const lastProbe = lastFailureProbes.get(pkg);
|
|
90
|
+
return lastProbe === undefined || now - lastProbe >= FAILURE_PROBE_COOLDOWN_MS;
|
|
91
|
+
};
|
|
65
92
|
/** 프리플라이트가 판정 불가로 throw하면 fail-open — 기존처럼 설치를 시도한다. */
|
|
66
93
|
const resolveCanWriteGlobalNpmRoot = (deps) => {
|
|
67
94
|
const check = deps.canWriteGlobalNpmRoot ?? canWriteGlobalNpmRootDefault;
|
|
@@ -82,15 +109,18 @@ export const maybeAutoUpdate = async (meta, deps = {}) => {
|
|
|
82
109
|
let runnerUpdated = false;
|
|
83
110
|
/**
|
|
84
111
|
* 실패를 미보고 큐에 넣는다. 전송은 설치 백오프와 분리된 `flushPendingReports`가 담당하므로,
|
|
85
|
-
* 24시간
|
|
112
|
+
* 24시간 백오프에 걸린 뒤에도 다음 폴링마다 보고만 재시도된다.
|
|
113
|
+
*
|
|
114
|
+
* `blockedUntilManualFix`는 서버로 보내는 `reason`과 별개다 — bin 이름 충돌은 `UNKNOWN`으로
|
|
115
|
+
* 보고되지만 사용자가 충돌 파일을 치우기 전까지는 재시도해도 소용없으므로 백오프 대상이다.
|
|
86
116
|
*/
|
|
87
|
-
const recordFailure = (input) => {
|
|
88
|
-
if (
|
|
89
|
-
const alreadyBlocked =
|
|
90
|
-
|
|
117
|
+
const recordFailure = (input, blockedUntilManualFix) => {
|
|
118
|
+
if (blockedUntilManualFix) {
|
|
119
|
+
const alreadyBlocked = manualFixBlockedVersions.get(input.package) === input.version;
|
|
120
|
+
manualFixBlockedVersions.set(input.package, input.version);
|
|
91
121
|
if (!alreadyBlocked) {
|
|
92
122
|
// 로그 폭주를 막기 위해 버전당 1회만 조치 안내를 남긴다.
|
|
93
|
-
resolvedLogger.warn(PERMISSION_BLOCKED_HINT, {
|
|
123
|
+
resolvedLogger.warn(input.reason === 'PERMISSION_DENIED' ? PERMISSION_BLOCKED_HINT : input.message, {
|
|
94
124
|
package: input.package,
|
|
95
125
|
targetVersion: input.version,
|
|
96
126
|
});
|
|
@@ -103,10 +133,11 @@ export const maybeAutoUpdate = async (meta, deps = {}) => {
|
|
|
103
133
|
};
|
|
104
134
|
/** 설치 성공을 미보고 큐에 넣는다. 서버는 이 보고로 해당 패키지의 실패 상태를 해제한다. */
|
|
105
135
|
const recordSuccess = (pkg, version) => {
|
|
106
|
-
|
|
136
|
+
manualFixBlockedVersions.delete(pkg);
|
|
107
137
|
pendingFailureReports.delete(pkg);
|
|
108
138
|
reportedFailures.delete(pkg);
|
|
109
139
|
pendingSuccessReports.set(pkg, version);
|
|
140
|
+
upToDateReported.set(pkg, version);
|
|
110
141
|
};
|
|
111
142
|
/**
|
|
112
143
|
* 미보고 상태를 서버로 흘려보낸다. 설치 쿨다운과 무관하게 폴링마다 1회씩 재시도하고,
|
|
@@ -154,7 +185,7 @@ export const maybeAutoUpdate = async (meta, deps = {}) => {
|
|
|
154
185
|
version,
|
|
155
186
|
reason: 'PERMISSION_DENIED',
|
|
156
187
|
message: PERMISSION_BLOCKED_HINT,
|
|
157
|
-
});
|
|
188
|
+
}, true);
|
|
158
189
|
return false;
|
|
159
190
|
}
|
|
160
191
|
try {
|
|
@@ -173,27 +204,43 @@ export const maybeAutoUpdate = async (meta, deps = {}) => {
|
|
|
173
204
|
version,
|
|
174
205
|
reason,
|
|
175
206
|
message: describeInstallError(error),
|
|
176
|
-
});
|
|
207
|
+
}, requiresManualFix(error));
|
|
177
208
|
return false;
|
|
178
209
|
}
|
|
179
210
|
};
|
|
180
211
|
// CLI 업데이트
|
|
181
|
-
if (meta.cliLatestVersion
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
212
|
+
if (meta.cliLatestVersion) {
|
|
213
|
+
const canInstallCli = shouldAttemptInstall('cli', meta.cliLatestVersion, now);
|
|
214
|
+
// 설치가 백오프에 걸려 있어도 차단 상태가 남아 있으면 최신 여부 확인만 따로 돌린다.
|
|
215
|
+
const probeOnly = !canInstallCli && shouldProbeWhileBlocked('cli', now);
|
|
216
|
+
if (canInstallCli || probeOnly) {
|
|
217
|
+
if (canInstallCli) {
|
|
218
|
+
lastUpdateAttempts.set('cli', { at: now, targetVersion: meta.cliLatestVersion });
|
|
219
|
+
}
|
|
220
|
+
lastFailureProbes.set('cli', now);
|
|
221
|
+
const currentCliVersion = getInstalledCliVersion({
|
|
222
|
+
runExecutableSync: resolvedRunExecutableSync,
|
|
223
|
+
logger: resolvedLogger,
|
|
191
224
|
});
|
|
192
|
-
if (
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
225
|
+
if (needsUpdate(currentCliVersion, meta.cliLatestVersion)) {
|
|
226
|
+
if (canInstallCli) {
|
|
227
|
+
resolvedLogger.info('Auto-updating CLI', {
|
|
228
|
+
currentVersion: currentCliVersion,
|
|
229
|
+
targetVersion: meta.cliLatestVersion,
|
|
230
|
+
});
|
|
231
|
+
if (tryInstall('cli', CLI_PACKAGE, meta.cliLatestVersion)) {
|
|
232
|
+
cliUpdated = true;
|
|
233
|
+
resolvedLogger.info('CLI auto-update completed', {
|
|
234
|
+
version: meta.cliLatestVersion,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else if (currentCliVersion !== null && upToDateReported.get('cli') !== meta.cliLatestVersion) {
|
|
240
|
+
// 사용자가 직접 최신 CLI를 깐 경우 설치를 건너뛰므로, 성공 보고를 1회 보내 서버의
|
|
241
|
+
// stale 실패 상태를 자가 해제한다. 로컬 실패 상태도 함께 지워 프로브를 수렴시킨다.
|
|
242
|
+
// runner 패키지는 pendingVersion을 덮어쓰므로 같은 no-op 보고를 하지 않는다.
|
|
243
|
+
recordSuccess('cli', meta.cliLatestVersion);
|
|
197
244
|
}
|
|
198
245
|
}
|
|
199
246
|
}
|
|
@@ -224,9 +271,11 @@ export const maybeAutoUpdate = async (meta, deps = {}) => {
|
|
|
224
271
|
export const resetAutoUpdateState = () => {
|
|
225
272
|
lastSuccessfulRunnerVersion = null;
|
|
226
273
|
lastUpdateAttempts.clear();
|
|
227
|
-
|
|
274
|
+
manualFixBlockedVersions.clear();
|
|
228
275
|
pendingFailureReports.clear();
|
|
229
276
|
reportedFailures.clear();
|
|
230
277
|
pendingSuccessReports.clear();
|
|
278
|
+
upToDateReported.clear();
|
|
279
|
+
lastFailureProbes.clear();
|
|
231
280
|
};
|
|
232
281
|
//# sourceMappingURL=auto-update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../../src/utils/auto-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../../src/utils/auto-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
1
2
|
import { test } from 'node:test';
|
|
2
3
|
import assert from 'node:assert/strict';
|
|
3
4
|
import { maybeAutoUpdate, resetAutoUpdateState } from './auto-update.js';
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
const installedRunnerVersion = require('../../package.json').version;
|
|
4
7
|
test('maybeAutoUpdate calls onUpdateSucceeded after successful install', async () => {
|
|
5
8
|
resetAutoUpdateState();
|
|
6
9
|
let installCalled = false;
|
|
@@ -75,6 +78,12 @@ const EACCES_INSTALL_ERROR_MESSAGE = [
|
|
|
75
78
|
'npm ERR! path /usr/local/lib/node_modules/@agentteams/runner',
|
|
76
79
|
'npm ERR! errno -13',
|
|
77
80
|
].join('\n');
|
|
81
|
+
const EEXIST_INSTALL_ERROR_MESSAGE = [
|
|
82
|
+
'Command failed: /usr/bin/npm install -g @agentteams/runner@99.9.9',
|
|
83
|
+
'npm ERR! code EEXIST',
|
|
84
|
+
'npm ERR! path /usr/local/bin/agr',
|
|
85
|
+
'npm ERR! File exists: /usr/local/bin/agr',
|
|
86
|
+
].join('\n');
|
|
78
87
|
test('maybeAutoUpdate reports EACCES install failure as PERMISSION_DENIED exactly once', async () => {
|
|
79
88
|
resetAutoUpdateState();
|
|
80
89
|
const failures = [];
|
|
@@ -142,6 +151,50 @@ test('maybeAutoUpdate does not retry a permission-blocked install within 24 hour
|
|
|
142
151
|
assert.equal(installCount, 1, 'should not retry install within the permission-blocked backoff');
|
|
143
152
|
assert.equal(failureCount, 1, 'should not report the same failure again');
|
|
144
153
|
});
|
|
154
|
+
test('maybeAutoUpdate does not retry a global bin conflict within 24 hours', async () => {
|
|
155
|
+
resetAutoUpdateState();
|
|
156
|
+
let installCount = 0;
|
|
157
|
+
const failures = [];
|
|
158
|
+
const warnings = [];
|
|
159
|
+
const deps = {
|
|
160
|
+
runExecutableSync: (name, args) => {
|
|
161
|
+
if (name === 'npm' && args[0] === 'install') {
|
|
162
|
+
installCount++;
|
|
163
|
+
throw new Error(EEXIST_INSTALL_ERROR_MESSAGE);
|
|
164
|
+
}
|
|
165
|
+
return '';
|
|
166
|
+
},
|
|
167
|
+
logger: {
|
|
168
|
+
info: () => { },
|
|
169
|
+
warn: (message) => {
|
|
170
|
+
warnings.push(message);
|
|
171
|
+
},
|
|
172
|
+
error: () => { },
|
|
173
|
+
},
|
|
174
|
+
now: () => 20000000,
|
|
175
|
+
canWriteGlobalNpmRoot: () => true,
|
|
176
|
+
onUpdateFailed: async (input) => {
|
|
177
|
+
failures.push(input);
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
const meta = {
|
|
181
|
+
cliLatestVersion: null,
|
|
182
|
+
runnerLatestVersion: '99.9.9',
|
|
183
|
+
};
|
|
184
|
+
await maybeAutoUpdate(meta, deps);
|
|
185
|
+
assert.equal(installCount, 1);
|
|
186
|
+
// 서버로 가는 reason 계약은 넓히지 않았으므로 UNKNOWN 그대로 보고한다.
|
|
187
|
+
assert.equal(failures[0]?.reason, 'UNKNOWN');
|
|
188
|
+
assert.match(failures[0]?.message ?? '', /remove or rename that file/u);
|
|
189
|
+
assert.equal(warnings.length, 1, 'the remediation hint should be logged once per target version');
|
|
190
|
+
// 1시간 쿨다운은 지났지만 사용자 조치 대기 백오프(24시간) 안이므로 재시도하지 않는다.
|
|
191
|
+
await maybeAutoUpdate(meta, { ...deps, now: () => 20000000 + 2 * 60 * 60 * 1000 });
|
|
192
|
+
assert.equal(installCount, 1, 'should not retry install within the manual-fix backoff');
|
|
193
|
+
assert.equal(failures.length, 1, 'should not report the same failure again');
|
|
194
|
+
// 24시간이 지나면 다시 시도한다 — 사용자가 충돌 파일을 치웠을 수 있다.
|
|
195
|
+
await maybeAutoUpdate(meta, { ...deps, now: () => 20000000 + 25 * 60 * 60 * 1000 });
|
|
196
|
+
assert.equal(installCount, 2, 'should retry once the manual-fix backoff elapses');
|
|
197
|
+
});
|
|
145
198
|
test('maybeAutoUpdate RETRIES notification if it failed before', async () => {
|
|
146
199
|
resetAutoUpdateState();
|
|
147
200
|
let notifyCount = 0;
|
|
@@ -447,4 +500,220 @@ test('maybeAutoUpdate reports a CLI install success so the server can clear the
|
|
|
447
500
|
await maybeAutoUpdate({ cliLatestVersion: '1.1.1', runnerLatestVersion: null }, { ...deps, canWriteGlobalNpmRoot: () => canWrite, now: () => 100000000 + 60 * 1000 });
|
|
448
501
|
assert.deepEqual(successes, [{ package: 'cli', version: '1.1.1' }]);
|
|
449
502
|
});
|
|
503
|
+
const installedCliVersion = (version) => (name, args) => {
|
|
504
|
+
if (name === 'npm' && args[0] === 'list') {
|
|
505
|
+
return JSON.stringify({ dependencies: { '@agentteams/cli': { version } } });
|
|
506
|
+
}
|
|
507
|
+
throw new Error(`unexpected command: ${name} ${args.join(' ')}`);
|
|
508
|
+
};
|
|
509
|
+
test('maybeAutoUpdate reports CLI success once when the installed version is already latest', async () => {
|
|
510
|
+
resetAutoUpdateState();
|
|
511
|
+
const successes = [];
|
|
512
|
+
let now = 110000000;
|
|
513
|
+
const deps = {
|
|
514
|
+
runExecutableSync: installedCliVersion('1.2.3'),
|
|
515
|
+
logger: {
|
|
516
|
+
info: () => { },
|
|
517
|
+
warn: () => { },
|
|
518
|
+
error: () => { },
|
|
519
|
+
},
|
|
520
|
+
now: () => now,
|
|
521
|
+
canWriteGlobalNpmRoot: () => true,
|
|
522
|
+
onUpdateSucceeded: async (input) => {
|
|
523
|
+
successes.push(input);
|
|
524
|
+
},
|
|
525
|
+
};
|
|
526
|
+
const meta = {
|
|
527
|
+
cliLatestVersion: '1.2.3',
|
|
528
|
+
runnerLatestVersion: null,
|
|
529
|
+
};
|
|
530
|
+
await maybeAutoUpdate(meta, deps);
|
|
531
|
+
await maybeAutoUpdate(meta, deps);
|
|
532
|
+
now += 60 * 1000;
|
|
533
|
+
await maybeAutoUpdate(meta, deps);
|
|
534
|
+
assert.deepEqual(successes, [{ package: 'cli', version: '1.2.3' }]);
|
|
535
|
+
});
|
|
536
|
+
test('maybeAutoUpdate retries the already-latest CLI success report if the first notify throws', async () => {
|
|
537
|
+
resetAutoUpdateState();
|
|
538
|
+
const successes = [];
|
|
539
|
+
let shouldFail = true;
|
|
540
|
+
const deps = {
|
|
541
|
+
runExecutableSync: installedCliVersion('2.0.0'),
|
|
542
|
+
logger: {
|
|
543
|
+
info: () => { },
|
|
544
|
+
warn: () => { },
|
|
545
|
+
error: () => { },
|
|
546
|
+
},
|
|
547
|
+
now: () => 120000000,
|
|
548
|
+
canWriteGlobalNpmRoot: () => true,
|
|
549
|
+
onUpdateSucceeded: async (input) => {
|
|
550
|
+
if (shouldFail) {
|
|
551
|
+
shouldFail = false;
|
|
552
|
+
throw new Error('Network error');
|
|
553
|
+
}
|
|
554
|
+
successes.push(input);
|
|
555
|
+
},
|
|
556
|
+
};
|
|
557
|
+
const meta = {
|
|
558
|
+
cliLatestVersion: '2.0.0',
|
|
559
|
+
runnerLatestVersion: null,
|
|
560
|
+
};
|
|
561
|
+
await maybeAutoUpdate(meta, deps);
|
|
562
|
+
assert.equal(successes.length, 0);
|
|
563
|
+
await maybeAutoUpdate(meta, deps);
|
|
564
|
+
assert.deepEqual(successes, [{ package: 'cli', version: '2.0.0' }]);
|
|
565
|
+
});
|
|
566
|
+
test('maybeAutoUpdate does not report runner success when the installed runner is already latest', async () => {
|
|
567
|
+
resetAutoUpdateState();
|
|
568
|
+
const successes = [];
|
|
569
|
+
const deps = {
|
|
570
|
+
runExecutableSync: () => {
|
|
571
|
+
throw new Error('runner already-latest path must not install');
|
|
572
|
+
},
|
|
573
|
+
logger: {
|
|
574
|
+
info: () => { },
|
|
575
|
+
warn: () => { },
|
|
576
|
+
error: () => { },
|
|
577
|
+
},
|
|
578
|
+
now: () => 130000000,
|
|
579
|
+
canWriteGlobalNpmRoot: () => true,
|
|
580
|
+
onUpdateSucceeded: async (input) => {
|
|
581
|
+
successes.push(input);
|
|
582
|
+
},
|
|
583
|
+
};
|
|
584
|
+
await maybeAutoUpdate({ cliLatestVersion: null, runnerLatestVersion: installedRunnerVersion }, deps);
|
|
585
|
+
assert.deepEqual(successes, []);
|
|
586
|
+
});
|
|
587
|
+
test('maybeAutoUpdate does not report CLI success when the installed version cannot be read', async () => {
|
|
588
|
+
resetAutoUpdateState();
|
|
589
|
+
const successes = [];
|
|
590
|
+
const deps = {
|
|
591
|
+
runExecutableSync: () => {
|
|
592
|
+
throw new Error('npm list failed');
|
|
593
|
+
},
|
|
594
|
+
logger: {
|
|
595
|
+
info: () => { },
|
|
596
|
+
warn: () => { },
|
|
597
|
+
error: () => { },
|
|
598
|
+
},
|
|
599
|
+
now: () => 140000000,
|
|
600
|
+
canWriteGlobalNpmRoot: () => true,
|
|
601
|
+
onUpdateSucceeded: async (input) => {
|
|
602
|
+
successes.push(input);
|
|
603
|
+
},
|
|
604
|
+
};
|
|
605
|
+
await maybeAutoUpdate({ cliLatestVersion: '3.0.0', runnerLatestVersion: null }, deps);
|
|
606
|
+
assert.deepEqual(successes, []);
|
|
607
|
+
});
|
|
608
|
+
test('resetAutoUpdateState allows another already-latest CLI success report', async () => {
|
|
609
|
+
resetAutoUpdateState();
|
|
610
|
+
const successes = [];
|
|
611
|
+
const deps = {
|
|
612
|
+
runExecutableSync: installedCliVersion('4.0.0'),
|
|
613
|
+
logger: {
|
|
614
|
+
info: () => { },
|
|
615
|
+
warn: () => { },
|
|
616
|
+
error: () => { },
|
|
617
|
+
},
|
|
618
|
+
now: () => 150000000,
|
|
619
|
+
canWriteGlobalNpmRoot: () => true,
|
|
620
|
+
onUpdateSucceeded: async (input) => {
|
|
621
|
+
successes.push(input);
|
|
622
|
+
},
|
|
623
|
+
};
|
|
624
|
+
const meta = {
|
|
625
|
+
cliLatestVersion: '4.0.0',
|
|
626
|
+
runnerLatestVersion: null,
|
|
627
|
+
};
|
|
628
|
+
await maybeAutoUpdate(meta, deps);
|
|
629
|
+
assert.equal(successes.length, 1);
|
|
630
|
+
resetAutoUpdateState();
|
|
631
|
+
await maybeAutoUpdate(meta, deps);
|
|
632
|
+
assert.deepEqual(successes, [
|
|
633
|
+
{ package: 'cli', version: '4.0.0' },
|
|
634
|
+
{ package: 'cli', version: '4.0.0' },
|
|
635
|
+
]);
|
|
636
|
+
});
|
|
637
|
+
test('maybeAutoUpdate clears a permission-blocked CLI failure once the user installs it manually', async () => {
|
|
638
|
+
resetAutoUpdateState();
|
|
639
|
+
const successes = [];
|
|
640
|
+
const failures = [];
|
|
641
|
+
let installedCli = '1.0.0';
|
|
642
|
+
let installCount = 0;
|
|
643
|
+
let now = 200000000;
|
|
644
|
+
const deps = {
|
|
645
|
+
runExecutableSync: (name, args) => {
|
|
646
|
+
if (name === 'npm' && args[0] === 'list') {
|
|
647
|
+
return JSON.stringify({ dependencies: { '@agentteams/cli': { version: installedCli } } });
|
|
648
|
+
}
|
|
649
|
+
if (name === 'npm' && args[0] === 'install') {
|
|
650
|
+
installCount++;
|
|
651
|
+
throw new Error(EACCES_INSTALL_ERROR_MESSAGE);
|
|
652
|
+
}
|
|
653
|
+
throw new Error(`unexpected command: ${name} ${args.join(' ')}`);
|
|
654
|
+
},
|
|
655
|
+
logger: {
|
|
656
|
+
info: () => { },
|
|
657
|
+
warn: () => { },
|
|
658
|
+
error: () => { },
|
|
659
|
+
},
|
|
660
|
+
now: () => now,
|
|
661
|
+
canWriteGlobalNpmRoot: () => true,
|
|
662
|
+
onUpdateSucceeded: async (input) => {
|
|
663
|
+
successes.push(input);
|
|
664
|
+
},
|
|
665
|
+
onUpdateFailed: async (input) => {
|
|
666
|
+
failures.push({ package: input.package, version: input.version, reason: input.reason });
|
|
667
|
+
},
|
|
668
|
+
};
|
|
669
|
+
const meta = { cliLatestVersion: '3.0.0', runnerLatestVersion: null };
|
|
670
|
+
await maybeAutoUpdate(meta, deps);
|
|
671
|
+
assert.equal(installCount, 1);
|
|
672
|
+
assert.deepEqual(failures, [{ package: 'cli', version: '3.0.0', reason: 'PERMISSION_DENIED' }]);
|
|
673
|
+
// 사용자가 안내대로 직접 설치했다. 설치는 24시간 백오프에 갇혀 있지만 최신 여부 프로브는 따로 돌아야 한다.
|
|
674
|
+
installedCli = '3.0.0';
|
|
675
|
+
now += 60 * 1000;
|
|
676
|
+
await maybeAutoUpdate(meta, deps);
|
|
677
|
+
assert.deepEqual(successes, [], '프로브 주기(5분) 안에서는 다시 확인하지 않는다');
|
|
678
|
+
now += 5 * 60 * 1000;
|
|
679
|
+
await maybeAutoUpdate(meta, deps);
|
|
680
|
+
assert.equal(installCount, 1, '자가 해제 프로브가 설치 백오프를 깨뜨려서는 안 된다');
|
|
681
|
+
assert.deepEqual(successes, [{ package: 'cli', version: '3.0.0' }], '24시간 백오프를 기다리지 않고 성공 보고로 서버의 차단 상태를 해제해야 한다');
|
|
682
|
+
// 해제 이후에는 차단 상태가 없으므로 프로브도 멈추고 같은 보고를 반복하지 않는다.
|
|
683
|
+
now += 10 * 60 * 1000;
|
|
684
|
+
await maybeAutoUpdate(meta, deps);
|
|
685
|
+
assert.deepEqual(successes, [{ package: 'cli', version: '3.0.0' }]);
|
|
686
|
+
});
|
|
687
|
+
test('maybeAutoUpdate does not probe the installed CLI version while no failure is pending', async () => {
|
|
688
|
+
resetAutoUpdateState();
|
|
689
|
+
let listCount = 0;
|
|
690
|
+
let now = 210000000;
|
|
691
|
+
const deps = {
|
|
692
|
+
runExecutableSync: (name, args) => {
|
|
693
|
+
if (name === 'npm' && args[0] === 'list') {
|
|
694
|
+
listCount++;
|
|
695
|
+
return JSON.stringify({ dependencies: { '@agentteams/cli': { version: '1.0.0' } } });
|
|
696
|
+
}
|
|
697
|
+
if (name === 'npm' && args[0] === 'install') {
|
|
698
|
+
return '';
|
|
699
|
+
}
|
|
700
|
+
throw new Error(`unexpected command: ${name} ${args.join(' ')}`);
|
|
701
|
+
},
|
|
702
|
+
logger: {
|
|
703
|
+
info: () => { },
|
|
704
|
+
warn: () => { },
|
|
705
|
+
error: () => { },
|
|
706
|
+
},
|
|
707
|
+
now: () => now,
|
|
708
|
+
canWriteGlobalNpmRoot: () => true,
|
|
709
|
+
onUpdateSucceeded: async () => { },
|
|
710
|
+
};
|
|
711
|
+
const meta = { cliLatestVersion: '3.0.0', runnerLatestVersion: null };
|
|
712
|
+
await maybeAutoUpdate(meta, deps);
|
|
713
|
+
assert.equal(listCount, 1);
|
|
714
|
+
// 설치가 성공한 뒤에는 차단 상태가 없다 — 설치 쿨다운(1시간) 밖의 프로브가 추가로 돌면 안 된다.
|
|
715
|
+
now += 30 * 60 * 1000;
|
|
716
|
+
await maybeAutoUpdate(meta, deps);
|
|
717
|
+
assert.equal(listCount, 1, '차단 상태가 없으면 설치 주기 밖에서 npm list를 돌리지 않는다');
|
|
718
|
+
});
|
|
450
719
|
//# sourceMappingURL=auto-update.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-update.test.js","sourceRoot":"","sources":["../../src/utils/auto-update.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auto-update.test.js","sourceRoot":"","sources":["../../src/utils/auto-update.test.ts"],"names":[],"mappings":"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"}
|