@wjarka/cezarion 0.14.8 → 0.14.9-dev.1009

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 (280) hide show
  1. package/README.md +131 -2
  2. package/dist/application-update/bin-recovery.d.ts +5 -0
  3. package/dist/application-update/bin-recovery.js +96 -0
  4. package/dist/application-update/bin-recovery.js.map +1 -0
  5. package/dist/application-update/discovery.d.ts +22 -0
  6. package/dist/application-update/discovery.js +91 -0
  7. package/dist/application-update/discovery.js.map +1 -0
  8. package/dist/application-update/helper.d.ts +57 -0
  9. package/dist/application-update/helper.js +374 -0
  10. package/dist/application-update/helper.js.map +1 -0
  11. package/dist/application-update/launcher.d.ts +8 -0
  12. package/dist/application-update/launcher.js +53 -0
  13. package/dist/application-update/launcher.js.map +1 -0
  14. package/dist/application-update/lock.d.ts +4 -0
  15. package/dist/application-update/lock.js +70 -0
  16. package/dist/application-update/lock.js.map +1 -0
  17. package/dist/application-update/npm-process.d.ts +17 -0
  18. package/dist/application-update/npm-process.js +133 -0
  19. package/dist/application-update/npm-process.js.map +1 -0
  20. package/dist/application-update/service.d.ts +69 -0
  21. package/dist/application-update/service.js +456 -0
  22. package/dist/application-update/service.js.map +1 -0
  23. package/dist/artifacts/cli.d.ts +1 -0
  24. package/dist/artifacts/cli.js +32 -0
  25. package/dist/artifacts/cli.js.map +1 -0
  26. package/dist/artifacts/lifecycle.d.ts +4 -0
  27. package/dist/artifacts/lifecycle.js +42 -0
  28. package/dist/artifacts/lifecycle.js.map +1 -0
  29. package/dist/artifacts/resolve.d.ts +18 -0
  30. package/dist/artifacts/resolve.js +102 -0
  31. package/dist/artifacts/resolve.js.map +1 -0
  32. package/dist/artifacts/store.d.ts +8 -0
  33. package/dist/artifacts/store.js +323 -0
  34. package/dist/artifacts/store.js.map +1 -0
  35. package/dist/automations/scheduler.d.ts +6 -0
  36. package/dist/automations/scheduler.js +45 -17
  37. package/dist/automations/scheduler.js.map +1 -1
  38. package/dist/automations/store.d.ts +12 -4
  39. package/dist/automations/store.js +199 -22
  40. package/dist/automations/store.js.map +1 -1
  41. package/dist/automations/types.d.ts +2 -0
  42. package/dist/automations/types.js +1 -0
  43. package/dist/automations/types.js.map +1 -1
  44. package/dist/ci-wait/mcp.d.ts +3 -0
  45. package/dist/ci-wait/mcp.js +14 -3
  46. package/dist/ci-wait/mcp.js.map +1 -1
  47. package/dist/contract/application-update.d.ts +32 -0
  48. package/dist/contract/artifacts.d.ts +83 -0
  49. package/dist/contract/ask-schema.d.ts +32 -0
  50. package/dist/contract/ask.d.ts +2 -32
  51. package/dist/contract/automations.d.ts +6 -0
  52. package/dist/contract/conversations.d.ts +165 -0
  53. package/dist/contract/delegation.d.ts +68 -0
  54. package/dist/contract/discovery.d.ts +134 -0
  55. package/dist/contract/events.d.ts +49 -0
  56. package/dist/contract/health.d.ts +12 -0
  57. package/dist/contract/index.d.ts +3 -0
  58. package/dist/contract/index.js +1654 -1454
  59. package/dist/contract/projects.d.ts +40 -0
  60. package/dist/contract/runs.d.ts +186 -0
  61. package/dist/contract/skills.d.ts +33 -0
  62. package/dist/core/agent-runner.d.ts +33 -4
  63. package/dist/core/agent-runner.js +5 -0
  64. package/dist/core/agent-runner.js.map +1 -1
  65. package/dist/core/claude-cli-runner.d.ts +6 -12
  66. package/dist/core/claude-cli-runner.js +90 -20
  67. package/dist/core/claude-cli-runner.js.map +1 -1
  68. package/dist/core/codex-app-server-runner.d.ts +2 -1
  69. package/dist/core/codex-app-server-runner.js +327 -92
  70. package/dist/core/codex-app-server-runner.js.map +1 -1
  71. package/dist/core/codex-app-server-transport.d.ts +13 -1
  72. package/dist/core/codex-app-server-transport.js +58 -17
  73. package/dist/core/codex-app-server-transport.js.map +1 -1
  74. package/dist/core/cursor-acp-runner.d.ts +6 -1
  75. package/dist/core/cursor-acp-runner.js +162 -26
  76. package/dist/core/cursor-acp-runner.js.map +1 -1
  77. package/dist/core/cursor-provider-error.d.ts +3 -0
  78. package/dist/core/cursor-provider-error.js +16 -1
  79. package/dist/core/cursor-provider-error.js.map +1 -1
  80. package/dist/core/input-submissions.d.ts +14 -0
  81. package/dist/core/input-submissions.js +26 -0
  82. package/dist/core/input-submissions.js.map +1 -0
  83. package/dist/core/opencode-server-runner.d.ts +4 -1
  84. package/dist/core/opencode-server-runner.js +156 -26
  85. package/dist/core/opencode-server-runner.js.map +1 -1
  86. package/dist/core/pi-runner.d.ts +2 -1
  87. package/dist/core/pi-runner.js +88 -10
  88. package/dist/core/pi-runner.js.map +1 -1
  89. package/dist/core/provider-auth.d.ts +99 -1
  90. package/dist/core/provider-auth.js +203 -2
  91. package/dist/core/provider-auth.js.map +1 -1
  92. package/dist/delegation/cli.d.ts +1 -0
  93. package/dist/delegation/cli.js +103 -7
  94. package/dist/delegation/cli.js.map +1 -1
  95. package/dist/delegation/conversations.js +13 -5
  96. package/dist/delegation/conversations.js.map +1 -1
  97. package/dist/delegation/input.d.ts +2 -1
  98. package/dist/delegation/input.js +6 -1
  99. package/dist/delegation/input.js.map +1 -1
  100. package/dist/delegation/policy.d.ts +3 -2
  101. package/dist/delegation/policy.js +3 -1
  102. package/dist/delegation/policy.js.map +1 -1
  103. package/dist/delegation/process-liveness.d.ts +66 -0
  104. package/dist/delegation/process-liveness.js +215 -0
  105. package/dist/delegation/process-liveness.js.map +1 -0
  106. package/dist/delegation/provision.d.ts +1 -1
  107. package/dist/delegation/provision.js +10 -5
  108. package/dist/delegation/provision.js.map +1 -1
  109. package/dist/delegation/questions.d.ts +19 -0
  110. package/dist/delegation/questions.js +45 -0
  111. package/dist/delegation/questions.js.map +1 -0
  112. package/dist/delegation/results.d.ts +1 -1
  113. package/dist/delegation/results.js +33 -19
  114. package/dist/delegation/results.js.map +1 -1
  115. package/dist/delegation/routes.d.ts +185 -11
  116. package/dist/delegation/routes.js +6 -2
  117. package/dist/delegation/routes.js.map +1 -1
  118. package/dist/delegation/service.d.ts +23 -5
  119. package/dist/delegation/service.js +240 -17
  120. package/dist/delegation/service.js.map +1 -1
  121. package/dist/delegation/transport.d.ts +178 -15
  122. package/dist/delegation/workspace.d.ts +1 -1
  123. package/dist/delegation/workspace.js +13 -6
  124. package/dist/delegation/workspace.js.map +1 -1
  125. package/dist/discovery/catalog.d.ts +14 -0
  126. package/dist/discovery/catalog.js +31 -0
  127. package/dist/discovery/catalog.js.map +1 -0
  128. package/dist/discovery/cli.d.ts +8 -0
  129. package/dist/discovery/cli.js +104 -0
  130. package/dist/discovery/cli.js.map +1 -0
  131. package/dist/git-worktree.d.ts +3 -1
  132. package/dist/git-worktree.js +26 -4
  133. package/dist/git-worktree.js.map +1 -1
  134. package/dist/index.js +93 -26
  135. package/dist/index.js.map +1 -1
  136. package/dist/open-url.d.ts +2 -0
  137. package/dist/open-url.js +20 -0
  138. package/dist/open-url.js.map +1 -0
  139. package/dist/release/snapshot.d.ts +3 -3
  140. package/dist/release/snapshot.js +6 -6
  141. package/dist/release/snapshot.js.map +1 -1
  142. package/dist/runs/agent-tmpdir.d.ts +2 -0
  143. package/dist/runs/agent-tmpdir.js +5 -2
  144. package/dist/runs/agent-tmpdir.js.map +1 -1
  145. package/dist/runs/client-request.d.ts +11 -0
  146. package/dist/runs/client-request.js +26 -0
  147. package/dist/runs/client-request.js.map +1 -0
  148. package/dist/runs/delegation-state.d.ts +17 -0
  149. package/dist/runs/event-history.js +6 -0
  150. package/dist/runs/event-history.js.map +1 -1
  151. package/dist/runs/retention.d.ts +7 -2
  152. package/dist/runs/retention.js +39 -7
  153. package/dist/runs/retention.js.map +1 -1
  154. package/dist/runs/store.d.ts +100 -6
  155. package/dist/runs/store.js +245 -2
  156. package/dist/runs/store.js.map +1 -1
  157. package/dist/runs/webhook.d.ts +125 -0
  158. package/dist/runs/webhook.js +256 -0
  159. package/dist/runs/webhook.js.map +1 -0
  160. package/dist/server/project-context.d.ts +2 -0
  161. package/dist/server/project-context.js +1 -0
  162. package/dist/server/project-context.js.map +1 -1
  163. package/dist/server/provider-auth-runtime.d.ts +30 -4
  164. package/dist/server/provider-auth-runtime.js +71 -6
  165. package/dist/server/provider-auth-runtime.js.map +1 -1
  166. package/dist/server/server.d.ts +8226 -4860
  167. package/dist/server/server.js +311 -15
  168. package/dist/server/server.js.map +1 -1
  169. package/dist/server-install/platforms/ubuntu-vps.d.ts +5 -1
  170. package/dist/server-install/platforms/ubuntu-vps.js +160 -18
  171. package/dist/server-install/platforms/ubuntu-vps.js.map +1 -1
  172. package/dist/server-install/steps.d.ts +4 -2
  173. package/dist/server-install/steps.js +5 -4
  174. package/dist/server-install/steps.js.map +1 -1
  175. package/dist/skills-remote.d.ts +30 -5
  176. package/dist/skills-remote.js +122 -32
  177. package/dist/skills-remote.js.map +1 -1
  178. package/dist/skills.js +15 -6
  179. package/dist/skills.js.map +1 -1
  180. package/dist/task-cli/cli.d.ts +38 -0
  181. package/dist/task-cli/cli.js +580 -0
  182. package/dist/task-cli/cli.js.map +1 -0
  183. package/dist/task-cli/discovery.d.ts +22 -0
  184. package/dist/task-cli/discovery.js +96 -0
  185. package/dist/task-cli/discovery.js.map +1 -0
  186. package/dist/task-cli/http.d.ts +46 -0
  187. package/dist/task-cli/http.js +101 -0
  188. package/dist/task-cli/http.js.map +1 -0
  189. package/dist/task-cli/projections.d.ts +40 -0
  190. package/dist/task-cli/projections.js +45 -0
  191. package/dist/task-cli/projections.js.map +1 -0
  192. package/dist/task-cli/watch.d.ts +78 -0
  193. package/dist/task-cli/watch.js +336 -0
  194. package/dist/task-cli/watch.js.map +1 -0
  195. package/dist/workflows/run.d.ts +160 -2
  196. package/dist/workflows/run.js +1141 -108
  197. package/dist/workflows/run.js.map +1 -1
  198. package/dist/workspace/agent-profiles.d.ts +22 -0
  199. package/dist/workspace/agent-profiles.js +15 -0
  200. package/dist/workspace/agent-profiles.js.map +1 -1
  201. package/dist/workspace/config.d.ts +9 -0
  202. package/dist/workspace/config.js +13 -1
  203. package/dist/workspace/config.js.map +1 -1
  204. package/dist/workspace/projects-cli.js +1 -1
  205. package/dist/workspace/projects.d.ts +24 -1
  206. package/dist/workspace/projects.js +14 -1
  207. package/dist/workspace/projects.js.map +1 -1
  208. package/package.json +5 -5
  209. package/scripts/mock-claude.mjs +64 -2
  210. package/scripts/mock-codex-app-server.mjs +124 -1
  211. package/scripts/mock-cursor-acp.mjs +54 -3
  212. package/scripts/mock-cursor-hang-stdin-late.mjs +35 -0
  213. package/scripts/mock-cursor-hang-stdin.mjs +30 -0
  214. package/scripts/mock-opencode-serve.mjs +102 -2
  215. package/scripts/mock-pi-rpc.mjs +82 -3
  216. package/web/dist/assets/agent-accounts-CerclGiO.js +1 -0
  217. package/web/dist/assets/centered-state-DH8qtCz-.js +43 -0
  218. package/web/dist/assets/collapsible-De2G0xqQ.js +1 -0
  219. package/web/dist/assets/commit-list-s6JPY3qv.js +1 -0
  220. package/web/dist/assets/compare-variants-BQu_t-_g.js +1 -0
  221. package/web/dist/assets/{diff-tRE59UNb2.js → diff-8M5HlDxq2.js} +2 -2
  222. package/web/dist/assets/diff-controls-B6ok0TtQ.js +1 -0
  223. package/web/dist/assets/{diff-stat-Cgnl_hYF.js → diff-stat-D1AODN2a.js} +1 -1
  224. package/web/dist/assets/{diff-view-DN1ort7Q.js → diff-view-Bs5Gh7UF.js} +2 -2
  225. package/web/dist/assets/dropdown-menu-7KGQMoFj.js +1 -0
  226. package/web/dist/assets/git-toolbar-DqbapMXr.js +1 -0
  227. package/web/dist/assets/github-DCkk6sBm.js +1 -0
  228. package/web/dist/assets/{image-preview-C2JGcBlC.js → image-preview-jzHoEyLM.js} +1 -1
  229. package/web/dist/assets/index-Bnva-ttR.js +7 -0
  230. package/web/dist/assets/index-D5NkwqY7.css +1 -0
  231. package/web/dist/assets/markdown-DvbymqXz.js +2 -0
  232. package/web/dist/assets/pill-BL6ugwXo.js +1 -0
  233. package/web/dist/assets/project-router-ChC5Rb-Y.js +1 -0
  234. package/web/dist/assets/prompt-templates-j8qlK7c-.js +15 -0
  235. package/web/dist/assets/repo-git-_h1NjOVt.js +1 -0
  236. package/web/dist/assets/{run-diff-CyG0Nciv.js → run-diff-BuATgZpx.js} +2 -2
  237. package/web/dist/assets/run-header-DuAWswYM.js +1 -0
  238. package/web/dist/assets/skills-C-fq5BrZ.js +1 -0
  239. package/web/dist/assets/{tab-link-BWNp3mLY.js → tab-link-BmGKj9Rt.js} +1 -1
  240. package/web/dist/assets/task-changes-CHa6JWOS.js +1 -0
  241. package/web/dist/assets/task-commits-BqCqyWm1.js +1 -0
  242. package/web/dist/assets/task-files-BSA0l-YP.js +2 -0
  243. package/web/dist/assets/task-thread-Bw_nQuTx.css +1 -0
  244. package/web/dist/assets/task-thread-Q7Nj33DH.js +9 -0
  245. package/web/dist/assets/textarea-ByZ-txS7.js +1 -0
  246. package/web/dist/assets/thread-loading-DHT9p5o5.js +1 -0
  247. package/web/dist/assets/token-metrics-k4XoovDS.js +1 -0
  248. package/web/dist/assets/utils-BTFBhZ55.js +64 -0
  249. package/web/dist/assets/workflows-HJOd3lVi.js +11 -0
  250. package/web/dist/assets/{zoomable-image-Z3JDnm0b.js → zoomable-image-Ba6y6Wyl.js} +1 -1
  251. package/web/dist/index.html +14 -14
  252. package/web/dist/assets/agent-accounts-BZm_2WAv.js +0 -1
  253. package/web/dist/assets/alert-dialog-B422RI-k.js +0 -43
  254. package/web/dist/assets/collapsible-Cy_Fmkrd.js +0 -1
  255. package/web/dist/assets/commit-list-Dcnk7TnI.js +0 -1
  256. package/web/dist/assets/compare-variants-Ciqwvd_f.js +0 -1
  257. package/web/dist/assets/diff-controls-BGrXGi7O.js +0 -1
  258. package/web/dist/assets/dropdown-menu-dwDGT8MM.js +0 -1
  259. package/web/dist/assets/git-toolbar-UiHnGvE0.js +0 -1
  260. package/web/dist/assets/github-D-MrkbJ7.js +0 -1
  261. package/web/dist/assets/ibm-plex-mono-regular-BF3vfe7_.ttf +0 -0
  262. package/web/dist/assets/index-BszfYvBq.js +0 -7
  263. package/web/dist/assets/index-CWh4pKP3.css +0 -1
  264. package/web/dist/assets/markdown-C_IcKVQd.js +0 -2
  265. package/web/dist/assets/pill-BsbO6G7y.js +0 -1
  266. package/web/dist/assets/project-router-DbLkll25.js +0 -1
  267. package/web/dist/assets/prompt-templates-BlTGJB5W.js +0 -15
  268. package/web/dist/assets/repo-git-Bm3s6Why.js +0 -1
  269. package/web/dist/assets/run-header-IFyIGCey.js +0 -1
  270. package/web/dist/assets/skills-C-C4DVFY.js +0 -1
  271. package/web/dist/assets/task-changes-D2PHtWUW.js +0 -1
  272. package/web/dist/assets/task-commits-N5u9U0_R.js +0 -1
  273. package/web/dist/assets/task-files-BS7c7CFm.js +0 -2
  274. package/web/dist/assets/task-thread-BQFdz1dJ.css +0 -1
  275. package/web/dist/assets/task-thread-DGM2dZV-.js +0 -9
  276. package/web/dist/assets/textarea-FjaU370i.js +0 -1
  277. package/web/dist/assets/thread-loading-77sJ8Yu_.js +0 -1
  278. package/web/dist/assets/token-metrics-Clxh03bE.js +0 -1
  279. package/web/dist/assets/utils-PYYcpCFZ.js +0 -64
  280. package/web/dist/assets/workflows-Czl0ZfXH.js +0 -11
