@wjarka/cezarion 0.10.0-pr30.54

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 (478) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +838 -0
  3. package/dist/agent-config/account-identity.d.ts +44 -0
  4. package/dist/agent-config/account-identity.js +128 -0
  5. package/dist/agent-config/account-identity.js.map +1 -0
  6. package/dist/agent-config/catalog.d.ts +72 -0
  7. package/dist/agent-config/catalog.js +223 -0
  8. package/dist/agent-config/catalog.js.map +1 -0
  9. package/dist/agent-config/files.d.ts +46 -0
  10. package/dist/agent-config/files.js +119 -0
  11. package/dist/agent-config/files.js.map +1 -0
  12. package/dist/agent-config/model-settings/claude.d.ts +2 -0
  13. package/dist/agent-config/model-settings/claude.js +11 -0
  14. package/dist/agent-config/model-settings/claude.js.map +1 -0
  15. package/dist/agent-config/model-settings/codex.d.ts +2 -0
  16. package/dist/agent-config/model-settings/codex.js +16 -0
  17. package/dist/agent-config/model-settings/codex.js.map +1 -0
  18. package/dist/agent-config/model-settings/opencode.d.ts +2 -0
  19. package/dist/agent-config/model-settings/opencode.js +8 -0
  20. package/dist/agent-config/model-settings/opencode.js.map +1 -0
  21. package/dist/agent-config/model-settings/pi.d.ts +12 -0
  22. package/dist/agent-config/model-settings/pi.js +18 -0
  23. package/dist/agent-config/model-settings/pi.js.map +1 -0
  24. package/dist/agent-config/model-settings/shared.d.ts +9 -0
  25. package/dist/agent-config/model-settings/shared.js +93 -0
  26. package/dist/agent-config/model-settings/shared.js.map +1 -0
  27. package/dist/agent-config/model-settings/types.d.ts +9 -0
  28. package/dist/agent-config/model-settings/types.js +2 -0
  29. package/dist/agent-config/model-settings/types.js.map +1 -0
  30. package/dist/agent-config/models.d.ts +9 -0
  31. package/dist/agent-config/models.js +32 -0
  32. package/dist/agent-config/models.js.map +1 -0
  33. package/dist/agent-config/seed.d.ts +7 -0
  34. package/dist/agent-config/seed.js +90 -0
  35. package/dist/agent-config/seed.js.map +1 -0
  36. package/dist/agent-config/service.d.ts +44 -0
  37. package/dist/agent-config/service.js +71 -0
  38. package/dist/agent-config/service.js.map +1 -0
  39. package/dist/agent-config/validate.d.ts +21 -0
  40. package/dist/agent-config/validate.js +76 -0
  41. package/dist/agent-config/validate.js.map +1 -0
  42. package/dist/automations/coordinator.d.ts +26 -0
  43. package/dist/automations/coordinator.js +66 -0
  44. package/dist/automations/coordinator.js.map +1 -0
  45. package/dist/automations/github-poller.d.ts +74 -0
  46. package/dist/automations/github-poller.js +234 -0
  47. package/dist/automations/github-poller.js.map +1 -0
  48. package/dist/automations/scheduler.d.ts +42 -0
  49. package/dist/automations/scheduler.js +192 -0
  50. package/dist/automations/scheduler.js.map +1 -0
  51. package/dist/automations/store.d.ts +65 -0
  52. package/dist/automations/store.js +298 -0
  53. package/dist/automations/store.js.map +1 -0
  54. package/dist/automations/task-template.d.ts +18 -0
  55. package/dist/automations/task-template.js +95 -0
  56. package/dist/automations/task-template.js.map +1 -0
  57. package/dist/automations/types.d.ts +255 -0
  58. package/dist/automations/types.js +159 -0
  59. package/dist/automations/types.js.map +1 -0
  60. package/dist/config.d.ts +77 -0
  61. package/dist/config.js +242 -0
  62. package/dist/config.js.map +1 -0
  63. package/dist/contract/agent-config.d.ts +153 -0
  64. package/dist/contract/agent-profiles.d.ts +347 -0
  65. package/dist/contract/automations.d.ts +935 -0
  66. package/dist/contract/events.d.ts +104 -0
  67. package/dist/contract/github.d.ts +556 -0
  68. package/dist/contract/health.d.ts +102 -0
  69. package/dist/contract/index.d.ts +16 -0
  70. package/dist/contract/index.js +1895 -0
  71. package/dist/contract/projects.d.ts +210 -0
  72. package/dist/contract/repo.d.ts +234 -0
  73. package/dist/contract/runs.d.ts +1473 -0
  74. package/dist/contract/skills.d.ts +232 -0
  75. package/dist/contract/workflows.d.ts +218 -0
  76. package/dist/contract/workspace.d.ts +579 -0
  77. package/dist/core/agent-env.d.ts +31 -0
  78. package/dist/core/agent-env.js +371 -0
  79. package/dist/core/agent-env.js.map +1 -0
  80. package/dist/core/agent-model-policy.d.ts +10 -0
  81. package/dist/core/agent-model-policy.js +36 -0
  82. package/dist/core/agent-model-policy.js.map +1 -0
  83. package/dist/core/agent-profiles.d.ts +62 -0
  84. package/dist/core/agent-profiles.js +90 -0
  85. package/dist/core/agent-profiles.js.map +1 -0
  86. package/dist/core/agent-runner.d.ts +211 -0
  87. package/dist/core/agent-runner.js +68 -0
  88. package/dist/core/agent-runner.js.map +1 -0
  89. package/dist/core/ask.d.ts +105 -0
  90. package/dist/core/ask.js +187 -0
  91. package/dist/core/ask.js.map +1 -0
  92. package/dist/core/backend-detect.d.ts +16 -0
  93. package/dist/core/backend-detect.js +155 -0
  94. package/dist/core/backend-detect.js.map +1 -0
  95. package/dist/core/claude-cli-runner.d.ts +59 -0
  96. package/dist/core/claude-cli-runner.js +483 -0
  97. package/dist/core/claude-cli-runner.js.map +1 -0
  98. package/dist/core/claude-ui-mapper.d.ts +80 -0
  99. package/dist/core/claude-ui-mapper.js +598 -0
  100. package/dist/core/claude-ui-mapper.js.map +1 -0
  101. package/dist/core/codex-app-server-runner.d.ts +41 -0
  102. package/dist/core/codex-app-server-runner.js +584 -0
  103. package/dist/core/codex-app-server-runner.js.map +1 -0
  104. package/dist/core/codex-app-server-transport.d.ts +35 -0
  105. package/dist/core/codex-app-server-transport.js +150 -0
  106. package/dist/core/codex-app-server-transport.js.map +1 -0
  107. package/dist/core/codex-model-catalog.d.ts +10 -0
  108. package/dist/core/codex-model-catalog.js +110 -0
  109. package/dist/core/codex-model-catalog.js.map +1 -0
  110. package/dist/core/codex-ui-mapper.d.ts +112 -0
  111. package/dist/core/codex-ui-mapper.js +766 -0
  112. package/dist/core/codex-ui-mapper.js.map +1 -0
  113. package/dist/core/model-identity.d.ts +125 -0
  114. package/dist/core/model-identity.js +132 -0
  115. package/dist/core/model-identity.js.map +1 -0
  116. package/dist/core/model-presets.d.ts +21 -0
  117. package/dist/core/model-presets.js +81 -0
  118. package/dist/core/model-presets.js.map +1 -0
  119. package/dist/core/ndjson.d.ts +6 -0
  120. package/dist/core/ndjson.js +23 -0
  121. package/dist/core/ndjson.js.map +1 -0
  122. package/dist/core/opencode-model-catalog.d.ts +32 -0
  123. package/dist/core/opencode-model-catalog.js +153 -0
  124. package/dist/core/opencode-model-catalog.js.map +1 -0
  125. package/dist/core/opencode-server-runner.d.ts +32 -0
  126. package/dist/core/opencode-server-runner.js +882 -0
  127. package/dist/core/opencode-server-runner.js.map +1 -0
  128. package/dist/core/opencode-ui-mapper.d.ts +137 -0
  129. package/dist/core/opencode-ui-mapper.js +800 -0
  130. package/dist/core/opencode-ui-mapper.js.map +1 -0
  131. package/dist/core/pi-model-catalog.d.ts +31 -0
  132. package/dist/core/pi-model-catalog.js +152 -0
  133. package/dist/core/pi-model-catalog.js.map +1 -0
  134. package/dist/core/pi-runner.d.ts +24 -0
  135. package/dist/core/pi-runner.js +403 -0
  136. package/dist/core/pi-runner.js.map +1 -0
  137. package/dist/core/pi-ui-mapper.d.ts +36 -0
  138. package/dist/core/pi-ui-mapper.js +304 -0
  139. package/dist/core/pi-ui-mapper.js.map +1 -0
  140. package/dist/core/process-usage.d.ts +66 -0
  141. package/dist/core/process-usage.js +193 -0
  142. package/dist/core/process-usage.js.map +1 -0
  143. package/dist/core/provider-auth.d.ts +154 -0
  144. package/dist/core/provider-auth.js +509 -0
  145. package/dist/core/provider-auth.js.map +1 -0
  146. package/dist/core/provider-availability.d.ts +3 -0
  147. package/dist/core/provider-availability.js +14 -0
  148. package/dist/core/provider-availability.js.map +1 -0
  149. package/dist/core/runner-factory.d.ts +8 -0
  150. package/dist/core/runner-factory.js +25 -0
  151. package/dist/core/runner-factory.js.map +1 -0
  152. package/dist/core/runner-model-catalog.d.ts +29 -0
  153. package/dist/core/runner-model-catalog.js +78 -0
  154. package/dist/core/runner-model-catalog.js.map +1 -0
  155. package/dist/core/secret-redaction.d.ts +37 -0
  156. package/dist/core/secret-redaction.js +115 -0
  157. package/dist/core/secret-redaction.js.map +1 -0
  158. package/dist/core/shell-env.d.ts +28 -0
  159. package/dist/core/shell-env.js +56 -0
  160. package/dist/core/shell-env.js.map +1 -0
  161. package/dist/core/tool-display.d.ts +31 -0
  162. package/dist/core/tool-display.js +179 -0
  163. package/dist/core/tool-display.js.map +1 -0
  164. package/dist/core/ui-events.d.ts +335 -0
  165. package/dist/core/ui-events.js +25 -0
  166. package/dist/core/ui-events.js.map +1 -0
  167. package/dist/core/usage-limit.d.ts +42 -0
  168. package/dist/core/usage-limit.js +209 -0
  169. package/dist/core/usage-limit.js.map +1 -0
  170. package/dist/core/usage.d.ts +11 -0
  171. package/dist/core/usage.js +15 -0
  172. package/dist/core/usage.js.map +1 -0
  173. package/dist/core/v1-text-coalescer.d.ts +36 -0
  174. package/dist/core/v1-text-coalescer.js +72 -0
  175. package/dist/core/v1-text-coalescer.js.map +1 -0
  176. package/dist/git-diff-base.d.ts +85 -0
  177. package/dist/git-diff-base.js +180 -0
  178. package/dist/git-diff-base.js.map +1 -0
  179. package/dist/git-refs.d.ts +11 -0
  180. package/dist/git-refs.js +14 -0
  181. package/dist/git-refs.js.map +1 -0
  182. package/dist/git-worktree.d.ts +161 -0
  183. package/dist/git-worktree.js +508 -0
  184. package/dist/git-worktree.js.map +1 -0
  185. package/dist/handoff.d.ts +62 -0
  186. package/dist/handoff.js +154 -0
  187. package/dist/handoff.js.map +1 -0
  188. package/dist/index.d.ts +2 -0
  189. package/dist/index.js +680 -0
  190. package/dist/index.js.map +1 -0
  191. package/dist/install-as-command.d.ts +40 -0
  192. package/dist/install-as-command.js +52 -0
  193. package/dist/install-as-command.js.map +1 -0
  194. package/dist/pack-check.d.ts +17 -0
  195. package/dist/pack-check.js +27 -0
  196. package/dist/pack-check.js.map +1 -0
  197. package/dist/paths.d.ts +140 -0
  198. package/dist/paths.js +192 -0
  199. package/dist/paths.js.map +1 -0
  200. package/dist/planner.d.ts +27 -0
  201. package/dist/planner.js +268 -0
  202. package/dist/planner.js.map +1 -0
  203. package/dist/release/manifests.d.ts +81 -0
  204. package/dist/release/manifests.js +74 -0
  205. package/dist/release/manifests.js.map +1 -0
  206. package/dist/release/snapshot.d.ts +67 -0
  207. package/dist/release/snapshot.js +97 -0
  208. package/dist/release/snapshot.js.map +1 -0
  209. package/dist/release/stable.d.ts +38 -0
  210. package/dist/release/stable.js +55 -0
  211. package/dist/release/stable.js.map +1 -0
  212. package/dist/runs/agent-tmpdir.d.ts +41 -0
  213. package/dist/runs/agent-tmpdir.js +183 -0
  214. package/dist/runs/agent-tmpdir.js.map +1 -0
  215. package/dist/runs/auto-name.d.ts +75 -0
  216. package/dist/runs/auto-name.js +179 -0
  217. package/dist/runs/auto-name.js.map +1 -0
  218. package/dist/runs/event-history.d.ts +50 -0
  219. package/dist/runs/event-history.js +613 -0
  220. package/dist/runs/event-history.js.map +1 -0
  221. package/dist/runs/retention.d.ts +60 -0
  222. package/dist/runs/retention.js +86 -0
  223. package/dist/runs/retention.js.map +1 -0
  224. package/dist/runs/review-gate.d.ts +18 -0
  225. package/dist/runs/review-gate.js +21 -0
  226. package/dist/runs/review-gate.js.map +1 -0
  227. package/dist/runs/run-index.d.ts +19 -0
  228. package/dist/runs/run-index.js +43 -0
  229. package/dist/runs/run-index.js.map +1 -0
  230. package/dist/runs/store.d.ts +446 -0
  231. package/dist/runs/store.js +1118 -0
  232. package/dist/runs/store.js.map +1 -0
  233. package/dist/runs/task-markers.d.ts +28 -0
  234. package/dist/runs/task-markers.js +74 -0
  235. package/dist/runs/task-markers.js.map +1 -0
  236. package/dist/runs/task-refs.d.ts +25 -0
  237. package/dist/runs/task-refs.js +74 -0
  238. package/dist/runs/task-refs.js.map +1 -0
  239. package/dist/runs/ui-event-sink.d.ts +81 -0
  240. package/dist/runs/ui-event-sink.js +210 -0
  241. package/dist/runs/ui-event-sink.js.map +1 -0
  242. package/dist/server/app-type.d.ts +21 -0
  243. package/dist/server/app-type.js +2 -0
  244. package/dist/server/app-type.js.map +1 -0
  245. package/dist/server/capabilities.d.ts +70 -0
  246. package/dist/server/capabilities.js +152 -0
  247. package/dist/server/capabilities.js.map +1 -0
  248. package/dist/server/checkout.d.ts +128 -0
  249. package/dist/server/checkout.js +296 -0
  250. package/dist/server/checkout.js.map +1 -0
  251. package/dist/server/forge/github.d.ts +513 -0
  252. package/dist/server/forge/github.js +2364 -0
  253. package/dist/server/forge/github.js.map +1 -0
  254. package/dist/server/forge/index.d.ts +40 -0
  255. package/dist/server/forge/index.js +72 -0
  256. package/dist/server/forge/index.js.map +1 -0
  257. package/dist/server/forge/types.d.ts +242 -0
  258. package/dist/server/forge/types.js +2 -0
  259. package/dist/server/forge/types.js.map +1 -0
  260. package/dist/server/fs-browse.d.ts +105 -0
  261. package/dist/server/fs-browse.js +182 -0
  262. package/dist/server/fs-browse.js.map +1 -0
  263. package/dist/server/git-changes.d.ts +213 -0
  264. package/dist/server/git-changes.js +555 -0
  265. package/dist/server/git-changes.js.map +1 -0
  266. package/dist/server/git.d.ts +28 -0
  267. package/dist/server/git.js +112 -0
  268. package/dist/server/git.js.map +1 -0
  269. package/dist/server/github.d.ts +9 -0
  270. package/dist/server/github.js +8 -0
  271. package/dist/server/github.js.map +1 -0
  272. package/dist/server/launch-key.d.ts +7 -0
  273. package/dist/server/launch-key.js +33 -0
  274. package/dist/server/launch-key.js.map +1 -0
  275. package/dist/server/open-in-app.d.ts +66 -0
  276. package/dist/server/open-in-app.js +211 -0
  277. package/dist/server/open-in-app.js.map +1 -0
  278. package/dist/server/open-in-terminal.d.ts +70 -0
  279. package/dist/server/open-in-terminal.js +179 -0
  280. package/dist/server/open-in-terminal.js.map +1 -0
  281. package/dist/server/pr.d.ts +7 -0
  282. package/dist/server/pr.js +7 -0
  283. package/dist/server/pr.js.map +1 -0
  284. package/dist/server/project-context.d.ts +120 -0
  285. package/dist/server/project-context.js +182 -0
  286. package/dist/server/project-context.js.map +1 -0
  287. package/dist/server/provider-action-gate.d.ts +8 -0
  288. package/dist/server/provider-action-gate.js +56 -0
  289. package/dist/server/provider-action-gate.js.map +1 -0
  290. package/dist/server/provider-auth-runtime.d.ts +21 -0
  291. package/dist/server/provider-auth-runtime.js +66 -0
  292. package/dist/server/provider-auth-runtime.js.map +1 -0
  293. package/dist/server/server.d.ts +13138 -0
  294. package/dist/server/server.js +5263 -0
  295. package/dist/server/server.js.map +1 -0
  296. package/dist/server/static-ui.d.ts +49 -0
  297. package/dist/server/static-ui.js +92 -0
  298. package/dist/server/static-ui.js.map +1 -0
  299. package/dist/server/validators.d.ts +97 -0
  300. package/dist/server/validators.js +86 -0
  301. package/dist/server/validators.js.map +1 -0
  302. package/dist/server/ws.d.ts +85 -0
  303. package/dist/server/ws.js +218 -0
  304. package/dist/server/ws.js.map +1 -0
  305. package/dist/server/wsl.d.ts +25 -0
  306. package/dist/server/wsl.js +92 -0
  307. package/dist/server/wsl.js.map +1 -0
  308. package/dist/server-install/engine.d.ts +50 -0
  309. package/dist/server-install/engine.js +324 -0
  310. package/dist/server-install/engine.js.map +1 -0
  311. package/dist/server-install/platforms/macosx-ngrok.d.ts +6 -0
  312. package/dist/server-install/platforms/macosx-ngrok.js +345 -0
  313. package/dist/server-install/platforms/macosx-ngrok.js.map +1 -0
  314. package/dist/server-install/platforms/ubuntu-vps.d.ts +78 -0
  315. package/dist/server-install/platforms/ubuntu-vps.js +1016 -0
  316. package/dist/server-install/platforms/ubuntu-vps.js.map +1 -0
  317. package/dist/server-install/state.d.ts +52 -0
  318. package/dist/server-install/state.js +182 -0
  319. package/dist/server-install/state.js.map +1 -0
  320. package/dist/server-install/steps.d.ts +109 -0
  321. package/dist/server-install/steps.js +334 -0
  322. package/dist/server-install/steps.js.map +1 -0
  323. package/dist/server-install/strategies.d.ts +4 -0
  324. package/dist/server-install/strategies.js +20 -0
  325. package/dist/server-install/strategies.js.map +1 -0
  326. package/dist/server-install/types.d.ts +287 -0
  327. package/dist/server-install/types.js +121 -0
  328. package/dist/server-install/types.js.map +1 -0
  329. package/dist/server-install/ui.d.ts +42 -0
  330. package/dist/server-install/ui.js +130 -0
  331. package/dist/server-install/ui.js.map +1 -0
  332. package/dist/skills-banner.d.ts +22 -0
  333. package/dist/skills-banner.js +41 -0
  334. package/dist/skills-banner.js.map +1 -0
  335. package/dist/skills-remote.d.ts +84 -0
  336. package/dist/skills-remote.js +468 -0
  337. package/dist/skills-remote.js.map +1 -0
  338. package/dist/skills-update.d.ts +88 -0
  339. package/dist/skills-update.js +392 -0
  340. package/dist/skills-update.js.map +1 -0
  341. package/dist/skills.d.ts +82 -0
  342. package/dist/skills.js +251 -0
  343. package/dist/skills.js.map +1 -0
  344. package/dist/todos.d.ts +48 -0
  345. package/dist/todos.js +201 -0
  346. package/dist/todos.js.map +1 -0
  347. package/dist/ui-state.d.ts +26 -0
  348. package/dist/ui-state.js +38 -0
  349. package/dist/ui-state.js.map +1 -0
  350. package/dist/update-check.d.ts +12 -0
  351. package/dist/update-check.js +41 -0
  352. package/dist/update-check.js.map +1 -0
  353. package/dist/workflows/load.d.ts +15 -0
  354. package/dist/workflows/load.js +56 -0
  355. package/dist/workflows/load.js.map +1 -0
  356. package/dist/workflows/run.d.ts +758 -0
  357. package/dist/workflows/run.js +3389 -0
  358. package/dist/workflows/run.js.map +1 -0
  359. package/dist/workflows/types.d.ts +153 -0
  360. package/dist/workflows/types.js +212 -0
  361. package/dist/workflows/types.js.map +1 -0
  362. package/dist/workspace/agent-accounts.d.ts +153 -0
  363. package/dist/workspace/agent-accounts.js +304 -0
  364. package/dist/workspace/agent-accounts.js.map +1 -0
  365. package/dist/workspace/agent-profiles.d.ts +78 -0
  366. package/dist/workspace/agent-profiles.js +115 -0
  367. package/dist/workspace/agent-profiles.js.map +1 -0
  368. package/dist/workspace/config.d.ts +169 -0
  369. package/dist/workspace/config.js +379 -0
  370. package/dist/workspace/config.js.map +1 -0
  371. package/dist/workspace/migrations.d.ts +45 -0
  372. package/dist/workspace/migrations.js +147 -0
  373. package/dist/workspace/migrations.js.map +1 -0
  374. package/dist/workspace/projects-cli.d.ts +25 -0
  375. package/dist/workspace/projects-cli.js +172 -0
  376. package/dist/workspace/projects-cli.js.map +1 -0
  377. package/dist/workspace/projects.d.ts +109 -0
  378. package/dist/workspace/projects.js +250 -0
  379. package/dist/workspace/projects.js.map +1 -0
  380. package/dist/workspace/semaphore.d.ts +179 -0
  381. package/dist/workspace/semaphore.js +195 -0
  382. package/dist/workspace/semaphore.js.map +1 -0
  383. package/dist/workspace/ui-state.d.ts +34 -0
  384. package/dist/workspace/ui-state.js +53 -0
  385. package/dist/workspace/ui-state.js.map +1 -0
  386. package/package.json +70 -0
  387. package/scripts/check-pack.mjs +46 -0
  388. package/scripts/inline-contract.mjs +112 -0
  389. package/scripts/install-as-command.mjs +120 -0
  390. package/scripts/mock-claude.mjs +520 -0
  391. package/scripts/mock-pi-rpc.mjs +83 -0
  392. package/scripts/sync-readme.mjs +20 -0
  393. package/scripts/test-process-usage.mjs +47 -0
  394. package/web/dist/assets/alert-dialog-B4Ofsgv7.js +1 -0
  395. package/web/dist/assets/arrow-down-Dy8dup7j.js +1 -0
  396. package/web/dist/assets/arrow-left-BJaucbhn.js +1 -0
  397. package/web/dist/assets/bundle-mjs-BT31bpU6.js +1 -0
  398. package/web/dist/assets/centered-state-duPW0phQ.js +43 -0
  399. package/web/dist/assets/chevron-right-Be4A5TCS.js +1 -0
  400. package/web/dist/assets/chunk-BO2N2NFS-DE6qKn3r.js +131 -0
  401. package/web/dist/assets/collapsible-DdcNBdSk.js +1 -0
  402. package/web/dist/assets/commit-list-CgvN9vec.js +1 -0
  403. package/web/dist/assets/compare-variants-CQA2nd65.js +1 -0
  404. package/web/dist/assets/core-BCsw8oQw.js +12 -0
  405. package/web/dist/assets/css-BsVw1vtW.js +1 -0
  406. package/web/dist/assets/diff-B6Agp5Hl.js +3 -0
  407. package/web/dist/assets/diff-stat-BoXuGkgq.js +1 -0
  408. package/web/dist/assets/diff-view-CD8XI-fj.js +6 -0
  409. package/web/dist/assets/diff-woXpYk--.js +1 -0
  410. package/web/dist/assets/dropdown-menu-B3SYw-k5.js +1 -0
  411. package/web/dist/assets/editable-title-B-hjp5wl.js +1 -0
  412. package/web/dist/assets/ellipsis-vertical-BYwzw0xl.js +1 -0
  413. package/web/dist/assets/engine-javascript-FQvzRocB.js +141 -0
  414. package/web/dist/assets/file-BRj5eISx.js +1 -0
  415. package/web/dist/assets/folder-z4oT5981.js +1 -0
  416. package/web/dist/assets/git-toolbar-owSEkYld.js +1 -0
  417. package/web/dist/assets/github-Bz2VgRX3.js +1 -0
  418. package/web/dist/assets/go-rLFTqkRN.js +1 -0
  419. package/web/dist/assets/highlighted-body-OFNGDK62-BL-MfFgl.js +1 -0
  420. package/web/dist/assets/highlighter-CdHqIwFr.js +3 -0
  421. package/web/dist/assets/html-BY76lXLH.js +1 -0
  422. package/web/dist/assets/image-preview-h3WFluuy.js +1 -0
  423. package/web/dist/assets/index-BbcQNT92.css +2 -0
  424. package/web/dist/assets/index-EtQQQ6Kj.js +7 -0
  425. package/web/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  426. package/web/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  427. package/web/dist/assets/javascript-BgS3c2Ky.js +1 -0
  428. package/web/dist/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  429. package/web/dist/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  430. package/web/dist/assets/json-qhed-kSA.js +1 -0
  431. package/web/dist/assets/jsonc-CYpm1nAK.js +1 -0
  432. package/web/dist/assets/jsx-Bz0zcwM4.js +1 -0
  433. package/web/dist/assets/lib-BQXq3kEf.js +1 -0
  434. package/web/dist/assets/lib-BxQXEXDF.js +1 -0
  435. package/web/dist/assets/markdown-BYOwaDjH.js +1 -0
  436. package/web/dist/assets/markdown-DqBKYPiB.js +2 -0
  437. package/web/dist/assets/mermaid-GHXKKRXX-C4jxqUUb.js +1 -0
  438. package/web/dist/assets/new-task-form-BdJKRBJX.js +1 -0
  439. package/web/dist/assets/pill-BQfmfpYp.js +1 -0
  440. package/web/dist/assets/project-router-DxgFZY1l.js +1 -0
  441. package/web/dist/assets/prompt-templates-B6m16gq-.js +15 -0
  442. package/web/dist/assets/python-gzcpVVnB.js +1 -0
  443. package/web/dist/assets/react-runtime-CCIEwYL0.js +9 -0
  444. package/web/dist/assets/refresh-cw-mhSpxf2a.js +1 -0
  445. package/web/dist/assets/repo-git-CUNRxR3_.js +1 -0
  446. package/web/dist/assets/rolldown-runtime-QTnfLwEv.js +1 -0
  447. package/web/dist/assets/run-diff-DsmmDVfx.js +3 -0
  448. package/web/dist/assets/run-header-BkhrseLJ.js +1 -0
  449. package/web/dist/assets/rust-Cfkwpbl8.js +1 -0
  450. package/web/dist/assets/search-x-BqDMB2g8.js +1 -0
  451. package/web/dist/assets/shellscript-CLZ0U2zV.js +1 -0
  452. package/web/dist/assets/skill-empty-hint-BWEvTggc.js +1 -0
  453. package/web/dist/assets/skills-9oR_oHse.js +1 -0
  454. package/web/dist/assets/skills-DwIxnnWO.js +1 -0
  455. package/web/dist/assets/sparkles-DIoTQpyx.js +1 -0
  456. package/web/dist/assets/sql-BsFa4tDR.js +1 -0
  457. package/web/dist/assets/square-terminal-Cc7CuQxc.js +1 -0
  458. package/web/dist/assets/tab-link-D1fQgpmO.js +1 -0
  459. package/web/dist/assets/task-changes-BKeLlDpK.js +1 -0
  460. package/web/dist/assets/task-commits-gcEFZIa5.js +1 -0
  461. package/web/dist/assets/task-files-BGAqoXTW.js +2 -0
  462. package/web/dist/assets/task-thread-DT8aUYTS.js +9 -0
  463. package/web/dist/assets/textarea-BOVbfy5C.js +1 -0
  464. package/web/dist/assets/thread-loading-CypW73KD.js +1 -0
  465. package/web/dist/assets/toml-CcmNWLt0.js +1 -0
  466. package/web/dist/assets/trash-2-CJq6LHWn.js +1 -0
  467. package/web/dist/assets/triangle-alert-CjDFvU27.js +1 -0
  468. package/web/dist/assets/tsx-udAQXfEw.js +1 -0
  469. package/web/dist/assets/typescript-bsJCZSQ-.js +1 -0
  470. package/web/dist/assets/upload-CPDZlJeK.js +1 -0
  471. package/web/dist/assets/use-desktop-5JsLmi0a.js +1 -0
  472. package/web/dist/assets/use-submit-shortcut-CHVFevty.js +1 -0
  473. package/web/dist/assets/utils-DiO6zyJd.js +64 -0
  474. package/web/dist/assets/workflows-rQDFzWRt.js +11 -0
  475. package/web/dist/assets/yaml-rwi0_p6S.js +1 -0
  476. package/web/dist/assets/zoomable-image-COWqb11v.js +1 -0
  477. package/web/dist/index.html +80 -0
  478. package/web/dist/open-mercato.svg +11 -0
