@inf-monkeys-tech/monkeys-cli 0.11.6 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +11 -8
  2. package/README.zh.md +11 -8
  3. package/bin/run.js +4 -52
  4. package/bin/update-cache.js +3 -1
  5. package/dist/cli/run.d.ts +2 -0
  6. package/dist/cli/run.d.ts.map +1 -0
  7. package/dist/cli/run.js +45 -0
  8. package/dist/cli/run.js.map +1 -0
  9. package/dist/command/metadata.d.ts +1 -2
  10. package/dist/command/metadata.d.ts.map +1 -1
  11. package/dist/command/metadata.js +4 -13
  12. package/dist/command/metadata.js.map +1 -1
  13. package/dist/commands/dev-agent/work/watch.d.ts.map +1 -1
  14. package/dist/commands/dev-agent/work/watch.js +4 -7
  15. package/dist/commands/dev-agent/work/watch.js.map +1 -1
  16. package/dist/commands/execution/watch.d.ts.map +1 -1
  17. package/dist/commands/execution/watch.js +4 -7
  18. package/dist/commands/execution/watch.js.map +1 -1
  19. package/dist/commands/install.d.ts +12 -0
  20. package/dist/commands/install.d.ts.map +1 -0
  21. package/dist/commands/install.js +66 -0
  22. package/dist/commands/install.js.map +1 -0
  23. package/dist/commands/update.d.ts +3 -0
  24. package/dist/commands/update.d.ts.map +1 -1
  25. package/dist/commands/update.js +68 -3
  26. package/dist/commands/update.js.map +1 -1
  27. package/dist/config/index.d.ts +0 -1
  28. package/dist/config/index.d.ts.map +1 -1
  29. package/dist/config/index.js +0 -1
  30. package/dist/config/index.js.map +1 -1
  31. package/dist/config/local-command.d.ts +0 -2
  32. package/dist/config/local-command.d.ts.map +1 -1
  33. package/dist/config/local-command.js +8 -14
  34. package/dist/config/local-command.js.map +1 -1
  35. package/dist/config/registry.d.ts.map +1 -1
  36. package/dist/config/registry.js +2 -12
  37. package/dist/config/registry.js.map +1 -1
  38. package/dist/config/store.d.ts.map +1 -1
  39. package/dist/config/store.js +46 -5
  40. package/dist/config/store.js.map +1 -1
  41. package/dist/contracts/result.d.ts +1 -1
  42. package/dist/contracts/result.js +1 -1
  43. package/dist/contracts/version.d.ts +2 -2
  44. package/dist/contracts/version.js +2 -2
  45. package/dist/errors/cli-error.d.ts +3 -0
  46. package/dist/errors/cli-error.d.ts.map +1 -1
  47. package/dist/errors/cli-error.js +17 -0
  48. package/dist/errors/cli-error.js.map +1 -1
  49. package/dist/output/render.js +1 -1
  50. package/dist/schema/command-schema.d.ts +2 -1
  51. package/dist/schema/command-schema.d.ts.map +1 -1
  52. package/dist/schema/command-schema.js +2 -1
  53. package/dist/schema/command-schema.js.map +1 -1
  54. package/dist/security/redact.d.ts.map +1 -1
  55. package/dist/security/redact.js +16 -2
  56. package/dist/security/redact.js.map +1 -1
  57. package/dist/skills/content.d.ts +1 -0
  58. package/dist/skills/content.d.ts.map +1 -1
  59. package/dist/skills/content.js +2 -2
  60. package/dist/skills/content.js.map +1 -1
  61. package/dist/skills/state.d.ts +33 -7
  62. package/dist/skills/state.d.ts.map +1 -1
  63. package/dist/skills/state.js +103 -14
  64. package/dist/skills/state.js.map +1 -1
  65. package/dist/skills/sync.d.ts +5 -2
  66. package/dist/skills/sync.d.ts.map +1 -1
  67. package/dist/skills/sync.js +110 -9
  68. package/dist/skills/sync.js.map +1 -1
  69. package/dist/transport/http-client.d.ts.map +1 -1
  70. package/dist/transport/http-client.js +46 -20
  71. package/dist/transport/http-client.js.map +1 -1
  72. package/dist/transport/url-policy.d.ts +2 -0
  73. package/dist/transport/url-policy.d.ts.map +1 -0
  74. package/dist/transport/url-policy.js +33 -0
  75. package/dist/transport/url-policy.js.map +1 -0
  76. package/dist/update/finalize.d.ts +26 -0
  77. package/dist/update/finalize.d.ts.map +1 -0
  78. package/dist/update/finalize.js +5 -0
  79. package/dist/update/finalize.js.map +1 -0
  80. package/dist/update/installation.d.ts +17 -0
  81. package/dist/update/installation.d.ts.map +1 -0
  82. package/dist/update/installation.js +63 -0
  83. package/dist/update/installation.js.map +1 -0
  84. package/dist/update/notifier.d.ts +4 -4
  85. package/dist/update/notifier.d.ts.map +1 -1
  86. package/dist/update/notifier.js +68 -39
  87. package/dist/update/notifier.js.map +1 -1
  88. package/dist/update/process.d.ts +11 -0
  89. package/dist/update/process.d.ts.map +1 -0
  90. package/dist/update/process.js +20 -0
  91. package/dist/update/process.js.map +1 -0
  92. package/dist/update/updater.d.ts +12 -13
  93. package/dist/update/updater.d.ts.map +1 -1
  94. package/dist/update/updater.js +149 -59
  95. package/dist/update/updater.js.map +1 -1
  96. package/oclif.manifest.json +235 -2811
  97. package/package.json +5 -13
  98. package/skills/monkeys-shared/SKILL.md +1 -1
  99. package/skills/monkeys-shared/references/compatibility.md +2 -2
  100. package/bin/install-wizard.js +0 -77
  101. package/dist/config/fast-subscription-list.d.ts +0 -6
  102. package/dist/config/fast-subscription-list.d.ts.map +0 -1
  103. package/dist/config/fast-subscription-list.js +0 -19
  104. package/dist/config/fast-subscription-list.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/skills/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAUhE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA0B;IAChE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxF,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,iBAAiB,CAAC;QACzH,OAAO,EAAE,MAAM,EAAE,QAAiB,EAAE,OAAO,EAAE,sBAAsB,MAAM,EAAE,EAAE,CAAC;IAChF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACpG,OAAO,EAAE,MAAM,EAAE,QAAiB,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/skills/sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/transport/http-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiIpH,qBAAa,UAAU;;IAKrB,OAAO,eAIN;IAED,OAAa,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmClG;IAEK,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CA4EvE;IAEK,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqDhE;IAEK,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiDlF;CACF"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/transport/http-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiJpH,qBAAa,UAAU;;IAKrB,OAAO,eAIN;IAED,OAAa,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmClG;IAEK,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAiFvE;IAEK,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0DhE;IAEK,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsDlF;CACF"}