@@ -0,0 +1,133 @@
1
+ import { execFileSync, spawn } from 'node:child_process';
2
+ import { readFileSync, realpathSync, statSync } from 'node:fs';
3
+ import { basename, dirname, isAbsolute, join, delimiter } from 'node:path';
4
+ /** Only npm's declared CLI, reached through the Node toolchain or a canonical npm shim. */
5
+ function verifiedCli(candidate) {
6
+ try {
7
+ const cli = realpathSync(candidate);
8
+ if (basename(cli) !== 'npm-cli.js' || basename(dirname(cli)) !== 'bin' || !statSync(cli).isFile())
9
+ return;
10
+ const root = dirname(dirname(cli));
11
+ const manifest = JSON.parse(readFileSync(join(root, 'package.json'), 'utf8'));
12
+ if (manifest.name === 'npm' && manifest.bin?.npm === 'bin/npm-cli.js')
13
+ return cli;
14
+ }
15
+ catch { /* Missing or unreadable npm means manual updates, never a boot failure. */ }
16
+ return undefined;
17
+ }
18
+ export function resolveNpmInvocation(command = 'npm', options = {}) {
19
+ const node = options.nodeExecutable ?? process.execPath;
20
+ const platform = options.platform ?? process.platform;
21
+ const invoke = (cli) => ({ command: node, args: [cli] });
22
+ if (basename(command) === 'npm-cli.js') {
23
+ const cli = verifiedCli(command);
24
+ if (!cli)
25
+ throw new Error('npm CLI could not be verified');
26
+ return invoke(cli);
27
+ }
28
+ // Explicit executables are used by embedders and isolated lifecycle fixtures.
29
+ // A Windows command script is never sent to spawn/execFile as an executable.
30
+ if (!['npm', 'npm.cmd'].includes(basename(command).toLowerCase())) {
31
+ if (/\.(cmd|bat)$/i.test(command))
32
+ throw new Error('npm command script is unsupported');
33
+ return { command, args: [] };
34
+ }
35
+ if (!isAbsolute(command)) {
36
+ const nodeDir = dirname(realpathSync(node));
37
+ const cli = verifiedCli(platform === 'win32'
38
+ ? join(nodeDir, 'node_modules/npm/bin/npm-cli.js')
39
+ : join(nodeDir, '../lib/node_modules/npm/bin/npm-cli.js'));
40
+ if (cli)
41
+ return invoke(cli);
42
+ }
43
+ const searchPath = options.searchPath ?? process.env[Object.keys(process.env).find(key => key.toLowerCase() === 'path') ?? 'PATH'] ?? '';
44
+ const candidates = isAbsolute(command) ? [command] : searchPath.split(platform === 'win32' ? ';' : delimiter)
45
+ .map(part => part.replace(/^"(.*)"$/, '$1')).filter(isAbsolute)
46
+ .map(part => join(part, platform === 'win32' ? 'npm.cmd' : 'npm'));
47
+ for (const shim of candidates) {
48
+ const linked = verifiedCli(shim);
49
+ if (linked)
50
+ return invoke(linked);
51
+ if (platform !== 'win32' && !/\.cmd$/i.test(shim))
52
+ continue;
53
+ const cli = verifiedCli(join(dirname(shim), 'node_modules/npm/bin/npm-cli.js'));
54
+ if (!cli)
55
+ continue;
56
+ try {
57
+ const content = readFileSync(shim, 'utf8');
58
+ // npm ships its installer shim; npm install -g npm emits cmd-shim's
59
+ // equivalent. Only their fixed adjacent CLI target is recognized.
60
+ const vendor = readFileSync(join(dirname(cli), 'npm.cmd'), 'utf8');
61
+ if (content === vendor)
62
+ return invoke(cli);
63
+ }
64
+ catch { /* Fall through to the generated shim's fixed target. */ }
65
+ try {
66
+ const content = readFileSync(shim, 'utf8');
67
+ if (content.includes('SET dp0=%~dp0') && content.includes('"%dp0%\\node_modules\\npm\\bin\\npm-cli.js"'))
68
+ return invoke(cli);
69
+ }
70
+ catch { /* Keep looking; never execute an unrecognized wrapper. */ }
71
+ }
72
+ throw new Error('npm CLI could not be verified');
73
+ }
74
+ /** Discovery and both mutating phases use the exact same shell-free invocation. */
75
+ export function readNpmConfiguration(command = 'npm') {
76
+ try {
77
+ const invocation = resolveNpmInvocation(command);
78
+ const value = (args) => execFileSync(invocation.command, [...invocation.args, ...args], {
79
+ encoding: 'utf8', timeout: 5000, stdio: ['ignore', 'pipe', 'ignore'], shell: false,
80
+ }).trim();
81
+ const prefix = value(['prefix', '-g']);
82
+ const cache = value(['config', 'get', 'cache']);
83
+ return prefix && cache ? { npmBin: invocation.args[0] ?? invocation.command, prefix, cache } : undefined;
84
+ }
85
+ catch {
86
+ return undefined;
87
+ }
88
+ }
89
+ /** A lock abort is complete only after the npm process has actually exited. */
90
+ export async function runOwnedNpm(command, args, env, signal) {
91
+ if (signal?.aborted)
92
+ throw new Error('update lock ownership changed');
93
+ const invocation = resolveNpmInvocation(command);
94
+ const child = spawn(invocation.command, [...invocation.args, ...args], { env, stdio: 'ignore', shell: false });
95
+ await new Promise((resolve, reject) => {
96
+ let cancelled = false;
97
+ let timedOut = false;
98
+ let spawnError;
99
+ let escalation;
100
+ const cancel = () => {
101
+ if (cancelled)
102
+ return;
103
+ cancelled = true;
104
+ child.kill('SIGTERM');
105
+ escalation = setTimeout(() => child.kill('SIGKILL'), 2_000);
106
+ };
107
+ const deadline = setTimeout(() => { timedOut = true; cancel(); }, 120_000);
108
+ const onAbort = () => cancel();
109
+ signal?.addEventListener('abort', onAbort, { once: true });
110
+ if (signal?.aborted)
111
+ cancel();
112
+ child.once('error', (error) => { spawnError = error; });
113
+ child.once('close', (code) => {
114
+ clearTimeout(deadline);
115
+ if (escalation)
116
+ clearTimeout(escalation);
117
+ signal?.removeEventListener('abort', onAbort);
118
+ if (signal?.aborted)
119
+ reject(new Error('update lock ownership changed'));
120
+ else if (spawnError)
121
+ reject(new Error('npm could not start'));
122
+ else if (timedOut)
123
+ reject(new Error('npm operation timed out'));
124
+ else if (cancelled)
125
+ reject(new Error('npm operation cancelled'));
126
+ else if (code !== 0)
127
+ reject(new Error('npm operation failed'));
128
+ else
129
+ resolve();
130
+ });
131
+ });
132
+ }
133
+ //# sourceMappingURL=npm-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-process.js","sourceRoot":"","sources":["../../src/application-update/npm-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { type ApplicationUpdateState } from '../contract/index.js';
2
+ import { type Installation } from './discovery.ts';
3
+ export declare class ApplicationUpdateConflictError extends Error {
4
+ }
5
+ export declare class ApplicationUpdateFailureError extends Error {
6
+ readonly status: 409 | 503;
7
+ constructor(message: string, status?: 409 | 503);
8
+ }
9
+ export interface ApplicationUpdateServiceLike {
10
+ snapshot(): ApplicationUpdateState;
11
+ apply(): Promise<ApplicationUpdateState>;
12
+ restart(): Promise<ApplicationUpdateState>;
13
+ afterResponse?(): void;
14
+ onStateChange?(listener: () => void): void;
15
+ }
16
+ export interface ApplicationUpdateOptions {
17
+ packageRoot: string;
18
+ launchEntry: string;
19
+ npmPrefix: string;
20
+ npmCache: string;
21
+ npmBin?: string;
22
+ home: string;
23
+ targetVersion: () => string | undefined;
24
+ runNpm?: (args: string[], signal?: AbortSignal) => Promise<void>;
25
+ armRestart?: (plan: RestartPlan) => Promise<number | void>;
26
+ handoff?: () => void;
27
+ onChange?: () => void;
28
+ dryRun?: boolean;
29
+ /** Test-only bounded contention override; normal operation waits 15 seconds. */
30
+ lockWaitMs?: number;
31
+ }
32
+ export interface RestartPlan {
33
+ installation: Exclude<Installation, {
34
+ kind: 'unsupported';
35
+ }>;
36
+ targetVersion: string;
37
+ oldVersion: string;
38
+ stage: string;
39
+ recovery: string;
40
+ recoveryPackage?: string;
41
+ binLinks?: string;
42
+ recordPath: string;
43
+ claimId: string;
44
+ }
45
+ /** Validate the npm result, not merely its exit code. */
46
+ export declare function validateInstalledPackage(path: string, expectedVersion: string, installRoot?: string): void;
47
+ export declare class ApplicationUpdateService implements ApplicationUpdateServiceLike {
48
+ private readonly options;
49
+ private readonly installation;
50
+ private readonly recordPath;
51
+ private readonly dir;
52
+ private readonly recoveryPackage;
53
+ private record;
54
+ private applying?;
55
+ private handoffArmed;
56
+ private armingRestart;
57
+ private listener?;
58
+ private lockLost;
59
+ constructor(options: ApplicationUpdateOptions);
60
+ private refreshRecord;
61
+ snapshot(): ApplicationUpdateState;
62
+ private persist;
63
+ onStateChange(listener: () => void): void;
64
+ apply(): Promise<ApplicationUpdateState>;
65
+ private prepare;
66
+ restart(): Promise<ApplicationUpdateState>;
67
+ afterResponse(): void;
68
+ private runNpm;
69
+ }