@@ -0,0 +1,345 @@
1
+ import { chmodSync, existsSync, mkdirSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { dirname, join, resolve } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { CANCEL, PreflightError } from '../types.js';
6
+ import { brewInstallTool, brewRemoveHint, depCheckStep, HOSTNAME_RE, owned, shared, StepAborted, StepCancelled, verifyCommand } from '../steps.js';
7
+ /**
8
+ * The `macosx-ngrok` strategy: the app runs locally on a Mac and ngrok is the
9
+ * public front, in place of nginx+certbot. ngrok's built-in `--basic-auth` is
10
+ * the identity gate (the htpasswd equivalent), and a launchd agent is the
11
+ * autostart (the systemd equivalent). Proves the engine seam with a genuinely
12
+ * different platform — same engine, different steps.
13
+ */
14
+ const PLIST_LABEL = 'ai.cezar.ngrok';
15
+ const plistPath = () => join(homedir(), 'Library', 'LaunchAgents', `${PLIST_LABEL}.plist`);
16
+ /**
17
+ * `launchctl bootstrap` + proof the agent actually loaded. A discarded
18
+ * bootstrap exit code (malformed plist, spawn failure) used to record the
19
+ * step `done` — install reported complete with nothing running.
20
+ */
21
+ async function bootstrapVerified(ctx, uid, label, path, what) {
22
+ const code = await ctx.runner.interactive('launchctl', ['bootstrap', `gui/${uid}`, path]);
23
+ const loaded = (await ctx.runner.capture('launchctl', ['print', `gui/${uid}/${label}`])).code === 0;
24
+ if (code !== 0 || !loaded) {
25
+ throw new StepAborted(`launchctl could not load ${what} (bootstrap exit ${code}) — inspect it with: launchctl print gui/${uid}/${label}`);
26
+ }
27
+ }
28
+ /** Escape a value for inclusion in plist XML text. */
29
+ function escapeXml(s) {
30
+ return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
31
+ }
32
+ /** launchd agent that keeps an authenticated ngrok tunnel to the local cockpit up. */
33
+ export function launchdPlist(port, basicAuth, domain, ngrokBin = '/opt/homebrew/bin/ngrok') {
34
+ const args = ['http', String(port), '--basic-auth', basicAuth];
35
+ if (domain)
36
+ args.push('--domain', domain);
37
+ // Escape every arg — a password/domain with `&`, `<`, `>` would otherwise
38
+ // produce invalid plist XML and launchctl would silently fail to load it.
39
+ const argXml = [ngrokBin, ...args]
40
+ .map((a) => ` <string>${escapeXml(a)}</string>`)
41
+ .join('\n');
42
+ return `<?xml version="1.0" encoding="UTF-8"?>
43
+ <!-- Managed by cezar server-install — do not edit by hand. -->
44
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
45
+ <plist version="1.0">
46
+ <dict>
47
+ <key>Label</key>
48
+ <string>${PLIST_LABEL}</string>
49
+ <key>ProgramArguments</key>
50
+ <array>
51
+ ${argXml}
52
+ </array>
53
+ <key>RunAtLoad</key>
54
+ <true/>
55
+ <key>KeepAlive</key>
56
+ <true/>
57
+ </dict>
58
+ </plist>
59
+ `;
60
+ }
61
+ const ngrokStep = {
62
+ id: 'ngrok',
63
+ title: 'ngrok tunnel (authtoken + domain + basic-auth)',
64
+ async check(ctx) {
65
+ if (ctx.dryRun)
66
+ return false;
67
+ return verifyCommand(ctx, 'test', ['-f', plistPath()]);
68
+ },
69
+ async run(ctx) {
70
+ // 1) ngrok present?
71
+ const present = await verifyCommand(ctx, 'ngrok', ['version']);
72
+ if (!present) {
73
+ if (ctx.dryRun)
74
+ ctx.ui.info('DRY RUN — would run: brew install ngrok/ngrok/ngrok');
75
+ else
76
+ await ctx.runner.interactive('brew', ['install', 'ngrok/ngrok/ngrok']);
77
+ }
78
+ // 2) authtoken (a secret — never stored in server.json; it lives in ngrok's own config)
79
+ const token = await ctx.ui.password({
80
+ message: 'Paste your ngrok authtoken (dashboard.ngrok.com → Your Authtoken)',
81
+ validate: (v) => (v.trim() ? undefined : 'authtoken is required'),
82
+ });
83
+ if (token === CANCEL)
84
+ throw new StepCancelled();
85
+ // The token expands INSIDE the child shell: argv carries only the literal
86
+ // string `"$NGROK_AUTHTOKEN"`, so `ps` never sees the secret. It lands in
87
+ // ngrok's own config (~/Library/Application Support/ngrok/ngrok.yml, 0600
88
+ // by ngrok itself), never in server.json.
89
+ if (!ctx.dryRun) {
90
+ const code = await ctx.runner.interactive('bash', ['-c', 'ngrok config add-authtoken "$NGROK_AUTHTOKEN"'], {
91
+ env: { NGROK_AUTHTOKEN: String(token) },
92
+ });
93
+ if (code !== 0)
94
+ throw new StepAborted('ngrok rejected the authtoken (`ngrok config add-authtoken` failed) — check the token and re-run');
95
+ }
96
+ // 3) reserved domain (optional → ephemeral URL)
97
+ const domainInput = await ctx.ui.text({
98
+ message: 'Reserved ngrok domain (leave blank for an ephemeral URL that changes on restart)',
99
+ placeholder: 'cezar.ngrok.app',
100
+ // Bare hostname only — `https://…` here used to yield `--domain https://…`
101
+ // in the plist and a `https://https://…` publicUrl.
102
+ validate: (v) => (!v.trim() || HOSTNAME_RE.test(v.trim()) ? undefined : 'enter a bare hostname (no scheme), e.g. cezar.ngrok.app'),
103
+ });
104
+ if (domainInput === CANCEL)
105
+ throw new StepCancelled();
106
+ // Guard against `String(undefined)` → `"undefined"` — @clack/prompts can
107
+ // return undefined when the user accepts without typing over the placeholder.
108
+ const domain = typeof domainInput === 'string' && domainInput.trim() ? domainInput.trim() : undefined;
109
+ // 4) basic-auth identity
110
+ const user = await ctx.ui.text({
111
+ message: 'Basic-auth username for the tunnel',
112
+ placeholder: 'ops',
113
+ validate: (v) => (v.trim() ? undefined : 'username is required'),
114
+ });
115
+ if (user === CANCEL)
116
+ throw new StepCancelled();
117
+ const password = await ctx.ui.password({
118
+ message: `Basic-auth password for "${user}"`,
119
+ validate: (v) => (v.length >= 6 ? undefined : 'use at least 6 characters'),
120
+ });
121
+ if (password === CANCEL)
122
+ throw new StepCancelled();
123
+ if (!ctx.dryRun && String(password).length < 6) {
124
+ throw new StepAborted('a basic-auth password (≥6 chars) is required — run server-install without --yes to set one');
125
+ }
126
+ const basicAuth = `${String(user)}:${String(password)}`;
127
+ // 5) launchd agent (the plist embeds the basic-auth creds, like htpasswd on Linux)
128
+ const path = plistPath();
129
+ if (ctx.dryRun) {
130
+ ctx.ui.info(`DRY RUN — would write ${path} and launchctl bootstrap it.`);
131
+ }
132
+ else {
133
+ // Resolve the real ngrok binary path so the plist works on both Apple
134
+ // Silicon (/opt/homebrew/bin) and Intel (/usr/local/bin) Macs.
135
+ const ngrokBin = (await ctx.runner.capture('bash', ['-lc', 'command -v ngrok'])).stdout.trim() || '/opt/homebrew/bin/ngrok';
136
+ mkdirSync(join(homedir(), 'Library', 'LaunchAgents'), { recursive: true });
137
+ // 0600: unlike the Linux htpasswd (a hash, 0640 root:www-data), this file
138
+ // embeds the PLAINTEXT basic-auth credentials. `mode` only applies on
139
+ // create, so chmod too for re-installs over an existing 0644 plist.
140
+ writeFileSync(path, launchdPlist(ctx.state.primaryPort, basicAuth, domain, ngrokBin), { encoding: 'utf8', mode: 0o600 });
141
+ chmodSync(path, 0o600);
142
+ // Use the modern launchctl API — the legacy `launchctl load` returns
143
+ // error 5 (EIO) on recent macOS versions.
144
+ const uid = process.getuid ? process.getuid() : 0;
145
+ // Bootout any prior instance so re-installs don't collide.
146
+ await ctx.runner.capture('launchctl', ['bootout', `gui/${uid}/${PLIST_LABEL}`]);
147
+ await bootstrapVerified(ctx, uid, PLIST_LABEL, path, 'the ngrok tunnel agent');
148
+ }
149
+ if (domain) {
150
+ ctx.state.publicUrl = `https://${domain}`;
151
+ ctx.state.ephemeral = false;
152
+ }
153
+ else {
154
+ ctx.state.ephemeral = true;
155
+ ctx.ui.note('No reserved domain — the tunnel URL is ephemeral and changes each restart. Find it at http://localhost:4040.', 'ngrok');
156
+ }
157
+ return {
158
+ artifacts: [
159
+ shared('ngrok-config', { name: 'authtoken', removeHint: 'ngrok config add-authtoken "" (or edit ~/Library/Application Support/ngrok/ngrok.yml)' }),
160
+ owned('launchd', { name: PLIST_LABEL, path }),
161
+ ],
162
+ };
163
+ },
164
+ async undo(ctx, created) {
165
+ // Work from the static label/path, not just the recorded artifact — a step
166
+ // satisfied via check() records `created: null`, and the agent (whose plist
167
+ // holds the basic-auth credentials) must still be removed.
168
+ const path = (created?.artifacts ?? []).find((a) => a.type === 'launchd')?.path ?? plistPath();
169
+ if (ctx.dryRun) {
170
+ ctx.ui.info('DRY RUN — would launchctl bootout and remove the ngrok agent.');
171
+ }
172
+ else {
173
+ const uid = process.getuid ? process.getuid() : 0;
174
+ await ctx.runner.capture('launchctl', ['bootout', `gui/${uid}/${PLIST_LABEL}`]);
175
+ rmSync(path, { force: true });
176
+ }
177
+ const cfg = (created?.artifacts ?? []).find((a) => a.type === 'ngrok-config');
178
+ if (cfg) {
179
+ ctx.ui.note(`The ngrok authtoken was left in ngrok's own config — remove it yourself if you want it gone:\n${cfg.removeHint ?? ''}`, 'ngrok');
180
+ }
181
+ },
182
+ };
183
+ /* ── autostart: run cezar itself as a launchd agent ─────────────────── */
184
+ const CEZAR_PLIST_LABEL = 'ai.cezar.cockpit';
185
+ const OFFICIAL_CLI_PKG = 'cezarion';
186
+ const cezarPlistPath = () => join(homedir(), 'Library', 'LaunchAgents', `${CEZAR_PLIST_LABEL}.plist`);
187
+ /** Resolve the argv array for the cezar launchd agent, mirroring how the CLI was launched. */
188
+ async function resolveCezarArgv(ctx) {
189
+ const node = process.execPath;
190
+ const pkgRoot = resolve(fileURLToPath(new URL('../../..', import.meta.url)));
191
+ const entry = join(pkgRoot, 'dist', 'index.js');
192
+ const npxPath = join(dirname(node), 'npx');
193
+ if (/[/\\]_npx[/\\]/.test(pkgRoot))
194
+ return [npxPath, '--yes', OFFICIAL_CLI_PKG];
195
+ if (ctx.dryRun || existsSync(entry))
196
+ return [node, entry];
197
+ const out = (await ctx.runner.capture('bash', ['-lc', `command -v ${OFFICIAL_CLI_PKG} || command -v cez`])).stdout.trim();
198
+ const globalBin = out.split('\n').map((s) => s.trim()).filter(Boolean).pop();
199
+ if (globalBin)
200
+ return [node, globalBin];
201
+ // No runnable cezar → installing a KeepAlive agent would make launchd
202
+ // respawn-throttle a permanently failing job across reboots. Fail the step.
203
+ throw new StepAborted(`could not locate a runnable cezar (${entry} missing, no global ${OFFICIAL_CLI_PKG}) — ` +
204
+ `install it (npm i -g ${OFFICIAL_CLI_PKG}) or build the checkout, then re-run with --reconfigure autostart`);
205
+ }
206
+ /** launchd agent that keeps the cezar cockpit running on the given port. */
207
+ export function cezarLaunchdPlist(repoRoot, port, argv) {
208
+ // Give the agent the operator's PATH so cezar can spawn claude/gh/codex.
209
+ const pathDirs = [dirname(process.execPath), ...(process.env.PATH ?? '').split(':'), '/usr/local/bin', '/usr/bin', '/bin']
210
+ .filter((d, i, a) => d && d !== '.' && a.indexOf(d) === i);
211
+ const fullArgv = [...argv, 'serve', '--no-open', '--port', String(port)];
212
+ const argXml = fullArgv.map((a) => ` <string>${escapeXml(a)}</string>`).join('\n');
213
+ return `<?xml version="1.0" encoding="UTF-8"?>
214
+ <!-- Managed by cezar server-install — do not edit by hand. -->
215
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
216
+ <plist version="1.0">
217
+ <dict>
218
+ <key>Label</key>
219
+ <string>${CEZAR_PLIST_LABEL}</string>
220
+ <key>ProgramArguments</key>
221
+ <array>
222
+ ${argXml}
223
+ </array>
224
+ <key>WorkingDirectory</key>
225
+ <string>${escapeXml(repoRoot)}</string>
226
+ <key>EnvironmentVariables</key>
227
+ <dict>
228
+ <key>CEZ_REMOTE</key>
229
+ <string>1</string>
230
+ <key>PATH</key>
231
+ <string>${escapeXml(pathDirs.join(':'))}</string>
232
+ </dict>
233
+ <key>RunAtLoad</key>
234
+ <true/>
235
+ <key>KeepAlive</key>
236
+ <true/>
237
+ </dict>
238
+ </plist>
239
+ `;
240
+ }
241
+ const autostartStep = {
242
+ id: 'autostart',
243
+ title: 'Run cezar as a service (launchd — starts now + on boot)',
244
+ async check(ctx) {
245
+ if (ctx.dryRun)
246
+ return false;
247
+ return verifyCommand(ctx, 'test', ['-f', cezarPlistPath()]);
248
+ },
249
+ async run(ctx) {
250
+ const argv = await resolveCezarArgv(ctx);
251
+ const path = cezarPlistPath();
252
+ if (ctx.dryRun) {
253
+ ctx.ui.info(`DRY RUN — would write ${path} and launchctl bootstrap it.`);
254
+ }
255
+ else {
256
+ mkdirSync(join(homedir(), 'Library', 'LaunchAgents'), { recursive: true });
257
+ writeFileSync(path, cezarLaunchdPlist(ctx.repoRoot, ctx.state.primaryPort, argv), { encoding: 'utf8', mode: 0o600 });
258
+ chmodSync(path, 0o600);
259
+ const uid = process.getuid ? process.getuid() : 0;
260
+ await ctx.runner.capture('launchctl', ['bootout', `gui/${uid}/${CEZAR_PLIST_LABEL}`]);
261
+ await bootstrapVerified(ctx, uid, CEZAR_PLIST_LABEL, path, 'the cezar cockpit agent');
262
+ }
263
+ return { artifacts: [owned('launchd', { name: CEZAR_PLIST_LABEL, path })] };
264
+ },
265
+ async undo(ctx, created) {
266
+ // Static label/path fallback — see the ngrok step's undo.
267
+ const path = (created?.artifacts ?? []).find((a) => a.type === 'launchd')?.path ?? cezarPlistPath();
268
+ if (ctx.dryRun) {
269
+ ctx.ui.info('DRY RUN — would launchctl bootout and remove the cezar agent.');
270
+ }
271
+ else {
272
+ const uid = process.getuid ? process.getuid() : 0;
273
+ await ctx.runner.capture('launchctl', ['bootout', `gui/${uid}/${CEZAR_PLIST_LABEL}`]);
274
+ rmSync(path, { force: true });
275
+ }
276
+ },
277
+ };
278
+ const identityStep = {
279
+ id: 'identity',
280
+ title: 'Identity check (ngrok basic-auth active)',
281
+ async check() {
282
+ return false;
283
+ },
284
+ async run(ctx) {
285
+ if (ctx.dryRun) {
286
+ ctx.ui.info('DRY RUN — would confirm the ngrok tunnel is up and basic-auth is enforced.');
287
+ return { artifacts: [] };
288
+ }
289
+ // ngrok needs a moment after launchctl bootstrap to bind to :4040.
290
+ // Retry a few times with a short delay before giving up.
291
+ let up = false;
292
+ for (let attempt = 0; attempt < 5 && !up; attempt++) {
293
+ if (attempt > 0)
294
+ await new Promise((r) => setTimeout(r, 1500));
295
+ up = await verifyCommand(ctx, 'curl', ['-s', 'http://localhost:4040/api/tunnels'], (r) => r.stdout.includes('public_url'));
296
+ }
297
+ if (up)
298
+ ctx.ui.success('ngrok tunnel is up (basic-auth enforced at the ngrok edge).');
299
+ else
300
+ ctx.ui.warn('Could not reach the ngrok local API (localhost:4040) — check the tunnel started.');
301
+ return { artifacts: [] };
302
+ },
303
+ async undo() {
304
+ // nothing created
305
+ },
306
+ };
307
+ export const macosxNgrok = {
308
+ id: 'macosx-ngrok',
309
+ label: 'macOS + ngrok',
310
+ async preflight(ctx) {
311
+ if (ctx.dryRun) {
312
+ ctx.ui.info('DRY RUN — skipping OS preflight.');
313
+ return;
314
+ }
315
+ if (!(await ctx.runner.capture('uname', ['-s'])).stdout.includes('Darwin')) {
316
+ throw new PreflightError('macosx-ngrok requires macOS. On a Linux VPS use --platform ubuntu-vps.');
317
+ }
318
+ },
319
+ steps() {
320
+ return [
321
+ depCheckStep({ installTool: brewInstallTool, removeHint: brewRemoveHint }),
322
+ autostartStep,
323
+ ngrokStep,
324
+ identityStep,
325
+ ];
326
+ },
327
+ async redeploy(ctx) {
328
+ // Restart both the cezar cockpit and the ngrok tunnel, then re-verify.
329
+ if (ctx.dryRun) {
330
+ ctx.ui.info('DRY RUN — would restart the cezar and ngrok launchd agents and re-verify.');
331
+ return;
332
+ }
333
+ const uid = process.getuid ? process.getuid() : 0;
334
+ ctx.ui.info('Redeploying — restarting the cezar cockpit.');
335
+ const cezarCode = await ctx.runner.interactive('launchctl', ['kickstart', '-k', `gui/${uid}/${CEZAR_PLIST_LABEL}`]);
336
+ if (cezarCode !== 0)
337
+ ctx.ui.warn(`launchctl kickstart returned non-zero — check \`launchctl print gui/${uid}/${CEZAR_PLIST_LABEL}\`.`);
338
+ ctx.ui.info('Redeploying — restarting the ngrok tunnel.');
339
+ const code = await ctx.runner.interactive('launchctl', ['kickstart', '-k', `gui/${uid}/${PLIST_LABEL}`]);
340
+ if (code !== 0)
341
+ ctx.ui.warn(`launchctl kickstart returned non-zero — check \`launchctl print gui/${uid}/${PLIST_LABEL}\`.`);
342
+ await identityStep.run(ctx);
343
+ },
344
+ };
345
+ //# sourceMappingURL=macosx-ngrok.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macosx-ngrok.js","sourceRoot":"","sources":["../../../src/server-install/platforms/macosx-ngrok.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAmF,MAAM,aAAa,CAAC;AACtI,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEnJ;;;;;;GAMG;AAEH,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;AAEnG;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,GAAmB,EAAE,GAAW,EAAE,KAAa,EAAE,IAAY,EAAE,IAAY;IAC1G,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IACpG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,WAAW,CACnB,4BAA4B,IAAI,oBAAoB,IAAI,4CAA4C,GAAG,IAAI,KAAK,EAAE,CACnH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,SAAiB,EAAE,MAAe,EAAE,QAAQ,GAAG,yBAAyB;IACjH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;SACpD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO;;;;;;cAMK,WAAW;;;EAGvB,MAAM;;;;;;;;CAQP,CAAC;AACF,CAAC;AAED,MAAM,SAAS,GAAgB;IAC7B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,gDAAgD;IACvD,KAAK,CAAC,KAAK,CAAC,GAAG;QACb,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC7B,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,oBAAoB;QACpB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,MAAM;gBAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;;gBAC9E,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,wFAAwF;QACxF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,mEAAmE;YAC5E,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC;SAClE,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,aAAa,EAAE,CAAC;QAChD,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,0CAA0C;QAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,+CAA+C,CAAC,EAAE;gBACzG,GAAG,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;aACxC,CAAC,CAAC;YACH,IAAI,IAAI,KAAK,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,iGAAiG,CAAC,CAAC;QAC3I,CAAC;QAED,gDAAgD;QAChD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;YACpC,OAAO,EAAE,kFAAkF;YAC3F,WAAW,EAAE,iBAAiB;YAC9B,2EAA2E;YAC3E,oDAAoD;YACpD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,yDAAyD,CAAC;SACnI,CAAC,CAAC;QACH,IAAI,WAAW,KAAK,MAAM;YAAE,MAAM,IAAI,aAAa,EAAE,CAAC;QACtD,yEAAyE;QACzE,8EAA8E;QAC9E,MAAM,MAAM,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtG,yBAAyB;QACzB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;YAC7B,OAAO,EAAE,oCAAoC;YAC7C,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC;SACjE,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,aAAa,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC;YACrC,OAAO,EAAE,4BAA4B,IAAI,GAAG;YAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC;SAC3E,CAAC,CAAC;QACH,IAAI,QAAQ,KAAK,MAAM;YAAE,MAAM,IAAI,aAAa,EAAE,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,WAAW,CAAC,4FAA4F,CAAC,CAAC;QACtH,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAExD,mFAAmF;QACnF,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,IAAI,8BAA8B,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,+DAA+D;YAC/D,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,yBAAyB,CAAC;YAE5H,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,0EAA0E;YAC1E,sEAAsE;YACtE,oEAAoE;YACpE,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzH,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEvB,qEAAqE;YACrE,0CAA0C;YAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,2DAA2D;YAC3D,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,MAAM,EAAE,CAAC;YAC1C,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YAC3B,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,8GAA8G,EAAE,OAAO,CAAC,CAAC;QACvI,CAAC;QAED,OAAO;YACL,SAAS,EAAE;gBACT,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,uFAAuF,EAAE,CAAC;gBAClJ,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aAC9C;SACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO;QACrB,2EAA2E;QAC3E,4EAA4E;QAC5E,2DAA2D;QAC3D,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC;QAC/F,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAC9E,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,EAAE,CAAC,IAAI,CACT,iGAAiG,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,EACvH,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC;AAEF,2EAA2E;AAE3E,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,gBAAgB,GAAG,UAAU,CAAC;AACpC,MAAM,cAAc,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,iBAAiB,QAAQ,CAAC,CAAC;AAE9G,8FAA8F;AAC9F,KAAK,UAAU,gBAAgB,CAAC,GAAmB;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAE3C,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChF,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,gBAAgB,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1H,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7E,IAAI,SAAS;QAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAExC,sEAAsE;IACtE,4EAA4E;IAC5E,MAAM,IAAI,WAAW,CACnB,sCAAsC,KAAK,uBAAuB,gBAAgB,MAAM;QACtF,wBAAwB,gBAAgB,mEAAmE,CAC9G,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAc;IAC9E,yEAAyE;IACzE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,CAAC;SACvH,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF,OAAO;;;;;;cAMK,iBAAiB;;;EAG7B,MAAM;;;cAGM,SAAS,CAAC,QAAQ,CAAC;;;;;;gBAMjB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;;;;;;CAQ5C,CAAC;AACF,CAAC;AAED,MAAM,aAAa,GAAgB;IACjC,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,yDAAyD;IAChE,KAAK,CAAC,KAAK,CAAC,GAAG;QACb,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC7B,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,IAAI,8BAA8B,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrH,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACtF,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO;QACrB,0DAA0D;QAC1D,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,IAAI,IAAI,cAAc,EAAE,CAAC;QACpG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACtF,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,YAAY,GAAgB;IAChC,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,0CAA0C;IACjD,KAAK,CAAC,KAAK;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;YAC1F,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAC3B,CAAC;QACD,mEAAmE;QACnE,yDAAyD;QACzD,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,OAAO,GAAG,CAAC;gBAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/D,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,mCAAmC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7H,CAAC;QACD,IAAI,EAAE;YAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC;;YACjF,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;QACrG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,IAAI;QACR,kBAAkB;IACpB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,eAAe;IACtB,KAAK,CAAC,SAAS,CAAC,GAAmB;QACjC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,cAAc,CAAC,wEAAwE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IACD,KAAK;QACH,OAAO;YACL,YAAY,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;YAC1E,aAAa;YACb,SAAS;YACT,YAAY;SACb,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,GAAmB;QAChC,uEAAuE;QACvE,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,SAAS,KAAK,CAAC;YAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uEAAuE,GAAG,IAAI,iBAAiB,KAAK,CAAC,CAAC;QACvI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;QACzG,IAAI,IAAI,KAAK,CAAC;YAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uEAAuE,GAAG,IAAI,WAAW,KAAK,CAAC,CAAC;QAC5H,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { type InstallContext, type PlatformStrategy } from '../types.ts';
2
+ /**
3
+ * Name of the process listening on `port`, or null when nothing is. Best effort
4
+ * (`ss` output varies, and without root the process name may be hidden) — used
5
+ * only to make a port collision explainable, never to gate the install.
6
+ */
7
+ export declare function portListener(ctx: InstallContext, port: number): Promise<string | null>;
8
+ /** The interface the cockpit listens on — loopback unless an external-proxy
9
+ * install bound it somewhere the proxy can reach (e.g. the docker bridge). */
10
+ export declare function upstreamHost(ctx: InstallContext): string;
11
+ /**
12
+ * The nginx server block: auth_basic identity + SSE-safe proxy to loopback.
13
+ * `serverName` defaults to the catch-all `_`; the SSL step rewrites it to the
14
+ * real domain so the `certbot --nginx` plugin can find this vhost to edit.
15
+ */
16
+ export declare function nginxVhost(port: number, serverName?: string, htpasswd?: string): string;
17
+ /**
18
+ * systemd unit that runs cezar loopback-bound with CEZ_REMOTE=1.
19
+ *
20
+ * `execStart` must be an ABSOLUTE command — systemd resolves the ExecStart
21
+ * executable against its OWN compiled-in PATH (/usr/local/bin:/usr/bin:…), NOT
22
+ * the unit's `Environment=PATH`, so a bare `cezar` gives status=203/EXEC
23
+ * ("Unable to locate executable"). `resolveExecStart` therefore returns an
24
+ * absolute `"<node> <entry.js>"`. We still set `Environment=PATH` (with the
25
+ * installer's node dir) for any child process the app spawns.
26
+ */
27
+ export declare function systemdUnit(repoRoot: string, port: number, scope: 'user' | 'system', execStart: string, bindHost?: string): string;
28
+ /**
29
+ * Decide the absolute ExecStart command for the service, mirroring how the
30
+ * installer itself was launched so the box keeps running the same cezar:
31
+ *
32
+ * - Launched via `npx <alias>` (the CLI package lives in npm's ephemeral
33
+ * `_npx` cache, which gets cleaned): the service can't point there, so it
34
+ * reinstalls-and-runs the same way — `<abs npx> --yes cezarion` (bare `npx`
35
+ * would 203/EXEC, so npx is made absolute).
36
+ * - A stable install (a checkout, or a global `cezarion`/`cez`): run the
37
+ * CLI's own built entry `<node> <pkg>/dist/index.js`, or a resolved global
38
+ * bin. Absolute node + absolute script → systemd never resolves off PATH.
39
+ */
40
+ export declare function serviceExecStart(opts: {
41
+ node: string;
42
+ pkgRoot: string;
43
+ entry: string;
44
+ entryExists: boolean;
45
+ npxPath: string;
46
+ globalBin?: string;
47
+ }): string;
48
+ /** True when a systemd `ExecStart` string launches cezar via npx (the unpinned
49
+ * `npx --yes cezar-cli` form) rather than a checkout (`<node> …/dist/index.js`)
50
+ * or a global bin. */
51
+ export declare function isNpxExecStart(execStart: string): boolean;
52
+ /** True when the unit is an npx launch of a package that is NOT ours — in practice a unit
53
+ * installed by upstream cezar as `npx --yes cezar-cli`, before this clone took its own npm
54
+ * identity (#23).
55
+ *
56
+ * Deliberately not treated as ours to refresh: clearing another package's npx cache would make
57
+ * the next restart fetch THAT package's `latest`, silently moving the box onto upstream's newest
58
+ * release — the shadowing the rename exists to prevent. But saying nothing is worse, because
59
+ * `server-deploy` then reports a green restart while the running version is unchanged. So the
60
+ * caller warns and names the remedy.
61
+ *
62
+ * A checkout unit (`<node> …/dist/index.js`) is not foreign, including one running out of an
63
+ * `_npx` directory: `\bnpx\b` needs a non-word character before `npx`, and `_` is a word
64
+ * character, so `_npx` never matches. A global-bin unit names no `npx` at all and is likewise
65
+ * excluded — its restart picks up whatever the global bin now points at. */
66
+ export declare function isForeignNpxExecStart(execStart: string): boolean;
67
+ /**
68
+ * The npx trap (#696): `npx --yes cezarion` caches the resolved package under
69
+ * `~/.npm/_npx/<hash>` and reuses it forever — a service restart re-execs the
70
+ * SAME cached build, so `server-deploy` would never actually update. Before
71
+ * restarting an npx-based unit we delete the cache entries that contain
72
+ * `cezarion`, so the next launch re-resolves `latest`. Surgical: other npx
73
+ * packages' caches are left untouched. A checkout / global-bin unit has no
74
+ * npx cache to clear and is skipped (its restart picks up the new build/global
75
+ * directly).
76
+ */
77
+ export declare function refreshNpxCacheForRedeploy(ctx: InstallContext, execStart: string): void;
78
+ export declare const ubuntuVps: PlatformStrategy;