@@ -2,26 +2,34 @@ import { readFile } from 'node:fs/promises';
2
2
  import { Agent, ProxyAgent, request as undiciRequest } from 'undici';
3
3
  import { CliError, EXIT_CODES } from '../errors/cli-error.js';
4
4
  import { assertSafeCustomHeaders } from './headers.js';
5
+ import { normalizeDeploymentBaseUrl } from './url-policy.js';
5
6
  const DEFAULT_TIMEOUT_MS = 30_000;
6
7
  const DEFAULT_MAX_RESPONSE_BYTES = 10 * 1024 * 1024;
7
8
  const RETRYABLE_STATUS = new Set([429, 502, 503, 504]);
8
- function normalizeBaseUrl(value) {
9
- let url;
10
- try {
11
- url = new URL(value);
12
- }
13
- catch {
14
- throw new CliError('Deployment Base URL is invalid.', { code: 'INVALID_BASE_URL', exitCode: EXIT_CODES.configuration });
9
+ function requestDeadline(timeoutMs, callerSignal) {
10
+ const timeoutSignal = AbortSignal.timeout(timeoutMs);
11
+ return {
12
+ signal: callerSignal ? AbortSignal.any([callerSignal, timeoutSignal]) : timeoutSignal,
13
+ timedOut: () => timeoutSignal.aborted,
14
+ };
15
+ }
16
+ function deadlineError(deadline, callerSignal) {
17
+ if (deadline.timedOut()) {
18
+ return new CliError('Network request exceeded its total timeout.', {
19
+ code: 'REQUEST_TIMEOUT',
20
+ exitCode: EXIT_CODES.network,
21
+ retryable: true,
22
+ });
15
23
  }
16
- if (url.protocol !== 'https:' && !(url.protocol === 'http:' && ['127.0.0.1', 'localhost', '::1'].includes(url.hostname))) {
17
- throw new CliError('Only HTTPS is allowed; HTTP can only be used for local addresses.', {
18
- code: 'INSECURE_BASE_URL',
19
- exitCode: EXIT_CODES.configuration,
20
- safeDetails: { origin: url.origin },
24
+ if (callerSignal?.aborted) {
25
+ return new CliError('Network request was aborted by the caller.', {
26
+ code: 'REQUEST_ABORTED',
27
+ exitCode: EXIT_CODES.network,
21
28
  });
22
29
  }
23
- url.pathname = url.pathname.replace(/\/+$/, '');
24
- return url;
30
+ }
31
+ function normalizeBaseUrl(value) {
32
+ return new URL(normalizeDeploymentBaseUrl(value));
25
33
  }
26
34
  function buildUrl(context, input) {
27
35
  if (!input.path.startsWith('/') || /^\/\//.test(input.path) || /^[a-z][a-z\d+.-]*:/i.test(input.path)) {
@@ -193,23 +201,26 @@ export class HttpClient {
193
201
  const encodedBody = input.rawBody ?? (input.body === undefined ? undefined : JSON.stringify(input.body));
194
202
  if (input.body !== undefined)
195
203
  headers['content-type'] = 'application/json';
204
+ const timeoutMs = input.timeoutMs ?? DEFAULT_TIMEOUT_MS;
205
+ const deadline = requestDeadline(timeoutMs, input.signal);
196
206
  let lastError;
197
207
  for (let attempt = 1; attempt <= this.#maxAttempts; attempt += 1) {
198
208
  try {
199
209
  const response = await undiciRequest(url, {
200
210
  ...(encodedBody === undefined ? {} : { body: encodedBody }),
201
211
  ...(this.#dispatcher ? { dispatcher: this.#dispatcher } : {}),
212
+ bodyTimeout: timeoutMs,
202
213
  headers,
203
- headersTimeout: input.timeoutMs ?? DEFAULT_TIMEOUT_MS,
214
+ headersTimeout: timeoutMs,
204
215
  method: input.method,
205
- ...(input.signal ? { signal: input.signal } : {}),
216
+ signal: deadline.signal,
206
217
  });
207
218
  const normalizedHeaders = normalizedResponseHeaders(response.headers);
208
219
  const retryable = RETRYABLE_STATUS.has(response.statusCode) && isReplaySafe(input) && attempt < this.#maxAttempts;
209
220
  if (retryable) {
210
221
  response.body.destroy();
211
222
  const retryAfter = parseRetryAfter(normalizedHeaders['retry-after']);
212
- await delay(retryAfter ?? Math.min(250 * 2 ** (attempt - 1) + Math.floor(Math.random() * 100), 2_000), input.signal);
223
+ await delay(retryAfter ?? Math.min(250 * 2 ** (attempt - 1) + Math.floor(Math.random() * 100), 2_000), deadline.signal);
213
224
  continue;
214
225
  }
215
226
  const buffer = await readLimitedBody(response.body, input.maxResponseBytes ?? DEFAULT_MAX_RESPONSE_BYTES);
@@ -239,9 +250,12 @@ export class HttpClient {
239
250
  lastError = error;
240
251
  if (error instanceof CliError)
241
252
  throw error;
253
+ const terminal = deadlineError(deadline, input.signal);
254
+ if (terminal)
255
+ throw terminal;
242
256
  if (!isReplaySafe(input) || attempt >= this.#maxAttempts)
243
257
  break;
244
- await delay(Math.min(250 * 2 ** (attempt - 1) + Math.floor(Math.random() * 100), 2_000), input.signal);
258
+ await delay(Math.min(250 * 2 ** (attempt - 1) + Math.floor(Math.random() * 100), 2_000), deadline.signal);
245
259
  }
246
260
  }
247
261
  throw new CliError('Network request failed.', {
@@ -267,17 +281,23 @@ export class HttpClient {
267
281
  ...(this.#context.teamId ? { 'x-monkeys-teamid': this.#context.teamId } : {}),
268
282
  ...(input.headers ?? {}),
269
283
  };
284
+ const timeoutMs = input.timeoutMs ?? DEFAULT_TIMEOUT_MS;
285
+ const deadline = requestDeadline(timeoutMs, input.signal);
270
286
  let response;
271
287
  try {
272
288
  response = await undiciRequest(url, {
273
289
  ...(this.#dispatcher ? { dispatcher: this.#dispatcher } : {}),
290
+ bodyTimeout: timeoutMs,
274
291
  headers,
275
- headersTimeout: input.timeoutMs ?? DEFAULT_TIMEOUT_MS,
292
+ headersTimeout: timeoutMs,
276
293
  method: input.method,
277
- ...(input.signal ? { signal: input.signal } : {}),
294
+ signal: deadline.signal,
278
295
  });
279
296
  }
280
297
  catch (cause) {
298
+ const terminal = deadlineError(deadline, input.signal);
299
+ if (terminal)
300
+ throw terminal;
281
301
  throw new CliError('Failed to open streaming response.', {
282
302
  cause,
283
303
  code: 'NETWORK_ERROR',
@@ -317,16 +337,22 @@ export class HttpClient {
317
337
  safeDetails: { origin: url.origin },
318
338
  });
319
339
  }
340
+ const deadline = requestDeadline(DEFAULT_TIMEOUT_MS);
320
341
  let response;
321
342
  try {
322
343
  response = await undiciRequest(url, {
323
344
  ...(this.#dispatcher ? { dispatcher: this.#dispatcher } : {}),
345
+ bodyTimeout: DEFAULT_TIMEOUT_MS,
324
346
  headers: { accept: '*/*' },
325
347
  headersTimeout: DEFAULT_TIMEOUT_MS,
326
348
  method: 'GET',
349
+ signal: deadline.signal,
327
350
  });
328
351
  }
329
352
  catch (cause) {
353
+ const terminal = deadlineError(deadline);
354
+ if (terminal)
355
+ throw terminal;
330
356
  throw new CliError('Failed to open external media stream.', {
331
357
  cause,
332
358
  code: 'MEDIA_DOWNLOAD_NETWORK_ERROR',
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/transport/http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/transport/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function normalizeDeploymentBaseUrl(value: string): string;
2
+ //# sourceMappingURL=url-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-policy.d.ts","sourceRoot":"","sources":["../../src/transport/url-policy.ts"],"names":[],"mappings":"AAIA,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BhE"}
@@ -0,0 +1,33 @@
1
+ import { CliError, EXIT_CODES } from '../errors/cli-error.js';
2
+ const LOCAL_HTTP_HOSTS = new Set(['127.0.0.1', '::1', '[::1]', 'localhost']);
3
+ export function normalizeDeploymentBaseUrl(value) {
4
+ let url;
5
+ try {
6
+ url = new URL(value);
7
+ }
8
+ catch (cause) {
9
+ throw new CliError('Deployment Base URL is invalid.', {
10
+ cause,
11
+ code: 'DEPLOYMENT_URL_INVALID',
12
+ exitCode: EXIT_CODES.configuration,
13
+ });
14
+ }
15
+ const localHttp = url.protocol === 'http:' && LOCAL_HTTP_HOSTS.has(url.hostname.toLowerCase());
16
+ if (url.protocol !== 'https:' && !localHttp) {
17
+ throw new CliError('Deployment Base URL must use HTTPS; HTTP is allowed only for local addresses.', {
18
+ code: 'INSECURE_BASE_URL',
19
+ exitCode: EXIT_CODES.configuration,
20
+ safeDetails: { origin: url.origin },
21
+ });
22
+ }
23
+ if (url.username || url.password || url.search || url.hash) {
24
+ throw new CliError('Deployment Base URL cannot contain user information, query parameters, or fragments.', {
25
+ code: 'DEPLOYMENT_URL_INVALID',
26
+ exitCode: EXIT_CODES.configuration,
27
+ safeDetails: { origin: url.origin },
28
+ });
29
+ }
30
+ url.pathname = url.pathname.replace(/\/+$/, '');
31
+ return url.toString().replace(/\/$/, '');
32
+ }
33
+ //# sourceMappingURL=url-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-policy.js","sourceRoot":"","sources":["../../src/transport/url-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAE7E,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,iCAAiC,EAAE;YACpD,KAAK;YACL,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,UAAU,CAAC,aAAa;SACnC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/F,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,QAAQ,CAAC,+EAA+E,EAAE;YAClG,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,UAAU,CAAC,aAAa;YAClC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,IAAI,QAAQ,CAAC,sFAAsF,EAAE;YACzG,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,UAAU,CAAC,aAAa;YAClC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type SyncSkillsOptions } from '../skills/sync.js';
2
+ export type FinalizeUpdateOptions = Omit<SyncSkillsOptions, 'source'> & {
3
+ source?: 'install' | 'update';
4
+ };
5
+ export declare function finalizeCliUpdate(options: FinalizeUpdateOptions): Promise<{
6
+ action: 'failed';
7
+ warning: string;
8
+ removed?: never;
9
+ state?: never;
10
+ } | {
11
+ warning?: never;
12
+ action: 'synced';
13
+ removed: string[];
14
+ state: {
15
+ cliVersion: string;
16
+ schemaVersion: 2;
17
+ skills: {
18
+ checksum: string;
19
+ name: string;
20
+ path: string;
21
+ }[];
22
+ source: "install" | "sync" | "update";
23
+ syncedAt: string;
24
+ };
25
+ }>;
26
+ //# sourceMappingURL=finalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/update/finalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE1G,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;GAErE"}
@@ -0,0 +1,5 @@
1
+ import { syncBundledSkills } from '../skills/sync.js';
2
+ export async function finalizeCliUpdate(options) {
3
+ return syncBundledSkills({ ...options, source: options.source ?? 'update' });
4
+ }
5
+ //# sourceMappingURL=finalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../src/update/finalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA0B,MAAM,mBAAmB,CAAC;AAI9E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA8B;IACpE,OAAO,iBAAiB,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type ProcessRunner } from './process.js';
2
+ export type InstallationMethod = 'manual' | 'npm' | 'pnpm';
3
+ export type PackageManager = Exclude<InstallationMethod, 'manual'>;
4
+ export interface CliInstallation {
5
+ executable: string;
6
+ method: InstallationMethod;
7
+ packageRoot?: string;
8
+ }
9
+ export declare function packageManagerGlobalRoot(manager: PackageManager, runner?: ProcessRunner): string | undefined;
10
+ export declare function detectCliInstallation(options?: {
11
+ entryPath?: string;
12
+ packageName?: string;
13
+ runner?: ProcessRunner;
14
+ }): Promise<CliInstallation>;
15
+ export declare function resolveExecutableOnPath(name?: string, env?: NodeJS.ProcessEnv, excludedExecutables?: readonly string[]): Promise<string | undefined>;
16
+ export declare function packageManagerInstallArgs(manager: PackageManager, packageName: string, version: string): string[];
17
+ //# sourceMappingURL=installation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/update/installation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEzF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,GAAE,aAAgC,GAAG,MAAM,GAAG,SAAS,CAQ9H;AAED,wBAAsB,qBAAqB,CACzC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,aAAa,CAAA;CAAO,GACjF,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,SAAY,EAChB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,mBAAmB,GAAE,SAAS,MAAM,EAAO,GAC1C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuB7B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjH"}
@@ -0,0 +1,63 @@
1
+ import { constants } from 'node:fs';
2
+ import { access, realpath } from 'node:fs/promises';
3
+ import { delimiter, isAbsolute, join, relative, sep } from 'node:path';
4
+ import { MONKEYS_NPM_PACKAGE, runUpdateProcess } from './process.js';
5
+ function within(parent, child) {
6
+ const value = relative(parent, child);
7
+ return value === '' || (!value.startsWith(`..${sep}`) && value !== '..' && !isAbsolute(value));
8
+ }
9
+ export function packageManagerGlobalRoot(manager, runner = runUpdateProcess) {
10
+ const result = runner(manager, ['root', '--global']);
11
+ if (result.error || result.status !== 0)
12
+ return undefined;
13
+ const lines = result.stdout
14
+ .split(/\r?\n/)
15
+ .map((line) => line.trim())
16
+ .filter(Boolean);
17
+ return lines.length === 1 && isAbsolute(lines[0]) ? lines[0] : undefined;
18
+ }
19
+ export async function detectCliInstallation(options = {}) {
20
+ const entryPath = options.entryPath ?? process.argv[1] ?? process.execPath;
21
+ const packageName = options.packageName ?? MONKEYS_NPM_PACKAGE;
22
+ const runner = options.runner ?? runUpdateProcess;
23
+ const executable = await realpath(entryPath).catch(() => entryPath);
24
+ for (const method of ['pnpm', 'npm']) {
25
+ const root = packageManagerGlobalRoot(method, runner);
26
+ if (!root)
27
+ continue;
28
+ const packageRoot = join(root, ...packageName.split('/'));
29
+ const canonicalPackageRoot = await realpath(packageRoot).catch(() => packageRoot);
30
+ if (within(canonicalPackageRoot, executable))
31
+ return { executable, method, packageRoot: canonicalPackageRoot };
32
+ }
33
+ return { executable, method: 'manual' };
34
+ }
35
+ export async function resolveExecutableOnPath(name = 'monkeys', env = process.env, excludedExecutables = []) {
36
+ const excluded = new Set(await Promise.all(excludedExecutables.map(async (path) => realpath(path).catch(() => path))));
37
+ const directories = (env.PATH ?? '').split(delimiter).filter(Boolean);
38
+ const candidates = process.platform === 'win32'
39
+ ? (env.PATHEXT ?? '.COM;.EXE;.BAT;.CMD')
40
+ .split(';')
41
+ .filter(Boolean)
42
+ .map((extension) => `${name}${extension.toLowerCase()}`)
43
+ : [name];
44
+ for (const directory of directories) {
45
+ for (const candidate of candidates) {
46
+ const path = join(directory, candidate);
47
+ try {
48
+ await access(path, process.platform === 'win32' ? constants.F_OK : constants.X_OK);
49
+ const canonical = await realpath(path).catch(() => path);
50
+ if (excluded.has(path) || excluded.has(canonical))
51
+ continue;
52
+ return path;
53
+ }
54
+ catch {
55
+ // Continue through PATH in shell resolution order.
56
+ }
57
+ }
58
+ }
59
+ }
60
+ export function packageManagerInstallArgs(manager, packageName, version) {
61
+ return manager === 'pnpm' ? ['add', '--global', `${packageName}@${version}`] : ['install', '--global', `${packageName}@${version}`];
62
+ }
63
+ //# sourceMappingURL=installation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installation.js","sourceRoot":"","sources":["../../src/update/installation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAsB,MAAM,cAAc,CAAC;AAWzF,SAAS,MAAM,CAAC,MAAc,EAAE,KAAa;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAuB,EAAE,MAAM,GAAkB,gBAAgB;IACxG,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;SACxB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAO,GAAyE,EAAE;IAElF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,mBAAmB,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAEpE,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;QAClF,IAAI,MAAM,CAAC,oBAAoB,EAAE,UAAU,CAAC;YAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACjH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAI,GAAG,SAAS,EAChB,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,mBAAmB,GAAsB,EAAE;IAE3C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvH,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC;aACnC,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACb,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACnF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;YACrD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAuB,EAAE,WAAmB,EAAE,OAAe;IACrG,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAC;AACtI,CAAC"}
@@ -1,7 +1,8 @@
1
+ import type { PackageManager } from './installation.js';
2
+ import { type ProcessRunner } from './process.js';
1
3
  export declare const UPDATE_CHECK_TTL_MS: number;
2
4
  export declare const UPDATE_FETCH_TIMEOUT_MS = 15000;
3
5
  export declare const UPDATE_NOTIFIER_DISABLE_ENV = "MONKEYS_CLI_NO_UPDATE_NOTIFIER";
4
- export declare const UPDATE_REGISTRY_URL = "https://registry.npmjs.org/@inf-monkeys-tech%2Fmonkeys-cli/latest";
5
6
  export interface UpdateNotice {
6
7
  command: 'monkeys update';
7
8
  current: string;
@@ -13,9 +14,8 @@ export interface UpdateState {
13
14
  latestVersion: string;
14
15
  }
15
16
  export interface FetchLatestOptions {
16
- fetchImpl?: typeof fetch;
17
- registryUrl?: string;
18
- timeoutMs?: number;
17
+ manager?: PackageManager;
18
+ runner?: ProcessRunner;
19
19
  }
20
20
  export interface UpdateCacheOptions extends FetchLatestOptions {
21
21
  env?: NodeJS.ProcessEnv;
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../src/update/notifier.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,QAAuB,CAAC;AACxD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAC5E,eAAO,MAAM,mBAAmB,sEAAsE,CAAC;AAWvG,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,+BAAgC,SAAQ,kBAAkB;IACzE,eAAe,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAmCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS/E;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE7E;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE9G;AAED,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAE5E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAOhF;AAED,wBAAgB,sBAAsB,IAAI,YAAY,GAAG,SAAS,CAEjE;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAE7E;AAUD,wBAAsB,eAAe,CAAC,IAAI,SAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAMhG;AAqCD,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1F;AAqBD,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBnH;AAED,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAavE;AAED,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAenC"}
1
+ {"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../src/update/notifier.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEzF,eAAO,MAAM,mBAAmB,QAAuB,CAAC;AACxD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAS5E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,+BAAgC,SAAQ,kBAAkB;IACzE,eAAe,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAmCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS/E;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE7E;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE9G;AAED,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAE5E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAOhF;AAED,wBAAgB,sBAAsB,IAAI,YAAY,GAAG,SAAS,CAEjE;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAE7E;AAUD,wBAAsB,eAAe,CAAC,IAAI,SAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAMhG;AAmBD,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB1F;AAqED,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBnH;AAED,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAavE;AAED,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAenC"}
@@ -1,13 +1,13 @@
1
1
  import { spawn } from 'node:child_process';
2
- import { open, mkdir, readFile, rename, rm, stat } from 'node:fs/promises';
2
+ import { randomUUID } from 'node:crypto';
3
+ import { open, mkdir, readFile, rename, rm, stat, unlink } from 'node:fs/promises';
3
4
  import { dirname, join } from 'node:path';
4
5
  import { fileURLToPath } from 'node:url';
5
6
  import { configDirectory, resolveConfigPath } from '../config/paths.js';
7
+ import { MONKEYS_NPM_PACKAGE, runUpdateProcess } from './process.js';
6
8
  export const UPDATE_CHECK_TTL_MS = 24 * 60 * 60 * 1_000;
7
9
  export const UPDATE_FETCH_TIMEOUT_MS = 15_000;
8
10
  export const UPDATE_NOTIFIER_DISABLE_ENV = 'MONKEYS_CLI_NO_UPDATE_NOTIFIER';
9
- export const UPDATE_REGISTRY_URL = 'https://registry.npmjs.org/@inf-monkeys-tech%2Fmonkeys-cli/latest';
10
- const MAX_RESPONSE_BYTES = 256 * 1_024;
11
11
  const REFRESH_LOCK_STALE_MS = UPDATE_FETCH_TIMEOUT_MS * 2;
12
12
  const UPDATE_STATE_FILE = 'update-state.json';
13
13
  let pendingUpdateNotice;
@@ -124,45 +124,59 @@ async function atomicWrite(path, content) {
124
124
  await rm(temporary, { force: true });
125
125
  }
126
126
  }
127
- async function readLimitedBody(response) {
128
- if (!response.body)
129
- return '';
130
- const reader = response.body.getReader();
131
- const chunks = [];
132
- let total = 0;
133
- for (;;) {
134
- const { done, value } = await reader.read();
135
- if (done)
136
- break;
137
- total += value.byteLength;
138
- if (total > MAX_RESPONSE_BYTES) {
139
- await reader.cancel();
140
- throw new Error('npm registry response exceeds the maximum allowed size');
141
- }
142
- chunks.push(value);
127
+ export async function fetchLatestVersion(options = {}) {
128
+ const manager = options.manager ?? 'npm';
129
+ const runner = options.runner ?? runUpdateProcess;
130
+ const args = ['view', MONKEYS_NPM_PACKAGE, 'version', '--json'];
131
+ const result = runner(manager, args, UPDATE_FETCH_TIMEOUT_MS);
132
+ if (result.error || result.status !== 0) {
133
+ throw new Error(`${manager} registry query failed: ${`${result.stdout}\n${result.stderr}`.trim() || result.error?.message || 'unknown failure'}`);
134
+ }
135
+ let version;
136
+ try {
137
+ version = JSON.parse(result.stdout);
138
+ }
139
+ catch (cause) {
140
+ throw new Error(`${manager} registry returned invalid JSON`, { cause });
143
141
  }
144
- return Buffer.concat(chunks).toString('utf8');
142
+ if (typeof version !== 'string' || !isReleaseVersion(version))
143
+ throw new Error(`${manager} registry returned an invalid package version`);
144
+ return version;
145
145
  }
146
- export async function fetchLatestVersion(options = {}) {
147
- const fetchImpl = options.fetchImpl ?? fetch;
148
- const response = await fetchImpl(options.registryUrl ?? UPDATE_REGISTRY_URL, {
149
- headers: { accept: 'application/json' },
150
- signal: AbortSignal.timeout(options.timeoutMs ?? UPDATE_FETCH_TIMEOUT_MS),
151
- });
152
- if (!response.ok)
153
- throw new Error(`npm registry returned HTTP ${response.status}`);
154
- const body = JSON.parse(await readLimitedBody(response));
155
- if (typeof body.version !== 'string' || !isReleaseVersion(body.version)) {
156
- throw new Error('npm registry returned an invalid package version');
157
- }
158
- return body.version;
146
+ function processIsAlive(pid) {
147
+ if (pid === process.pid)
148
+ return true;
149
+ try {
150
+ process.kill(pid, 0);
151
+ return true;
152
+ }
153
+ catch (error) {
154
+ return isNodeError(error, 'EPERM');
155
+ }
156
+ }
157
+ function parseRefreshLock(value) {
158
+ try {
159
+ const record = JSON.parse(value);
160
+ if (!Number.isFinite(record.createdAt) ||
161
+ !Number.isSafeInteger(record.pid) ||
162
+ Number(record.pid) <= 0 ||
163
+ typeof record.token !== 'string') {
164
+ return undefined;
165
+ }
166
+ return { createdAt: Number(record.createdAt), pid: Number(record.pid), token: record.token };
167
+ }
168
+ catch {
169
+ return undefined;
170
+ }
159
171
  }
160
172
  async function acquireRefreshLock(path, nowMs) {
161
173
  await mkdir(dirname(path), { recursive: true, mode: 0o700 });
162
174
  try {
163
175
  const handle = await open(path, 'wx', 0o600);
164
- await handle.writeFile(JSON.stringify({ createdAt: nowMs, pid: process.pid }));
165
- return handle;
176
+ const token = randomUUID();
177
+ await handle.writeFile(JSON.stringify({ createdAt: nowMs, pid: process.pid, token }));
178
+ await handle.sync();
179
+ return { handle, token };
166
180
  }
167
181
  catch (error) {
168
182
  if (!isNodeError(error, 'EEXIST'))
@@ -170,15 +184,31 @@ async function acquireRefreshLock(path, nowMs) {
170
184
  const existing = await stat(path).catch(() => undefined);
171
185
  if (!existing || nowMs - existing.mtimeMs <= REFRESH_LOCK_STALE_MS)
172
186
  return undefined;
173
- await rm(path, { force: true });
187
+ const observed = await readFile(path, 'utf8').catch(() => undefined);
188
+ const owner = observed ? parseRefreshLock(observed) : undefined;
189
+ if (owner && processIsAlive(owner.pid))
190
+ return undefined;
191
+ if (observed === undefined || (await readFile(path, 'utf8').catch(() => undefined)) !== observed)
192
+ return undefined;
193
+ await unlink(path).catch(() => undefined);
174
194
  try {
175
- return await open(path, 'wx', 0o600);
195
+ const handle = await open(path, 'wx', 0o600);
196
+ const token = randomUUID();
197
+ await handle.writeFile(JSON.stringify({ createdAt: nowMs, pid: process.pid, token }));
198
+ await handle.sync();
199
+ return { handle, token };
176
200
  }
177
201
  catch {
178
202
  return undefined;
179
203
  }
180
204
  }
181
205
  }
206
+ async function releaseRefreshLock(path, lock) {
207
+ await lock.handle.close().catch(() => undefined);
208
+ const current = await readFile(path, 'utf8').catch(() => undefined);
209
+ if (current && parseRefreshLock(current)?.token === lock.token)
210
+ await unlink(path).catch(() => undefined);
211
+ }
182
212
  export async function refreshUpdateCache(currentVersion, options = {}) {
183
213
  const env = options.env ?? process.env;
184
214
  if (shouldSkipUpdateNotifier(currentVersion, env))
@@ -204,8 +234,7 @@ export async function refreshUpdateCache(currentVersion, options = {}) {
204
234
  return false;
205
235
  }
206
236
  finally {
207
- await lock.close().catch(() => undefined);
208
- await rm(lockPath, { force: true }).catch(() => undefined);
237
+ await releaseRefreshLock(lockPath, lock);
209
238
  }
210
239
  }
211
240
  export function scheduleUpdateCacheRefresh(currentVersion) {