@omnitron-dev/omnitron 0.3.0 → 0.3.2

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 (1786) hide show
  1. package/README.md +579 -0
  2. package/data/operations/managed-kernel.mjs +302 -0
  3. package/data/operations/stage-kernel.mjs +125 -0
  4. package/dist/BUILD.json +4 -3
  5. package/dist/cli/exit-after-output.d.ts +3 -0
  6. package/dist/cli/exit-after-output.d.ts.map +1 -0
  7. package/dist/cli/exit-after-output.js +11 -0
  8. package/dist/cli/exit-after-output.js.map +1 -0
  9. package/dist/cli/installed.d.ts +3 -0
  10. package/dist/cli/installed.d.ts.map +1 -0
  11. package/dist/cli/installed.js +17 -0
  12. package/dist/cli/installed.js.map +1 -0
  13. package/dist/cli/omnitron.js +455 -99
  14. package/dist/cli/omnitron.js.map +1 -1
  15. package/dist/cli/output-command.d.ts +13 -0
  16. package/dist/cli/output-command.d.ts.map +1 -0
  17. package/dist/cli/output-command.js +48 -0
  18. package/dist/cli/output-command.js.map +1 -0
  19. package/dist/cluster/cluster.rpc-service.d.ts +9 -77
  20. package/dist/cluster/cluster.rpc-service.d.ts.map +1 -1
  21. package/dist/cluster/cluster.rpc-service.js +20 -107
  22. package/dist/cluster/cluster.rpc-service.js.map +1 -1
  23. package/dist/cluster/enrollment.d.ts +9 -0
  24. package/dist/cluster/enrollment.d.ts.map +1 -0
  25. package/dist/cluster/enrollment.js +49 -0
  26. package/dist/cluster/enrollment.js.map +1 -0
  27. package/dist/cluster/index.d.ts +1 -1
  28. package/dist/cluster/index.d.ts.map +1 -1
  29. package/dist/cluster/leader-election.d.ts +39 -211
  30. package/dist/cluster/leader-election.d.ts.map +1 -1
  31. package/dist/cluster/leader-election.js +235 -512
  32. package/dist/cluster/leader-election.js.map +1 -1
  33. package/dist/cluster/mesh-link.d.ts +18 -51
  34. package/dist/cluster/mesh-link.d.ts.map +1 -1
  35. package/dist/cluster/mesh-link.js +66 -78
  36. package/dist/cluster/mesh-link.js.map +1 -1
  37. package/dist/cluster/mesh.d.ts +3 -1
  38. package/dist/cluster/mesh.d.ts.map +1 -1
  39. package/dist/cluster/mesh.js +76 -60
  40. package/dist/cluster/mesh.js.map +1 -1
  41. package/dist/cluster/slave-connector.d.ts +42 -6
  42. package/dist/cluster/slave-connector.d.ts.map +1 -1
  43. package/dist/cluster/slave-connector.js +349 -196
  44. package/dist/cluster/slave-connector.js.map +1 -1
  45. package/dist/cluster/standalone-infrastructure.d.ts +3 -0
  46. package/dist/cluster/standalone-infrastructure.d.ts.map +1 -0
  47. package/dist/cluster/standalone-infrastructure.js +25 -0
  48. package/dist/cluster/standalone-infrastructure.js.map +1 -0
  49. package/dist/cluster/stop-authority.d.ts +45 -0
  50. package/dist/cluster/stop-authority.d.ts.map +1 -0
  51. package/dist/cluster/stop-authority.js +112 -0
  52. package/dist/cluster/stop-authority.js.map +1 -0
  53. package/dist/commands/access.d.ts +9 -0
  54. package/dist/commands/access.d.ts.map +1 -0
  55. package/dist/commands/access.js +45 -0
  56. package/dist/commands/access.js.map +1 -0
  57. package/dist/commands/audit.d.ts +2 -0
  58. package/dist/commands/audit.d.ts.map +1 -1
  59. package/dist/commands/audit.js +9 -4
  60. package/dist/commands/audit.js.map +1 -1
  61. package/dist/commands/backend.d.ts +17 -0
  62. package/dist/commands/backend.d.ts.map +1 -0
  63. package/dist/commands/backend.js +264 -0
  64. package/dist/commands/backend.js.map +1 -0
  65. package/dist/commands/backup.d.ts +5 -0
  66. package/dist/commands/backup.d.ts.map +1 -1
  67. package/dist/commands/backup.js +17 -2
  68. package/dist/commands/backup.js.map +1 -1
  69. package/dist/commands/cluster.d.ts.map +1 -1
  70. package/dist/commands/cluster.js +33 -42
  71. package/dist/commands/cluster.js.map +1 -1
  72. package/dist/commands/daemon-cmd.d.ts.map +1 -1
  73. package/dist/commands/daemon-cmd.js +14 -3
  74. package/dist/commands/daemon-cmd.js.map +1 -1
  75. package/dist/commands/deploy.d.ts +4 -4
  76. package/dist/commands/deploy.js +4 -4
  77. package/dist/commands/discover.d.ts +2 -2
  78. package/dist/commands/discover.js +2 -2
  79. package/dist/commands/doctor.d.ts +11 -29
  80. package/dist/commands/doctor.d.ts.map +1 -1
  81. package/dist/commands/doctor.js +47 -45
  82. package/dist/commands/doctor.js.map +1 -1
  83. package/dist/commands/files.d.ts +19 -0
  84. package/dist/commands/files.d.ts.map +1 -0
  85. package/dist/commands/files.js +226 -0
  86. package/dist/commands/files.js.map +1 -0
  87. package/dist/commands/fleet-asking.d.ts +2 -2
  88. package/dist/commands/fleet-asking.js +2 -2
  89. package/dist/commands/fleet-recover.d.ts +2 -0
  90. package/dist/commands/fleet-recover.d.ts.map +1 -0
  91. package/dist/commands/fleet-recover.js +30 -0
  92. package/dist/commands/fleet-recover.js.map +1 -0
  93. package/dist/commands/fleet-rollout.d.ts +25 -0
  94. package/dist/commands/fleet-rollout.d.ts.map +1 -0
  95. package/dist/commands/fleet-rollout.js +155 -0
  96. package/dist/commands/fleet-rollout.js.map +1 -0
  97. package/dist/commands/fleet.d.ts.map +1 -1
  98. package/dist/commands/fleet.js +1 -0
  99. package/dist/commands/fleet.js.map +1 -1
  100. package/dist/commands/health-check.d.ts.map +1 -1
  101. package/dist/commands/health-check.js +13 -6
  102. package/dist/commands/health-check.js.map +1 -1
  103. package/dist/commands/host-ingress.d.ts +3 -0
  104. package/dist/commands/host-ingress.d.ts.map +1 -0
  105. package/dist/commands/host-ingress.js +31 -0
  106. package/dist/commands/host-ingress.js.map +1 -0
  107. package/dist/commands/infra.d.ts +7 -4
  108. package/dist/commands/infra.d.ts.map +1 -1
  109. package/dist/commands/infra.js +152 -60
  110. package/dist/commands/infra.js.map +1 -1
  111. package/dist/commands/logs.d.ts +7 -24
  112. package/dist/commands/logs.d.ts.map +1 -1
  113. package/dist/commands/logs.js +117 -41
  114. package/dist/commands/logs.js.map +1 -1
  115. package/dist/commands/metrics.d.ts.map +1 -1
  116. package/dist/commands/metrics.js +7 -1
  117. package/dist/commands/metrics.js.map +1 -1
  118. package/dist/commands/migrate.d.ts +8 -0
  119. package/dist/commands/migrate.d.ts.map +1 -0
  120. package/dist/commands/migrate.js +64 -0
  121. package/dist/commands/migrate.js.map +1 -0
  122. package/dist/commands/node-reconcile.d.ts +8 -0
  123. package/dist/commands/node-reconcile.d.ts.map +1 -0
  124. package/dist/commands/node-reconcile.js +49 -0
  125. package/dist/commands/node-reconcile.js.map +1 -0
  126. package/dist/commands/node.d.ts +1 -21
  127. package/dist/commands/node.d.ts.map +1 -1
  128. package/dist/commands/node.js +35 -27
  129. package/dist/commands/node.js.map +1 -1
  130. package/dist/commands/output.d.ts +3 -9
  131. package/dist/commands/output.d.ts.map +1 -1
  132. package/dist/commands/output.js +34 -25
  133. package/dist/commands/output.js.map +1 -1
  134. package/dist/commands/pipeline.d.ts +11 -2
  135. package/dist/commands/pipeline.d.ts.map +1 -1
  136. package/dist/commands/pipeline.js +82 -15
  137. package/dist/commands/pipeline.js.map +1 -1
  138. package/dist/commands/project.d.ts +10 -2
  139. package/dist/commands/project.d.ts.map +1 -1
  140. package/dist/commands/project.js +69 -3
  141. package/dist/commands/project.js.map +1 -1
  142. package/dist/commands/release-store.js +1 -1
  143. package/dist/commands/release-store.js.map +1 -1
  144. package/dist/commands/release.d.ts +5 -12
  145. package/dist/commands/release.d.ts.map +1 -1
  146. package/dist/commands/release.js +144 -36
  147. package/dist/commands/release.js.map +1 -1
  148. package/dist/commands/remote.d.ts +3 -3
  149. package/dist/commands/remote.js +3 -3
  150. package/dist/commands/scale.d.ts +1 -4
  151. package/dist/commands/scale.d.ts.map +1 -1
  152. package/dist/commands/scale.js +39 -19
  153. package/dist/commands/scale.js.map +1 -1
  154. package/dist/commands/secret-input.d.ts +3 -0
  155. package/dist/commands/secret-input.d.ts.map +1 -0
  156. package/dist/commands/secret-input.js +36 -0
  157. package/dist/commands/secret-input.js.map +1 -0
  158. package/dist/commands/secret.d.ts +4 -2
  159. package/dist/commands/secret.d.ts.map +1 -1
  160. package/dist/commands/secret.js +12 -2
  161. package/dist/commands/secret.js.map +1 -1
  162. package/dist/commands/service-resident.d.ts +25 -0
  163. package/dist/commands/service-resident.d.ts.map +1 -0
  164. package/dist/commands/service-resident.js +236 -0
  165. package/dist/commands/service-resident.js.map +1 -0
  166. package/dist/commands/service-units.d.ts +13 -1
  167. package/dist/commands/service-units.d.ts.map +1 -1
  168. package/dist/commands/service-units.js +38 -16
  169. package/dist/commands/service-units.js.map +1 -1
  170. package/dist/commands/service.d.ts +2 -24
  171. package/dist/commands/service.d.ts.map +1 -1
  172. package/dist/commands/service.js +89 -7
  173. package/dist/commands/service.js.map +1 -1
  174. package/dist/commands/stack.d.ts +11 -6
  175. package/dist/commands/stack.d.ts.map +1 -1
  176. package/dist/commands/stack.js +212 -38
  177. package/dist/commands/stack.js.map +1 -1
  178. package/dist/commands/start.d.ts +0 -21
  179. package/dist/commands/start.d.ts.map +1 -1
  180. package/dist/commands/start.js +33 -43
  181. package/dist/commands/start.js.map +1 -1
  182. package/dist/commands/status.d.ts +1 -5
  183. package/dist/commands/status.d.ts.map +1 -1
  184. package/dist/commands/status.js +5 -1
  185. package/dist/commands/status.js.map +1 -1
  186. package/dist/commands/stop.d.ts +0 -22
  187. package/dist/commands/stop.d.ts.map +1 -1
  188. package/dist/commands/stop.js +26 -86
  189. package/dist/commands/stop.js.map +1 -1
  190. package/dist/commands/system.d.ts +4 -0
  191. package/dist/commands/system.d.ts.map +1 -0
  192. package/dist/commands/system.js +41 -0
  193. package/dist/commands/system.js.map +1 -0
  194. package/dist/commands/terminal.d.ts +7 -0
  195. package/dist/commands/terminal.d.ts.map +1 -0
  196. package/dist/commands/terminal.js +184 -0
  197. package/dist/commands/terminal.js.map +1 -0
  198. package/dist/commands/topology.d.ts +3 -0
  199. package/dist/commands/topology.d.ts.map +1 -0
  200. package/dist/commands/topology.js +107 -0
  201. package/dist/commands/topology.js.map +1 -0
  202. package/dist/commands/tor.d.ts +1 -1
  203. package/dist/commands/tor.js +2 -2
  204. package/dist/commands/up.d.ts +4 -54
  205. package/dist/commands/up.d.ts.map +1 -1
  206. package/dist/commands/up.js +41 -98
  207. package/dist/commands/up.js.map +1 -1
  208. package/dist/commands/webapp.d.ts +0 -9
  209. package/dist/commands/webapp.d.ts.map +1 -1
  210. package/dist/commands/webapp.js +116 -69
  211. package/dist/commands/webapp.js.map +1 -1
  212. package/dist/config/app-path.d.ts +4 -0
  213. package/dist/config/app-path.d.ts.map +1 -0
  214. package/dist/config/app-path.js +6 -0
  215. package/dist/config/app-path.js.map +1 -0
  216. package/dist/config/defaults.d.ts.map +1 -1
  217. package/dist/config/defaults.js +9 -3
  218. package/dist/config/defaults.js.map +1 -1
  219. package/dist/config/define-ecosystem.d.ts.map +1 -1
  220. package/dist/config/define-ecosystem.js +12 -0
  221. package/dist/config/define-ecosystem.js.map +1 -1
  222. package/dist/config/index.d.ts +3 -1
  223. package/dist/config/index.d.ts.map +1 -1
  224. package/dist/config/index.js +1 -1
  225. package/dist/config/index.js.map +1 -1
  226. package/dist/config/loader-child.d.ts +2 -0
  227. package/dist/config/loader-child.d.ts.map +1 -0
  228. package/dist/config/loader-child.js +56 -0
  229. package/dist/config/loader-child.js.map +1 -0
  230. package/dist/config/loader.d.ts +7 -2
  231. package/dist/config/loader.d.ts.map +1 -1
  232. package/dist/config/loader.js +14 -27
  233. package/dist/config/loader.js.map +1 -1
  234. package/dist/config/saved.d.ts +67 -0
  235. package/dist/config/saved.d.ts.map +1 -0
  236. package/dist/config/saved.js +81 -0
  237. package/dist/config/saved.js.map +1 -0
  238. package/dist/config/types.d.ts +105 -58
  239. package/dist/config/types.d.ts.map +1 -1
  240. package/dist/daemon/backend-candidate.d.ts +32 -0
  241. package/dist/daemon/backend-candidate.d.ts.map +1 -0
  242. package/dist/daemon/backend-candidate.js +129 -0
  243. package/dist/daemon/backend-candidate.js.map +1 -0
  244. package/dist/daemon/backend-child.d.ts +5 -0
  245. package/dist/daemon/backend-child.d.ts.map +1 -0
  246. package/dist/daemon/backend-child.js +13 -0
  247. package/dist/daemon/backend-child.js.map +1 -0
  248. package/dist/daemon/backend-control.d.ts +43 -0
  249. package/dist/daemon/backend-control.d.ts.map +1 -0
  250. package/dist/daemon/backend-control.js +155 -0
  251. package/dist/daemon/backend-control.js.map +1 -0
  252. package/dist/daemon/backend-crash-recovery.d.ts +4 -0
  253. package/dist/daemon/backend-crash-recovery.d.ts.map +1 -0
  254. package/dist/daemon/backend-crash-recovery.js +136 -0
  255. package/dist/daemon/backend-crash-recovery.js.map +1 -0
  256. package/dist/daemon/backend-handoff-types.d.ts +27 -0
  257. package/dist/daemon/backend-handoff-types.d.ts.map +1 -0
  258. package/dist/daemon/backend-handoff-types.js +33 -0
  259. package/dist/daemon/backend-handoff-types.js.map +1 -0
  260. package/dist/daemon/backend-recovery-journal.d.ts +30 -0
  261. package/dist/daemon/backend-recovery-journal.d.ts.map +1 -0
  262. package/dist/daemon/backend-recovery-journal.js +67 -0
  263. package/dist/daemon/backend-recovery-journal.js.map +1 -0
  264. package/dist/daemon/backend-recovery-monitor.d.ts +35 -0
  265. package/dist/daemon/backend-recovery-monitor.d.ts.map +1 -0
  266. package/dist/daemon/backend-recovery-monitor.js +113 -0
  267. package/dist/daemon/backend-recovery-monitor.js.map +1 -0
  268. package/dist/daemon/backend-supervisor-entry.d.ts +2 -0
  269. package/dist/daemon/backend-supervisor-entry.d.ts.map +1 -0
  270. package/dist/daemon/backend-supervisor-entry.js +3 -0
  271. package/dist/daemon/backend-supervisor-entry.js.map +1 -0
  272. package/dist/daemon/backend-supervisor-main.d.ts +2 -0
  273. package/dist/daemon/backend-supervisor-main.d.ts.map +1 -0
  274. package/dist/daemon/backend-supervisor-main.js +45 -0
  275. package/dist/daemon/backend-supervisor-main.js.map +1 -0
  276. package/dist/daemon/backend-supervisor.d.ts +61 -0
  277. package/dist/daemon/backend-supervisor.d.ts.map +1 -0
  278. package/dist/daemon/backend-supervisor.js +339 -0
  279. package/dist/daemon/backend-supervisor.js.map +1 -0
  280. package/dist/daemon/backend-upgrade.d.ts +41 -0
  281. package/dist/daemon/backend-upgrade.d.ts.map +1 -0
  282. package/dist/daemon/backend-upgrade.js +444 -0
  283. package/dist/daemon/backend-upgrade.js.map +1 -0
  284. package/dist/daemon/backend.rpc-service.d.ts +11 -0
  285. package/dist/daemon/backend.rpc-service.d.ts.map +1 -0
  286. package/dist/daemon/backend.rpc-service.js +44 -0
  287. package/dist/daemon/backend.rpc-service.js.map +1 -0
  288. package/dist/daemon/daemon-client.d.ts +12 -79
  289. package/dist/daemon/daemon-client.d.ts.map +1 -1
  290. package/dist/daemon/daemon-client.js +28 -270
  291. package/dist/daemon/daemon-client.js.map +1 -1
  292. package/dist/daemon/daemon-entry.d.ts +0 -7
  293. package/dist/daemon/daemon-entry.d.ts.map +1 -1
  294. package/dist/daemon/daemon-entry.js +2 -115
  295. package/dist/daemon/daemon-entry.js.map +1 -1
  296. package/dist/daemon/daemon-main.d.ts +9 -0
  297. package/dist/daemon/daemon-main.d.ts.map +1 -0
  298. package/dist/daemon/daemon-main.js +105 -0
  299. package/dist/daemon/daemon-main.js.map +1 -0
  300. package/dist/daemon/daemon-scheduler.d.ts +8 -5
  301. package/dist/daemon/daemon-scheduler.d.ts.map +1 -1
  302. package/dist/daemon/daemon-scheduler.js +45 -73
  303. package/dist/daemon/daemon-scheduler.js.map +1 -1
  304. package/dist/daemon/daemon-state-store.service.d.ts +5 -39
  305. package/dist/daemon/daemon-state-store.service.d.ts.map +1 -1
  306. package/dist/daemon/daemon-state-store.service.js +30 -17
  307. package/dist/daemon/daemon-state-store.service.js.map +1 -1
  308. package/dist/daemon/daemon.d.ts +50 -79
  309. package/dist/daemon/daemon.d.ts.map +1 -1
  310. package/dist/daemon/daemon.js +769 -442
  311. package/dist/daemon/daemon.js.map +1 -1
  312. package/dist/daemon/daemon.module.d.ts +13 -11
  313. package/dist/daemon/daemon.module.d.ts.map +1 -1
  314. package/dist/daemon/daemon.module.js +139 -106
  315. package/dist/daemon/daemon.module.js.map +1 -1
  316. package/dist/daemon/daemon.rpc-service.d.ts +11 -19
  317. package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
  318. package/dist/daemon/daemon.rpc-service.js +89 -28
  319. package/dist/daemon/daemon.rpc-service.js.map +1 -1
  320. package/dist/daemon/darwin-owner-evidence.d.ts +57 -0
  321. package/dist/daemon/darwin-owner-evidence.d.ts.map +1 -0
  322. package/dist/daemon/darwin-owner-evidence.js +131 -0
  323. package/dist/daemon/darwin-owner-evidence.js.map +1 -0
  324. package/dist/daemon/database-startup.d.ts +7 -0
  325. package/dist/daemon/database-startup.d.ts.map +1 -0
  326. package/dist/daemon/database-startup.js +40 -0
  327. package/dist/daemon/database-startup.js.map +1 -0
  328. package/dist/daemon/entry-guard.d.ts +2 -0
  329. package/dist/daemon/entry-guard.d.ts.map +1 -0
  330. package/dist/daemon/entry-guard.js +34 -0
  331. package/dist/daemon/entry-guard.js.map +1 -0
  332. package/dist/daemon/execution-capabilities.d.ts +7 -0
  333. package/dist/daemon/execution-capabilities.d.ts.map +1 -0
  334. package/dist/daemon/execution-capabilities.js +23 -0
  335. package/dist/daemon/execution-capabilities.js.map +1 -0
  336. package/dist/daemon/execution-client.d.ts +88 -0
  337. package/dist/daemon/execution-client.d.ts.map +1 -0
  338. package/dist/daemon/execution-client.js +433 -0
  339. package/dist/daemon/execution-client.js.map +1 -0
  340. package/dist/daemon/execution-config.d.ts +7 -0
  341. package/dist/daemon/execution-config.d.ts.map +1 -0
  342. package/dist/daemon/execution-config.js +61 -0
  343. package/dist/daemon/execution-config.js.map +1 -0
  344. package/dist/daemon/execution-entry.d.ts +2 -0
  345. package/dist/daemon/execution-entry.d.ts.map +1 -0
  346. package/dist/daemon/execution-entry.js +3 -0
  347. package/dist/daemon/execution-entry.js.map +1 -0
  348. package/dist/daemon/execution-host.d.ts +133 -0
  349. package/dist/daemon/execution-host.d.ts.map +1 -0
  350. package/dist/daemon/execution-host.js +308 -0
  351. package/dist/daemon/execution-host.js.map +1 -0
  352. package/dist/daemon/execution-journal.d.ts +17 -0
  353. package/dist/daemon/execution-journal.d.ts.map +1 -0
  354. package/dist/daemon/execution-journal.js +75 -0
  355. package/dist/daemon/execution-journal.js.map +1 -0
  356. package/dist/daemon/execution-launcher.d.ts +12 -0
  357. package/dist/daemon/execution-launcher.d.ts.map +1 -0
  358. package/dist/daemon/execution-launcher.js +110 -0
  359. package/dist/daemon/execution-launcher.js.map +1 -0
  360. package/dist/daemon/execution-main.d.ts +2 -0
  361. package/dist/daemon/execution-main.d.ts.map +1 -0
  362. package/dist/daemon/execution-main.js +48 -0
  363. package/dist/daemon/execution-main.js.map +1 -0
  364. package/dist/daemon/execution-owner.d.ts +16 -0
  365. package/dist/daemon/execution-owner.d.ts.map +1 -0
  366. package/dist/daemon/execution-owner.js +97 -0
  367. package/dist/daemon/execution-owner.js.map +1 -0
  368. package/dist/daemon/execution-platform.d.ts +3 -0
  369. package/dist/daemon/execution-platform.d.ts.map +1 -0
  370. package/dist/daemon/execution-platform.js +23 -0
  371. package/dist/daemon/execution-platform.js.map +1 -0
  372. package/dist/daemon/execution-shutdown.d.ts +13 -0
  373. package/dist/daemon/execution-shutdown.d.ts.map +1 -0
  374. package/dist/daemon/execution-shutdown.js +30 -0
  375. package/dist/daemon/execution-shutdown.js.map +1 -0
  376. package/dist/daemon/managed-entry.d.ts +2 -0
  377. package/dist/daemon/managed-entry.d.ts.map +1 -0
  378. package/dist/daemon/managed-entry.js +3 -0
  379. package/dist/daemon/managed-entry.js.map +1 -0
  380. package/dist/daemon/managed-main.d.ts +2 -0
  381. package/dist/daemon/managed-main.d.ts.map +1 -0
  382. package/dist/daemon/managed-main.js +29 -0
  383. package/dist/daemon/managed-main.js.map +1 -0
  384. package/dist/daemon/managed-owner-build.d.ts +17 -0
  385. package/dist/daemon/managed-owner-build.d.ts.map +1 -0
  386. package/dist/daemon/managed-owner-build.js +108 -0
  387. package/dist/daemon/managed-owner-build.js.map +1 -0
  388. package/dist/daemon/managed-owner-entry.d.ts +2 -0
  389. package/dist/daemon/managed-owner-entry.d.ts.map +1 -0
  390. package/dist/daemon/managed-owner-entry.js +3 -0
  391. package/dist/daemon/managed-owner-entry.js.map +1 -0
  392. package/dist/daemon/managed-owner-main.d.ts +2 -0
  393. package/dist/daemon/managed-owner-main.d.ts.map +1 -0
  394. package/dist/daemon/managed-owner-main.js +53 -0
  395. package/dist/daemon/managed-owner-main.js.map +1 -0
  396. package/dist/daemon/managed-runtime.d.ts +39 -0
  397. package/dist/daemon/managed-runtime.d.ts.map +1 -0
  398. package/dist/daemon/managed-runtime.js +137 -0
  399. package/dist/daemon/managed-runtime.js.map +1 -0
  400. package/dist/daemon/network-publication.d.ts +5 -0
  401. package/dist/daemon/network-publication.d.ts.map +1 -0
  402. package/dist/daemon/network-publication.js +25 -0
  403. package/dist/daemon/network-publication.js.map +1 -0
  404. package/dist/daemon/owner-reconciliation.d.ts +58 -0
  405. package/dist/daemon/owner-reconciliation.d.ts.map +1 -0
  406. package/dist/daemon/owner-reconciliation.js +265 -0
  407. package/dist/daemon/owner-reconciliation.js.map +1 -0
  408. package/dist/daemon/pid-manager.d.ts +2 -0
  409. package/dist/daemon/pid-manager.d.ts.map +1 -1
  410. package/dist/daemon/pid-manager.js +5 -0
  411. package/dist/daemon/pid-manager.js.map +1 -1
  412. package/dist/daemon/private-control-client.d.ts +8 -0
  413. package/dist/daemon/private-control-client.d.ts.map +1 -0
  414. package/dist/daemon/private-control-client.js +41 -0
  415. package/dist/daemon/private-control-client.js.map +1 -0
  416. package/dist/daemon/recovery-state.d.ts +20 -0
  417. package/dist/daemon/recovery-state.d.ts.map +1 -0
  418. package/dist/daemon/recovery-state.js +53 -0
  419. package/dist/daemon/recovery-state.js.map +1 -0
  420. package/dist/daemon/rpc-connection.d.ts +29 -0
  421. package/dist/daemon/rpc-connection.d.ts.map +1 -0
  422. package/dist/daemon/rpc-connection.js +137 -0
  423. package/dist/daemon/rpc-connection.js.map +1 -0
  424. package/dist/daemon/runtime-installation.d.ts +58 -0
  425. package/dist/daemon/runtime-installation.d.ts.map +1 -0
  426. package/dist/daemon/runtime-installation.js +346 -0
  427. package/dist/daemon/runtime-installation.js.map +1 -0
  428. package/dist/daemon/runtime-launcher.d.ts +6 -0
  429. package/dist/daemon/runtime-launcher.d.ts.map +1 -0
  430. package/dist/daemon/runtime-launcher.js +45 -0
  431. package/dist/daemon/runtime-launcher.js.map +1 -0
  432. package/dist/daemon/schema-transition.d.ts +43 -0
  433. package/dist/daemon/schema-transition.d.ts.map +1 -0
  434. package/dist/daemon/schema-transition.js +239 -0
  435. package/dist/daemon/schema-transition.js.map +1 -0
  436. package/dist/daemon/spawn-daemon.d.ts +2 -0
  437. package/dist/daemon/spawn-daemon.d.ts.map +1 -1
  438. package/dist/daemon/spawn-daemon.js +4 -0
  439. package/dist/daemon/spawn-daemon.js.map +1 -1
  440. package/dist/daemon/startup-config.d.ts +77 -0
  441. package/dist/daemon/startup-config.d.ts.map +1 -0
  442. package/dist/daemon/startup-config.js +31 -0
  443. package/dist/daemon/startup-config.js.map +1 -0
  444. package/dist/daemon/startup-failure-journal.d.ts +3 -0
  445. package/dist/daemon/startup-failure-journal.d.ts.map +1 -0
  446. package/dist/daemon/startup-failure-journal.js +29 -0
  447. package/dist/daemon/startup-failure-journal.js.map +1 -0
  448. package/dist/daemon/state-store.d.ts +16 -24
  449. package/dist/daemon/state-store.d.ts.map +1 -1
  450. package/dist/daemon/state-store.js +51 -9
  451. package/dist/daemon/state-store.js.map +1 -1
  452. package/dist/daemon/supervisor-transition.d.ts +101 -0
  453. package/dist/daemon/supervisor-transition.d.ts.map +1 -0
  454. package/dist/daemon/supervisor-transition.js +503 -0
  455. package/dist/daemon/supervisor-transition.js.map +1 -0
  456. package/dist/daemon/system-guardian-cgroup.d.ts +16 -0
  457. package/dist/daemon/system-guardian-cgroup.d.ts.map +1 -0
  458. package/dist/daemon/system-guardian-cgroup.js +202 -0
  459. package/dist/daemon/system-guardian-cgroup.js.map +1 -0
  460. package/dist/daemon/system-guardian-unit.d.ts +9 -0
  461. package/dist/daemon/system-guardian-unit.d.ts.map +1 -0
  462. package/dist/daemon/system-guardian-unit.js +41 -0
  463. package/dist/daemon/system-guardian-unit.js.map +1 -0
  464. package/dist/database/connection.d.ts.map +1 -1
  465. package/dist/database/connection.js +2 -6
  466. package/dist/database/connection.js.map +1 -1
  467. package/dist/database/log-durability.d.ts +5 -0
  468. package/dist/database/log-durability.d.ts.map +1 -0
  469. package/dist/database/log-durability.js +28 -0
  470. package/dist/database/log-durability.js.map +1 -0
  471. package/dist/database/migrate.js +2 -15
  472. package/dist/database/migrate.js.map +1 -1
  473. package/dist/database/migration-registry-compatibility.d.ts +13 -0
  474. package/dist/database/migration-registry-compatibility.d.ts.map +1 -0
  475. package/dist/database/migration-registry-compatibility.js +108 -0
  476. package/dist/database/migration-registry-compatibility.js.map +1 -0
  477. package/dist/database/migration-runner.d.ts +8 -42
  478. package/dist/database/migration-runner.d.ts.map +1 -1
  479. package/dist/database/migration-runner.js +114 -123
  480. package/dist/database/migration-runner.js.map +1 -1
  481. package/dist/database/migrations/014_replication_receipts.d.ts +5 -0
  482. package/dist/database/migrations/014_replication_receipts.d.ts.map +1 -0
  483. package/dist/database/migrations/014_replication_receipts.js +6 -0
  484. package/dist/database/migrations/014_replication_receipts.js.map +1 -0
  485. package/dist/database/migrations/015_persistent_metrics.d.ts +5 -0
  486. package/dist/database/migrations/015_persistent_metrics.d.ts.map +1 -0
  487. package/dist/database/migrations/015_persistent_metrics.js +7 -0
  488. package/dist/database/migrations/015_persistent_metrics.js.map +1 -0
  489. package/dist/database/migrations/016_cluster_lease.d.ts +4 -0
  490. package/dist/database/migrations/016_cluster_lease.d.ts.map +1 -0
  491. package/dist/database/migrations/016_cluster_lease.js +6 -0
  492. package/dist/database/migrations/016_cluster_lease.js.map +1 -0
  493. package/dist/database/migrations/index.d.ts +1 -1
  494. package/dist/database/migrations/index.d.ts.map +1 -1
  495. package/dist/database/migrations/index.js +22 -13
  496. package/dist/database/migrations/index.js.map +1 -1
  497. package/dist/database/schema-compatibility.d.ts +34 -0
  498. package/dist/database/schema-compatibility.d.ts.map +1 -0
  499. package/dist/database/schema-compatibility.js +109 -0
  500. package/dist/database/schema-compatibility.js.map +1 -0
  501. package/dist/database/schema-expansion-policy.d.ts +10 -0
  502. package/dist/database/schema-expansion-policy.d.ts.map +1 -0
  503. package/dist/database/schema-expansion-policy.js +21 -0
  504. package/dist/database/schema-expansion-policy.js.map +1 -0
  505. package/dist/database/schema-transition-plan.d.ts +53 -0
  506. package/dist/database/schema-transition-plan.d.ts.map +1 -0
  507. package/dist/database/schema-transition-plan.js +102 -0
  508. package/dist/database/schema-transition-plan.js.map +1 -0
  509. package/dist/database/schema-worker.d.ts +2 -0
  510. package/dist/database/schema-worker.d.ts.map +1 -0
  511. package/dist/database/schema-worker.js +55 -0
  512. package/dist/database/schema-worker.js.map +1 -0
  513. package/dist/database/schema.d.ts +6 -1
  514. package/dist/database/schema.d.ts.map +1 -1
  515. package/dist/database/slave-migrations/001_replication_evidence.d.ts +4 -0
  516. package/dist/database/slave-migrations/001_replication_evidence.d.ts.map +1 -0
  517. package/dist/database/slave-migrations/001_replication_evidence.js +89 -0
  518. package/dist/database/slave-migrations/001_replication_evidence.js.map +1 -0
  519. package/dist/database/slave-migrations/index.d.ts +6 -0
  520. package/dist/database/slave-migrations/index.d.ts.map +1 -0
  521. package/dist/database/slave-migrations/index.js +10 -0
  522. package/dist/database/slave-migrations/index.js.map +1 -0
  523. package/dist/diagnostics/index.d.ts +16 -0
  524. package/dist/diagnostics/index.d.ts.map +1 -0
  525. package/dist/diagnostics/index.js +22 -0
  526. package/dist/diagnostics/index.js.map +1 -0
  527. package/dist/execution/command-failure.d.ts +7 -0
  528. package/dist/execution/command-failure.d.ts.map +1 -0
  529. package/dist/execution/command-failure.js +29 -0
  530. package/dist/execution/command-failure.js.map +1 -0
  531. package/dist/execution/data-channel.d.ts +1 -1
  532. package/dist/execution/data-channel.js +1 -1
  533. package/dist/execution/execution.service.d.ts +16 -4
  534. package/dist/execution/execution.service.d.ts.map +1 -1
  535. package/dist/execution/execution.service.js +133 -74
  536. package/dist/execution/execution.service.js.map +1 -1
  537. package/dist/files/archive-codec.d.ts +57 -0
  538. package/dist/files/archive-codec.d.ts.map +1 -0
  539. package/dist/files/archive-codec.js +454 -0
  540. package/dist/files/archive-codec.js.map +1 -0
  541. package/dist/files/archive-node.d.ts +27 -0
  542. package/dist/files/archive-node.d.ts.map +1 -0
  543. package/dist/files/archive-node.js +379 -0
  544. package/dist/files/archive-node.js.map +1 -0
  545. package/dist/files/archive-publication.d.ts +26 -0
  546. package/dist/files/archive-publication.d.ts.map +1 -0
  547. package/dist/files/archive-publication.js +224 -0
  548. package/dist/files/archive-publication.js.map +1 -0
  549. package/dist/files/file-config.d.ts +7 -0
  550. package/dist/files/file-config.d.ts.map +1 -0
  551. package/dist/files/file-config.js +11 -0
  552. package/dist/files/file-config.js.map +1 -0
  553. package/dist/files/file-node.d.ts +65 -0
  554. package/dist/files/file-node.d.ts.map +1 -0
  555. package/dist/files/file-node.js +863 -0
  556. package/dist/files/file-node.js.map +1 -0
  557. package/dist/files/file-node.rpc-service.d.ts +12 -0
  558. package/dist/files/file-node.rpc-service.d.ts.map +1 -0
  559. package/dist/files/file-node.rpc-service.js +42 -0
  560. package/dist/files/file-node.rpc-service.js.map +1 -0
  561. package/dist/files/files.rpc-service.d.ts +107 -0
  562. package/dist/files/files.rpc-service.d.ts.map +1 -0
  563. package/dist/files/files.rpc-service.js +769 -0
  564. package/dist/files/files.rpc-service.js.map +1 -0
  565. package/dist/files/structural-policy.d.ts +3 -0
  566. package/dist/files/structural-policy.d.ts.map +1 -0
  567. package/dist/files/structural-policy.js +27 -0
  568. package/dist/files/structural-policy.js.map +1 -0
  569. package/dist/health/contracts.d.ts +30 -0
  570. package/dist/health/contracts.d.ts.map +1 -0
  571. package/dist/health/contracts.js +58 -0
  572. package/dist/health/contracts.js.map +1 -0
  573. package/dist/health/heartbeat.d.ts +11 -0
  574. package/dist/health/heartbeat.d.ts.map +1 -0
  575. package/dist/health/heartbeat.js +32 -0
  576. package/dist/health/heartbeat.js.map +1 -0
  577. package/dist/health/index.d.ts +4 -0
  578. package/dist/health/index.d.ts.map +1 -0
  579. package/dist/health/index.js +2 -0
  580. package/dist/health/index.js.map +1 -0
  581. package/dist/health/readiness.d.ts +15 -0
  582. package/dist/health/readiness.d.ts.map +1 -0
  583. package/dist/health/readiness.js +170 -0
  584. package/dist/health/readiness.js.map +1 -0
  585. package/dist/index.d.ts +1 -0
  586. package/dist/index.d.ts.map +1 -1
  587. package/dist/infrastructure/apt-packages.d.ts +34 -0
  588. package/dist/infrastructure/apt-packages.d.ts.map +1 -0
  589. package/dist/infrastructure/apt-packages.js +232 -0
  590. package/dist/infrastructure/apt-packages.js.map +1 -0
  591. package/dist/infrastructure/bare-metal-plan.d.ts +10 -1
  592. package/dist/infrastructure/bare-metal-plan.d.ts.map +1 -1
  593. package/dist/infrastructure/bare-metal-plan.js +22 -1
  594. package/dist/infrastructure/bare-metal-plan.js.map +1 -1
  595. package/dist/infrastructure/bare-metal-runner.d.ts.map +1 -1
  596. package/dist/infrastructure/bare-metal-runner.js +13 -2
  597. package/dist/infrastructure/bare-metal-runner.js.map +1 -1
  598. package/dist/infrastructure/config-normalizer.d.ts +4 -3
  599. package/dist/infrastructure/config-normalizer.d.ts.map +1 -1
  600. package/dist/infrastructure/config-normalizer.js +11 -3
  601. package/dist/infrastructure/config-normalizer.js.map +1 -1
  602. package/dist/infrastructure/config-payload.d.ts +4 -4
  603. package/dist/infrastructure/config-payload.js +4 -4
  604. package/dist/infrastructure/container-runtime.d.ts +39 -13
  605. package/dist/infrastructure/container-runtime.d.ts.map +1 -1
  606. package/dist/infrastructure/container-runtime.js +276 -84
  607. package/dist/infrastructure/container-runtime.js.map +1 -1
  608. package/dist/infrastructure/gateway-redis-db.d.ts +2 -2
  609. package/dist/infrastructure/gateway-redis-db.js +2 -2
  610. package/dist/infrastructure/health-recovery.d.ts +19 -0
  611. package/dist/infrastructure/health-recovery.d.ts.map +1 -0
  612. package/dist/infrastructure/health-recovery.js +39 -0
  613. package/dist/infrastructure/health-recovery.js.map +1 -0
  614. package/dist/infrastructure/host-ingress-config.d.ts +12 -0
  615. package/dist/infrastructure/host-ingress-config.d.ts.map +1 -0
  616. package/dist/infrastructure/host-ingress-config.js +200 -0
  617. package/dist/infrastructure/host-ingress-config.js.map +1 -0
  618. package/dist/infrastructure/host-ingress-lock.d.ts +3 -0
  619. package/dist/infrastructure/host-ingress-lock.d.ts.map +1 -0
  620. package/dist/infrastructure/host-ingress-lock.js +2 -0
  621. package/dist/infrastructure/host-ingress-lock.js.map +1 -0
  622. package/dist/infrastructure/host-ingress-runtime.d.ts +25 -0
  623. package/dist/infrastructure/host-ingress-runtime.d.ts.map +1 -0
  624. package/dist/infrastructure/host-ingress-runtime.js +114 -0
  625. package/dist/infrastructure/host-ingress-runtime.js.map +1 -0
  626. package/dist/infrastructure/host-ingress-takeover.d.ts +18 -0
  627. package/dist/infrastructure/host-ingress-takeover.d.ts.map +1 -0
  628. package/dist/infrastructure/host-ingress-takeover.js +142 -0
  629. package/dist/infrastructure/host-ingress-takeover.js.map +1 -0
  630. package/dist/infrastructure/host-ingress-types.d.ts +175 -0
  631. package/dist/infrastructure/host-ingress-types.d.ts.map +1 -0
  632. package/dist/infrastructure/host-ingress-types.js +2 -0
  633. package/dist/infrastructure/host-ingress-types.js.map +1 -0
  634. package/dist/infrastructure/host-ingress.service.d.ts +47 -0
  635. package/dist/infrastructure/host-ingress.service.d.ts.map +1 -0
  636. package/dist/infrastructure/host-ingress.service.js +514 -0
  637. package/dist/infrastructure/host-ingress.service.js.map +1 -0
  638. package/dist/infrastructure/host-inspection.d.ts +1 -0
  639. package/dist/infrastructure/host-inspection.d.ts.map +1 -1
  640. package/dist/infrastructure/host-inspection.js +3 -2
  641. package/dist/infrastructure/host-inspection.js.map +1 -1
  642. package/dist/infrastructure/infrastructure.service.d.ts +101 -34
  643. package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
  644. package/dist/infrastructure/infrastructure.service.js +631 -205
  645. package/dist/infrastructure/infrastructure.service.js.map +1 -1
  646. package/dist/infrastructure/merge-config.d.ts +10 -0
  647. package/dist/infrastructure/merge-config.d.ts.map +1 -0
  648. package/dist/infrastructure/merge-config.js +27 -0
  649. package/dist/infrastructure/merge-config.js.map +1 -0
  650. package/dist/infrastructure/orphan-containers.d.ts +8 -7
  651. package/dist/infrastructure/orphan-containers.d.ts.map +1 -1
  652. package/dist/infrastructure/orphan-containers.js +7 -7
  653. package/dist/infrastructure/orphan-containers.js.map +1 -1
  654. package/dist/infrastructure/owned-container.d.ts +4 -0
  655. package/dist/infrastructure/owned-container.d.ts.map +1 -0
  656. package/dist/infrastructure/owned-container.js +13 -0
  657. package/dist/infrastructure/owned-container.js.map +1 -0
  658. package/dist/infrastructure/phantom-endpoint-janitor.d.ts +4 -1
  659. package/dist/infrastructure/phantom-endpoint-janitor.d.ts.map +1 -1
  660. package/dist/infrastructure/phantom-endpoint-janitor.js +11 -2
  661. package/dist/infrastructure/phantom-endpoint-janitor.js.map +1 -1
  662. package/dist/infrastructure/presets/minio.d.ts.map +1 -1
  663. package/dist/infrastructure/presets/minio.js +15 -25
  664. package/dist/infrastructure/presets/minio.js.map +1 -1
  665. package/dist/infrastructure/presets/postgres.d.ts.map +1 -1
  666. package/dist/infrastructure/presets/postgres.js +35 -31
  667. package/dist/infrastructure/presets/postgres.js.map +1 -1
  668. package/dist/infrastructure/presets/tor.d.ts +1 -2
  669. package/dist/infrastructure/presets/tor.d.ts.map +1 -1
  670. package/dist/infrastructure/presets/tor.js +7 -13
  671. package/dist/infrastructure/presets/tor.js.map +1 -1
  672. package/dist/infrastructure/provisioning-outcome.d.ts +8 -1
  673. package/dist/infrastructure/provisioning-outcome.d.ts.map +1 -1
  674. package/dist/infrastructure/provisioning-outcome.js +42 -9
  675. package/dist/infrastructure/provisioning-outcome.js.map +1 -1
  676. package/dist/infrastructure/service-binding.js +1 -1
  677. package/dist/infrastructure/service-resolver.d.ts +11 -5
  678. package/dist/infrastructure/service-resolver.d.ts.map +1 -1
  679. package/dist/infrastructure/service-resolver.js +109 -54
  680. package/dist/infrastructure/service-resolver.js.map +1 -1
  681. package/dist/infrastructure/shipped-config.js +4 -4
  682. package/dist/infrastructure/stack-infra-manager.d.ts +35 -5
  683. package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
  684. package/dist/infrastructure/stack-infra-manager.js +227 -57
  685. package/dist/infrastructure/stack-infra-manager.js.map +1 -1
  686. package/dist/infrastructure/types.d.ts +68 -9
  687. package/dist/infrastructure/types.d.ts.map +1 -1
  688. package/dist/mcp/mcp-bridge.js +1 -1
  689. package/dist/mcp/mcp-bridge.js.map +1 -1
  690. package/dist/mcp/monitoring-reading.d.ts +18 -0
  691. package/dist/mcp/monitoring-reading.d.ts.map +1 -0
  692. package/dist/mcp/monitoring-reading.js +84 -0
  693. package/dist/mcp/monitoring-reading.js.map +1 -0
  694. package/dist/mcp/tool-groups/apps.tools.d.ts.map +1 -1
  695. package/dist/mcp/tool-groups/apps.tools.js +6 -4
  696. package/dist/mcp/tool-groups/apps.tools.js.map +1 -1
  697. package/dist/mcp/tool-groups/management.tools.d.ts +2 -0
  698. package/dist/mcp/tool-groups/management.tools.d.ts.map +1 -1
  699. package/dist/mcp/tool-groups/management.tools.js +17 -38
  700. package/dist/mcp/tool-groups/management.tools.js.map +1 -1
  701. package/dist/mcp/tool-groups/monitoring.tools.d.ts.map +1 -1
  702. package/dist/mcp/tool-groups/monitoring.tools.js +45 -2
  703. package/dist/mcp/tool-groups/monitoring.tools.js.map +1 -1
  704. package/dist/mcp/unavailable-tools.js +2 -2
  705. package/dist/mcp/unavailable-tools.js.map +1 -1
  706. package/dist/migration/configuration.d.ts +8 -0
  707. package/dist/migration/configuration.d.ts.map +1 -0
  708. package/dist/migration/configuration.js +16 -0
  709. package/dist/migration/configuration.js.map +1 -0
  710. package/dist/migration/index.d.ts +25 -0
  711. package/dist/migration/index.d.ts.map +1 -0
  712. package/dist/migration/index.js +27 -0
  713. package/dist/migration/index.js.map +1 -0
  714. package/dist/migration/operation.d.ts +31 -0
  715. package/dist/migration/operation.d.ts.map +1 -0
  716. package/dist/migration/operation.js +67 -0
  717. package/dist/migration/operation.js.map +1 -0
  718. package/dist/migration/workspace.d.ts +28 -0
  719. package/dist/migration/workspace.d.ts.map +1 -0
  720. package/dist/migration/workspace.js +91 -0
  721. package/dist/migration/workspace.js.map +1 -0
  722. package/dist/monitoring/app-health.indicator.d.ts +1 -1
  723. package/dist/monitoring/app-health.indicator.d.ts.map +1 -1
  724. package/dist/monitoring/docker-health.indicator.d.ts +4 -2
  725. package/dist/monitoring/docker-health.indicator.d.ts.map +1 -1
  726. package/dist/monitoring/docker-health.indicator.js +66 -5
  727. package/dist/monitoring/docker-health.indicator.js.map +1 -1
  728. package/dist/monitoring/event-loop-watch.d.ts.map +1 -1
  729. package/dist/monitoring/event-loop-watch.js.map +1 -1
  730. package/dist/monitoring/infrastructure-health.d.ts +15 -0
  731. package/dist/monitoring/infrastructure-health.d.ts.map +1 -0
  732. package/dist/monitoring/infrastructure-health.js +2 -0
  733. package/dist/monitoring/infrastructure-health.js.map +1 -0
  734. package/dist/monitoring/log-entry.d.ts +7 -0
  735. package/dist/monitoring/log-entry.d.ts.map +1 -0
  736. package/dist/monitoring/log-entry.js +16 -0
  737. package/dist/monitoring/log-entry.js.map +1 -0
  738. package/dist/monitoring/log-journal.d.ts +40 -0
  739. package/dist/monitoring/log-journal.d.ts.map +1 -0
  740. package/dist/monitoring/log-journal.js +158 -0
  741. package/dist/monitoring/log-journal.js.map +1 -0
  742. package/dist/monitoring/log-line.d.ts +22 -17
  743. package/dist/monitoring/log-line.d.ts.map +1 -1
  744. package/dist/monitoring/log-line.js +73 -62
  745. package/dist/monitoring/log-line.js.map +1 -1
  746. package/dist/monitoring/log-manager.d.ts +37 -40
  747. package/dist/monitoring/log-manager.d.ts.map +1 -1
  748. package/dist/monitoring/log-manager.js +167 -66
  749. package/dist/monitoring/log-manager.js.map +1 -1
  750. package/dist/monitoring/log-sink-health.indicator.d.ts +10 -0
  751. package/dist/monitoring/log-sink-health.indicator.d.ts.map +1 -0
  752. package/dist/monitoring/log-sink-health.indicator.js +21 -0
  753. package/dist/monitoring/log-sink-health.indicator.js.map +1 -0
  754. package/dist/monitoring/metrics-storage.indicator.d.ts +9 -0
  755. package/dist/monitoring/metrics-storage.indicator.d.ts.map +1 -0
  756. package/dist/monitoring/metrics-storage.indicator.js +18 -0
  757. package/dist/monitoring/metrics-storage.indicator.js.map +1 -0
  758. package/dist/monitoring/process-lifetime.d.ts +11 -0
  759. package/dist/monitoring/process-lifetime.d.ts.map +1 -0
  760. package/dist/monitoring/process-lifetime.js +45 -0
  761. package/dist/monitoring/process-lifetime.js.map +1 -0
  762. package/dist/monitoring/runtime-diagnostics.d.ts +47 -0
  763. package/dist/monitoring/runtime-diagnostics.d.ts.map +1 -0
  764. package/dist/monitoring/runtime-diagnostics.js +88 -0
  765. package/dist/monitoring/runtime-diagnostics.js.map +1 -0
  766. package/dist/observability/metrics-bridge.d.ts +5 -1
  767. package/dist/observability/metrics-bridge.d.ts.map +1 -1
  768. package/dist/observability/metrics-bridge.js +11 -0
  769. package/dist/observability/metrics-bridge.js.map +1 -1
  770. package/dist/operations.d.ts +17 -0
  771. package/dist/operations.d.ts.map +1 -0
  772. package/dist/operations.js +13 -0
  773. package/dist/operations.js.map +1 -0
  774. package/dist/orchestrator/app-handle.d.ts +27 -9
  775. package/dist/orchestrator/app-handle.d.ts.map +1 -1
  776. package/dist/orchestrator/app-handle.js +42 -11
  777. package/dist/orchestrator/app-handle.js.map +1 -1
  778. package/dist/orchestrator/application-runtime-child.d.ts +2 -0
  779. package/dist/orchestrator/application-runtime-child.d.ts.map +1 -0
  780. package/dist/orchestrator/application-runtime-child.js +15 -0
  781. package/dist/orchestrator/application-runtime-child.js.map +1 -0
  782. package/dist/orchestrator/application-runtime-resolution.d.ts +4 -0
  783. package/dist/orchestrator/application-runtime-resolution.d.ts.map +1 -0
  784. package/dist/orchestrator/application-runtime-resolution.js +62 -0
  785. package/dist/orchestrator/application-runtime-resolution.js.map +1 -0
  786. package/dist/orchestrator/application-runtime.d.ts +3 -0
  787. package/dist/orchestrator/application-runtime.d.ts.map +1 -0
  788. package/dist/orchestrator/application-runtime.js +20 -0
  789. package/dist/orchestrator/application-runtime.js.map +1 -0
  790. package/dist/orchestrator/application-topology.d.ts +20 -0
  791. package/dist/orchestrator/application-topology.d.ts.map +1 -0
  792. package/dist/orchestrator/application-topology.js +90 -0
  793. package/dist/orchestrator/application-topology.js.map +1 -0
  794. package/dist/orchestrator/bootstrap-loader-child.d.ts +1 -1
  795. package/dist/orchestrator/bootstrap-loader-child.js +7 -16
  796. package/dist/orchestrator/bootstrap-loader-child.js.map +1 -1
  797. package/dist/orchestrator/bootstrap-loader.d.ts +10 -20
  798. package/dist/orchestrator/bootstrap-loader.d.ts.map +1 -1
  799. package/dist/orchestrator/bootstrap-loader.js +24 -207
  800. package/dist/orchestrator/bootstrap-loader.js.map +1 -1
  801. package/dist/orchestrator/bootstrap-process.d.ts +6 -6
  802. package/dist/orchestrator/bootstrap-process.d.ts.map +1 -1
  803. package/dist/orchestrator/bootstrap-process.js +40 -40
  804. package/dist/orchestrator/bootstrap-process.js.map +1 -1
  805. package/dist/orchestrator/build-service.d.ts +8 -14
  806. package/dist/orchestrator/build-service.d.ts.map +1 -1
  807. package/dist/orchestrator/build-service.js +144 -158
  808. package/dist/orchestrator/build-service.js.map +1 -1
  809. package/dist/orchestrator/call-exposed-service.d.ts +8 -0
  810. package/dist/orchestrator/call-exposed-service.d.ts.map +1 -1
  811. package/dist/orchestrator/call-exposed-service.js +1 -1
  812. package/dist/orchestrator/classic-launcher.d.ts +3 -2
  813. package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
  814. package/dist/orchestrator/classic-launcher.js +32 -23
  815. package/dist/orchestrator/classic-launcher.js.map +1 -1
  816. package/dist/orchestrator/dependency-resolver.d.ts.map +1 -1
  817. package/dist/orchestrator/dependency-resolver.js +7 -38
  818. package/dist/orchestrator/dependency-resolver.js.map +1 -1
  819. package/dist/orchestrator/execution-contract.d.ts +67 -0
  820. package/dist/orchestrator/execution-contract.d.ts.map +1 -0
  821. package/dist/orchestrator/execution-contract.js +2 -0
  822. package/dist/orchestrator/execution-contract.js.map +1 -0
  823. package/dist/orchestrator/file-watcher.d.ts +2 -1
  824. package/dist/orchestrator/file-watcher.d.ts.map +1 -1
  825. package/dist/orchestrator/file-watcher.js +23 -5
  826. package/dist/orchestrator/file-watcher.js.map +1 -1
  827. package/dist/orchestrator/http-routes.d.ts +4 -0
  828. package/dist/orchestrator/http-routes.d.ts.map +1 -0
  829. package/dist/orchestrator/http-routes.js +19 -0
  830. package/dist/orchestrator/http-routes.js.map +1 -0
  831. package/dist/orchestrator/installed-execution.d.ts +7 -0
  832. package/dist/orchestrator/installed-execution.d.ts.map +1 -0
  833. package/dist/orchestrator/installed-execution.js +25 -0
  834. package/dist/orchestrator/installed-execution.js.map +1 -0
  835. package/dist/orchestrator/module-worker-process.d.ts.map +1 -1
  836. package/dist/orchestrator/module-worker-process.js +2 -1
  837. package/dist/orchestrator/module-worker-process.js.map +1 -1
  838. package/dist/orchestrator/orchestrator.service.d.ts +105 -80
  839. package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
  840. package/dist/orchestrator/orchestrator.service.js +1084 -571
  841. package/dist/orchestrator/orchestrator.service.js.map +1 -1
  842. package/dist/orchestrator/process-janitor.d.ts +3 -0
  843. package/dist/orchestrator/process-janitor.d.ts.map +1 -1
  844. package/dist/orchestrator/process-janitor.js +5 -1
  845. package/dist/orchestrator/process-janitor.js.map +1 -1
  846. package/dist/orchestrator/runtime-package-resolution.d.ts +8 -0
  847. package/dist/orchestrator/runtime-package-resolution.d.ts.map +1 -0
  848. package/dist/orchestrator/runtime-package-resolution.js +56 -0
  849. package/dist/orchestrator/runtime-package-resolution.js.map +1 -0
  850. package/dist/orchestrator/service-router.d.ts +4 -108
  851. package/dist/orchestrator/service-router.d.ts.map +1 -1
  852. package/dist/orchestrator/service-router.js +51 -237
  853. package/dist/orchestrator/service-router.js.map +1 -1
  854. package/dist/orchestrator/topology-query.d.ts +1 -1
  855. package/dist/orchestrator/topology-query.js +1 -1
  856. package/dist/orchestrator/ts-compiler.d.ts.map +1 -1
  857. package/dist/orchestrator/ts-compiler.js +9 -17
  858. package/dist/orchestrator/ts-compiler.js.map +1 -1
  859. package/dist/project/artifact-builder.d.ts +17 -7
  860. package/dist/project/artifact-builder.d.ts.map +1 -1
  861. package/dist/project/artifact-builder.js +91 -58
  862. package/dist/project/artifact-builder.js.map +1 -1
  863. package/dist/project/bootstrap-metadata.d.ts +42 -0
  864. package/dist/project/bootstrap-metadata.d.ts.map +1 -0
  865. package/dist/project/bootstrap-metadata.js +76 -0
  866. package/dist/project/bootstrap-metadata.js.map +1 -0
  867. package/dist/project/build-decision.d.ts +1 -1
  868. package/dist/project/build-decision.js +1 -1
  869. package/dist/project/config-resolver.js +4 -4
  870. package/dist/project/config-resolver.js.map +1 -1
  871. package/dist/project/configuration-catalog.d.ts +8 -0
  872. package/dist/project/configuration-catalog.d.ts.map +1 -0
  873. package/dist/project/configuration-catalog.js +29 -0
  874. package/dist/project/configuration-catalog.js.map +1 -0
  875. package/dist/project/declared-config.d.ts +4 -2
  876. package/dist/project/declared-config.d.ts.map +1 -1
  877. package/dist/project/declared-config.js +10 -7
  878. package/dist/project/declared-config.js.map +1 -1
  879. package/dist/project/dependency-topology.d.ts +10 -0
  880. package/dist/project/dependency-topology.d.ts.map +1 -0
  881. package/dist/project/dependency-topology.js +55 -0
  882. package/dist/project/dependency-topology.js.map +1 -0
  883. package/dist/project/deploy-phases.d.ts +1 -1
  884. package/dist/project/deploy-phases.js +1 -1
  885. package/dist/project/exec-in-group.d.ts +1 -1
  886. package/dist/project/exec-in-group.js +1 -1
  887. package/dist/project/infrastructure-ownership.d.ts +5 -0
  888. package/dist/project/infrastructure-ownership.d.ts.map +1 -0
  889. package/dist/project/infrastructure-ownership.js +26 -0
  890. package/dist/project/infrastructure-ownership.js.map +1 -0
  891. package/dist/project/installed-stack-resume.d.ts +62 -0
  892. package/dist/project/installed-stack-resume.d.ts.map +1 -0
  893. package/dist/project/installed-stack-resume.js +261 -0
  894. package/dist/project/installed-stack-resume.js.map +1 -0
  895. package/dist/project/launch-failure.d.ts +3 -0
  896. package/dist/project/launch-failure.d.ts.map +1 -0
  897. package/dist/project/launch-failure.js +32 -0
  898. package/dist/project/launch-failure.js.map +1 -0
  899. package/dist/project/local-release-selection.d.ts +18 -0
  900. package/dist/project/local-release-selection.d.ts.map +1 -0
  901. package/dist/project/local-release-selection.js +36 -0
  902. package/dist/project/local-release-selection.js.map +1 -0
  903. package/dist/project/node-app-config.d.ts +10 -3
  904. package/dist/project/node-app-config.d.ts.map +1 -1
  905. package/dist/project/node-app-config.js +22 -30
  906. package/dist/project/node-app-config.js.map +1 -1
  907. package/dist/project/node-app-health.d.ts +1 -1
  908. package/dist/project/node-app-health.js +1 -1
  909. package/dist/project/node-stack-stop.d.ts +83 -0
  910. package/dist/project/node-stack-stop.d.ts.map +1 -0
  911. package/dist/project/node-stack-stop.js +219 -0
  912. package/dist/project/node-stack-stop.js.map +1 -0
  913. package/dist/project/operator-account.d.ts +9 -3
  914. package/dist/project/operator-account.d.ts.map +1 -1
  915. package/dist/project/operator-account.js +9 -9
  916. package/dist/project/operator-account.js.map +1 -1
  917. package/dist/project/public-stack.d.ts +4 -0
  918. package/dist/project/public-stack.d.ts.map +1 -0
  919. package/dist/project/public-stack.js +29 -0
  920. package/dist/project/public-stack.js.map +1 -0
  921. package/dist/project/registry.d.ts +18 -27
  922. package/dist/project/registry.d.ts.map +1 -1
  923. package/dist/project/registry.js +248 -77
  924. package/dist/project/registry.js.map +1 -1
  925. package/dist/project/requirements-scanner.d.ts +4 -8
  926. package/dist/project/requirements-scanner.d.ts.map +1 -1
  927. package/dist/project/requirements-scanner.js +39 -146
  928. package/dist/project/requirements-scanner.js.map +1 -1
  929. package/dist/project/stack-diagnosis.d.ts +18 -0
  930. package/dist/project/stack-diagnosis.d.ts.map +1 -0
  931. package/dist/project/stack-diagnosis.js +94 -0
  932. package/dist/project/stack-diagnosis.js.map +1 -0
  933. package/dist/project/stack-env.d.ts +1 -1
  934. package/dist/project/stack-env.js +1 -1
  935. package/dist/project/stack-health.d.ts +12 -0
  936. package/dist/project/stack-health.d.ts.map +1 -0
  937. package/dist/project/stack-health.js +27 -0
  938. package/dist/project/stack-health.js.map +1 -0
  939. package/dist/project/stack-observation.d.ts +8 -0
  940. package/dist/project/stack-observation.d.ts.map +1 -0
  941. package/dist/project/stack-observation.js +126 -0
  942. package/dist/project/stack-observation.js.map +1 -0
  943. package/dist/project/stack-placement.d.ts +11 -0
  944. package/dist/project/stack-placement.d.ts.map +1 -0
  945. package/dist/project/stack-placement.js +57 -0
  946. package/dist/project/stack-placement.js.map +1 -0
  947. package/dist/project/stack-stop-review.d.ts +14 -0
  948. package/dist/project/stack-stop-review.d.ts.map +1 -0
  949. package/dist/project/stack-stop-review.js +22 -0
  950. package/dist/project/stack-stop-review.js.map +1 -0
  951. package/dist/project/stack-targets.d.ts +24 -0
  952. package/dist/project/stack-targets.d.ts.map +1 -0
  953. package/dist/project/stack-targets.js +67 -0
  954. package/dist/project/stack-targets.js.map +1 -0
  955. package/dist/project/stand-containers.d.ts +9 -2
  956. package/dist/project/stand-containers.d.ts.map +1 -1
  957. package/dist/project/stand-containers.js +17 -17
  958. package/dist/project/stand-containers.js.map +1 -1
  959. package/dist/project/topology-control.d.ts +41 -0
  960. package/dist/project/topology-control.d.ts.map +1 -0
  961. package/dist/project/topology-control.js +133 -0
  962. package/dist/project/topology-control.js.map +1 -0
  963. package/dist/project/topology-plan.d.ts +11 -0
  964. package/dist/project/topology-plan.d.ts.map +1 -0
  965. package/dist/project/topology-plan.js +154 -0
  966. package/dist/project/topology-plan.js.map +1 -0
  967. package/dist/project/topology-services.d.ts +7 -0
  968. package/dist/project/topology-services.d.ts.map +1 -0
  969. package/dist/project/topology-services.js +36 -0
  970. package/dist/project/topology-services.js.map +1 -0
  971. package/dist/project/topology-state.d.ts +27 -0
  972. package/dist/project/topology-state.d.ts.map +1 -0
  973. package/dist/project/topology-state.js +71 -0
  974. package/dist/project/topology-state.js.map +1 -0
  975. package/dist/project/workspace-kind.d.ts +3 -0
  976. package/dist/project/workspace-kind.d.ts.map +1 -0
  977. package/dist/project/workspace-kind.js +13 -0
  978. package/dist/project/workspace-kind.js.map +1 -0
  979. package/dist/readiness.d.ts +4 -0
  980. package/dist/readiness.d.ts.map +1 -0
  981. package/dist/readiness.js +3 -0
  982. package/dist/readiness.js.map +1 -0
  983. package/dist/release/application-closure.d.ts +4 -0
  984. package/dist/release/application-closure.d.ts.map +1 -0
  985. package/dist/release/application-closure.js +61 -0
  986. package/dist/release/application-closure.js.map +1 -0
  987. package/dist/release/archive.d.ts +3 -0
  988. package/dist/release/archive.d.ts.map +1 -0
  989. package/dist/release/archive.js +3 -0
  990. package/dist/release/archive.js.map +1 -0
  991. package/dist/release/artifact-inspection.d.ts +50 -0
  992. package/dist/release/artifact-inspection.d.ts.map +1 -0
  993. package/dist/release/artifact-inspection.js +169 -0
  994. package/dist/release/artifact-inspection.js.map +1 -0
  995. package/dist/release/artifact-store.d.ts +1 -1
  996. package/dist/release/artifact-store.d.ts.map +1 -1
  997. package/dist/release/artifact-store.js +1 -1
  998. package/dist/release/artifact-store.js.map +1 -1
  999. package/dist/release/artifact-volumes.d.ts +10 -0
  1000. package/dist/release/artifact-volumes.d.ts.map +1 -0
  1001. package/dist/release/artifact-volumes.js +112 -0
  1002. package/dist/release/artifact-volumes.js.map +1 -0
  1003. package/dist/release/attest-on-node.d.ts +3 -2
  1004. package/dist/release/attest-on-node.d.ts.map +1 -1
  1005. package/dist/release/attest-on-node.js +6 -6
  1006. package/dist/release/attest-on-node.js.map +1 -1
  1007. package/dist/release/attest.d.ts +3 -3
  1008. package/dist/release/attest.js +1 -1
  1009. package/dist/release/build-run.d.ts +14 -17
  1010. package/dist/release/build-run.d.ts.map +1 -1
  1011. package/dist/release/build-run.js +264 -77
  1012. package/dist/release/build-run.js.map +1 -1
  1013. package/dist/release/builder.d.ts +9 -3
  1014. package/dist/release/builder.d.ts.map +1 -1
  1015. package/dist/release/builder.js +19 -5
  1016. package/dist/release/builder.js.map +1 -1
  1017. package/dist/release/closure-library-path.d.ts +26 -0
  1018. package/dist/release/closure-library-path.d.ts.map +1 -0
  1019. package/dist/release/closure-library-path.js +160 -0
  1020. package/dist/release/closure-library-path.js.map +1 -0
  1021. package/dist/release/definition-inputs.d.ts +7 -4
  1022. package/dist/release/definition-inputs.d.ts.map +1 -1
  1023. package/dist/release/definition-inputs.js +146 -15
  1024. package/dist/release/definition-inputs.js.map +1 -1
  1025. package/dist/release/framework-source.d.ts +22 -0
  1026. package/dist/release/framework-source.d.ts.map +1 -0
  1027. package/dist/release/framework-source.js +54 -0
  1028. package/dist/release/framework-source.js.map +1 -0
  1029. package/dist/release/frozen-installation.d.ts +23 -0
  1030. package/dist/release/frozen-installation.d.ts.map +1 -0
  1031. package/dist/release/frozen-installation.js +159 -0
  1032. package/dist/release/frozen-installation.js.map +1 -0
  1033. package/dist/release/import-artifacts.d.ts +9 -0
  1034. package/dist/release/import-artifacts.d.ts.map +1 -0
  1035. package/dist/release/import-artifacts.js +60 -0
  1036. package/dist/release/import-artifacts.js.map +1 -0
  1037. package/dist/release/infrastructure.d.ts +6 -0
  1038. package/dist/release/infrastructure.d.ts.map +1 -0
  1039. package/dist/release/infrastructure.js +74 -0
  1040. package/dist/release/infrastructure.js.map +1 -0
  1041. package/dist/release/installed-artifacts.d.ts +12 -0
  1042. package/dist/release/installed-artifacts.d.ts.map +1 -0
  1043. package/dist/release/installed-artifacts.js +199 -0
  1044. package/dist/release/installed-artifacts.js.map +1 -0
  1045. package/dist/release/installed-graph.d.ts +28 -0
  1046. package/dist/release/installed-graph.d.ts.map +1 -0
  1047. package/dist/release/installed-graph.js +138 -0
  1048. package/dist/release/installed-graph.js.map +1 -0
  1049. package/dist/release/installed-origin.d.ts +42 -0
  1050. package/dist/release/installed-origin.d.ts.map +1 -0
  1051. package/dist/release/installed-origin.js +130 -0
  1052. package/dist/release/installed-origin.js.map +1 -0
  1053. package/dist/release/installed-release.d.ts +23 -0
  1054. package/dist/release/installed-release.d.ts.map +1 -0
  1055. package/dist/release/installed-release.js +141 -0
  1056. package/dist/release/installed-release.js.map +1 -0
  1057. package/dist/release/layout.d.ts +29 -34
  1058. package/dist/release/layout.d.ts.map +1 -1
  1059. package/dist/release/layout.js +164 -53
  1060. package/dist/release/layout.js.map +1 -1
  1061. package/dist/release/load.d.ts +3 -0
  1062. package/dist/release/load.d.ts.map +1 -1
  1063. package/dist/release/load.js +50 -8
  1064. package/dist/release/load.js.map +1 -1
  1065. package/dist/release/local-installation.d.ts +20 -0
  1066. package/dist/release/local-installation.d.ts.map +1 -0
  1067. package/dist/release/local-installation.js +298 -0
  1068. package/dist/release/local-installation.js.map +1 -0
  1069. package/dist/release/manifest.d.ts +87 -12
  1070. package/dist/release/manifest.d.ts.map +1 -1
  1071. package/dist/release/manifest.js +31 -7
  1072. package/dist/release/manifest.js.map +1 -1
  1073. package/dist/release/migration-programs.d.ts +12 -0
  1074. package/dist/release/migration-programs.d.ts.map +1 -0
  1075. package/dist/release/migration-programs.js +45 -0
  1076. package/dist/release/migration-programs.js.map +1 -0
  1077. package/dist/release/migrations.d.ts +12 -1
  1078. package/dist/release/migrations.d.ts.map +1 -1
  1079. package/dist/release/migrations.js +124 -9
  1080. package/dist/release/migrations.js.map +1 -1
  1081. package/dist/release/origin.d.ts +33 -0
  1082. package/dist/release/origin.d.ts.map +1 -0
  1083. package/dist/release/origin.js +253 -0
  1084. package/dist/release/origin.js.map +1 -0
  1085. package/dist/release/owner-admission.d.ts +15 -0
  1086. package/dist/release/owner-admission.d.ts.map +1 -0
  1087. package/dist/release/owner-admission.js +37 -0
  1088. package/dist/release/owner-admission.js.map +1 -0
  1089. package/dist/release/owner-executable.d.ts +3 -0
  1090. package/dist/release/owner-executable.d.ts.map +1 -0
  1091. package/dist/release/owner-executable.js +40 -0
  1092. package/dist/release/owner-executable.js.map +1 -0
  1093. package/dist/release/package-gates.d.ts +9 -0
  1094. package/dist/release/package-gates.d.ts.map +1 -0
  1095. package/dist/release/package-gates.js +42 -0
  1096. package/dist/release/package-gates.js.map +1 -0
  1097. package/dist/release/package-resolution.d.ts +4 -0
  1098. package/dist/release/package-resolution.d.ts.map +1 -0
  1099. package/dist/release/package-resolution.js +28 -0
  1100. package/dist/release/package-resolution.js.map +1 -0
  1101. package/dist/release/portable-archive.d.ts +12 -0
  1102. package/dist/release/portable-archive.d.ts.map +1 -0
  1103. package/dist/release/portable-archive.js +96 -0
  1104. package/dist/release/portable-archive.js.map +1 -0
  1105. package/dist/release/publish.d.ts +1 -1
  1106. package/dist/release/publish.js +1 -1
  1107. package/dist/release/registry-download.d.ts +2 -0
  1108. package/dist/release/registry-download.d.ts.map +1 -0
  1109. package/dist/release/registry-download.js +157 -0
  1110. package/dist/release/registry-download.js.map +1 -0
  1111. package/dist/release/registry-framework.d.ts +39 -0
  1112. package/dist/release/registry-framework.d.ts.map +1 -0
  1113. package/dist/release/registry-framework.js +279 -0
  1114. package/dist/release/registry-framework.js.map +1 -0
  1115. package/dist/release/registry-transport.d.ts +27 -0
  1116. package/dist/release/registry-transport.d.ts.map +1 -0
  1117. package/dist/release/registry-transport.js +96 -0
  1118. package/dist/release/registry-transport.js.map +1 -0
  1119. package/dist/release/repository-identity.d.ts +12 -0
  1120. package/dist/release/repository-identity.d.ts.map +1 -0
  1121. package/dist/release/repository-identity.js +62 -0
  1122. package/dist/release/repository-identity.js.map +1 -0
  1123. package/dist/release/runtime-extractor.d.ts +4 -0
  1124. package/dist/release/runtime-extractor.d.ts.map +1 -0
  1125. package/dist/release/runtime-extractor.js +15 -0
  1126. package/dist/release/runtime-extractor.js.map +1 -0
  1127. package/dist/release/runtime-provenance.d.ts +40 -0
  1128. package/dist/release/runtime-provenance.d.ts.map +1 -0
  1129. package/dist/release/runtime-provenance.js +229 -0
  1130. package/dist/release/runtime-provenance.js.map +1 -0
  1131. package/dist/release/source.d.ts +12 -0
  1132. package/dist/release/source.d.ts.map +1 -0
  1133. package/dist/release/source.js +168 -0
  1134. package/dist/release/source.js.map +1 -0
  1135. package/dist/release/store.d.ts +14 -5
  1136. package/dist/release/store.d.ts.map +1 -1
  1137. package/dist/release/store.js +73 -17
  1138. package/dist/release/store.js.map +1 -1
  1139. package/dist/release/target-runtime.d.ts +19 -0
  1140. package/dist/release/target-runtime.d.ts.map +1 -0
  1141. package/dist/release/target-runtime.js +41 -0
  1142. package/dist/release/target-runtime.js.map +1 -0
  1143. package/dist/release/vendored-framework.d.ts +28 -0
  1144. package/dist/release/vendored-framework.d.ts.map +1 -0
  1145. package/dist/release/vendored-framework.js +98 -0
  1146. package/dist/release/vendored-framework.js.map +1 -0
  1147. package/dist/release/workspace-source.d.ts +3 -0
  1148. package/dist/release/workspace-source.d.ts.map +1 -0
  1149. package/dist/release/workspace-source.js +33 -0
  1150. package/dist/release/workspace-source.js.map +1 -0
  1151. package/dist/runtime/context.d.ts +29 -0
  1152. package/dist/runtime/context.d.ts.map +1 -0
  1153. package/dist/runtime/context.js +111 -0
  1154. package/dist/runtime/context.js.map +1 -0
  1155. package/dist/runtime/identity.d.ts +15 -0
  1156. package/dist/runtime/identity.d.ts.map +1 -0
  1157. package/dist/runtime/identity.js +33 -0
  1158. package/dist/runtime/identity.js.map +1 -0
  1159. package/dist/runtime/index.d.ts +3 -0
  1160. package/dist/runtime/index.d.ts.map +1 -0
  1161. package/dist/runtime/index.js +3 -0
  1162. package/dist/runtime/index.js.map +1 -0
  1163. package/dist/services/access.rpc-service.d.ts +41 -0
  1164. package/dist/services/access.rpc-service.d.ts.map +1 -0
  1165. package/dist/services/access.rpc-service.js +248 -0
  1166. package/dist/services/access.rpc-service.js.map +1 -0
  1167. package/dist/services/alert.service.d.ts +3 -3
  1168. package/dist/services/alert.service.d.ts.map +1 -1
  1169. package/dist/services/alert.service.js +3 -3
  1170. package/dist/services/anonymous-input.d.ts +0 -21
  1171. package/dist/services/anonymous-input.d.ts.map +1 -1
  1172. package/dist/services/anonymous-input.js +1 -27
  1173. package/dist/services/anonymous-input.js.map +1 -1
  1174. package/dist/services/audit.service.d.ts +10 -30
  1175. package/dist/services/audit.service.d.ts.map +1 -1
  1176. package/dist/services/audit.service.js +72 -18
  1177. package/dist/services/audit.service.js.map +1 -1
  1178. package/dist/services/auth-context.d.ts +2 -0
  1179. package/dist/services/auth-context.d.ts.map +1 -1
  1180. package/dist/services/auth-context.js +4 -1
  1181. package/dist/services/auth-context.js.map +1 -1
  1182. package/dist/services/auth.rpc-service.d.ts +3 -1
  1183. package/dist/services/auth.rpc-service.d.ts.map +1 -1
  1184. package/dist/services/auth.rpc-service.js +13 -3
  1185. package/dist/services/auth.rpc-service.js.map +1 -1
  1186. package/dist/services/auth.service.d.ts +11 -21
  1187. package/dist/services/auth.service.d.ts.map +1 -1
  1188. package/dist/services/auth.service.js +125 -139
  1189. package/dist/services/auth.service.js.map +1 -1
  1190. package/dist/services/backup-pipeline.d.ts +1 -1
  1191. package/dist/services/backup-pipeline.js +1 -1
  1192. package/dist/services/backup-storage.d.ts +14 -0
  1193. package/dist/services/backup-storage.d.ts.map +1 -0
  1194. package/dist/services/backup-storage.js +195 -0
  1195. package/dist/services/backup-storage.js.map +1 -0
  1196. package/dist/services/backup.rpc-service.d.ts +2 -0
  1197. package/dist/services/backup.rpc-service.d.ts.map +1 -1
  1198. package/dist/services/backup.rpc-service.js +9 -0
  1199. package/dist/services/backup.rpc-service.js.map +1 -1
  1200. package/dist/services/backup.service.d.ts +36 -129
  1201. package/dist/services/backup.service.d.ts.map +1 -1
  1202. package/dist/services/backup.service.js +177 -156
  1203. package/dist/services/backup.service.js.map +1 -1
  1204. package/dist/services/bundle-builder.d.ts +27 -12
  1205. package/dist/services/bundle-builder.d.ts.map +1 -1
  1206. package/dist/services/bundle-builder.js +192 -101
  1207. package/dist/services/bundle-builder.js.map +1 -1
  1208. package/dist/services/bundle-overrides.d.ts +25 -0
  1209. package/dist/services/bundle-overrides.d.ts.map +1 -0
  1210. package/dist/services/bundle-overrides.js +96 -0
  1211. package/dist/services/bundle-overrides.js.map +1 -0
  1212. package/dist/services/daemon-authority.d.ts +16 -0
  1213. package/dist/services/daemon-authority.d.ts.map +1 -0
  1214. package/dist/services/daemon-authority.js +54 -0
  1215. package/dist/services/daemon-authority.js.map +1 -0
  1216. package/dist/services/daemon-principal.d.ts +31 -0
  1217. package/dist/services/daemon-principal.d.ts.map +1 -0
  1218. package/dist/services/daemon-principal.js +37 -0
  1219. package/dist/services/daemon-principal.js.map +1 -0
  1220. package/dist/services/deploy.service.d.ts +13 -57
  1221. package/dist/services/deploy.service.d.ts.map +1 -1
  1222. package/dist/services/deploy.service.js +15 -263
  1223. package/dist/services/deploy.service.js.map +1 -1
  1224. package/dist/services/discovery.service.d.ts +1 -1
  1225. package/dist/services/discovery.service.js +1 -1
  1226. package/dist/services/event-broadcaster.rpc-service.d.ts +7 -1
  1227. package/dist/services/event-broadcaster.rpc-service.d.ts.map +1 -1
  1228. package/dist/services/event-broadcaster.rpc-service.js +89 -11
  1229. package/dist/services/event-broadcaster.rpc-service.js.map +1 -1
  1230. package/dist/services/fleet.rpc-service.d.ts +0 -6
  1231. package/dist/services/fleet.rpc-service.d.ts.map +1 -1
  1232. package/dist/services/fleet.rpc-service.js +0 -13
  1233. package/dist/services/fleet.rpc-service.js.map +1 -1
  1234. package/dist/services/health-check.service.d.ts +1 -1
  1235. package/dist/services/health-check.service.d.ts.map +1 -1
  1236. package/dist/services/health-check.service.js +30 -5
  1237. package/dist/services/health-check.service.js.map +1 -1
  1238. package/dist/services/host-operation-barrier.d.ts +8 -0
  1239. package/dist/services/host-operation-barrier.d.ts.map +1 -0
  1240. package/dist/services/host-operation-barrier.js +44 -0
  1241. package/dist/services/host-operation-barrier.js.map +1 -0
  1242. package/dist/services/host-upgrade.d.ts +181 -0
  1243. package/dist/services/host-upgrade.d.ts.map +1 -0
  1244. package/dist/services/host-upgrade.js +503 -0
  1245. package/dist/services/host-upgrade.js.map +1 -0
  1246. package/dist/services/infrastructure.rpc-service.d.ts +24 -2
  1247. package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
  1248. package/dist/services/infrastructure.rpc-service.js +178 -36
  1249. package/dist/services/infrastructure.rpc-service.js.map +1 -1
  1250. package/dist/services/kernel-catalog.d.ts +14 -0
  1251. package/dist/services/kernel-catalog.d.ts.map +1 -0
  1252. package/dist/services/kernel-catalog.js +172 -0
  1253. package/dist/services/kernel-catalog.js.map +1 -0
  1254. package/dist/services/kernel-distribution.d.ts +5 -0
  1255. package/dist/services/kernel-distribution.d.ts.map +1 -0
  1256. package/dist/services/kernel-distribution.js +49 -0
  1257. package/dist/services/kernel-distribution.js.map +1 -0
  1258. package/dist/services/kernel-rollout.service.d.ts +55 -0
  1259. package/dist/services/kernel-rollout.service.d.ts.map +1 -0
  1260. package/dist/services/kernel-rollout.service.js +394 -0
  1261. package/dist/services/kernel-rollout.service.js.map +1 -0
  1262. package/dist/services/local-bundle.d.ts +9 -0
  1263. package/dist/services/local-bundle.d.ts.map +1 -1
  1264. package/dist/services/local-bundle.js +14 -3
  1265. package/dist/services/local-bundle.js.map +1 -1
  1266. package/dist/services/log-collector.rpc-service.d.ts +5 -11
  1267. package/dist/services/log-collector.rpc-service.d.ts.map +1 -1
  1268. package/dist/services/log-collector.rpc-service.js +6 -6
  1269. package/dist/services/log-collector.rpc-service.js.map +1 -1
  1270. package/dist/services/log-collector.service.d.ts +39 -109
  1271. package/dist/services/log-collector.service.d.ts.map +1 -1
  1272. package/dist/services/log-collector.service.js +286 -261
  1273. package/dist/services/log-collector.service.js.map +1 -1
  1274. package/dist/services/log-query.d.ts +6 -0
  1275. package/dist/services/log-query.d.ts.map +1 -0
  1276. package/dist/services/log-query.js +46 -0
  1277. package/dist/services/log-query.js.map +1 -0
  1278. package/dist/services/maintenance-lock.d.ts +2 -2
  1279. package/dist/services/maintenance-lock.d.ts.map +1 -1
  1280. package/dist/services/maintenance-lock.js +1 -1
  1281. package/dist/services/managed-rollout.d.ts +54 -0
  1282. package/dist/services/managed-rollout.d.ts.map +1 -0
  1283. package/dist/services/managed-rollout.js +124 -0
  1284. package/dist/services/managed-rollout.js.map +1 -0
  1285. package/dist/services/metrics.rpc-service.d.ts +23 -0
  1286. package/dist/services/metrics.rpc-service.d.ts.map +1 -0
  1287. package/dist/services/metrics.rpc-service.js +73 -0
  1288. package/dist/services/metrics.rpc-service.js.map +1 -0
  1289. package/dist/services/migration-output.d.ts +2 -2
  1290. package/dist/services/migration-output.js +2 -2
  1291. package/dist/services/migration-process.d.ts +32 -0
  1292. package/dist/services/migration-process.d.ts.map +1 -0
  1293. package/dist/services/migration-process.js +71 -0
  1294. package/dist/services/migration-process.js.map +1 -0
  1295. package/dist/services/migration-target.d.ts +57 -0
  1296. package/dist/services/migration-target.d.ts.map +1 -0
  1297. package/dist/services/migration-target.js +221 -0
  1298. package/dist/services/migration-target.js.map +1 -0
  1299. package/dist/services/node-deploy-lease.d.ts +19 -2
  1300. package/dist/services/node-deploy-lease.d.ts.map +1 -1
  1301. package/dist/services/node-deploy-lease.js +84 -10
  1302. package/dist/services/node-deploy-lease.js.map +1 -1
  1303. package/dist/services/node-health.repository.d.ts +2 -59
  1304. package/dist/services/node-health.repository.d.ts.map +1 -1
  1305. package/dist/services/node-health.repository.js.map +1 -1
  1306. package/dist/services/node-host-key.d.ts +9 -0
  1307. package/dist/services/node-host-key.d.ts.map +1 -0
  1308. package/dist/services/node-host-key.js +17 -0
  1309. package/dist/services/node-host-key.js.map +1 -0
  1310. package/dist/services/node-manager.rpc-service.d.ts +50 -38
  1311. package/dist/services/node-manager.rpc-service.d.ts.map +1 -1
  1312. package/dist/services/node-manager.rpc-service.js +233 -38
  1313. package/dist/services/node-manager.rpc-service.js.map +1 -1
  1314. package/dist/services/node-manager.service.d.ts +4 -1
  1315. package/dist/services/node-manager.service.d.ts.map +1 -1
  1316. package/dist/services/node-manager.service.js +79 -28
  1317. package/dist/services/node-manager.service.js.map +1 -1
  1318. package/dist/services/node-registration.d.ts +17 -0
  1319. package/dist/services/node-registration.d.ts.map +1 -0
  1320. package/dist/services/node-registration.js +73 -0
  1321. package/dist/services/node-registration.js.map +1 -0
  1322. package/dist/services/node-upgrade.d.ts +1 -1
  1323. package/dist/services/node-upgrade.service.d.ts +2 -28
  1324. package/dist/services/node-upgrade.service.d.ts.map +1 -1
  1325. package/dist/services/node-upgrade.service.js +2 -3
  1326. package/dist/services/node-upgrade.service.js.map +1 -1
  1327. package/dist/services/pipeline-definition.d.ts +14 -0
  1328. package/dist/services/pipeline-definition.d.ts.map +1 -0
  1329. package/dist/services/pipeline-definition.js +77 -0
  1330. package/dist/services/pipeline-definition.js.map +1 -0
  1331. package/dist/services/pipeline.rpc-service.d.ts +14 -3
  1332. package/dist/services/pipeline.rpc-service.d.ts.map +1 -1
  1333. package/dist/services/pipeline.rpc-service.js +45 -12
  1334. package/dist/services/pipeline.rpc-service.js.map +1 -1
  1335. package/dist/services/pipeline.service.d.ts +30 -44
  1336. package/dist/services/pipeline.service.d.ts.map +1 -1
  1337. package/dist/services/pipeline.service.js +402 -333
  1338. package/dist/services/pipeline.service.js.map +1 -1
  1339. package/dist/services/project.rpc-service.d.ts +219 -14
  1340. package/dist/services/project.rpc-service.d.ts.map +1 -1
  1341. package/dist/services/project.rpc-service.js +314 -31
  1342. package/dist/services/project.rpc-service.js.map +1 -1
  1343. package/dist/services/project.service.d.ts +195 -67
  1344. package/dist/services/project.service.d.ts.map +1 -1
  1345. package/dist/services/project.service.js +2029 -705
  1346. package/dist/services/project.service.js.map +1 -1
  1347. package/dist/services/redeploy-decision.d.ts +2 -2
  1348. package/dist/services/redeploy-decision.js +1 -1
  1349. package/dist/services/release.rpc-service.d.ts +6 -19
  1350. package/dist/services/release.rpc-service.d.ts.map +1 -1
  1351. package/dist/services/release.rpc-service.js +35 -12
  1352. package/dist/services/release.rpc-service.js.map +1 -1
  1353. package/dist/services/release.service.d.ts +2 -47
  1354. package/dist/services/release.service.d.ts.map +1 -1
  1355. package/dist/services/release.service.js +26 -2
  1356. package/dist/services/release.service.js.map +1 -1
  1357. package/dist/services/remote-deployer.service.d.ts +65 -126
  1358. package/dist/services/remote-deployer.service.d.ts.map +1 -1
  1359. package/dist/services/remote-deployer.service.js +671 -466
  1360. package/dist/services/remote-deployer.service.js.map +1 -1
  1361. package/dist/services/remote-provisioner.d.ts +3 -1
  1362. package/dist/services/remote-provisioner.d.ts.map +1 -1
  1363. package/dist/services/remote-provisioner.js +2 -2
  1364. package/dist/services/remote-provisioner.js.map +1 -1
  1365. package/dist/services/replication-evidence.d.ts +24 -0
  1366. package/dist/services/replication-evidence.d.ts.map +1 -0
  1367. package/dist/services/replication-evidence.js +61 -0
  1368. package/dist/services/replication-evidence.js.map +1 -0
  1369. package/dist/services/replication-history.d.ts +80 -0
  1370. package/dist/services/replication-history.d.ts.map +1 -0
  1371. package/dist/services/replication-history.js +279 -0
  1372. package/dist/services/replication-history.js.map +1 -0
  1373. package/dist/services/replication-reconciliation.d.ts +74 -0
  1374. package/dist/services/replication-reconciliation.d.ts.map +1 -0
  1375. package/dist/services/replication-reconciliation.js +351 -0
  1376. package/dist/services/replication-reconciliation.js.map +1 -0
  1377. package/dist/services/slave-storage.service.d.ts +2 -19
  1378. package/dist/services/slave-storage.service.d.ts.map +1 -1
  1379. package/dist/services/slave-storage.service.js +19 -6
  1380. package/dist/services/slave-storage.service.js.map +1 -1
  1381. package/dist/services/static-carry-forward.d.ts +28 -3
  1382. package/dist/services/static-carry-forward.d.ts.map +1 -1
  1383. package/dist/services/static-carry-forward.js +285 -4
  1384. package/dist/services/static-carry-forward.js.map +1 -1
  1385. package/dist/services/sync-summary.d.ts.map +1 -1
  1386. package/dist/services/sync-summary.js +1 -18
  1387. package/dist/services/sync-summary.js.map +1 -1
  1388. package/dist/services/sync.rpc-service.d.ts +17 -20
  1389. package/dist/services/sync.rpc-service.d.ts.map +1 -1
  1390. package/dist/services/sync.rpc-service.js +23 -37
  1391. package/dist/services/sync.rpc-service.js.map +1 -1
  1392. package/dist/services/sync.service.d.ts +53 -157
  1393. package/dist/services/sync.service.d.ts.map +1 -1
  1394. package/dist/services/sync.service.js +239 -337
  1395. package/dist/services/sync.service.js.map +1 -1
  1396. package/dist/services/system-info.rpc-service.d.ts +3 -1
  1397. package/dist/services/system-info.rpc-service.d.ts.map +1 -1
  1398. package/dist/services/system-info.rpc-service.js +5 -5
  1399. package/dist/services/system-info.rpc-service.js.map +1 -1
  1400. package/dist/services/system-info.service.d.ts +3 -1
  1401. package/dist/services/system-info.service.d.ts.map +1 -1
  1402. package/dist/services/system-info.service.js +17 -9
  1403. package/dist/services/system-info.service.js.map +1 -1
  1404. package/dist/services/telemetry.rpc-service.d.ts +4 -23
  1405. package/dist/services/telemetry.rpc-service.d.ts.map +1 -1
  1406. package/dist/services/telemetry.rpc-service.js +4 -32
  1407. package/dist/services/telemetry.rpc-service.js.map +1 -1
  1408. package/dist/services/telemetry.service.d.ts +2 -30
  1409. package/dist/services/telemetry.service.d.ts.map +1 -1
  1410. package/dist/services/telemetry.service.js +25 -131
  1411. package/dist/services/telemetry.service.js.map +1 -1
  1412. package/dist/services/terminal-ssh.d.ts +16 -0
  1413. package/dist/services/terminal-ssh.d.ts.map +1 -0
  1414. package/dist/services/terminal-ssh.js +101 -0
  1415. package/dist/services/terminal-ssh.js.map +1 -0
  1416. package/dist/services/terminal.rpc-service.d.ts +84 -0
  1417. package/dist/services/terminal.rpc-service.d.ts.map +1 -0
  1418. package/dist/services/terminal.rpc-service.js +508 -0
  1419. package/dist/services/terminal.rpc-service.js.map +1 -0
  1420. package/dist/services/trace-collector.rpc-service.js +3 -3
  1421. package/dist/services/trace-collector.rpc-service.js.map +1 -1
  1422. package/dist/services/wait-for-postgres.d.ts +1 -1
  1423. package/dist/services/wait-for-postgres.d.ts.map +1 -1
  1424. package/dist/services/wait-for-postgres.js +13 -28
  1425. package/dist/services/wait-for-postgres.js.map +1 -1
  1426. package/dist/shared/build-stamp.d.ts +4 -1
  1427. package/dist/shared/build-stamp.d.ts.map +1 -1
  1428. package/dist/shared/build-stamp.js +14 -6
  1429. package/dist/shared/build-stamp.js.map +1 -1
  1430. package/dist/shared/describe-error.d.ts +1 -21
  1431. package/dist/shared/describe-error.d.ts.map +1 -1
  1432. package/dist/shared/describe-error.js +1 -38
  1433. package/dist/shared/describe-error.js.map +1 -1
  1434. package/dist/shared/dto/access.d.ts +55 -0
  1435. package/dist/shared/dto/access.d.ts.map +1 -0
  1436. package/dist/shared/dto/access.js +2 -0
  1437. package/dist/shared/dto/access.js.map +1 -0
  1438. package/dist/shared/dto/audit.d.ts +32 -0
  1439. package/dist/shared/dto/audit.d.ts.map +1 -0
  1440. package/dist/shared/dto/audit.js +3 -0
  1441. package/dist/shared/dto/audit.js.map +1 -0
  1442. package/dist/shared/dto/auth.d.ts +2 -0
  1443. package/dist/shared/dto/auth.d.ts.map +1 -1
  1444. package/dist/shared/dto/auth.js +5 -1
  1445. package/dist/shared/dto/auth.js.map +1 -1
  1446. package/dist/shared/dto/backend.d.ts +50 -0
  1447. package/dist/shared/dto/backend.d.ts.map +1 -0
  1448. package/dist/shared/dto/backend.js +3 -0
  1449. package/dist/shared/dto/backend.js.map +1 -0
  1450. package/dist/shared/dto/backups.d.ts +99 -0
  1451. package/dist/shared/dto/backups.d.ts.map +1 -1
  1452. package/dist/shared/dto/cluster.d.ts +44 -0
  1453. package/dist/shared/dto/cluster.d.ts.map +1 -0
  1454. package/dist/shared/dto/cluster.js +3 -0
  1455. package/dist/shared/dto/cluster.js.map +1 -0
  1456. package/dist/shared/dto/files.d.ts +328 -0
  1457. package/dist/shared/dto/files.d.ts.map +1 -0
  1458. package/dist/shared/dto/files.js +2 -0
  1459. package/dist/shared/dto/files.js.map +1 -0
  1460. package/dist/shared/dto/health.d.ts +59 -0
  1461. package/dist/shared/dto/health.d.ts.map +1 -1
  1462. package/dist/shared/dto/installed-release.d.ts +40 -0
  1463. package/dist/shared/dto/installed-release.d.ts.map +1 -0
  1464. package/dist/shared/dto/installed-release.js +2 -0
  1465. package/dist/shared/dto/installed-release.js.map +1 -0
  1466. package/dist/shared/dto/kernel-catalog.d.ts +11 -0
  1467. package/dist/shared/dto/kernel-catalog.d.ts.map +1 -0
  1468. package/dist/shared/dto/kernel-catalog.js +2 -0
  1469. package/dist/shared/dto/kernel-catalog.js.map +1 -0
  1470. package/dist/shared/dto/logs.d.ts +21 -0
  1471. package/dist/shared/dto/logs.d.ts.map +1 -1
  1472. package/dist/shared/dto/metrics.d.ts +4 -64
  1473. package/dist/shared/dto/metrics.d.ts.map +1 -1
  1474. package/dist/shared/dto/metrics.js +0 -15
  1475. package/dist/shared/dto/metrics.js.map +1 -1
  1476. package/dist/shared/dto/nodes.d.ts +98 -24
  1477. package/dist/shared/dto/nodes.d.ts.map +1 -1
  1478. package/dist/shared/dto/pipelines.d.ts +22 -1
  1479. package/dist/shared/dto/pipelines.d.ts.map +1 -1
  1480. package/dist/shared/dto/project.d.ts +289 -30
  1481. package/dist/shared/dto/project.d.ts.map +1 -1
  1482. package/dist/shared/dto/releases.d.ts +59 -0
  1483. package/dist/shared/dto/releases.d.ts.map +1 -0
  1484. package/dist/shared/dto/releases.js +2 -0
  1485. package/dist/shared/dto/releases.js.map +1 -0
  1486. package/dist/shared/dto/services.d.ts +201 -37
  1487. package/dist/shared/dto/services.d.ts.map +1 -1
  1488. package/dist/shared/dto/services.js +15 -6
  1489. package/dist/shared/dto/services.js.map +1 -1
  1490. package/dist/shared/dto/stack-diagnosis.d.ts +20 -0
  1491. package/dist/shared/dto/stack-diagnosis.d.ts.map +1 -0
  1492. package/dist/shared/dto/stack-diagnosis.js +8 -0
  1493. package/dist/shared/dto/stack-diagnosis.js.map +1 -0
  1494. package/dist/shared/dto/stack-execution.d.ts +65 -0
  1495. package/dist/shared/dto/stack-execution.d.ts.map +1 -0
  1496. package/dist/shared/dto/stack-execution.js +33 -0
  1497. package/dist/shared/dto/stack-execution.js.map +1 -0
  1498. package/dist/shared/dto/system-info.d.ts +11 -0
  1499. package/dist/shared/dto/system-info.d.ts.map +1 -1
  1500. package/dist/shared/dto/system-info.js +7 -1
  1501. package/dist/shared/dto/system-info.js.map +1 -1
  1502. package/dist/shared/dto/terminal.d.ts +40 -0
  1503. package/dist/shared/dto/terminal.d.ts.map +1 -0
  1504. package/dist/shared/dto/terminal.js +2 -0
  1505. package/dist/shared/dto/terminal.js.map +1 -0
  1506. package/dist/shared/dto/topology.d.ts +96 -0
  1507. package/dist/shared/dto/topology.d.ts.map +1 -0
  1508. package/dist/shared/dto/topology.js +2 -0
  1509. package/dist/shared/dto/topology.js.map +1 -0
  1510. package/dist/shared/emergency-output.d.ts +3 -0
  1511. package/dist/shared/emergency-output.d.ts.map +1 -0
  1512. package/dist/shared/emergency-output.js +22 -0
  1513. package/dist/shared/emergency-output.js.map +1 -0
  1514. package/dist/shared/env-config.d.ts +2 -0
  1515. package/dist/shared/env-config.d.ts.map +1 -1
  1516. package/dist/shared/env-config.js +1 -0
  1517. package/dist/shared/env-config.js.map +1 -1
  1518. package/dist/shared/events.d.ts +2 -0
  1519. package/dist/shared/events.d.ts.map +1 -1
  1520. package/dist/shared/events.js.map +1 -1
  1521. package/dist/shared/execution-identity.d.ts +39 -0
  1522. package/dist/shared/execution-identity.d.ts.map +1 -0
  1523. package/dist/shared/execution-identity.js +160 -0
  1524. package/dist/shared/execution-identity.js.map +1 -0
  1525. package/dist/shared/file-policy.d.ts +5 -0
  1526. package/dist/shared/file-policy.d.ts.map +1 -0
  1527. package/dist/shared/file-policy.js +18 -0
  1528. package/dist/shared/file-policy.js.map +1 -0
  1529. package/dist/shared/framework-source.d.ts +11 -0
  1530. package/dist/shared/framework-source.d.ts.map +1 -0
  1531. package/dist/shared/framework-source.js +31 -0
  1532. package/dist/shared/framework-source.js.map +1 -0
  1533. package/dist/shared/fresh-module-reader.d.ts +40 -0
  1534. package/dist/shared/fresh-module-reader.d.ts.map +1 -0
  1535. package/dist/shared/fresh-module-reader.js +257 -0
  1536. package/dist/shared/fresh-module-reader.js.map +1 -0
  1537. package/dist/shared/host-boot-identity.d.ts +12 -0
  1538. package/dist/shared/host-boot-identity.d.ts.map +1 -0
  1539. package/dist/shared/host-boot-identity.js +89 -0
  1540. package/dist/shared/host-boot-identity.js.map +1 -0
  1541. package/dist/shared/kernel-file-lock.d.ts +3 -0
  1542. package/dist/shared/kernel-file-lock.d.ts.map +1 -0
  1543. package/dist/shared/kernel-file-lock.js +53 -0
  1544. package/dist/shared/kernel-file-lock.js.map +1 -0
  1545. package/dist/shared/linux-file-lock.d.ts +4 -0
  1546. package/dist/shared/linux-file-lock.d.ts.map +1 -0
  1547. package/dist/shared/linux-file-lock.js +36 -0
  1548. package/dist/shared/linux-file-lock.js.map +1 -0
  1549. package/dist/shared/local-infra-host.d.ts +2 -2
  1550. package/dist/shared/local-infra-host.js +2 -2
  1551. package/dist/shared/log-ingestion-reading.d.ts +9 -0
  1552. package/dist/shared/log-ingestion-reading.d.ts.map +1 -0
  1553. package/dist/shared/log-ingestion-reading.js +32 -0
  1554. package/dist/shared/log-ingestion-reading.js.map +1 -0
  1555. package/dist/shared/log-levels.d.ts +19 -0
  1556. package/dist/shared/log-levels.d.ts.map +1 -0
  1557. package/dist/shared/log-levels.js +23 -0
  1558. package/dist/shared/log-levels.js.map +1 -0
  1559. package/dist/shared/metrics-storage-reading.d.ts +8 -0
  1560. package/dist/shared/metrics-storage-reading.d.ts.map +1 -0
  1561. package/dist/shared/metrics-storage-reading.js +27 -0
  1562. package/dist/shared/metrics-storage-reading.js.map +1 -0
  1563. package/dist/shared/pnpm.d.ts.map +1 -1
  1564. package/dist/shared/pnpm.js +7 -0
  1565. package/dist/shared/pnpm.js.map +1 -1
  1566. package/dist/shared/pool-scale.d.ts +10 -0
  1567. package/dist/shared/pool-scale.d.ts.map +1 -0
  1568. package/dist/shared/pool-scale.js +25 -0
  1569. package/dist/shared/pool-scale.js.map +1 -0
  1570. package/dist/shared/private-files.d.ts +10 -22
  1571. package/dist/shared/private-files.d.ts.map +1 -1
  1572. package/dist/shared/private-files.js +95 -82
  1573. package/dist/shared/private-files.js.map +1 -1
  1574. package/dist/shared/relay-reading.d.ts +19 -0
  1575. package/dist/shared/relay-reading.d.ts.map +1 -0
  1576. package/dist/shared/relay-reading.js +22 -0
  1577. package/dist/shared/relay-reading.js.map +1 -0
  1578. package/dist/shared/release-reading.d.ts +124 -32
  1579. package/dist/shared/release-reading.d.ts.map +1 -1
  1580. package/dist/shared/release-reading.js +208 -28
  1581. package/dist/shared/release-reading.js.map +1 -1
  1582. package/dist/shared/roles.d.ts +19 -18
  1583. package/dist/shared/roles.d.ts.map +1 -1
  1584. package/dist/shared/roles.js +21 -26
  1585. package/dist/shared/roles.js.map +1 -1
  1586. package/dist/shared/runtime-artifact.d.ts +20 -0
  1587. package/dist/shared/runtime-artifact.d.ts.map +1 -0
  1588. package/dist/shared/runtime-artifact.js +83 -0
  1589. package/dist/shared/runtime-artifact.js.map +1 -0
  1590. package/dist/shared/stack-reading.d.ts +18 -0
  1591. package/dist/shared/stack-reading.d.ts.map +1 -0
  1592. package/dist/shared/stack-reading.js +15 -0
  1593. package/dist/shared/stack-reading.js.map +1 -0
  1594. package/dist/shared/sync-reading.d.ts +30 -38
  1595. package/dist/shared/sync-reading.d.ts.map +1 -1
  1596. package/dist/shared/sync-reading.js +90 -29
  1597. package/dist/shared/sync-reading.js.map +1 -1
  1598. package/dist/shared/tokens.d.ts +3 -1
  1599. package/dist/shared/tokens.d.ts.map +1 -1
  1600. package/dist/shared/tokens.js +1 -0
  1601. package/dist/shared/tokens.js.map +1 -1
  1602. package/dist/supervisor/restart-policy.d.ts.map +1 -1
  1603. package/dist/supervisor/restart-policy.js +7 -5
  1604. package/dist/supervisor/restart-policy.js.map +1 -1
  1605. package/dist/webapp/console-container.d.ts +7 -0
  1606. package/dist/webapp/console-container.d.ts.map +1 -0
  1607. package/dist/webapp/console-container.js +23 -0
  1608. package/dist/webapp/console-container.js.map +1 -0
  1609. package/dist/webapp/webapp.service.d.ts.map +1 -1
  1610. package/dist/webapp/webapp.service.js +71 -24
  1611. package/dist/webapp/webapp.service.js.map +1 -1
  1612. package/dist/workers/health-monitor.service.d.ts.map +1 -1
  1613. package/dist/workers/health-monitor.service.js +8 -1
  1614. package/dist/workers/health-monitor.service.js.map +1 -1
  1615. package/dist/workers/types.d.ts +2 -0
  1616. package/dist/workers/types.d.ts.map +1 -1
  1617. package/package.json +109 -43
  1618. package/webapp/dist/BUILD.json +4 -3
  1619. package/webapp/dist/assets/access-48hkC2-P.js +1 -0
  1620. package/webapp/dist/assets/access-jWkHxGc7.js +1 -0
  1621. package/webapp/dist/assets/admin-data-table-BKSDI8sU.js +1 -0
  1622. package/webapp/dist/assets/alert-expression-CSblScoa.js +1 -0
  1623. package/webapp/dist/assets/alert-notify-settings-C_CHZrFm.js +1 -0
  1624. package/webapp/dist/assets/alert-uBG6r9NW.js +1 -0
  1625. package/webapp/dist/assets/alerts-CuPQ9YQJ.js +1 -0
  1626. package/webapp/dist/assets/app-address-BCXfN59F.js +1 -0
  1627. package/webapp/dist/assets/apps-Drio028B.js +1 -0
  1628. package/webapp/dist/assets/audit-npSFJECe.js +1 -0
  1629. package/webapp/dist/assets/auth-CcgjP7hR.js +1 -0
  1630. package/webapp/dist/assets/card-DkH32gMY.js +1 -0
  1631. package/webapp/dist/assets/chart-BpGXlCJc.js +2 -0
  1632. package/webapp/dist/assets/charts-BY7qI6s2.js +41 -0
  1633. package/webapp/dist/assets/charts-CpBdHU_A.js +56 -0
  1634. package/webapp/dist/assets/client-DFnuv2z3.js +3 -0
  1635. package/webapp/dist/assets/code-editor-DK6Tmmxv.js +4 -0
  1636. package/webapp/dist/assets/comparison-bars-BtC0dHjF.js +1 -0
  1637. package/webapp/dist/assets/confirm-dialog-BbGsAz7_.js +1 -0
  1638. package/webapp/dist/assets/console-keyboard-D3YCA0yU.js +1 -0
  1639. package/webapp/dist/assets/constants-CyhngVXh.js +1 -0
  1640. package/webapp/dist/assets/containers-Bl8gAyZX.js +3 -0
  1641. package/webapp/dist/assets/context-FIuwpd9_.js +1 -0
  1642. package/webapp/dist/assets/controls-C5W8gHU4.js +1 -0
  1643. package/webapp/dist/assets/daemon-memory-BiEtr9jr.js +1 -0
  1644. package/webapp/dist/assets/dashboard-UHlet3H9.js +1 -0
  1645. package/webapp/dist/assets/dashboard-builder-67PZFqhE.js +1 -0
  1646. package/webapp/dist/assets/dayjs.min-DHwAvH5f.js +1 -0
  1647. package/webapp/dist/assets/deploy-release-dialog-BOXcD5Wo.js +1 -0
  1648. package/webapp/dist/assets/deployments-qV20Ak0P.js +1 -0
  1649. package/webapp/dist/assets/detail-B4TiBfxU.js +8 -0
  1650. package/webapp/dist/assets/detail-B85-Wees.js +2 -0
  1651. package/webapp/dist/assets/detail-CYS81K6Y.js +1 -0
  1652. package/webapp/dist/assets/dist-BUDn8hLh.js +11 -0
  1653. package/webapp/dist/assets/dist-Ci5pYRbx.js +1 -0
  1654. package/webapp/dist/assets/dist-DQmjHv4-.js +1 -0
  1655. package/webapp/dist/assets/dist-De9Fty7a.js +1 -0
  1656. package/webapp/dist/assets/dist-DsGmKwmk.js +23 -0
  1657. package/webapp/dist/assets/empty-content-7jOFhG4C.js +1 -0
  1658. package/webapp/dist/assets/error-boundary-CLLI8PWw.js +3 -0
  1659. package/webapp/dist/assets/event-fields-CiyqrRO8.js +1 -0
  1660. package/webapp/dist/assets/files-DigwXndm.js +2 -0
  1661. package/webapp/dist/assets/formatters-RnRy4bXm.js +1 -0
  1662. package/webapp/dist/assets/icons-OboZgWSt.js +1 -0
  1663. package/webapp/dist/assets/index-uq8Dkk4c.js +1 -0
  1664. package/webapp/dist/assets/label-B1SF0RTL.js +1 -0
  1665. package/webapp/dist/assets/log-level-filter-Bcn31D1F.js +1 -0
  1666. package/webapp/dist/assets/log-location-DuBjh6HQ.js +1 -0
  1667. package/webapp/dist/assets/logs-BqHOufk8.js +4 -0
  1668. package/webapp/dist/assets/metric-chart-M-kI-XOt.js +1 -0
  1669. package/webapp/dist/assets/metric-series-WxePniyw.js +1 -0
  1670. package/webapp/dist/assets/metrics-QIQaF7iS.js +1 -0
  1671. package/webapp/dist/assets/model-ZEXEHm0l.js +2 -0
  1672. package/webapp/dist/assets/mui-6ssfcZcz.js +1 -0
  1673. package/webapp/dist/assets/mui-AnEgAVjz.js +52 -0
  1674. package/webapp/dist/assets/mui-B1jrje6Z.js +1 -0
  1675. package/webapp/dist/assets/mui-BIz4LSVs.js +1 -0
  1676. package/webapp/dist/assets/mui-BTN91yBK.js +28 -0
  1677. package/webapp/dist/assets/mui-BXSXx9c9.js +124 -0
  1678. package/webapp/dist/assets/mui-BwsIrivo.js +37 -0
  1679. package/webapp/dist/assets/mui-C_hromOc.js +1 -0
  1680. package/webapp/dist/assets/mui-Cd711nOk.js +4 -0
  1681. package/webapp/dist/assets/mui-CdB_p2lt.js +10 -0
  1682. package/webapp/dist/assets/mui-DyT2n1lx.js +1 -0
  1683. package/webapp/dist/assets/mui-agG5dued.js +1 -0
  1684. package/webapp/dist/assets/mui-y44PQOfG.js +1 -0
  1685. package/webapp/dist/assets/nodes-BJPk02vv.js +7 -0
  1686. package/webapp/dist/assets/omnitron-logo-koMCbsCv.js +1 -0
  1687. package/webapp/dist/assets/operation-status-Bm1x1wTz.js +1 -0
  1688. package/webapp/dist/assets/page-breadcrumbs-fR7Jmpp4.js +1 -0
  1689. package/webapp/dist/assets/pipelines-T6Ch9LTw.js +3 -0
  1690. package/webapp/dist/assets/popper-m_9b0JRf.js +1 -0
  1691. package/webapp/dist/assets/preload-helper-DzCYNvzR.js +1 -0
  1692. package/webapp/dist/assets/project.store--G5pIF-J.js +1 -0
  1693. package/webapp/dist/assets/projects-YoBzcQ24.js +1 -0
  1694. package/webapp/dist/assets/react-BN8qLIAi.js +9 -0
  1695. package/webapp/dist/assets/react-CEuifcaQ.js +1 -0
  1696. package/webapp/dist/assets/react-apexcharts.esm-DoOt-pu4.js +1 -0
  1697. package/webapp/dist/assets/realtime.store-CBDO4Abj.js +1 -0
  1698. package/webapp/dist/assets/release-bits-B2a_wbft.js +1 -0
  1699. package/webapp/dist/assets/release-build-panel-BQmIdKW9.js +1 -0
  1700. package/webapp/dist/assets/release-deployment-state-DRrEI2pP.js +1 -0
  1701. package/webapp/dist/assets/release-wire-f2VuBoBF.js +1 -0
  1702. package/webapp/dist/assets/releases-Bp3CDgmo.js +2 -0
  1703. package/webapp/dist/assets/rolldown-runtime-CNOWq4Kh.js +1 -0
  1704. package/webapp/dist/assets/search-input-C0MHI8vO.js +1 -0
  1705. package/webapp/dist/assets/services-BddvcFi8.js +1 -0
  1706. package/webapp/dist/assets/settings-B3egRvbI.js +1 -0
  1707. package/webapp/dist/assets/settled-pair-B-wgSZl6.js +1 -0
  1708. package/webapp/dist/assets/shared-styles-C0vN3I7_.js +1 -0
  1709. package/webapp/dist/assets/shell-command-C3pXf1vi.js +1 -0
  1710. package/webapp/dist/assets/sign-in-9q-Nfy83.js +1 -0
  1711. package/webapp/dist/assets/skeleton-BmWDJWF9.js +1 -0
  1712. package/webapp/dist/assets/snackbar-DSPmjMyi.js +1 -0
  1713. package/webapp/dist/assets/stack-health-status-BIv2C10x.js +1 -0
  1714. package/webapp/dist/assets/stack-start-notice-BVnMOwRQ.js +1 -0
  1715. package/webapp/dist/assets/stacks-IZ1mfizi.js +1 -0
  1716. package/webapp/dist/assets/storage-CKXnhqkt.js +1 -0
  1717. package/webapp/dist/assets/store-bqUBn2A4.js +1 -0
  1718. package/webapp/dist/assets/sync-reading-CN0jPKAg.js +1 -0
  1719. package/webapp/dist/assets/system-info-BFKNM-hf.js +1 -0
  1720. package/webapp/dist/assets/table-BOWT6Y9d.js +1 -0
  1721. package/webapp/dist/assets/table-viewport-Bp4pq-c_.js +1 -0
  1722. package/webapp/dist/assets/tabs-k5NPGLnJ.js +1 -0
  1723. package/webapp/dist/assets/terminal-BrP-ENHg.css +1 -0
  1724. package/webapp/dist/assets/terminal-QWBau-Us.js +62 -0
  1725. package/webapp/dist/assets/terminal-input-b7f2VoE_.js +2 -0
  1726. package/webapp/dist/assets/topology-CPey5dP6.js +8 -0
  1727. package/webapp/dist/assets/topology-metadata-dialog-BivuU2y6.js +2 -0
  1728. package/webapp/dist/assets/topology-routes.worker-BoYrIzAH.js +1 -0
  1729. package/webapp/dist/assets/traces-By0rdfDC.js +1 -0
  1730. package/webapp/dist/assets/use-copy-to-clipboard-BWYpToS3.js +1 -0
  1731. package/webapp/dist/assets/use-polled-resource-B22hhr5L.js +1 -0
  1732. package/webapp/dist/assets/use-stack-context-UkBsF-l7.js +1 -0
  1733. package/webapp/dist/assets/webapp-BnxOVfrc.css +1 -0
  1734. package/webapp/dist/assets/webapp-D-UhjFhS.js +35 -0
  1735. package/webapp/dist/console-version.json +1 -0
  1736. package/webapp/dist/index.html +54 -7
  1737. package/dist/release/daemon-omni.d.ts +0 -41
  1738. package/dist/release/daemon-omni.d.ts.map +0 -1
  1739. package/dist/release/daemon-omni.js +0 -59
  1740. package/dist/release/daemon-omni.js.map +0 -1
  1741. package/dist/services/netron-telemetry-transport.d.ts +0 -42
  1742. package/dist/services/netron-telemetry-transport.d.ts.map +0 -1
  1743. package/dist/services/netron-telemetry-transport.js +0 -93
  1744. package/dist/services/netron-telemetry-transport.js.map +0 -1
  1745. package/webapp/dist/assets/FormControlLabel-BrH2diyl.js +0 -1
  1746. package/webapp/dist/assets/Grid-BZ7xhoHQ.js +0 -1
  1747. package/webapp/dist/assets/Switch-DGSAxQPM.js +0 -1
  1748. package/webapp/dist/assets/alerts-sXqHJbsa.js +0 -1
  1749. package/webapp/dist/assets/apps-B_Ah8Flh.js +0 -1
  1750. package/webapp/dist/assets/audit-YXihwyui.js +0 -1
  1751. package/webapp/dist/assets/client-CGbBvy9k.js +0 -1
  1752. package/webapp/dist/assets/constants-veKGFkC6.js +0 -1
  1753. package/webapp/dist/assets/containers-Di4NOTLf.js +0 -2
  1754. package/webapp/dist/assets/daemon-memory-CCPZ4cV_.js +0 -1
  1755. package/webapp/dist/assets/dashboard-Cfuf95N3.js +0 -1
  1756. package/webapp/dist/assets/dashboard-builder-CowaYb-M.js +0 -1
  1757. package/webapp/dist/assets/deploy-release-dialog-D6C-XcKY.js +0 -1
  1758. package/webapp/dist/assets/deployments-ChTq5kCw.js +0 -1
  1759. package/webapp/dist/assets/detail-BsGWv7Dj.js +0 -1
  1760. package/webapp/dist/assets/detail-CyVf_cw5.js +0 -2
  1761. package/webapp/dist/assets/detail-D027j6aO.js +0 -8
  1762. package/webapp/dist/assets/formatters-BqjL73N3.js +0 -1
  1763. package/webapp/dist/assets/fs-Ccl3sAcp.js +0 -1
  1764. package/webapp/dist/assets/index-B8AHIPc-.css +0 -1
  1765. package/webapp/dist/assets/index-DiZbrwxT.js +0 -414
  1766. package/webapp/dist/assets/logs-L2b8Oqmo.js +0 -12
  1767. package/webapp/dist/assets/maplibre-gl-MlmG2kbn.js +0 -801
  1768. package/webapp/dist/assets/metrics-CQgjz2Lz.js +0 -2
  1769. package/webapp/dist/assets/nodes-Nwia2Ty6.js +0 -7
  1770. package/webapp/dist/assets/pipelines-DCu_rXOr.js +0 -4
  1771. package/webapp/dist/assets/projects-Bb4aV76h.js +0 -1
  1772. package/webapp/dist/assets/react-CwJFpaho.js +0 -1
  1773. package/webapp/dist/assets/react-apexcharts.esm-Dy0Fez42.js +0 -1956
  1774. package/webapp/dist/assets/release-bits-Dj4EOhhb.js +0 -1
  1775. package/webapp/dist/assets/release-build-panel-D6OCVlhT.js +0 -1
  1776. package/webapp/dist/assets/releases-CnAt3yO6.js +0 -2
  1777. package/webapp/dist/assets/rolldown-runtime-hePW80VL.js +0 -1
  1778. package/webapp/dist/assets/settings-DU-mjiwb.js +0 -1
  1779. package/webapp/dist/assets/settled-pair-C7SjZuns.js +0 -1
  1780. package/webapp/dist/assets/sign-in-Bcvjrr4C.js +0 -1
  1781. package/webapp/dist/assets/stacks-B-e8p50I.js +0 -1
  1782. package/webapp/dist/assets/sync-reading-C3PnJ7AX.js +0 -1
  1783. package/webapp/dist/assets/system-info-BtE3dgfw.js +0 -1
  1784. package/webapp/dist/assets/topology-Cwch-uF1.js +0 -12
  1785. package/webapp/dist/assets/traces-BbShR-4P.js +0 -1
  1786. package/webapp/dist/assets/use-stack-context-CZUgPq88.js +0 -1
@@ -0,0 +1,7 @@
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{P as r,U as i,c as a,h as o,l as s,y as c,z as l}from"./client-DFnuv2z3.js";import{a as u,o as d}from"./mui-agG5dued.js";import{Vt as f,Yt as p}from"./mui-BTN91yBK.js";import{_n as m,gn as h}from"./mui-CdB_p2lt.js";import{C as g,D as _,F as v,H as y,I as b,M as x,O as S,Q as C,V as w,X as T,Y as E,Z as D,_t as O,at as k,c as A,ct as ee,d as te,f as ne,g as re,gt as ie,h as ae,ht as oe,i as j,j as M,lt as N,m as se,ot as P,p as ce,r as F,s as le,st as ue,ut as I,vt as de,w as fe}from"./mui-BXSXx9c9.js";import{A as L,B as pe,C as R,D as me,F as z,I as he,O as ge,a as B,b as _e,d as ve,f as ye,k as V,o as be,w as xe,y as Se,z as H}from"./mui-Cd711nOk.js";import{B as Ce,D as we,E as Te,G as U,K as Ee,O as De,T as Oe,U as ke,W as Ae,it as je,l as W,rt as Me,u as Ne,z as Pe}from"./mui-AnEgAVjz.js";import{C as Fe,_ as G,v as Ie,w as Le}from"./mui-BwsIrivo.js";import{n as Re,r as ze}from"./alert-uBG6r9NW.js";import{n as Be,r as Ve}from"./snackbar-DSPmjMyi.js";import{c as He,n as K,s as Ue}from"./access-48hkC2-P.js";import{n as We,r as Ge,t as Ke}from"./use-polled-resource-B22hhr5L.js";import{n as qe,t as Je}from"./realtime.store-CBDO4Abj.js";import{A as Ye,E as Xe,G as Ze,L as Qe,M as $e,g as et,m as tt,p as nt,s as rt,z as it}from"./icons-OboZgWSt.js";import{n as at,t as ot}from"./operation-status-Bm1x1wTz.js";import{n as st,t as ct}from"./page-breadcrumbs-fR7Jmpp4.js";import{n as lt,t as ut}from"./skeleton-BmWDJWF9.js";import{n as dt,t as ft}from"./empty-content-7jOFhG4C.js";import{r as pt,t as mt}from"./daemon-memory-BiEtr9jr.js";import{r as ht,t as gt}from"./log-location-DuBjh6HQ.js";import{p as _t,u as vt}from"./release-bits-B2a_wbft.js";import{a as yt,c as bt,i as xt,o as St,r as Ct,s as wt,t as Tt}from"./sync-reading-CN0jPKAg.js";function Et(e){let t=e.relay;if(!e.reachable||!t)return{state:`unknown`,label:`unavailable`,detail:e.error??`No relay measurement was returned; check node connectivity and access.`};if(t.state===`not-applicable`)return{state:`neutral`,label:`not applicable`,detail:`Worker logs and metrics use the durable replication outbox. Delivery evidence is reported under Replication.`};let n=t.stats;if(!n||typeof n.started!=`boolean`||!n.destination)return{state:`unknown`,label:`unavailable`,detail:`The node did not report relay lifecycle and destination; update its backend.`};let r=n.buffer.totalDropped>0||!!n.lastError;return{state:n.started&&(n.destination===`aggregator`||n.destination===`transport`&&n.transportConnected)&&!r?`healthy`:`degraded`,label:n.started?n.destination===`aggregator`?`local database`:n.destination===`transport`?n.transportConnected?`transport up`:`transport down`:`no destination`:`stopped`,detail:`${n.buffer.size} buffered · ${n.totalSent} sent · ${n.totalFailed} failed${n.lastError?` · ${n.lastError}`:``}`,dropped:n.buffer.totalDropped}}function Dt({receipt:e}){let t=e.targets.filter(e=>e.state===`succeeded`||e.state===`current`).length,n=e.state===`planning`,r=n?e.targets.filter(e=>e.state!==`pending`).length:t;return(0,J.jsxs)(G,{spacing:1.25,sx:{minWidth:0,overflowWrap:`anywhere`},children:[(0,J.jsxs)(G,{direction:`row`,useFlexGap:!0,spacing:1,sx:{flexWrap:`wrap`,alignItems:`center`},children:[(0,J.jsx)(D,{size:`small`,color:At[e.state],label:e.state}),(0,J.jsxs)(H,{variant:`body2`,"aria-live":`polite`,children:[r,`/`,e.targets.length,` `,n?`nodes checked`:`on target`]}),(0,J.jsxs)(H,{variant:`caption`,color:`text.secondary`,children:[`Updated `,_t(e.updatedAt)]})]}),(0,J.jsxs)(H,{variant:`caption`,color:`text.secondary`,component:`div`,children:[`Commit `,(0,J.jsx)(`code`,{children:e.commit}),(0,J.jsx)(`br`,{}),`Plan `,(0,J.jsx)(`code`,{children:e.id})]}),(n||e.state===`running`)&&(0,J.jsx)(Oe,{"aria-label":n?`Node preflight checks completed`:`Nodes confirmed on the target build`,variant:`determinate`,value:r/Math.max(1,e.targets.length)*100}),e.reason&&(0,J.jsx)(k,{severity:e.state===`failed`?`error`:`warning`,children:e.reason}),e.state===`uncertain`&&(0,J.jsx)(H,{variant:`body2`,children:`Reconciliation reads the recorded node outcome without replaying activation. Inspect its owner and rollback target before planning another update.`}),(0,J.jsx)(G,{component:`ol`,spacing:1,sx:{m:0,pl:0,listStyle:`none`},children:e.targets.map((e,t)=>(0,J.jsxs)(w,{component:`li`,sx:{minWidth:0,borderTop:1,borderColor:`divider`,pt:1},children:[(0,J.jsxs)(G,{direction:`row`,useFlexGap:!0,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,J.jsxs)(H,{variant:`body2`,sx:{fontWeight:600},children:[t+1,`. `,e.name]}),(0,J.jsx)(D,{size:`small`,variant:`outlined`,color:At[e.state],label:e.state})]}),e.reason&&(0,J.jsx)(H,{variant:`body2`,children:e.reason}),(0,J.jsxs)(w,{component:`details`,open:[`blocked`,`failed`,`rolled-back`,`uncertain`].includes(e.state),sx:{typography:`caption`,color:`text.secondary`,"& summary":{cursor:`pointer`}},children:[(0,J.jsx)(`summary`,{children:`Owner and rollback details`}),`Node `,(0,J.jsx)(`code`,{children:e.nodeId}),` · Owner `,(0,J.jsx)(`code`,{children:e.ownerId??`unconfirmed`}),e.ownerPid!==null&&(0,J.jsxs)(J.Fragment,{children:[` · PID `,e.ownerPid]}),(0,J.jsx)(`br`,{}),`Rollback target `,(0,J.jsx)(`code`,{children:e.previous??`unconfirmed`}),(0,J.jsx)(`br`,{}),`Candidate `,(0,J.jsx)(`code`,{children:e.candidate??`unconfirmed`})]})]},e.nodeId))})]})}function Ot({nodes:e,close:t,review:n}){let[r,i]=(0,q.useState)(``),[o,s]=(0,q.useState)([]),[l,u]=(0,q.useState)(!1),[d,f]=(0,q.useState)(!1),{can:p}=He(),m=p(`OmnitronDaemon.status`),h=p(`OmnitronNodes.listKernelBuilds`),_=We(()=>c.listKernelBuilds(),{enabled:h,paused:!0,intervalMs:3e4,resourceKey:String(h)}),y=(0,q.useMemo)(()=>{let e=new Map;for(let t of h?_.data??[]:[]){let n=e.get(t.commit)??[];n.push(`${t.platform}/${t.arch} · Node ${t.nodeVersion}`),e.set(t.commit,n)}return e},[h,_.data]),b=We(async()=>{let{build:e}=await a.status();return e?.dirty===!1&&/^[a-f0-9]{40}$/.test(e.commit)?e.commit:null},{enabled:m,paused:!0,intervalMs:3e4,resourceKey:String(m)}),[x,S]=(0,q.useState)(!1),[C,T]=(0,q.useState)(null),D=(0,q.useRef)(!1),O=(0,q.useRef)(null);(0,q.useEffect)(()=>(D.current=!0,()=>{D.current=!1}),[]);let A=r.trim().toLowerCase(),ee=/^[a-f0-9]{40}$/.test(A)&&(d||o.length>0),ne=async()=>{if(ee&&!x){S(!0),T(null);try{let e={commit:A,...o.length?{nodeIds:o.map(e=>e.id)}:{},...l&&{stage:!0}},t=JSON.stringify(e);O.current&&O.current.inputs===t||(O.current={inputs:t,id:crypto.randomUUID()});let r=await c.planKernelRollout({...e,requestId:O.current.id});if(r.id!==O.current.id)throw Error(`Controller returned a different request ID.`);D.current&&n(r.id)}catch(e){T(e instanceof Error?e.message:String(e))}finally{S(!1)}}};return(0,J.jsxs)(ae,{open:!0,fullWidth:!0,maxWidth:`sm`,onClose:()=>{x||t()},"aria-labelledby":`kernel-plan-title`,children:[(0,J.jsx)(le,{id:`kernel-plan-title`,children:`Plan backend update`}),(0,J.jsxs)(w,{component:`form`,onSubmit:e=>{e.preventDefault(),ne()},children:[(0,J.jsx)(te,{children:(0,J.jsxs)(G,{spacing:2,children:[(0,J.jsx)(E,{freeSolo:!0,disabled:x,options:[...y.keys()],loading:h&&_.loading,inputValue:r,onInputChange:(e,t)=>i(t),renderOption:({key:e,...t},n)=>(0,J.jsx)(w,{component:`li`,...t,children:(0,J.jsxs)(w,{sx:{minWidth:0,overflowWrap:`anywhere`},children:[(0,J.jsx)(`code`,{children:n}),(0,J.jsx)(H,{component:`div`,variant:`caption`,children:y.get(n)?.join(`, `)})]})},e),renderInput:e=>(0,J.jsx)(B,{...e,label:`Target commit`,autoFocus:!0,required:!0,fullWidth:!0,helperText:_.error?`Catalog unavailable. Enter the commit manually. ${_.error}`:`Choose a catalog build or enter the full 40-character Git commit.`})}),m&&b.data&&(0,J.jsxs)(v,{size:`small`,sx:{alignSelf:`flex-start`},disabled:x,onClick:()=>i(b.data),children:[`Use controller commit `,b.data.slice(0,12)]}),(0,J.jsx)(E,{multiple:!0,disabled:x||d,options:e.filter(e=>!e.isLocal),value:o,getOptionLabel:e=>e.name+` · `+e.host,getOptionKey:e=>e.id,isOptionEqualToValue:(e,t)=>e.id===t.id,onChange:(e,t)=>s(t),renderInput:e=>(0,J.jsx)(B,{...e,label:`Target nodes`,helperText:`Select nodes in update order, or explicitly choose all registered remote nodes.`})}),(0,J.jsx)(ke,{control:(0,J.jsx)(g,{checked:d,disabled:x,onChange:e=>{f(e.target.checked),e.target.checked&&s([])}}),label:`All registered remote nodes`}),(0,J.jsx)(ke,{control:(0,J.jsx)(g,{checked:l,disabled:x,onChange:e=>u(e.target.checked)}),label:`Stage from controller catalog`}),l&&(0,J.jsx)(H,{variant:`caption`,color:`text.secondary`,children:`Preparation transfers missing runtimes from the controller and installs them for native checks. Applying the reviewed plan activates them.`}),C&&(0,J.jsx)(k,{severity:`warning`,action:O.current&&(0,J.jsx)(v,{size:`small`,color:`inherit`,onClick:()=>n(O.current.id),children:`Check last request`}),children:C})]})}),(0,J.jsxs)(ce,{children:[(0,J.jsx)(v,{onClick:t,disabled:x,children:`Cancel`}),(0,J.jsx)(v,{type:`submit`,variant:`contained`,loading:x,disabled:!ee,children:`Prepare plan`})]})]})]})}function kt({nodes:e,canPlan:t,canApply:n,canReconcile:r}){let[a,o]=i(),s=a.get(`rollout`),[l,u]=(0,q.useState)(!1),[d,f]=(0,q.useState)(!1),[p,m]=(0,q.useState)(null),[h,g]=(0,q.useState)(null),[y,b]=(0,q.useReducer)(e=>e+1,0),[x,S]=(0,q.useState)(!1),{data:C,error:T,loading:E}=We(async()=>{let e=await c.getKernelRollout(s?{id:s}:{});if(s&&e&&e.id!==s)throw Error(`Controller returned another rollout receipt.`);return e},{intervalMs:x?3e3:2e4,resourceKey:JSON.stringify([s,y])}),D=h?.id===s&&([`succeeded`,`failed`,`blocked`].includes(h.state)||!C||C.id===h.id&&C.state===`planned`&&h.state===`running`)?h:C;(0,q.useEffect)(()=>{S(D?.state===`running`||D?.state===`planning`)},[D?.state]);let O=e=>{m(null),g(null),o(t=>{let n=new URLSearchParams(t);return e?n.set(`rollout`,e):n.delete(`rollout`),n})},A=async e=>{if(!(d||T||!D||D.id!==s)&&!(e===`apply`?!n||D.state!==`planned`:!r||D.state!==`uncertain`)){f(!0),m(null);try{let t=e===`apply`?await c.startKernelRollout({id:D.id}):await c.reconcileKernelRollout({id:D.id});if(t.id!==D.id)throw Error(`Controller returned another rollout receipt.`);g(t)}catch(e){m(`Request was not confirmed. Check the controller receipt. `+(e instanceof Error?e.message:String(e)))}finally{f(!1),b()}}};return(0,J.jsxs)(M,{variant:`outlined`,component:`section`,"aria-label":`Managed backend updates`,sx:{minWidth:0},children:[(0,J.jsx)(_,{children:(0,J.jsxs)(G,{spacing:1.5,children:[(0,J.jsxs)(G,{direction:`row`,useFlexGap:!0,spacing:1,sx:{flexWrap:`wrap`,alignItems:`center`},children:[(0,J.jsx)(H,{variant:`subtitle2`,sx:{flex:`1 1 auto`},children:`Managed backend updates`}),s&&(0,J.jsx)(v,{size:`small`,disabled:d,onClick:()=>O(null),children:`Latest rollout`}),t&&(0,J.jsx)(v,{size:`small`,variant:`outlined`,disabled:d||D?.state===`running`||D?.state===`planning`,onClick:()=>u(!0),children:`Plan update…`})]}),E&&(0,J.jsx)(Oe,{"aria-label":`Reading rollout receipt`}),T&&(0,J.jsxs)(k,{severity:`warning`,action:(0,J.jsx)(v,{color:`inherit`,size:`small`,onClick:b,children:`Retry`}),children:[`Could not read the rollout receipt. `,T]}),p&&(0,J.jsx)(k,{severity:`warning`,children:p}),D?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Dt,{receipt:D}),n&&D.state===`planned`&&(0,J.jsx)(w,{children:D.id===s?(0,J.jsx)(v,{color:`primary`,variant:`contained`,loading:d,disabled:!!T||E,onClick:()=>void A(`apply`),children:`Apply reviewed plan`}):(0,J.jsx)(v,{variant:`outlined`,disabled:!!T,onClick:()=>O(D.id),children:`Review plan`})}),r&&D.state===`uncertain`&&(0,J.jsx)(w,{children:D.id===s?(0,J.jsx)(v,{variant:`outlined`,loading:d,disabled:!!T||E,onClick:()=>void A(`reconcile`),children:`Reconcile node status`}):(0,J.jsx)(v,{variant:`outlined`,disabled:!!T,onClick:()=>O(D.id),children:`Inspect uncertain rollout`})})]}):!E&&!T&&(0,J.jsx)(H,{variant:`body2`,color:`text.secondary`,children:s?`The controller has no receipt for this rollout.`:`No managed backend update has been planned.`})]})}),t&&l&&(0,J.jsx)(Ot,{nodes:e,close:()=>u(!1),review:e=>{O(e),u(!1),b()}})]})}var q,J,At;function jt(){return(jt=e((()=>{q=t(),l(),P(),T(),y(),b(),x(),S(),fe(),C(),re(),se(),ne(),A(),Ae(),Te(),Ie(),be(),pe(),Ke(),o(),Ue(),vt(),J=n(),At={pending:`default`,planning:`info`,planned:`default`,ready:`info`,running:`info`,succeeded:`success`,current:`success`,blocked:`warning`,uncertain:`warning`,failed:`error`,"rolled-back":`warning`}})))()}function Mt(e){return s.invoke(`daemon`,`OmnitronNodes`,`planUpgrade`,[{...e,build:!0}],{timeout:18e4})}function Nt(e){return e!==`done`&&e!==`failed`&&e!==`refused`}function Pt({nodes:e}){let{can:t,snapshot:n}=He(),[r,i]=(0,Y.useState)(!1),a=t(`OmnitronNodes.planKernelRollout`),o=t(`OmnitronNodes.startKernelRollout`),s=t(`OmnitronNodes.reconcileKernelRollout`);return(0,X.jsxs)(G,{spacing:1,children:[t(`OmnitronNodes.getKernelRollout`)&&(0,X.jsx)(kt,{nodes:e,canPlan:a,canApply:o,canReconcile:s},JSON.stringify([n?.userId,a,o,s])),t(`OmnitronNodes.getUpgradeProgress`)&&(0,X.jsxs)(w,{component:`details`,onToggle:e=>i(e.currentTarget.open),children:[(0,X.jsx)(H,{component:`summary`,variant:`caption`,color:`text.secondary`,sx:{cursor:`pointer`,py:1},children:`Advanced · workspace source bundle upgrades`}),r&&(0,X.jsx)(Ft,{nodes:e},n?.userId)]})]})}function Ft({nodes:e}){let{can:t}=He(),n=t(`OmnitronNodes.planUpgrade`)&&t(`OmnitronNodes.upgradeNodes`),[r,i]=(0,Y.useState)(!1),[a,o]=(0,Y.useState)(null),[s,l]=(0,Y.useState)(!1),{data:u,refresh:d,error:f,loading:p}=We(async()=>{let e=await c.getUpgradeProgress();return l(e.some(e=>Nt(e.phase))),e},{intervalMs:s?3e3:2e4}),m=u??[],h=m.filter(e=>Nt(e.phase)),g=(0,Y.useMemo)(()=>new Map(e.map(e=>[e.id,e])),[e]),y=(0,Y.useCallback)(async e=>{try{let t=await c.cancelUpgrade({nodeId:e});o(t.stopped?null:t.because),await d()}catch(e){o(e.message)}},[d]);return(0,X.jsxs)(M,{variant:`outlined`,children:[(0,X.jsxs)(_,{children:[(0,X.jsxs)(G,{direction:`row`,spacing:1.5,sx:{alignItems:`center`,flexWrap:`wrap`,mb:h.length>0||m.length>0?1.5:0},children:[(0,X.jsx)(H,{variant:`overline`,sx:{color:`text.secondary`,fontSize:`0.65rem`},children:`Workspace source bundle upgrade`}),h.length>0&&(0,X.jsx)(D,{size:`small`,color:`info`,label:`${h.length} of ${m.length} in flight`,sx:{height:20,fontSize:11}}),(0,X.jsx)(w,{sx:{flex:1}}),n&&(0,X.jsx)(v,{size:`small`,variant:`contained`,startIcon:(0,X.jsx)(tt,{}),onClick:()=>i(!0),children:`Upgrade nodes…`})]}),a&&(0,X.jsx)(k,{severity:`warning`,variant:`outlined`,sx:{mb:1.5},onClose:()=>o(null),children:a}),p&&(0,X.jsx)(Oe,{"aria-label":`Reading source bundle upgrade progress`}),f&&(0,X.jsxs)(k,{severity:`warning`,children:[`Could not refresh source bundle upgrades. `,f]}),m.length===0&&!p&&!f?(0,X.jsx)(H,{variant:`body2`,sx:{color:`text.secondary`},children:`No upgrade has been run from this master since it started.`}):(0,X.jsx)(G,{spacing:1,children:m.map(e=>{let t=g.get(e.nodeId);return(0,X.jsxs)(w,{children:[(0,X.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,X.jsx)(H,{variant:`body2`,sx:{fontWeight:600,minWidth:140},children:t?.name??e.nodeId}),(0,X.jsx)(D,{size:`small`,color:Lt[e.phase],label:e.phase,sx:{height:20,fontSize:11}}),e.phase===`queued`&&e.position!=null&&(0,X.jsxs)(H,{variant:`caption`,sx:{color:`text.secondary`},children:[`#`,e.position,` in the queue`]}),(0,X.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`},children:e.message}),e.version&&(0,X.jsx)(H,{variant:`caption`,sx:{fontFamily:`monospace`,color:`text.secondary`},children:e.version}),(0,X.jsx)(w,{sx:{flex:1}}),(0,X.jsx)(H,{variant:`caption`,sx:{color:`text.disabled`},children:_t(e.at)}),Nt(e.phase)&&(0,X.jsx)(K,{permission:`OmnitronNodes.cancelUpgrade`,children:(0,X.jsx)(z,{title:e.phase===`queued`?`Drop this node from the queue`:`A node already installing is not interrupted — the daemon will say so`,arrow:!0,children:(0,X.jsx)(`span`,{children:(0,X.jsx)(v,{size:`small`,color:`warning`,startIcon:(0,X.jsx)(it,{}),onClick:()=>void y(e.nodeId),children:`Cancel`})})})})]}),Nt(e.phase)&&e.phase!==`queued`&&(0,X.jsx)(Oe,{variant:`determinate`,value:e.percent,sx:{mt:.5,height:4,borderRadius:2}})]},e.nodeId)})})]}),n&&(0,X.jsx)(It,{open:r,onClose:()=>i(!1),nodes:e,onStarted:()=>{l(!0),d()}})]})}function It({open:e,onClose:t,nodes:n,onStarted:r}){let[i,a]=(0,Y.useState)(new Set),[o,s]=(0,Y.useState)(null),[l,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(!1),[p,m]=(0,Y.useState)(1),[h,_]=(0,Y.useState)(null),[y,b]=(0,Y.useState)(null),x=(0,Y.useMemo)(()=>n.filter(e=>!e.isLocal),[n]),S=(0,Y.useMemo)(()=>new Map(n.map(e=>[e.id,e])),[n]),C=e=>a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),s(null),n}),T=i.size>0&&i.size===x.length,E=(0,Y.useCallback)(async e=>{u(!0),_(null);let t=i.size>0?{nodeIds:[...i]}:{};try{s(e?await Mt(t):await c.planUpgrade(t))}catch(e){_(e.message),s(null)}finally{u(!1)}},[i]),O=o?.rows.filter(e=>e.action===`upgrade`)??[];return(0,X.jsxs)(ae,{open:e,onClose:d?void 0:t,maxWidth:`md`,fullWidth:!0,children:[(0,X.jsx)(le,{children:`Upgrade nodes`}),(0,X.jsx)(te,{children:(0,X.jsxs)(G,{spacing:2.5,sx:{mt:1},children:[(0,X.jsx)(H,{variant:`body2`,sx:{color:`text.secondary`},children:`The master builds one bundle and installs it on each node in turn. The rollout runs in the daemon — closing this window does not stop it.`}),(0,X.jsxs)(w,{children:[(0,X.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`,mb:.5},children:[(0,X.jsx)(g,{size:`small`,checked:T,indeterminate:i.size>0&&!T,onChange:()=>{s(null),a(T?new Set:new Set(x.map(e=>e.id)))}}),(0,X.jsx)(H,{variant:`body2`,children:i.size===0?`every node`:`${i.size} of ${x.length} selected`})]}),(0,X.jsx)(w,{sx:{maxHeight:220,overflowY:`auto`},children:(0,X.jsx)(V,{size:`small`,children:(0,X.jsx)(me,{children:x.map(e=>(0,X.jsxs)(ve,{hover:!0,onClick:()=>C(e.id),sx:{cursor:`pointer`},children:[(0,X.jsx)(R,{padding:`checkbox`,children:(0,X.jsx)(g,{size:`small`,checked:i.has(e.id)})}),(0,X.jsx)(R,{sx:{fontWeight:600},children:e.name}),(0,X.jsxs)(R,{sx:{fontFamily:`monospace`,fontSize:12},children:[e.host,`:`,e.sshPort]}),(0,X.jsx)(R,{sx:{fontFamily:`monospace`,fontSize:12},children:e.status?.omnitronVersion??`—`}),(0,X.jsx)(R,{children:(0,X.jsx)(D,{size:`small`,label:e.status?.pingReachable?`reachable`:`not reachable`,color:e.status?.pingReachable?`success`:`default`,variant:`outlined`,sx:{height:18,fontSize:10}})})]},e.id))})})})]}),(0,X.jsxs)(G,{direction:`row`,spacing:1.5,sx:{alignItems:`center`},children:[(0,X.jsx)(v,{size:`small`,variant:`outlined`,onClick:()=>void E(!1),disabled:l||d,children:l?`Planning…`:`Plan`}),(0,X.jsx)(z,{title:`Builds the bundle so each node can be compared to it. It runs on the master's own thread and stops it answering anything else for a minute or two.`,arrow:!0,children:(0,X.jsx)(`span`,{children:(0,X.jsx)(v,{size:`small`,onClick:()=>void E(!0),disabled:l||d,children:`Compare versions`})})}),l&&(0,X.jsx)(ue,{size:16}),(0,X.jsx)(B,{select:!0,label:`At once`,size:`small`,value:p,onChange:e=>m(Number(e.target.value)),sx:{width:120},disabled:d,children:[1,2,3,4,6,8].map(e=>(0,X.jsx)(W,{value:e,children:e},e))}),(0,X.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`},children:l?`The master is building the bundle so the plan can name a target version — up to a few minutes.`:`An upgrade restarts the node's daemon, so one at a time is the safe default.`})]}),o&&(0,X.jsxs)(w,{children:[o.refusal&&(0,X.jsx)(k,{severity:`error`,sx:{mb:1},children:(0,X.jsx)(H,{variant:`body2`,sx:{whiteSpace:`pre-wrap`},children:o.refusal})}),o.compared?(0,X.jsxs)(H,{variant:`body2`,sx:{mb:1},children:[`Target `,(0,X.jsx)(`strong`,{style:{fontFamily:`monospace`},children:o.targetVersion}),` —`,` `,O.length,` would be upgraded, `,o.rows.filter(e=>e.action===`skip`).length,` already there,`,` `,o.rows.filter(e=>e.action===`refuse`).length,` refused.`]}):(0,X.jsxs)(w,{sx:{mb:1},children:[(0,X.jsxs)(H,{variant:`body2`,children:[O.length,` would be attempted, `,o.rows.filter(e=>e.action===`refuse`).length,` refused —`,` `,(0,X.jsx)(`strong`,{children:`nothing was compared`}),`.`]}),(0,X.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`},children:`No bundle has been built, so no row can say «already on the target version». Twelve rows reading «upgrade» here mean twelve nodes that would be touched, not twelve that are out of date.`})]}),(0,X.jsxs)(V,{size:`small`,children:[(0,X.jsx)(Se,{children:(0,X.jsxs)(ve,{children:[(0,X.jsx)(R,{children:`Node`}),(0,X.jsx)(R,{children:o.compared?`Now → target`:`Now`}),(0,X.jsx)(R,{children:`Action`}),(0,X.jsx)(R,{children:`Why`})]})}),(0,X.jsx)(me,{children:o.rows.map(e=>(0,X.jsxs)(ve,{children:[(0,X.jsxs)(R,{children:[(0,X.jsx)(H,{variant:`body2`,sx:{fontWeight:600},children:e.label}),(0,X.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:e.host??`no address`})]}),(0,X.jsxs)(R,{sx:{fontFamily:`monospace`,fontSize:12},children:[e.currentVersion??`—`,o.compared&&e.targetVersion&&e.targetVersion!==e.currentVersion&&(0,X.jsxs)(H,{component:`span`,variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:[` → `,e.targetVersion]})]}),(0,X.jsx)(R,{children:(0,X.jsx)(D,{size:`small`,label:e.action,color:e.action===`upgrade`?`info`:e.action===`skip`?`success`:`warning`,variant:`outlined`,sx:{height:18,fontSize:10}})}),(0,X.jsx)(R,{children:(0,X.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`},children:e.because})})]},e.nodeId))})]})]}),y&&(0,X.jsxs)(w,{children:[(0,X.jsx)(F,{sx:{mb:1.5}}),(0,X.jsxs)(k,{severity:y.refused.length>0?`warning`:`success`,children:[`Queued `,y.accepted.length,` node`,y.accepted.length===1?``:`s`,y.refused.length>0?`; ${y.refused.length} not taken`:``,`.`]}),y.refused.map(e=>(0,X.jsxs)(H,{variant:`caption`,sx:{display:`block`,mt:.5,color:`text.secondary`},children:[(0,X.jsx)(`strong`,{children:S.get(e.nodeId)?.name??e.nodeId}),` — `,e.because]},e.nodeId))]}),h&&(0,X.jsxs)(k,{severity:`error`,children:[(0,X.jsx)(H,{variant:`body2`,sx:{whiteSpace:`pre-wrap`},children:h}),/^(HTTP 50\d|Request timeout)/.test(h)&&(0,X.jsxs)(H,{variant:`caption`,sx:{display:`block`,mt:.5},children:[`The plan builds the bundle first — that is how it can say «already on the target version» instead of listing every node as an upgrade — and the request outlived the gateway's 120-second deadline. The master is still building; the CLI (`,(0,X.jsx)(`code`,{children:`omnitron fleet upgrade --dry-run`}),`) has no such deadline.`]})]})]})}),(0,X.jsxs)(ce,{children:[(0,X.jsx)(v,{onClick:t,size:`small`,disabled:d,children:y?`Close`:`Cancel`}),(0,X.jsx)(v,{variant:`contained`,size:`small`,startIcon:d?(0,X.jsx)(ue,{size:14,color:`inherit`}):(0,X.jsx)(tt,{}),disabled:d||!o||O.length===0||!!o.refusal||y!==null,onClick:async()=>{f(!0),_(null);try{let e=await c.upgradeNodes({nodeIds:O.map(e=>e.nodeId),concurrency:p});b(e),r()}catch(e){_(e.message)}finally{f(!1)}},children:d?`Queueing…`:`Start rollout (${O.length})`})]})]})}var Y,X,Lt;function Rt(){return(Rt=e((()=>{Ue(),jt(),Y=t(),P(),y(),b(),x(),S(),fe(),C(),ee(),re(),se(),ne(),A(),j(),Te(),Ne(),Ie(),L(),ge(),xe(),_e(),ye(),be(),he(),pe(),Ze(),Ke(),o(),vt(),X=n(),Lt={queued:`default`,building:`info`,transferring:`info`,activating:`warning`,done:`success`,failed:`error`,refused:`error`}})))()}function zt(e){if(!e||typeof e!=`object`)return!1;let t=e;return!!(t.event&&typeof t.event.id==`string`&&typeof t.event.title==`string`&&Array.isArray(t.event.evidence)&&t.event.evidence.every(e=>typeof e==`string`)&&(t.event.remedy===void 0||typeof t.event.remedy==`string`)&&typeof t.occurrences==`number`)}function Bt({active:e,nodeName:t}){let n=Array.isArray(e)?e.filter(zt).slice(0,100):[];return n.length?(0,Z.jsxs)(O,{disableGutters:!0,elevation:0,sx:{minWidth:0,mt:1,"&:before":{display:`none`}},children:[(0,Z.jsx)(N,{"aria-label":`Runtime diagnostic evidence`,children:(0,Z.jsxs)(H,{variant:`body2`,children:[`Evidence and recovery · `,n.length]})}),(0,Z.jsx)(oe,{children:(0,Z.jsxs)(G,{spacing:2,sx:{minWidth:0,overflowWrap:`anywhere`},children:[n.map(({event:e,occurrences:t})=>(0,Z.jsxs)(G,{spacing:.5,children:[(0,Z.jsx)(H,{variant:`body2`,sx:{fontWeight:600},children:e.title}),(0,Z.jsxs)(H,{variant:`caption`,sx:{fontFamily:`monospace`,color:`text.secondary`},children:[e.id,` · `,t,` occurrence(s)`]}),e.evidence.map((e,t)=>(0,Z.jsx)(H,{variant:`body2`,children:e},t)),e.remedy&&(0,Z.jsx)(H,{variant:`body2`,sx:{color:`text.secondary`},children:e.remedy})]},e.id)),(0,Z.jsx)(v,{component:r,to:ht(`omnitron`,t),size:`small`,sx:{alignSelf:`flex-start`},children:`Open daemon logs`})]})})]}):null}var Z;function Vt(){return(Vt=e((()=>{l(),de(),I(),ie(),b(),Ie(),pe(),gt(),Z=n()})))()}function Ht(e){if(e.omnitronConnected===!0)return`running`;let t=e.omnitronError??``;return t.startsWith(`omnitron: command not found`)?`not-installed`:e.sshConnected===!1?`unreachable`:e.omnitronConnected===!1&&t===`omnitron status reported no running daemon`?`not-running`:`unread`}function Ut(){return(Ut=e((()=>{})))()}function Wt(e,t){return e==null?t?`failed`:`unmeasured`:e?`ok`:`failed`}function Gt(e){let t=Ht({sshConnected:e.sshConnected??null,omnitronConnected:e.omnitronConnected??null,omnitronError:e.omnitronError??null});switch(t){case`running`:return`ok`;case`not-running`:case`not-installed`:return`failed`;case`unreachable`:return`unmeasured`;case`unread`:return e.omnitronConnected==null&&!e.omnitronError?`unmeasured`:`unknown`;default:return t}}function Kt(e){return e.pingError??e.sshError??e.omnitronError??null}function qt(e){return e.participant===`controller`||!e.participant&&(`leaderId`in e||typeof e.state==`string`)}function Jt(e){let t=e.cluster;if(!e.reachable||!t)return e.error||`Cluster participation unavailable`;if(t.participant===`standalone`)return`Standalone`;if(t.participant!==`worker`&&!qt(t))return`Cluster participation unreported`;let n=[t.participant===`worker`?`Worker`:`Controller`];return typeof t.clusterId==`string`&&n.push(t.clusterId),typeof t.state==`string`&&n.push(t.state),(typeof t.term==`string`||typeof t.term==`number`)&&n.push(`epoch ${t.term}`),t.fencedOperations?.length&&n.push(t.fencedOperations.join(`, `)),n.join(` · `)}function Yt(e){return e.flatMap(e=>{let t=e.cluster;return!e.reachable||!t||t.coordination!==`postgres-lease`||![`unavailable`,`expired`,`stopped`].includes(String(t.authority))?[]:[{nodeId:e.nodeId,reason:typeof t.reason==`string`&&t.reason?t.reason:`Cluster authority is ${String(t.authority)}`}]})}function Xt(e){let t=new Map;for(let n of e){if(!n.reachable||!n.cluster||!qt(n.cluster))continue;let e=typeof n.cluster.clusterId==`string`?n.cluster.clusterId:`legacy`;t.set(e,[...t.get(e)??[],n])}for(let[e,n]of t){let t=Zt(n,e);if(t.kind!==`none`)return t}return{kind:`none`}}function Zt(e,t){if(e.length<2)return{kind:`none`};let n=new Map,r=new Set;for(let t of e){let e=typeof t.cluster.leaderId==`string`?t.cluster.leaderId:`(none)`;n.has(e)||n.set(e,[]),n.get(e).push(t.nodeId);let i=t.cluster.term;typeof i==`string`&&/^[1-9][0-9]{0,18}$/.test(i)?r.add(i):typeof i==`number`&&Number.isSafeInteger(i)&&i>=0&&r.add(String(i))}return n.size>1?{kind:`leaders`,clusterId:t,answered:e.length,groups:[...n]}:r.size>1?{kind:`terms`,clusterId:t,answered:e.length,terms:[...r].sort((e,t)=>BigInt(e)<BigInt(t)?-1:1)}:{kind:`none`}}function Qt(){return(Qt=e((()=>{Ut()})))()}function $t(e,t){let n=e*864e5;return Math.max(1,Math.min(400,Math.ceil(n/Math.max(1,t))))}function en(e){if(!e)return`never`;let t=Date.now()-Date.parse(e);if(!Number.isFinite(t))return`never`;if(t<6e4)return`just now`;let n=Math.floor(t/6e4);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function tn(e){if(!e)return!0;let t=Date.parse(e);return!Number.isFinite(t)||Date.now()-t>Nn}function nn({state:e,label:t,tooltip:n}){return(0,$.jsx)(z,{title:n??{online:`Connected`,offline:`Offline`,unknown:`Unknown`,unchecked:`Not checked`,checking:`Checking...`,"not-installed":`Not installed`}[e],arrow:!0,children:(0,$.jsxs)(G,{direction:`row`,spacing:.5,sx:{alignItems:`center`},children:[(0,$.jsx)(w,{sx:{width:8,height:8,borderRadius:`50%`,bgcolor:{online:`success.main`,offline:`error.main`,unknown:`warning.light`,unchecked:`text.disabled`,checking:`warning.main`,"not-installed":`text.disabled`}[e],flexShrink:0,...e===`checking`&&{animation:`${Fn} 1s ease-in-out infinite`},...e===`not-installed`&&{border:`1px dashed`,borderColor:`text.disabled`,bgcolor:`transparent`}}}),(0,$.jsx)(H,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`},children:t})]})})}function rn(e,t,n){if(e<0)return n===`absent`?f(t.palette.info.main,.35):n===`unreachable`?f(t.palette.warning.main,.3):n===`unread`?f(t.palette.text.disabled,.25):t.palette.action.disabledBackground;let r=an(t.palette.success.main),i=an(t.palette.error.main),a=i[0]+(r[0]-i[0])*e,o=i[1]+(r[1]-i[1])*e,s=i[2]+(r[2]-i[2])*e;return`hsl(${Math.round(a)}, ${Math.round(o)}%, ${Math.round(s)}%)`}function an(e){let t=e.replace(`#`,``),n=parseInt(t.slice(0,2),16)/255,r=parseInt(t.slice(2,4),16)/255,i=parseInt(t.slice(4,6),16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2;if(a===o)return[0,0,s*100];let c=a-o,l=s>.5?c/(2-a-o):c/(a+o),u;return u=a===n?(r-i)/c+(r<i?6:0):a===r?(i-n)/c+2:(n-r)/c+4,u*=60,[u,l*100,s*100]}function on({data:e,metric:t,label:n,segWidth:r=6,gap:i=4,height:a=10,lastCheckAt:o}){let s=m(),c=(0,Q.useRef)(null),[l,u]=(0,Q.useState)(0);(0,Q.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.clientWidth;u(Math.max(1,Math.floor((t+i)/(r+i))))};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[r,i]);let d=[];if(l>0){let n=e.slice(-l);for(let e=0;e<l-n.length;e++)d.push({val:-1,time:``});for(let e of n){let n=e[t],r=e.t?new Date(e.t).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):``;d.push({val:n,time:r,...e.t?{iso:e.t}:{},checks:e.checks,unmeasured:e.omnitronUnmeasured})}}let f=d.filter(e=>e.val>=0),p=f.length>0?Math.round(f.reduce((e,t)=>e+t.val,0)/f.length*100):-1,h=p<0&&d.some(e=>e.unmeasured===`absent`),g=p>=0&&o&&Date.now()-new Date(o).getTime()>3e5?Date.now()-new Date(o).getTime():null,_=o?{time:new Date(o).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}:null,v=g==null?null:g>=36e5?`${Math.round(g/36e5)}h`:`${Math.max(1,Math.round(g/6e4))}m`;return(0,$.jsxs)(G,{spacing:.25,children:[(0,$.jsxs)(G,{direction:`row`,sx:{justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.disabled`,fontSize:9,textTransform:`uppercase`,letterSpacing:.5},children:n}),v?(0,$.jsx)(z,{title:`Nothing has been recorded for ${v} — the last check was at ${_?.time}. The strip shows what was measured before that, not the node now.`,arrow:!0,children:(0,$.jsxs)(H,{variant:`caption`,sx:{fontSize:9,color:`warning.main`},children:[`no checks for `,v]})}):p>=0?(0,$.jsxs)(H,{variant:`caption`,sx:{fontSize:9,color:p>=95?`success.main`:p>=50?`warning.main`:`error.main`},children:[p,`%`]}):h?(0,$.jsx)(H,{variant:`caption`,sx:{fontSize:9,color:`info.main`},children:`not installed`}):null]}),(0,$.jsx)(G,{ref:c,direction:`row`,sx:{height:a,gap:`${i}px`},children:d.map((e,t)=>{let n=rn(e.val,s,e.unmeasured),i=e.checks==null?``:` (${e.checks} checks)`,a=e.val<0?e.unmeasured===`absent`?`${e.time} — omnitron not installed${i}`:e.unmeasured===`unreachable`?`${e.time} — could not reach the node${i}`:e.unmeasured===`unread`?`${e.time} — not measured: the node was reached and nothing could be read${i}`:e.time?`${e.time} — no data`:`No data`:`${e.time} — ${Math.round(e.val*100)}% up${i}`;return(0,$.jsx)(z,{title:a,arrow:!0,children:(0,$.jsx)(w,{sx:{width:r,minWidth:r,height:`100%`,bgcolor:n,borderRadius:`2px`,transition:`opacity 0.15s`,"&:hover":{opacity:.6}}})},t)})})]})}function sn(e){return/\+local\.[0-9a-zA-Z]+\.(\d{12})$/.exec(e??``)?.[1]??null}function cn(e,t){if(!e||!t)return`unknown`;if(e===t)return`current`;let n=sn(e),r=sn(t);return n&&r?n<r?`behind`:`current`:`differs`}function ln(e){let t,n=``;for(let r of e){if(!r)continue;let e=sn(r);e?e>n&&(n=e,t=r):t??=r}return t}function un(e,t){if(!e)return{state:`unchecked`,tooltip:`Not checked`};if(t)return e.omnitronConnected?{state:`online`,tooltip:`v${e.omnitronVersion??`?`} PID ${e.omnitronPid??`?`}`}:{state:`offline`,tooltip:e.omnitronError??`Not running`};let n=Ht(e);switch(n){case`running`:return{state:`online`,tooltip:`v${e.omnitronVersion??`?`} (${e.omnitronRole??`?`})`};case`not-running`:return{state:`offline`,tooltip:e.omnitronError??`Not running`};case`not-installed`:return{state:`not-installed`,tooltip:`Not installed on this node`};case`unreachable`:return{state:`unchecked`,tooltip:e.sshError?`SSH refused: ${e.sshError}`:`SSH refused`};case`unread`:return e.omnitronError?{state:`unknown`,tooltip:`Unknown — ${e.omnitronError}`}:{state:`unchecked`,tooltip:`Not checked yet`};default:return{state:`unchecked`,tooltip:String(n)}}}function dn({label:e,verdict:t,latencyMs:n,error:r,detail:i}){return(0,$.jsxs)(w,{sx:{py:1},children:[(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`},children:[(0,$.jsx)(H,{variant:`body2`,sx:{fontWeight:600,minWidth:96},children:e}),(0,$.jsx)(D,{size:`small`,label:Vn[t],color:Bn[t],variant:Hn(t)?`outlined`:`filled`,sx:{height:20,fontSize:11}}),n!=null&&(0,$.jsxs)(H,{variant:`caption`,sx:{color:`text.secondary`},children:[n,`ms`]}),i&&(0,$.jsx)(H,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`},children:i})]}),r&&(0,$.jsx)(H,{variant:`caption`,component:`pre`,sx:{mt:.5,ml:`104px`,p:1,borderRadius:1,bgcolor:e=>f(e.palette.error.main,.08),color:`error.main`,fontFamily:`monospace`,fontSize:11,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:r})]})}function fn({row:e,isLocal:t}){let n=Wt(e.pingReachable,e.pingError),r=Wt(e.sshConnected,e.sshError),i=Gt(e),a=Kt(e),o=t?[[`OMNITRON`,i]]:[[`PING`,n],[`SSH`,r],[`OMNITRON`,i]];return(0,$.jsxs)(w,{sx:{py:.75,borderBottom:e=>`1px solid ${e.palette.divider}`},children:[(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(H,{variant:`caption`,sx:{fontFamily:`monospace`,minWidth:148,color:`text.secondary`},children:new Date(e.checkedAt).toLocaleString()}),o.map(([e,t])=>(0,$.jsx)(D,{size:`small`,label:e,color:Bn[t],variant:Hn(t)?`outlined`:`filled`,sx:{height:18,fontSize:10}},e)),(0,$.jsxs)(H,{variant:`caption`,sx:{color:`text.disabled`,ml:`auto`},children:[e.checkDurationMs,`ms`]})]}),a&&(0,$.jsx)(H,{variant:`caption`,sx:{display:`block`,mt:.25,ml:`156px`,color:`error.main`,fontFamily:`monospace`,fontSize:11,wordBreak:`break-word`},children:a})]})}function pn({data:e,health:t}){if(!e)return(0,$.jsx)(H,{variant:`body2`,sx:{py:1,color:`text.secondary`},children:`Not read.`});if(!e.reachable||!e.answer)return(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{py:1,alignItems:`baseline`},children:[(0,$.jsx)(D,{size:`small`,label:`not asked`,variant:`outlined`,sx:{height:20,fontSize:11}}),(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:e.error??`no reason given`})]});let n=e.answer;if(n.apps.length===0)return(0,$.jsx)(H,{variant:`body2`,sx:{py:1,color:`text.secondary`},children:`The node answered and is running no applications.`});let i=e=>e===`online`?`success`:e===`starting`?`warning`:e===`stopped`?`default`:`error`;return(0,$.jsxs)(w,{sx:{py:.5},children:[(0,$.jsxs)(H,{variant:`caption`,sx:{display:`block`,mb:1,color:`text.secondary`},children:[n.apps.length,` app(s) · `,n.totalCpu.toFixed(1),`% CPU ·`,` `,(mt(n)/1024/1024).toFixed(0),` MB`]}),n.apps.map(n=>(0,$.jsxs)(w,{children:[(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{py:.5,alignItems:`baseline`,flexWrap:`wrap`},children:[(0,$.jsx)(D,{size:`small`,label:n.status,color:i(n.status),sx:{height:20,fontSize:11}}),(0,$.jsx)(H,{variant:`body2`,sx:{fontFamily:`monospace`},children:n.name}),(0,$.jsx)(v,{component:r,to:ht(n.name,e.nodeId===`local`?void 0:e.nodeId),size:`small`,"aria-label":`View logs for ${n.name}`,children:`Logs`}),(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:[n.pid?`pid ${n.pid}`:null,n.port?`:${n.port}`:null,n.uptime>0?`up ${En(n.uptime)}`:null,n.restarts>0?`${n.restarts} restarts`:null].filter(Boolean).join(` · `)})]},n.name),(0,$.jsxs)(H,{variant:`caption`,sx:{display:`block`,color:`text.secondary`},children:[`Health: `,t?.answer?.apps[n.name]?.status??`not read`,t?.error?` — ${t.error}`:``]}),t?.answer?.apps[n.name]?.checks.map(e=>(0,$.jsxs)(H,{variant:`caption`,sx:{display:`block`,pl:1,color:e.status===`fail`?`error.main`:e.status===`warn`?`warning.main`:`text.secondary`},children:[e.status,` · `,e.name,e.message?` — ${e.message}`:``]},e.name))]},n.name))]})}function mn({data:e}){let t=e.phase===`done`?`success`:e.phase===`failed`||e.phase===`refused`?`error`:`warning`,n=e.phase!==`done`&&e.phase!==`failed`&&e.phase!==`refused`;return(0,$.jsxs)(w,{sx:{py:.5},children:[(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(D,{size:`small`,label:e.phase,color:t,sx:{height:20,fontSize:11}}),(0,$.jsx)(H,{variant:`body2`,children:e.message})]}),e.version&&(0,$.jsx)(H,{variant:`caption`,sx:{display:`block`,mt:.5,color:`text.secondary`,fontFamily:`monospace`},children:e.version}),n&&(0,$.jsx)(Oe,{variant:`determinate`,value:e.percent,sx:{mt:1,height:4,borderRadius:2}}),(0,$.jsx)(H,{variant:`caption`,sx:{display:`block`,mt:.5,color:`text.disabled`},children:new Date(e.at).toLocaleString()})]})}function hn({data:e,nodeName:t}){if(!e)return(0,$.jsx)(H,{variant:`body2`,sx:{py:1,color:`text.secondary`},children:`Not read.`});if(!e.reachable)return(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{py:1,alignItems:`baseline`},children:[(0,$.jsx)(D,{size:`small`,label:`not asked`,variant:`outlined`,sx:{height:20,fontSize:11}}),(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:e.error??`no reason given`})]});let n=Object.entries(e.indicators??{});if(n.length===0)return(0,$.jsx)(H,{variant:`body2`,sx:{py:1,color:`text.secondary`},children:`The node answered and registered no indicators.`});let r=e=>e===`healthy`?`success`:e===`degraded`?`warning`:e===`unhealthy`?`error`:`default`;return(0,$.jsxs)(w,{sx:{py:.5},children:[e.status&&(0,$.jsx)(D,{size:`small`,label:`overall: ${e.status}`,color:r(e.status),sx:{height:20,fontSize:11,mb:1}}),n.map(([e,t])=>(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{py:.4,alignItems:`baseline`,flexWrap:`wrap`},children:[(0,$.jsx)(H,{variant:`body2`,sx:{minWidth:120,fontWeight:500},children:e}),(0,$.jsx)(D,{size:`small`,label:t?.status??`unknown`,color:r(t?.status),variant:t?.status?`filled`:`outlined`,sx:{height:18,fontSize:10}}),t?.message&&(0,$.jsx)(H,{variant:`caption`,sx:{color:t.status===`healthy`?`text.secondary`:`error.main`},children:t.message})]},e)),(0,$.jsx)(Bt,{active:n.find(([e])=>e===`runtime-diagnostics`)?.[1].details?.active,nodeName:t})]})}function gn({data:e}){if(!e)return(0,$.jsx)(H,{variant:`body2`,sx:{py:1,color:`text.secondary`},children:`Not read.`});if(!e.reachable||!e.sync)return(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{py:1,alignItems:`baseline`},children:[(0,$.jsx)(D,{size:`small`,label:`unavailable`,variant:`outlined`,sx:{height:20,fontSize:11}}),(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:e.error??`No replication reading was returned.`})]});let t=e.sync,n=yt(t);return(0,$.jsxs)(w,{sx:{py:.5},children:[(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`,mb:.5},children:[(0,$.jsx)(D,{size:`small`,label:n.state===`unknown`?`delivery active`:n.state===`pulling`?`keeping up`:n.state===`synced`?`in sync`:n.state.replace(`-`,` `),color:wt(n),sx:{height:20,fontSize:11}}),(0,$.jsxs)(H,{variant:`caption`,sx:{color:`text.secondary`},children:[bt(n),` · `,t.bufferSizeAccuracy!==`measured`&&`~`,Math.round(t.bufferSize/1024),` KB pending · last release`,` `,t.lastSyncAt?en(new Date(t.lastSyncAgeMs==null?t.lastSyncAt:Date.now()-t.lastSyncAgeMs).toISOString()):`not recorded`,t.deliveryRatePerSecond!==void 0&&` · ${t.deliveryRatePerSecond.toFixed(1)} entries/s (60 s)`]}),t.failedAttempts>0&&(0,$.jsx)(D,{size:`small`,color:`error`,label:`${t.failedAttempts} failed attempts`,sx:{height:18,fontSize:10}})]}),t.evidence&&(0,$.jsxs)(H,{variant:`caption`,sx:{display:`block`,color:`text.secondary`,overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`},children:[St(t.evidence),`. Released entries may include losses; evidence began `,new Date(t.evidence.since).toLocaleString(),`.`]}),t.lastError&&(0,$.jsx)(H,{variant:`caption`,sx:{display:`block`,color:`error.main`,fontFamily:`monospace`,fontSize:11,wordBreak:`break-word`},children:t.lastError}),!!t.history?.length&&(0,$.jsxs)(w,{component:`details`,sx:{mt:1,minWidth:0,"& summary":{cursor:`pointer`,typography:`caption`,color:`text.secondary`}},children:[(0,$.jsx)(`summary`,{children:`History before receipts · coverage and gaps`}),(0,$.jsx)(G,{spacing:1,sx:{pt:1},children:t.history.map(e=>(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`,overflowWrap:`anywhere`},children:Tt(e)},e.sourceId))})]})]})}function _n({states:e}){let t=Object.values(e),n=Xt(t),r=Yt(t);return n.kind===`none`&&r.length===0?null:(0,$.jsxs)(G,{spacing:1,children:[r.map(e=>(0,$.jsxs)(Re,{severity:`warning`,children:[e.nodeId.slice(0,8),` · `,e.reason]},e.nodeId)),n.kind!==`none`&&(0,$.jsx)(Re,{severity:`warning`,children:n.kind===`leaders`?`${n.clusterId}: ${n.answered} controller observations name different leaders: `+n.groups.map(([e,t])=>`${e} (${t.length})`).join(`, `):`${n.clusterId}: ${n.answered} controller observations have different epochs: ${n.terms.join(`, `)}`})]})}function vn({data:e}){if(!e)return null;let t=Et(e);return(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{py:.5,alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(H,{variant:`caption`,sx:{minWidth:96,color:`text.secondary`},children:`telemetry`}),(0,$.jsx)(D,{size:`small`,label:t.label,color:t.state===`healthy`?`success`:t.state===`degraded`?`warning`:`default`,variant:`outlined`,sx:{height:18,fontSize:10}}),(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`,overflowWrap:`anywhere`},children:t.detail}),`dropped`in t&&t.dropped>0&&(0,$.jsx)(D,{size:`small`,color:`error`,label:`${t.dropped} DROPPED`,sx:{height:18,fontSize:10}})]})}function yn(e){return(0,$.jsx)(bn,{...e},e.open?e.node?.id??`none`:`closed`)}function bn({open:e,onClose:t,node:n,cluster:r}){let[i,a]=(0,Q.useState)([]),[o,s]=(0,Q.useState)(null),[l,u]=(0,Q.useState)(null),[d,f]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(null),[h,g]=(0,Q.useState)(null),[_,y]=(0,Q.useState)(50),[b,x]=(0,Q.useState)(null),[S,C]=(0,Q.useState)(null),[T,E]=(0,Q.useState)(null),[O,k]=(0,Q.useState)(!1),[A,ee]=(0,Q.useState)(!0),[ne,re]=(0,Q.useState)(!1),[ie,oe]=(0,Q.useState)(null),j=Ve(),M=(0,Q.useRef)(0),N=(0,Q.useCallback)(async(e,t)=>{let n=++M.current;ee(!0),oe(null);try{let[r,i,o,l,d,p,h,_,v]=await Promise.allSettled([c.getCheckHistory({nodeId:e,limit:t}),c.getNodeIndicators({nodeId:e}),c.getNodeSyncStatus({nodeId:e}),c.getNodeRelayStats({nodeId:e}),c.getNodeHealthSummaries(),c.getNodeDaemonStatus({nodeId:e}),c.getUpgradeProgress(),c.getNodeDaemonHealth({nodeId:e}),c.getMeshStatus()]);if(n!==M.current)return;if(f(v.status===`fulfilled`?v.value.find(t=>t.nodeId===e)??null:null),C(_.status===`fulfilled`?_.value:{nodeId:e,reachable:!1,answer:null,error:`Application health could not be read`}),x(p.status===`fulfilled`?p.value:null),E(h.status===`fulfilled`?h.value.find(t=>t.nodeId===e)??null:null),s(i.status===`fulfilled`?i.value:null),u(o.status===`fulfilled`?o.value:{nodeId:e,reachable:!1,sync:null,error:o.reason instanceof Error?o.reason.message:String(o.reason)}),m(l.status===`fulfilled`?l.value:null),g(d.status===`fulfilled`?d.value.find(t=>t.nodeId===e)??null:null),r.status===`rejected`)throw r.reason;a(r.value)}catch(e){if(n!==M.current)return;oe(e instanceof Error?e.message:String(e)),a([])}finally{n===M.current&&ee(!1)}},[]);(0,Q.useEffect)(()=>{let t=M;return e&&n&&N(n.id,_),()=>{t.current++}},[e,n,_,N]);let se=T!==null&&T.phase!==`done`&&T.phase!==`failed`&&T.phase!==`refused`;Ge(()=>{e&&n&&!A&&N(n.id,_)},{intervalMs:5e3,enabled:e});let P=(0,Q.useCallback)(async()=>{if(n){k(!0);try{let e=await c.upgradeNode({nodeId:n.id});if(!e.started){j.warning(e.reason??`The daemon refused to start an upgrade`);return}j.info(`Building a bundle — this takes a few minutes`),await N(n.id,_)}catch(e){j.error(e instanceof Error?e.message:`Could not start the upgrade`)}finally{k(!1)}}},[n,_,N,j]),ue=(0,Q.useCallback)(async()=>{if(n){re(!0);try{await c.triggerNodeCheck({nodeId:n.id}),await N(n.id,_),j.success(`Check complete`)}catch(e){j.error(e instanceof Error?e.message:`Check failed`)}finally{re(!1)}}},[n,_,N,j]);if(!n)return null;let I=n.status,de=n.isLocal;return(0,$.jsxs)(ae,{open:e,onClose:t,maxWidth:`md`,fullWidth:!0,children:[(0,$.jsx)(le,{children:(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`},children:[(0,$.jsxs)(w,{component:`span`,children:[`Diagnostics — `,n.name]}),(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.secondary`},children:de?`this daemon`:`${n.host}:${n.daemonPort}`})]})}),(0,$.jsxs)(te,{dividers:!0,children:[A&&(0,$.jsx)(Oe,{"aria-label":`Loading node diagnostics`,sx:{mb:2}}),(0,$.jsx)(H,{variant:`overline`,sx:{color:`text.secondary`},children:`Last check`}),h&&(h.consecutiveFailures>0||h.lastSeenOnline)&&(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{mb:1,alignItems:`center`,flexWrap:`wrap`},children:[h.consecutiveFailures>0&&(0,$.jsx)(D,{size:`small`,color:h.consecutiveFailures>3?`error`:`warning`,label:`${h.consecutiveFailures} consecutive failures`,sx:{height:20,fontSize:11}}),h.lastSeenOnline&&(0,$.jsxs)(H,{variant:`caption`,sx:{color:`text.secondary`},children:[`last seen online `,en(h.lastSeenOnline)]})]}),I?(0,$.jsxs)(w,{sx:{mb:2},children:[!de&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(dn,{label:`PING`,verdict:Wt(I.pingReachable,I.pingError),latencyMs:I.pingLatencyMs,error:I.pingError??null}),(0,$.jsx)(dn,{label:`SSH`,verdict:Wt(I.sshConnected,I.sshError),latencyMs:I.sshLatencyMs,error:I.sshError??null,detail:I.sshConnected==null&&!I.sshError?`this check reaches the node over Netron`:void 0})]}),(0,$.jsx)(dn,{label:`OMNITRON`,verdict:Gt(I),error:I.omnitronError??null,detail:I.omnitronConnected?[I.omnitronVersion&&`v${I.omnitronVersion}`,I.omnitronPid&&`pid ${I.omnitronPid}`,I.omnitronUptime!=null&&I.omnitronUptime>0&&`up ${En(I.omnitronUptime)}`].filter(Boolean).join(` · `):void 0}),(0,$.jsx)(H,{variant:`caption`,sx:{display:`block`,mt:1,color:`text.disabled`},children:I.checkedAt?`Taken ${new Date(I.checkedAt).toLocaleString()}`:`Never checked`})]}):(0,$.jsx)(H,{variant:`body2`,sx:{mb:2,color:`text.secondary`},children:`This node has never been checked.`}),(0,$.jsx)(F,{sx:{my:2}}),(0,$.jsx)(H,{variant:`overline`,sx:{color:`text.secondary`},children:`Indicators, from the node's own titan-health`}),(0,$.jsx)(hn,{data:o,nodeName:n.name}),(0,$.jsx)(F,{sx:{my:2}}),(0,$.jsx)(H,{variant:`overline`,sx:{color:`text.secondary`},children:`Running on this node`}),(0,$.jsx)(pn,{data:b,health:S}),(0,$.jsx)(F,{sx:{my:2}}),(0,$.jsx)(H,{variant:`overline`,sx:{color:`text.secondary`},children:`Replication`}),!n.isLocal&&d&&(0,$.jsxs)(w,{sx:{py:1,overflowWrap:`anywhere`},children:[(0,$.jsx)(H,{variant:`body2`,children:xt(d).connection}),xt(d).error&&(0,$.jsx)(H,{variant:`caption`,color:`error.main`,children:xt(d).error}),!(l?.reachable&&l.sync)&&(0,$.jsxs)(H,{variant:`caption`,sx:{display:`block`,color:`text.secondary`},children:[`Replication: `,xt(d).replication]})]}),r&&(0,$.jsxs)(H,{variant:`body2`,sx:{overflowWrap:`anywhere`},children:[`Cluster · `,Jt(r)]}),(0,$.jsx)(gn,{data:l}),(0,$.jsx)(vn,{data:p}),(0,$.jsx)(F,{sx:{my:2}}),(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`,mb:1},children:[(0,$.jsx)(H,{variant:`overline`,sx:{color:`text.secondary`},children:`History`}),(0,$.jsx)(U,{size:`small`,sx:{ml:`auto`,minWidth:120},children:(0,$.jsx)(Fe,{value:_,inputProps:{"aria-label":`History entries`},onChange:e=>y(Number(e.target.value)),sx:{height:30,fontSize:12},children:zn.map(e=>(0,$.jsxs)(W,{value:e,sx:{fontSize:12},children:[`last `,e,` checks`]},e))})})]}),ie&&(0,$.jsx)(Re,{onClose:()=>oe(null),children:ie}),A&&i.length===0?(0,$.jsx)(ut,{height:120}):i.length===0&&!ie?(0,$.jsx)(H,{variant:`body2`,sx:{py:2,color:`text.secondary`},children:`No checks recorded. History is kept by the daemon that runs the health worker.`}):(0,$.jsx)(w,{sx:{maxHeight:360,overflowY:`auto`},children:i.map(e=>(0,$.jsx)(fn,{row:e,isLocal:de},`${e.nodeId}-${e.checkedAt}`))}),T&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(F,{sx:{my:2}}),(0,$.jsx)(H,{variant:`overline`,sx:{color:`text.secondary`},children:`Workspace source bundle upgrade`}),(0,$.jsx)(mn,{data:T})]})]}),(0,$.jsxs)(ce,{children:[(0,$.jsx)(K,{permission:`OmnitronNodes.triggerNodeCheck`,children:(0,$.jsx)(v,{onClick:ue,disabled:ne,startIcon:(0,$.jsx)($e,{sx:{fontSize:16}}),children:ne?`Checking…`:`Check now`})}),!de&&(0,$.jsx)(K,{permission:`OmnitronNodes.upgradeNode`,children:(0,$.jsxs)(w,{component:`details`,children:[(0,$.jsx)(H,{component:`summary`,variant:`caption`,sx:{cursor:`pointer`},children:`Advanced · workspace source bundle`}),(0,$.jsx)(v,{onClick:P,disabled:O||se,startIcon:(0,$.jsx)(tt,{sx:{fontSize:16}}),children:se?`Upgrading…`:`Install source bundle`})]})}),(0,$.jsx)(w,{sx:{flexGrow:1}}),(0,$.jsx)(v,{onClick:t,children:`Close`})]})]})}function xn({node:e,onEdit:t,onRemove:n,onCheckSsh:i,onDiagnose:a,checking:o,uptimeData:s,lastCheckAt:c,newest:l,mesh:u}){let{status:d}=e,f=un(d,e.isLocal),p=d?.pingReachable==null?`unchecked`:d.pingReachable?`online`:`offline`,m=!e.isLocal&&tn(d?.checkedAt);return(0,$.jsx)(M,{sx:{height:`100%`,display:`flex`,flexDirection:`column`,transition:`box-shadow 0.2s`,"&:hover":{boxShadow:e=>e.shadows[8]}},children:(0,$.jsxs)(_,{sx:{pb:`12px !important`,flexGrow:1,display:`flex`,flexDirection:`column`},children:[(0,$.jsxs)(G,{direction:`row`,sx:{alignItems:`flex-start`,justifyContent:`space-between`,flexWrap:`wrap`,gap:1,mb:1.5},children:[(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`,minWidth:0},children:[e.isLocal?(0,$.jsx)(rt,{sx:{fontSize:24,color:`primary.main`,flexShrink:0}}):(0,$.jsx)(Xe,{sx:{fontSize:24,color:`text.secondary`,flexShrink:0}}),(0,$.jsxs)(w,{sx:{minWidth:0},children:[(0,$.jsx)(H,{variant:`subtitle2`,noWrap:!0,children:e.name}),(0,$.jsxs)(H,{variant:`caption`,noWrap:!0,sx:{color:`text.disabled`},children:[e.host,e.isLocal?``:`:${e.sshPort}`]})]})]}),(0,$.jsxs)(G,{direction:`row`,spacing:.5,useFlexGap:!0,sx:{flexWrap:`wrap`,justifyContent:`flex-end`,flexShrink:0,maxWidth:`100%`},children:[!e.isLocal&&(0,$.jsx)(K,{permission:`OmnitronNodes.removeNode`,children:(0,$.jsx)(z,{title:`Remove`,children:(0,$.jsx)(Me,{size:`small`,"aria-label":`Remove node ${e.name}`,onClick:()=>n(e.id),color:`error`,sx:{marginInlineEnd:1},children:(0,$.jsx)(nt,{sx:{fontSize:18}})})})}),!e.isLocal&&(0,$.jsx)(K,{permission:`OmnitronTerminal.open`,children:(0,$.jsx)(v,{component:r,to:`/terminal?${new URLSearchParams({node:e.id})}`,size:`small`,children:`SSH`})}),!e.isLocal&&(0,$.jsx)(z,{title:o?`Checking...`:`Check SSH connection`,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(K,{permission:`OmnitronNodes.checkNodeStatus`,children:(0,$.jsx)(Me,{size:`small`,"aria-label":`Check SSH connection`,onClick:()=>i(e.id),disabled:o,children:(0,$.jsx)($e,{sx:{fontSize:18,...o&&{animation:`${Pn} 1s linear infinite`}}})})})})}),(0,$.jsx)(z,{title:`Diagnostics`,children:(0,$.jsx)(Me,{size:`small`,"aria-label":`Diagnostics for ${e.name}`,onClick:()=>a(e),children:(0,$.jsx)(et,{sx:{fontSize:18}})})}),!e.isLocal&&(0,$.jsx)($.Fragment,{children:(0,$.jsx)(K,{permission:`OmnitronNodes.updateNode`,children:(0,$.jsx)(z,{title:`Edit`,children:(0,$.jsx)(Me,{size:`small`,"aria-label":`Edit node ${e.name}`,onClick:()=>t(e),children:(0,$.jsx)(Qe,{sx:{fontSize:18}})})})})})]})]}),(0,$.jsxs)(G,{direction:`row`,spacing:2,sx:{mb:1.5,alignItems:`center`},children:[e.isLocal?(0,$.jsx)(nn,{state:f.state,label:`OMNITRON`,tooltip:f.tooltip}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(nn,{state:p,label:`PING`,tooltip:d?.pingReachable?`${d.pingLatencyMs??`?`}ms`:d?.pingError??`Not checked`}),(0,$.jsx)(nn,{state:f.state,label:`OMNITRON`,tooltip:f.tooltip})]}),(0,$.jsx)(z,{arrow:!0,title:d?.checkedAt?`Last checked ${new Date(d.checkedAt).toLocaleString()}`:`This node has never been checked`,children:(0,$.jsx)(H,{variant:`caption`,noWrap:!0,sx:{ml:`auto`,fontSize:10,color:m?`warning.main`:`text.disabled`},children:en(d?.checkedAt)})})]}),(0,$.jsx)(F,{sx:{mb:1.5}}),(0,$.jsxs)(G,{spacing:.5,children:[d?.omnitronVersion&&(0,$.jsx)(wn,{version:d.omnitronVersion,standing:cn(d.omnitronVersion,l)}),(0,$.jsx)(Tn,{label:`Runtime`,value:e.runtime}),(0,$.jsx)(Tn,{label:`Daemon Port`,value:String(e.daemonPort)}),!e.isLocal&&(0,$.jsx)(Tn,{label:`SSH User`,value:e.sshUser}),d?.os&&(0,$.jsx)(Tn,{label:`OS`,value:`${d.os.platform} ${d.os.arch}`}),d?.omnitronUptime!=null&&d.omnitronUptime>0&&(0,$.jsx)(Tn,{label:`Uptime`,value:En(d.omnitronUptime)}),!e.isLocal&&(0,$.jsx)(Cn,{mesh:u})]}),e.tags.length>0&&(0,$.jsx)(G,{direction:`row`,spacing:.5,useFlexGap:!0,sx:{mt:1.5,flexWrap:`wrap`},children:e.tags.map(e=>(0,$.jsx)(D,{label:e,size:`small`,variant:`outlined`,sx:{height:22,fontSize:11}},e))}),!e.isLocal&&(0,$.jsx)(w,{sx:{mt:`auto`,pt:1.5},children:(0,$.jsxs)(G,{spacing:.75,children:[(0,$.jsx)(on,{data:s,metric:`ping`,label:`PING`,segWidth:In,gap:Ln,height:Rn,lastCheckAt:c}),(0,$.jsx)(on,{data:s,metric:`omnitron`,label:`OMNITRON`,segWidth:In,gap:Ln,height:Rn,lastCheckAt:c})]})})]})})}function Sn(e){let t=xt(e),n=[t.connection,t.error,`Replication: ${t.replication}`].filter(Boolean).join(` `);switch(t.state){case`not-joined`:return{text:`not joined`,tone:`idle`,tooltip:n};case`reconnecting`:return{text:e.reconnectAt==null?`disconnected`:`retrying`,tone:`bad`,tooltip:n};case`connecting`:return{text:`joining`,tone:`quiet`,tooltip:n};case`stale`:return{text:`stale heartbeat`,tone:`warn`,tooltip:n};case`unauthenticated`:return{text:`unauthenticated`,tone:`warn`,tooltip:n};case`connected`:return e.via===`ssh-tunnel`?{text:`over SSH`,tone:`info`,tooltip:n}:{text:`direct`,tone:`good`,tooltip:n};default:return{text:`disconnected`,tone:`bad`,tooltip:`RPC state is unavailable.`}}}function Cn({mesh:e}){if(!e)return null;let t=Sn(e);return(0,$.jsxs)(G,{direction:`row`,sx:{justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.disabled`,fontSize:11},children:`Mesh`}),(0,$.jsx)(z,{arrow:!0,title:t.tooltip,children:(0,$.jsx)(H,{variant:`caption`,noWrap:!0,sx:{fontSize:11,color:Un[t.tone],maxWidth:190},children:t.text})})]})}function wn({version:e,standing:t}){let[n,r]=e.split(`+`),i=r?.split(`.`)[1],a=i?`${n} · ${i.slice(0,7)}`:n,o=t===`behind`?{text:`behind`,color:`warning.main`}:t===`differs`?{text:`differs`,color:`info.main`}:null;return(0,$.jsxs)(G,{direction:`row`,sx:{justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.disabled`,fontSize:11},children:`Version`}),(0,$.jsx)(z,{arrow:!0,title:e,children:(0,$.jsxs)(G,{direction:`row`,spacing:.75,sx:{alignItems:`center`},children:[o&&(0,$.jsx)(H,{variant:`caption`,sx:{fontSize:10,color:o.color},children:o.text}),(0,$.jsx)(H,{variant:`caption`,noWrap:!0,sx:{fontSize:11,maxWidth:190},children:a})]})})]})}function Tn({label:e,value:t}){return(0,$.jsxs)(G,{direction:`row`,sx:{justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsx)(H,{variant:`caption`,sx:{color:`text.disabled`},children:e}),(0,$.jsx)(H,{variant:`caption`,sx:{fontWeight:500},children:t})]})}function En(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d ${r%24}h`}function Dn({open:e,onClose:t,onSubmit:n,editNode:r,sshKeys:i,loading:a,error:o,onDismissError:s}){let[c,l]=(0,Q.useState)(Wn);(0,Q.useEffect)(()=>{e&&l(r?{name:r.name,host:r.host,sshPort:r.sshPort,sshUser:r.sshUser,sshAuthMethod:r.sshAuthMethod,sshPrivateKey:r.sshPrivateKey??``,sshPassphrase:``,sshPassword:``,runtime:r.runtime,daemonPort:r.daemonPort,tags:r.tags.join(`, `)}:{...Wn,sshPrivateKey:i[0]?.path??``})},[r,i,e]);let u=(e,t)=>l(n=>({...n,[e]:t})),d=!!r,f=c.name.trim()&&c.host.trim();return(0,$.jsxs)(ae,{open:e,onClose:t,maxWidth:`sm`,fullWidth:!0,children:[(0,$.jsx)(le,{children:d?`Edit "${r.name}"`:`Add Node`}),(0,$.jsxs)(te,{children:[o&&(0,$.jsx)(Re,{onClose:s,children:o}),(0,$.jsxs)(G,{spacing:2.5,sx:{mt:1},children:[(0,$.jsx)(B,{label:`Name`,value:c.name,onChange:e=>u(`name`,e.target.value),fullWidth:!0,placeholder:`production-server-1`,autoFocus:!0}),(0,$.jsxs)(G,{direction:{xs:`column`,sm:`row`},spacing:2,children:[(0,$.jsx)(B,{label:`Host`,value:c.host,onChange:e=>u(`host`,e.target.value),fullWidth:!0,placeholder:`192.168.1.100`}),(0,$.jsx)(B,{label:`SSH Port`,value:c.sshPort,onChange:e=>u(`sshPort`,parseInt(e.target.value,10)||22),sx:{width:{xs:`100%`,sm:120},flexShrink:0},type:`number`})]}),(0,$.jsxs)(G,{direction:{xs:`column`,sm:`row`},spacing:2,children:[(0,$.jsx)(B,{label:`SSH User`,value:c.sshUser,onChange:e=>u(`sshUser`,e.target.value),fullWidth:!0}),(0,$.jsxs)(U,{sx:{minWidth:160},children:[(0,$.jsx)(we,{children:`Auth Method`}),(0,$.jsxs)(Fe,{value:c.sshAuthMethod,label:`Auth Method`,inputProps:{"aria-label":`Auth Method`},onChange:e=>u(`sshAuthMethod`,e.target.value),children:[(0,$.jsx)(W,{value:`key`,children:`SSH Key`}),(0,$.jsx)(W,{value:`password`,children:`Password`})]})]})]}),c.sshAuthMethod===`key`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(U,{fullWidth:!0,children:[(0,$.jsx)(we,{children:`SSH Private Key`}),(0,$.jsxs)(Fe,{value:c.sshPrivateKey,label:`SSH Private Key`,inputProps:{"aria-label":`SSH Private Key`},onChange:e=>u(`sshPrivateKey`,e.target.value),children:[i.map(e=>(0,$.jsx)(W,{value:e.path,children:(0,$.jsxs)(G,{direction:`row`,spacing:1,sx:{alignItems:`center`,width:`100%`},children:[(0,$.jsx)(H,{variant:`body2`,sx:{fontWeight:500},children:e.name}),(0,$.jsx)(D,{label:e.type,size:`small`,sx:{height:20,fontSize:11}}),(0,$.jsx)(H,{variant:`caption`,noWrap:!0,sx:{color:`text.disabled`,ml:`auto`},children:e.path})]})},e.path)),i.length===0&&(0,$.jsx)(W,{disabled:!0,children:(0,$.jsx)(H,{variant:`body2`,sx:{color:`text.secondary`},children:`No SSH keys found`})})]})]}),(0,$.jsx)(B,{label:`Key Passphrase`,value:c.sshPassphrase,onChange:e=>u(`sshPassphrase`,e.target.value),fullWidth:!0,type:`password`,placeholder:r?.hasPassphrase?`Encrypted — leave empty to keep`:`Leave empty if key is not encrypted`,size:`small`,helperText:r?.hasPassphrase?`Passphrase is stored encrypted. Enter new value to change.`:void 0})]}):(0,$.jsx)(B,{label:`SSH Password`,value:c.sshPassword,onChange:e=>u(`sshPassword`,e.target.value),fullWidth:!0,type:`password`,placeholder:r?.hasPassword?`Stored — leave empty to keep`:``,helperText:r?.hasPassword?`Password is stored encrypted. Enter a new value to change it.`:void 0}),(0,$.jsx)(F,{}),(0,$.jsxs)(G,{direction:{xs:`column`,sm:`row`},spacing:2,children:[(0,$.jsxs)(U,{sx:{minWidth:140},children:[(0,$.jsx)(we,{children:`Runtime`}),(0,$.jsxs)(Fe,{value:c.runtime,label:`Runtime`,inputProps:{"aria-label":`Runtime`},onChange:e=>u(`runtime`,e.target.value),children:[(0,$.jsx)(W,{value:`node`,children:`Node.js`}),(0,$.jsx)(W,{value:`bun`,children:`Bun`})]})]}),(0,$.jsx)(B,{label:`Daemon Port`,value:c.daemonPort,onChange:e=>u(`daemonPort`,parseInt(e.target.value,10)||9700),sx:{width:{xs:`100%`,sm:140},flexShrink:0},type:`number`}),(0,$.jsx)(B,{label:`Tags`,value:c.tags,onChange:e=>u(`tags`,e.target.value),fullWidth:!0,placeholder:`production, gpu`,helperText:`Comma-separated`})]})]})]}),(0,$.jsxs)(ce,{children:[(0,$.jsx)(v,{onClick:t,color:`inherit`,children:`Cancel`}),(0,$.jsx)(v,{variant:`contained`,loading:a,onClick:()=>n(c),disabled:!f||a,children:d?`Save`:`Add Node`})]})]})}function On({open:e,onClose:t,onSaved:n}){let[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(!1),[s,l]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{e&&(l(null),c.getCheckConfig().then(e=>i(e)).catch(e=>l(e?.message??`Could not read the current settings`)))},[e]);let u=(e,t)=>i(n=>n&&{...n,[e]:t});return(0,$.jsxs)(ae,{open:e,onClose:a?void 0:t,maxWidth:`xs`,fullWidth:!0,children:[(0,$.jsx)(le,{children:`Check Settings`}),(0,$.jsxs)(te,{children:[s&&(0,$.jsx)(Re,{onClose:()=>l(null),children:s}),r?(0,$.jsxs)(G,{spacing:2.5,sx:{mt:1},children:[(0,$.jsxs)(U,{fullWidth:!0,children:[(0,$.jsx)(we,{children:`ICMP Ping`}),(0,$.jsxs)(Fe,{value:r.pingEnabled?`on`:`off`,label:`ICMP Ping`,inputProps:{"aria-label":`ICMP Ping`},onChange:e=>u(`pingEnabled`,e.target.value===`on`),children:[(0,$.jsx)(W,{value:`on`,children:`Enabled`}),(0,$.jsx)(W,{value:`off`,children:`Disabled`})]})]}),(0,$.jsx)(B,{label:`Ping timeout (ms)`,type:`number`,fullWidth:!0,value:r.pingTimeout,onChange:e=>u(`pingTimeout`,parseInt(e.target.value,10)||0),helperText:`250-60000`,disabled:!r.pingEnabled}),(0,$.jsx)(B,{label:`SSH timeout (ms)`,type:`number`,fullWidth:!0,value:r.sshTimeout,onChange:e=>u(`sshTimeout`,parseInt(e.target.value,10)||0),helperText:`1000-120000`}),(0,$.jsx)(B,{label:`Omnitron probe timeout (ms)`,type:`number`,fullWidth:!0,value:r.omnitronCheckTimeout,onChange:e=>u(`omnitronCheckTimeout`,parseInt(e.target.value,10)||0),helperText:`1000-120000`}),(0,$.jsx)(B,{label:`Concurrent checks`,type:`number`,fullWidth:!0,value:r.concurrency,onChange:e=>u(`concurrency`,parseInt(e.target.value,10)||0),helperText:`1-100 - how many nodes are checked at once`})]}):(0,$.jsx)(ut,{variant:`rounded`,height:220})]}),(0,$.jsxs)(ce,{children:[(0,$.jsx)(v,{onClick:t,color:`inherit`,disabled:a,children:`Cancel`}),(0,$.jsx)(K,{permission:`OmnitronNodes.setCheckConfig`,children:(0,$.jsx)(v,{variant:`contained`,onClick:async()=>{if(r){o(!0),l(null);try{n(await c.setCheckConfig(r)),t()}catch(e){l(e?.message??`Failed to save settings.`)}finally{o(!1)}}},disabled:!r||a,children:a?`Saving...`:`Save`})})]})]})}function kn(){let{can:e}=He(),t=e(`OmnitronNodes.listSshKeys`),[n,r]=(0,Q.useState)([]),[i,a]=(0,Q.useState)([]),[o,s]=(0,Q.useState)(!0),[l,u]=(0,Q.useState)(!1),d=(0,Q.useRef)(!1),[f,p]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(null),[y,b]=(0,Q.useState)(null),[x,S]=(0,Q.useState)(!1),[C,w]=(0,Q.useState)(null),[T,E]=(0,Q.useState)({}),[D,O]=(0,Q.useState)({}),[k,A]=(0,Q.useState)(null),[ee,ne]=(0,Q.useState)(!1),[re,ie]=(0,Q.useState)({uptimeIntervalMs:An,retentionDays:jn}),oe=(0,Q.useRef)(re);oe.current=re;let[j,M]=(0,Q.useState)(null),[N,se]=(0,Q.useState)(null),P=(0,Q.useRef)([]);P.current=n;let[F,ue]=(0,Q.useState)({}),I=(0,Q.useRef)(0),[de,fe]=(0,Q.useState)({}),L=(0,Q.useCallback)(async()=>{try{let e=await c.listNodes();r(e),A(null);let t=await Promise.allSettled(e.map(async e=>({id:e.id,at:(await c.getCheckHistory({nodeId:e.id,limit:1}))[0]?.checkedAt??null}))),n={},i=null;for(let e of t)e.status===`fulfilled`?n[e.value.id]=e.value.at:i??=e.reason?.message??`Could not read the latest recorded checks`;return O(e=>({...e,...n})),se(i),e}catch(e){return A(e?.message??`Could not reach the daemon`),P.current}finally{s(!1)}},[]),pe=(0,Q.useCallback)(async()=>{try{let e=await c.getMeshStatus();ue(Object.fromEntries(e.map(e=>[e.nodeId,e])))}catch{}},[]),R=(0,Q.useCallback)(async e=>{let t=++I.current,n=await Promise.allSettled(e.map(async e=>c.getNodeClusterState({nodeId:e.id}))),r={};n.forEach((t,n)=>{let i=e[n].id;r[i]=t.status===`fulfilled`&&t.value?.nodeId===i?t.value:{nodeId:i,reachable:!1,cluster:null,error:t.status===`rejected`&&t.reason instanceof Error?t.reason.message:`Cluster participation unavailable`}}),t===I.current&&fe(r)},[]),me=(0,Q.useCallback)(async e=>{let t={},n=null;await Promise.allSettled(e.map(async e=>{try{let{uptimeIntervalMs:n,retentionDays:r}=oe.current;t[e.id]=await c.getUptimeBar({nodeId:e.id,bucketCount:$t(r,n),intervalMs:n})}catch(e){n??=e?.message??`Could not load uptime history`}})),E(e=>({...e,...t})),M(n)},[]),he=(0,Q.useCallback)(async()=>{if(!t)a([]);else try{a(await c.listSshKeys())}catch{}},[t]),ge=qe(e=>e.connected),B=qe(e=>e.lastNodeEvent),_e=qe(e=>e.initialize);(0,Q.useEffect)(()=>_e(),[_e]),Ge(()=>void L(),{intervalMs:ge?12e4:3e4}),Ge(()=>void pe(),{intervalMs:15e3}),Ge(()=>R(P.current),{intervalMs:6e4}),(0,Q.useEffect)(()=>{B&&L()},[B,L]),Ge(()=>void(async()=>{await me(P.current)})(),{intervalMs:Mn});let ve=n.map(e=>e.id).sort().join(`,`);(0,Q.useEffect)(()=>{R(P.current),ve&&me(P.current)},[ve,R,me]),(0,Q.useEffect)(()=>{he()},[he]),(0,Q.useEffect)(()=>{Promise.resolve().then(()=>c.getHistoryConfig()).then(e=>ie(e)).catch(()=>{})},[]);let ye=(0,Q.useMemo)(()=>ln(n.map(e=>e.status?.omnitronVersion)),[n]),V=Ve(),be=(0,Q.useCallback)(async e=>{let t=n.find(t=>t.id===e)?.name??e;p(e);try{let n=await c.checkNodeStatus({id:e});if(n.sshConnected){let e=n.sshLatencyMs==null?``:` (${n.sshLatencyMs}ms)`;V.success(`${t}: SSH connected${e}`)}else n.sshConnected===!1?V.error(`${t}: SSH failed — ${n.sshError??`Connection refused`}`):V.warning(`${t}: this check did not use SSH — ${n.omnitronConnected?`omnitron answered on its Netron port`:n.omnitronError??`no answer on the Netron port`}`)}catch(e){V.error(`${t}: ${e?.message??`Check failed`}`)}finally{p(null)}},[n,V]),[xe,Se]=(0,Q.useState)(null),[Ce,we]=(0,Q.useState)(!1),[Te,U]=(0,Q.useState)(null),Ee=(0,Q.useRef)(!1),De=n.find(e=>e.id===xe),Oe=(0,Q.useCallback)(async()=>{if(xe&&!Ee.current){Ee.current=!0,we(!0),U(null);try{await c.removeNode({id:xe}),await L(),Se(null)}catch(e){U(e?.message??`Failed to remove node.`)}finally{Ee.current=!1,we(!1)}}},[xe,L]),ke=(0,Q.useCallback)(()=>{Ee.current||(Se(null),U(null))},[]),Ae=(0,Q.useCallback)(()=>{_(null),w(null),h(!0)},[]),je=(0,Q.useCallback)(e=>{_(e),w(null),h(!0)},[]),W=(0,Q.useCallback)(()=>{h(!1),_(null),w(null)},[]),Ne=(0,Q.useCallback)(async e=>{S(!0),w(null);try{let t={name:e.name.trim(),host:e.host.trim(),sshPort:e.sshPort,sshUser:e.sshUser.trim(),sshAuthMethod:e.sshAuthMethod,sshPrivateKey:e.sshAuthMethod===`key`?e.sshPrivateKey:void 0,sshPassphrase:e.sshAuthMethod===`key`&&e.sshPassphrase?e.sshPassphrase:void 0,sshPassword:e.sshAuthMethod===`password`&&e.sshPassword?e.sshPassword:void 0,runtime:e.runtime,daemonPort:e.daemonPort,tags:e.tags.split(`,`).map(e=>e.trim()).filter(Boolean)};g?await c.updateNode({id:g.id,...t}):await c.addNode(t),W(),await L()}catch(e){w(e?.message??`Failed to save node.`)}finally{S(!1)}},[g,L,W]),Fe=[...n].sort((e,t)=>e.isLocal===t.isLocal?e.name.localeCompare(t.name):e.isLocal?-1:1);return(0,$.jsxs)(G,{spacing:3,children:[(0,$.jsx)(ct,{links:[{name:`Nodes`}],action:(0,$.jsxs)(G,{direction:`row`,spacing:1,children:[(0,$.jsx)(K,{permission:`OmnitronNodes.setCheckConfig`,children:(0,$.jsx)(v,{variant:`outlined`,size:`small`,startIcon:(0,$.jsx)(Qe,{sx:{fontSize:18}}),onClick:()=>ne(!0),children:`Check Settings`})}),(0,$.jsx)(z,{title:`Refresh`,children:(0,$.jsx)(Me,{"data-console-command":`refresh`,size:`small`,"aria-label":`Refresh`,loading:l,onClick:async()=>{if(!d.current){d.current=!0,u(!0);try{let e=await L();await Promise.all([me(e),pe(),R(e)])}finally{d.current=!1,u(!1)}}},children:(0,$.jsx)($e,{sx:{fontSize:18}})})}),(0,$.jsx)(K,{permission:`OmnitronNodes.addNode`,children:(0,$.jsx)(v,{variant:`contained`,size:`small`,startIcon:(0,$.jsx)(Ye,{sx:{fontSize:18}}),onClick:Ae,children:`Add Node`})})]})}),(0,$.jsx)(ot,{active:l,label:`Refreshing node status`,detail:`Reading fleet, replication and uptime observations`}),(0,$.jsx)(_n,{states:de}),(0,$.jsx)(Pt,{nodes:n}),k&&(0,$.jsxs)(Re,{severity:`warning`,onClose:()=>A(null),children:[`Could not refresh the node list — `,k,`. The cards below are the last state the daemon reported.`]}),(j||N)&&(0,$.jsxs)(Re,{severity:`warning`,onClose:()=>{M(null),se(null)},children:[`Could not refresh the uptime history — `,j||N,`. The strips below are the last aggregation that arrived, and may be behind the cards.`]}),o?(0,$.jsx)(Pe,{container:!0,spacing:3,children:[1,2,3].map(e=>(0,$.jsx)(Pe,{size:{xs:12,sm:6,md:4},children:(0,$.jsx)(ut,{variant:`rounded`,height:300})},e))}):Fe.length===0?(0,$.jsx)(ft,{title:k?`No nodes to show`:`No nodes registered`,description:k?`The list could not be refreshed, so this may not be the whole picture.`:`Add a node to manage a remote host from here.`}):(0,$.jsx)(Pe,{container:!0,spacing:3,children:Fe.map(e=>(0,$.jsx)(Pe,{size:{xs:12,sm:6,md:4},children:(0,$.jsx)(xn,{node:e,onEdit:je,onRemove:Se,onCheckSsh:be,onDiagnose:b,checking:f===e.id,uptimeData:T[e.id]??[],lastCheckAt:D[e.id]??null,newest:ye,mesh:F[e.id]})},e.id))}),(0,$.jsx)(yn,{cluster:y?de[y.id]:void 0,open:!!y,onClose:()=>b(null),node:y?n.find(e=>e.id===y.id)??y:null}),(0,$.jsxs)(ae,{open:!!xe,onClose:ke,maxWidth:`xs`,fullWidth:!0,children:[(0,$.jsx)(le,{children:`Remove Node`}),(0,$.jsxs)(te,{children:[(0,$.jsxs)(H,{variant:`body2`,children:[`Remove `,(0,$.jsx)(`strong`,{children:De?.name??xe}),`? This cannot be undone.`]}),Te&&(0,$.jsx)(Re,{onClose:()=>U(null),children:Te})]}),(0,$.jsxs)(ce,{children:[(0,$.jsx)(v,{onClick:ke,color:`inherit`,disabled:Ce,children:`Cancel`}),(0,$.jsx)(K,{permission:`OmnitronNodes.removeNode`,children:(0,$.jsx)(v,{onClick:Oe,color:`error`,variant:`contained`,disabled:Ce,children:Ce?`Removing…`:`Remove`})})]})]}),(0,$.jsx)(K,{permission:g?`OmnitronNodes.updateNode`:`OmnitronNodes.addNode`,children:(0,$.jsx)(Dn,{open:m,onClose:W,onSubmit:Ne,editNode:g,sshKeys:i,loading:x,error:C,onDismissError:()=>w(null)})}),(0,$.jsx)(K,{permission:`OmnitronNodes.setCheckConfig`,children:(0,$.jsx)(On,{open:ee,onClose:()=>ne(!1),onSaved:e=>{V.success(`Check settings saved — ping ${e.pingEnabled?`on`:`off`}, SSH timeout ${e.sshTimeout}ms`),L()}})})]})}var Q,$,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn;function Gn(){return(Gn=e((()=>{at(),Ue(),Q=t(),l(),y(),x(),S(),Ce(),pe(),b(),je(),he(),C(),Ie(),re(),A(),ne(),se(),be(),Ne(),Le(),Ee(),De(),j(),Te(),p(),u(),h(),st(),dt(),ze(),lt(),Be(),Rt(),Vt(),o(),Ke(),Qt(),Ut(),Ct(),pt(),gt(),Je(),Ze(),$=n(),An=864e5,jn=90,Mn=3e5,Nn=3e5,Pn=d`
2
+ from { transform: rotate(0deg); }
3
+ to { transform: rotate(360deg); }
4
+ `,Fn=d`
5
+ 0%, 100% { opacity: 1; }
6
+ 50% { opacity: 0.3; }
7
+ `,In=6,Ln=4,Rn=10,zn=[50,200,500],Bn={ok:`success`,failed:`error`,unknown:`warning`,unmeasured:`default`},Vn={ok:`reachable`,failed:`failed`,unknown:`unknown`,unmeasured:`not measured`},Hn=e=>e===`unmeasured`||e===`unknown`,Un={idle:`text.disabled`,quiet:`text.secondary`,bad:`error.main`,warn:`warning.main`,info:`info.main`,good:`success.main`},Wn={name:``,host:``,sshPort:22,sshUser:`root`,sshAuthMethod:`key`,sshPrivateKey:``,sshPassphrase:``,sshPassword:``,runtime:`node`,daemonPort:9700,tags:``}})))()}Gn();export{yn as NodeDiagnosisDialog,vn as NodeRelay,gn as NodeSyncStatus,sn as buildStampOf,kn as default,Sn as meshStanding,ln as newestVersion,cn as versionStanding};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{H as n,V as r}from"./mui-BXSXx9c9.js";import{n as i,t as a}from"./react-CEuifcaQ.js";function o(e,t,n){return e===502||e===503?`down`:(t??``).includes(`text/html`)||e<200||e>=300||n===null?`unreachable`:n.status===`online`?`up`:`down`}function s(e,t){return e===`up`?{status:`online`,consecutiveUnreachable:0}:e===`down`?{status:`offline`,consecutiveUnreachable:0}:{status:`degraded`,consecutiveUnreachable:t+1}}async function c(){try{let e=new AbortController,t=setTimeout(()=>e.abort(),d),n=await fetch(`/api/health`,{signal:e.signal,cache:`no-store`});clearTimeout(t);let r=n.headers.get(`content-type`),i=n.ok?await n.json().catch(()=>null):null;return o(n.status,r,i)}catch{return`unreachable`}}async function l(e,t){let n=s(await c(),t().consecutiveUnreachable);e({status:n.status,consecutiveUnreachable:n.consecutiveUnreachable,lastChecked:Date.now()})}var u,d,f,p,m;function h(){return(h=e((()=>{i(),u=3e4,d=15e3,f=a((e,t)=>({status:`unknown`,lastChecked:null,consecutiveUnreachable:0,probe:async()=>{await l(e,t)},startPolling:()=>{l(e,t);let n=setInterval(()=>void l(e,t),u);return()=>clearInterval(n)}})),p=()=>f(e=>e.status!==`offline`),m=()=>f(e=>e.status)})))()}function g({size:e=32,sx:t}){return(0,_.jsxs)(r,{component:`svg`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 210 210`,sx:{width:e,height:e,flexShrink:0,...t},children:[(0,_.jsx)(`defs`,{children:(0,_.jsxs)(`linearGradient`,{id:`omni-logo-grad`,x1:`105`,y1:`165.47`,x2:`105`,y2:`52.73`,gradientUnits:`userSpaceOnUse`,children:[(0,_.jsx)(`stop`,{offset:`0`,stopColor:`#ff4fff`}),(0,_.jsx)(`stop`,{offset:`0.01`,stopColor:`#ff51fb`}),(0,_.jsx)(`stop`,{offset:`0.29`,stopColor:`#ff75af`}),(0,_.jsx)(`stop`,{offset:`0.53`,stopColor:`#ff9272`}),(0,_.jsx)(`stop`,{offset:`0.73`,stopColor:`#ffa747`}),(0,_.jsx)(`stop`,{offset:`0.89`,stopColor:`#ffb32c`}),(0,_.jsx)(`stop`,{offset:`0.98`,stopColor:`#ffb822`})]})}),(0,_.jsx)(`path`,{fill:`url(#omni-logo-grad)`,d:`M66.92,144.68l-27,15.59L102,52.73V83.92Zm3,5.2-27,15.59H167.09l-27-15.59Zm100.17,10.39L108,52.73V83.92l35.08,60.76Zm-34.4-16.39L105,90.72,74.31,143.88Z`})]})}var _;function v(){return(v=e((()=>{n(),_=t()})))()}export{m as a,p as i,v as n,f as o,h as r,g as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{H as r,V as i,ct as a,st as o}from"./mui-BXSXx9c9.js";import{B as s,z as c}from"./mui-Cd711nOk.js";function l({active:e,label:t,detail:n}){let[r,a]=(0,u.useState)(0);return(0,u.useEffect)(()=>{if(a(0),!e)return;let t=performance.now(),n=window.setInterval(()=>a(Math.floor((performance.now()-t)/1e3)),1e3);return()=>window.clearInterval(n)},[e,t]),e?(0,d.jsxs)(i,{role:`status`,"aria-live":`polite`,sx:{display:`flex`,gap:1.25,alignItems:`flex-start`,minWidth:0,py:1},children:[(0,d.jsx)(o,{size:16,thickness:4,"aria-hidden":!0,sx:{flexShrink:0,mt:`3px`,"@media (prefers-reduced-motion: reduce)":{animation:`none`,"& circle":{animation:`none`}}}}),(0,d.jsxs)(i,{sx:{flex:1,minWidth:0},children:[(0,d.jsx)(c,{variant:`body2`,sx:{overflowWrap:`anywhere`},children:t}),n&&(0,d.jsx)(c,{variant:`caption`,color:`text.secondary`,sx:{display:`block`,overflowWrap:`anywhere`},children:n}),r>=10&&(0,d.jsx)(c,{variant:`caption`,color:`text.secondary`,sx:{display:`block`},children:`Still waiting for confirmation…`})]}),(0,d.jsxs)(c,{"aria-hidden":!0,variant:`caption`,color:`text.secondary`,sx:{fontFamily:`monospace`,whiteSpace:`nowrap`,pt:`2px`,fontVariantNumeric:`tabular-nums`},children:[r,`s`]})]}):null}var u,d;function f(){return(f=e((()=>{u=t(),r(),a(),s(),d=n()})))()}export{f as n,l as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{P as r,z as i}from"./client-DFnuv2z3.js";import{dn as a,un as o}from"./mui-CdB_p2lt.js";import{B as s,H as c,V as l,z as u}from"./mui-BXSXx9c9.js";import{C as d,w as f}from"./mui-AnEgAVjz.js";import{N as p,P as m}from"./mui-BwsIrivo.js";function h(){return(0,x.jsx)(p,{sx:{fontSize:18},children:(0,x.jsx)(`path`,{d:`M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z`})})}function g({href:e,label:t,sx:n,linkComponent:r}){let i=r?{component:r,to:e}:{href:e};return(0,x.jsxs)(d,{color:`inherit`,underline:`none`,sx:[e=>({verticalAlign:`middle`,display:`inline-flex`,alignItems:`center`,"& .PrismBackLinkIcon":{verticalAlign:`inherit`,transform:`translateY(-1px)`,ml:{xs:`-14px`,md:`-18px`},transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.shorter})},"&:hover .PrismBackLinkIcon":{opacity:.48}}),...Array.isArray(n)?n:[n]],...i,children:[(0,x.jsx)(`span`,{className:`PrismBackLinkIcon`,children:(0,x.jsx)(h,{})}),t]})}function _({href:e,icon:t,name:n,disabled:r,current:i,linkComponent:a}){let o=(0,x.jsxs)(D,{disabled:r,"aria-current":i?`page`:void 0,children:[t&&(0,x.jsx)(O,{children:t}),n]});return e&&!r?(0,x.jsx)(d,{color:`inherit`,sx:{display:`inline-flex`},...a?{component:a,to:e}:{href:e},children:o}):o}function v(e){let t=e.trim();if(t.startsWith(`/`)||t.startsWith(`#`))return!0;try{return A.has(new URL(t,`https://placeholder.invalid`).protocol)}catch{return!1}}function y({links:e,sx:t,...n}){return(0,x.jsx)(k,{sx:t,...n,children:e?.filter(v).map(e=>(0,x.jsx)(`li`,{children:(0,x.jsx)(d,{href:e,variant:`body2`,target:`_blank`,rel:`noopener noreferrer`,children:e})},e))})}function b({sx:e,action:t,backHref:n,heading:r,slots:i={},links:a=[],moreLinks:o=[],slotProps:s={},activeLast:c=!1,linkComponent:l,...d}){let f=()=>(0,x.jsx)(C,{...s?.heading,children:n?(0,x.jsx)(g,{href:n,label:r,linkComponent:l}):r}),p=()=>i?.breadcrumbs??(0,x.jsx)(u,{separator:(0,x.jsx)(E,{}),...s?.breadcrumbs,children:a.map((e,t)=>(0,x.jsx)(_,{icon:e.icon,href:e.href,name:e.name,disabled:e.disabled||t===a.length-1&&!c,current:t===a.length-1,linkComponent:l},`${e.href??e.name??``}-${t}`))}),m=()=>(0,x.jsx)(y,{links:o,...s?.moreLinks});return(0,x.jsxs)(S,{sx:e,...d,children:[(0,x.jsxs)(w,{...s?.container,children:[(0,x.jsxs)(T,{...s?.content,children:[(r||n)&&f(),(!!a.length||i?.breadcrumbs)&&p()]}),t]}),!!o?.length&&m()]})}var x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{o(),s(),f(),m(),x=n(),S=a(`div`)(({theme:e})=>({minWidth:0,display:`flex`,flexDirection:`column`,gap:e.spacing(2)})),C=a(`h6`)(({theme:e})=>({...e.typography.h4,margin:0,padding:0,display:`inline-flex`})),w=a(`div`)(({theme:e})=>({display:`flex`,flexWrap:`wrap`,gap:e.spacing(2),alignItems:`flex-start`,justifyContent:`flex-end`})),T=a(`div`)(({theme:e})=>({minWidth:0,display:`flex`,flex:`1 1 auto`,gap:e.spacing(2),flexDirection:`column`})),E=a(`span`)(({theme:e})=>({width:4,height:4,borderRadius:`50%`,backgroundColor:e.palette.text.disabled})),D=a(`div`,{shouldForwardProp:e=>e!==`disabled`})(({disabled:e,theme:t})=>({...t.typography.body2,minWidth:0,maxWidth:`100%`,overflowWrap:`anywhere`,alignItems:`center`,gap:t.spacing(.5),display:`inline-flex`,color:t.palette.text.secondary,...e&&{cursor:`default`,pointerEvents:`none`,color:t.palette.text.primary,fontWeight:600}})),O=a(`span`)({display:`inherit`,"& > :first-child:not(style)":{width:20,height:20}}),k=a(`ul`)({display:`flex`,flexDirection:`column`,"& > li":{display:`flex`}}),A=new Set([`http:`,`https:`,`mailto:`,`tel:`])})))()}function M({heading:e,links:t=[],backHref:n,sx:i,active:a=!0,action:o,...s}){let c=e||t.at(-1)?.name||`Console`,u=t.length?t:[{name:c}],d=u[0]?.href===`/`||u[0]?.name===`Console`?[...u]:[{name:`Console`,href:`/`},...u];return n&&!d.some(e=>e.href===n)&&d.splice(d.length-1,0,{name:`Back`,href:n}),(0,N.useEffect)(()=>{a&&(document.title=`${c} · Omnitron`)},[c,a]),(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(l,{component:`h1`,sx:{position:`absolute`,width:`1px`,height:`1px`,p:0,m:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,border:0},children:c}),(0,P.jsx)(l,{"data-keyboard-region":`Page tools`,tabIndex:-1,sx:{minWidth:0,flexShrink:0},children:(0,P.jsx)(b,{...s,links:d,linkComponent:r,action:o?(0,P.jsx)(l,{sx:{minWidth:0,maxWidth:`100%`,"& > .MuiStack-root":{flexWrap:`wrap`}},children:o}):void 0,sx:[{minWidth:0,flexShrink:0,"& .MuiBreadcrumbs-ol":{rowGap:.5},"& .MuiBreadcrumbs-li":{minWidth:0}},...Array.isArray(i)?i:[i]]})})]})}var N,P;function F(){return(F=e((()=>{N=t(),i(),c(),j(),P=n()})))()}export{F as n,M as t};
@@ -0,0 +1,3 @@
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{b as r,h as i,y as a}from"./client-DFnuv2z3.js";import{F as o,H as s,I as c,Q as l,V as u,Z as d,c as f,d as p,f as m,g as h,h as ee,m as g,n as _,p as te,s as ne,t as v}from"./mui-BXSXx9c9.js";import{B as y,a as b,o as x,z as S}from"./mui-Cd711nOk.js";import{E as C,T as w,it as T,l as E,rt as D,u as O}from"./mui-AnEgAVjz.js";import{_ as k,v as A}from"./mui-BwsIrivo.js";import{r as j,t as M}from"./alert-uBG6r9NW.js";import{n as N,s as P}from"./access-48hkC2-P.js";import{n as F,t as I}from"./use-polled-resource-B22hhr5L.js";import{A as L,G as R,M as re,k as ie,l as ae}from"./icons-OboZgWSt.js";import{n as z,t as B}from"./operation-status-Bm1x1wTz.js";import{n as V,t as oe}from"./page-breadcrumbs-fR7Jmpp4.js";import{n as H,t as se}from"./admin-data-table-BKSDI8sU.js";import{n as U,t as ce}from"./confirm-dialog-BbGsAz7_.js";import{r as le,t as ue}from"./formatters-RnRy4bXm.js";import{n as de,t as W}from"./settled-pair-B-wgSZl6.js";import{n as fe,r as G}from"./tabs-k5NPGLnJ.js";function pe({definition:e,onClose:t,onSaved:n}){let[i,s]=(0,K.useState)(e?.name??``),[c,l]=(0,K.useState)(e?.description??``),[d,f]=(0,K.useState)(e?.steps??[{name:`inspect`,kind:`xec`,run:J}]),[m,h]=(0,K.useState)(`0`),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(``),[x,C]=(0,K.useState)(null),[w,T]=(0,K.useState)(!1),[D,O]=(0,K.useState)(!1),[A,j]=(0,K.useState)(!1),N=F(()=>a.listNodes(),{intervalMs:3e4}),P=Number(m),I=d[P],L=e=>{f(t=>t.map((t,n)=>n===P?{...t,...e}:t)),O(!0)},R=()=>{w||(D?j(!0):t())};return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(ee,{open:!0,onClose:R,maxWidth:`lg`,fullWidth:!0,slotProps:{paper:{sx:{maxHeight:`calc(100dvh - 32px)`,m:2,width:`calc(100% - 32px)`}}},children:[(0,q.jsx)(ne,{children:e?`Edit automation`:`New automation`}),(0,q.jsxs)(p,{dividers:!0,sx:{minWidth:0},children:[(0,q.jsx)(B,{active:w,label:`Saving automation definition`}),(0,q.jsxs)(k,{spacing:2,children:[x&&(0,q.jsx)(M,{severity:`error`,variant:`outlined`,children:x}),(0,q.jsxs)(k,{direction:{xs:`column`,sm:`row`},spacing:2,children:[(0,q.jsx)(b,{autoFocus:!0,label:`Name`,size:`small`,value:i,fullWidth:!0,onChange:e=>{s(e.target.value),O(!0)}}),(0,q.jsx)(b,{label:`Description`,size:`small`,value:c,fullWidth:!0,onChange:e=>{l(e.target.value),O(!0)}})]}),(0,q.jsxs)(k,{direction:`row`,sx:{justifyContent:`space-between`,alignItems:`center`,flexWrap:`wrap`,gap:1},children:[(0,q.jsx)(S,{variant:`caption`,color:`text.secondary`,children:`Save a definition, then review its target before running.`}),(0,q.jsx)(o,{size:`small`,onClick:()=>{if(!g)y(JSON.stringify(d,null,2)),_(!0);else try{let e=JSON.parse(v);if(!Array.isArray(e)||!e.length||e.some(e=>typeof e?.name!=`string`||typeof e?.run!=`string`))throw Error(`A non-empty array of named steps is required`);f(e),h(`0`),_(!1),C(null)}catch(e){C(String(e))}},children:g?`Step editor`:`Advanced JSON`})]}),g?(0,q.jsx)(b,{label:`Steps JSON`,multiline:!0,minRows:14,maxRows:28,fullWidth:!0,value:v,onChange:e=>{y(e.target.value),O(!0)},slotProps:{input:{sx:{fontFamily:`monospace`,fontSize:13}},htmlInput:{spellCheck:!1}}}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(fe,{value:m,onChange:h,variant:`scrollable`,scrollButtons:`auto`,"aria-label":`Automation steps`,tabs:d.map((e,t)=>({value:String(t),label:e.name||`Step ${t+1}`,closable:d.length>1})),onClose:e=>{let t=Number(e);f(e=>e.filter((e,n)=>n!==t)),h(String(Math.max(0,Math.min(P-+(t<P),d.length-2)))),O(!0)},action:(0,q.jsx)(o,{size:`small`,disabled:d.length>=32,onClick:()=>{f(e=>[...e,{name:`step-${e.length+1}`,kind:`xec`,run:J}]),h(String(d.length)),O(!0)},children:`Add step`})}),(0,q.jsxs)(u,{sx:{display:`grid`,gap:2,gridTemplateColumns:{xs:`1fr`,md:`minmax(0, 1fr) 260px`},minWidth:0},children:[(0,q.jsx)(b,{label:I.kind===`xec`?`Xec · TypeScript`:`Shell command`,multiline:!0,minRows:13,maxRows:26,fullWidth:!0,value:I.run,onChange:e=>L({run:e.target.value}),helperText:I.kind===`xec`?`$ runs locally · $target uses the selected node · params contains run input`:`Parameters are JSON in OMNITRON_PARAMS; shell interpolation is disabled`,slotProps:{input:{sx:{fontFamily:`monospace`,fontSize:13,lineHeight:1.7}},htmlInput:{spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`}}}),(0,q.jsxs)(k,{spacing:2,children:[(0,q.jsx)(b,{label:`Step name`,size:`small`,value:I.name,onChange:e=>L({name:e.target.value})}),(0,q.jsxs)(b,{select:!0,label:`Executor`,size:`small`,value:I.kind??`shell`,onChange:e=>L({kind:e.target.value}),children:[(0,q.jsx)(E,{value:`xec`,children:`Xec · TypeScript`}),(0,q.jsx)(E,{value:`shell`,children:`Shell`})]}),(0,q.jsxs)(b,{select:!0,label:`Target`,size:`small`,value:I.nodeId??`local`,onChange:e=>L({nodeId:e.target.value}),children:[(0,q.jsx)(E,{value:`local`,children:`Local daemon host`}),(N.data??[]).filter(e=>!e.isLocal).map(e=>(0,q.jsx)(E,{value:e.id,children:e.name},e.id)),I.nodeId&&I.nodeId!==`local`&&!N.data?.some(e=>e.id===I.nodeId)&&(0,q.jsxs)(E,{value:I.nodeId,children:[`Unavailable · `,I.nodeId]})]}),N.error&&(0,q.jsxs)(M,{severity:`warning`,variant:`outlined`,children:[`Node list unavailable: `,N.error]}),(0,q.jsx)(b,{label:`Working directory`,size:`small`,value:I.cwd??``,placeholder:`Daemon working directory`,onChange:e=>L({cwd:e.target.value||void 0})}),(0,q.jsx)(b,{label:`Timeout (seconds)`,type:`number`,size:`small`,value:(I.timeout??3e5)/1e3,onChange:e=>L({timeout:Number(e.target.value)*1e3})}),(0,q.jsx)(b,{label:`Depends on`,size:`small`,value:(I.dependsOn??[]).join(`, `),helperText:`Step names, separated by commas`,onChange:e=>L({dependsOn:e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean)})})]})]}),(0,q.jsx)(S,{variant:`caption`,color:`text.secondary`,children:`Scripts run with the daemon host's OS permissions. Remote targets require a trusted SSH host key. Use only reviewed code.`})]})]})]}),(0,q.jsxs)(te,{children:[(0,q.jsx)(o,{onClick:R,disabled:w,children:`Cancel`}),(0,q.jsx)(o,{variant:`contained`,loading:w,onClick:async()=>{T(!0),C(null);try{let a={name:i,description:c,steps:g?JSON.parse(v):d,triggers:e?.triggers??[]};if(e){if(!e.conditionalUpdates)throw Error(`Update the daemon to support conditional pipeline edits`);await r.updatePipeline({id:e.id,definition:a,expectedRevision:e.revision})}else await r.createPipeline(a);n(),t()}catch(e){C(e instanceof Error?e.message:`Could not save the pipeline`)}finally{T(!1)}},disabled:w||!i.trim(),children:w?`Saving…`:`Save definition`})]})]}),(0,q.jsx)(ce,{open:A,onClose:()=>j(!1),onConfirm:t,title:`Discard edits?`,content:`Your unsaved automation changes will be lost.`,confirmLabel:`Discard`,confirmColor:`error`})]})}var K,q,J;function me(){return(me=e((()=>{z(),K=t(),s(),c(),h(),g(),m(),f(),O(),A(),x(),y(),G(),j(),U(),i(),I(),q=n(),J=`const result = await $target\`uname -s\`;
2
+ console.log(result.stdout);
3
+ `})))()}function he({run:e,targetLabel:t=e=>e??`Local daemon host`}){return(0,X.jsxs)(k,{spacing:2,sx:{minWidth:0},children:[(0,X.jsxs)(k,{direction:`row`,sx:{flexWrap:`wrap`,gap:1,alignItems:`center`},children:[(0,X.jsx)(d,{size:`small`,label:e.status,color:Z[e.status]??`default`}),(0,X.jsxs)(S,{variant:`caption`,children:[ue(e.startedAt),` · `,e.triggeredBy]})]}),(0,X.jsx)(S,{variant:`caption`,sx:{fontFamily:`monospace`,overflowWrap:`anywhere`},children:e.id}),Q(e)&&(0,X.jsx)(w,{"aria-label":`Automation in progress`}),e.status===`interrupted`&&(0,X.jsx)(M,{severity:`warning`,variant:`outlined`,children:`The executor stopped before recording completion. Inspect effects before starting another run.`}),e.steps.map(e=>(0,X.jsxs)(u,{sx:{border:1,borderColor:`divider`,borderRadius:1,p:1.5,minWidth:0},children:[(0,X.jsxs)(k,{direction:`row`,sx:{flexWrap:`wrap`,alignItems:`center`,gap:1,mb:1},children:[(0,X.jsx)(S,{variant:`subtitle2`,sx:{flex:1,overflowWrap:`anywhere`},children:e.name}),(0,X.jsx)(d,{size:`small`,label:e.status,color:Z[e.status]??`default`}),(0,X.jsxs)(S,{variant:`caption`,color:`text.secondary`,children:[le(e.duration),e.attempts?` · attempt ${e.attempts}`:``,e.exitCode!==void 0&&` · exit ${e.exitCode}`]})]}),(0,X.jsxs)(S,{variant:`caption`,color:`text.secondary`,sx:{display:`block`,mb:1,overflowWrap:`anywhere`},children:[e.kind??`shell`,` · `,t(e.nodeId)]}),e.error&&(0,X.jsx)(M,{severity:`error`,variant:`outlined`,sx:{mb:1,overflowWrap:`anywhere`},children:e.error}),e.output&&(0,X.jsx)(u,{component:`pre`,"aria-label":`${e.name} stdout`,tabIndex:0,sx:$,children:e.output}),e.stderr&&(0,X.jsx)(u,{component:`pre`,"aria-label":`${e.name} stderr`,tabIndex:0,sx:{...$,mt:1},children:e.stderr}),e.outputTruncated&&(0,X.jsx)(S,{variant:`caption`,color:`warning.main`,children:`Output retention limit reached; earlier content was omitted.`}),e.sourceHash&&(0,X.jsxs)(S,{variant:`caption`,color:`text.secondary`,sx:{display:`block`,mt:1,overflowWrap:`anywhere`,fontFamily:`monospace`},children:[`SHA-256 `,e.sourceHash]})]},e.name))]})}function ge(){let[e,t]=(0,Y.useState)(null),[n,i]=(0,Y.useState)(`definitions`),[s,c]=(0,Y.useState)(null),[l,f]=(0,Y.useState)(null),[m,h]=(0,Y.useState)(`{}`),[g,_]=(0,Y.useState)(null),[y,x]=(0,Y.useState)(!1),[C,w]=(0,Y.useState)(null),[T,E]=(0,Y.useState)(0),[O,A]=(0,Y.useState)(25),j=F(()=>a.listNodes(),{intervalMs:3e4,enabled:!!(l||s)}),P=e=>!e||e===`local`?`Local daemon host`:j.data?.find(t=>t.id===e)?.name??e,{data:I,loading:R,error:z,refresh:B}=F(async()=>{let e=await de([r.listPipelines(),r.listRuns({limit:100})],[[],[]]);return{definitions:e.first,runs:e.second,partialFailure:e.partialFailure}},{intervalMs:3e3}),V=I?.definitions??[],H=I?.runs??[],U=F(()=>r.getRunStatus({runId:s}),{intervalMs:3e3,enabled:!!s,resourceKey:s}),W=U.data?.id===s?U.data:null,G=async e=>{x(!0),_(null);try{await e(),await B()}catch(e){_(_e(e))}finally{x(!1)}};return(0,X.jsxs)(k,{spacing:2,sx:{minWidth:0},children:[(0,X.jsx)(oe,{links:[{name:`Pipelines`}],action:(0,X.jsxs)(k,{direction:`row`,spacing:1,children:[(0,X.jsx)(D,{"data-console-command":`refresh`,size:`small`,title:`Refresh pipelines`,onClick:B,children:(0,X.jsx)(re,{})}),(0,X.jsx)(N,{permission:`OmnitronPipelines.createPipeline`,children:(0,X.jsx)(o,{size:`small`,variant:`contained`,startIcon:(0,X.jsx)(L,{}),onClick:()=>t(`new`),children:`New automation`})})]})}),(z||I?.partialFailure||g)&&(0,X.jsxs)(M,{severity:`warning`,variant:`outlined`,children:[g??z??I?.partialFailure,` · Displayed run state may be stale.`]}),(0,X.jsx)(fe,{value:n,onChange:e=>{i(e),E(0)},"aria-label":`Pipeline views`,tabs:[{value:`definitions`,label:`Automations · ${V.length}`},{value:`runs`,label:`Runs · ${H.length}`}]}),n===`definitions`?(0,X.jsx)(se,{data:V.slice(T*O,(T+1)*O),columns:[{key:`name`,header:`Automation`,render:e=>(0,X.jsx)(o,{size:`small`,onClick:()=>t(e),sx:{textAlign:`left`},children:e.name})},{key:`description`,header:`Description`,render:e=>e.description||`—`},{key:`steps`,header:`Steps`,render:e=>e.steps.length},{key:`actions`,header:``,align:`right`,render:e=>(0,X.jsxs)(k,{direction:`row`,sx:{justifyContent:`flex-end`,gap:1},children:[(0,X.jsx)(N,{permission:`OmnitronPipelines.executePipeline`,children:(0,X.jsx)(o,{size:`small`,startIcon:(0,X.jsx)(ie,{}),disabled:y,onClick:()=>{f(e),h(`{}`),_(null)},children:`Run`})}),(0,X.jsx)(N,{permission:`OmnitronPipelines.deletePipeline`,children:(0,X.jsx)(D,{size:`small`,title:`Delete ${e.name}`,disabled:y,onClick:()=>w(e),children:(0,X.jsx)(ae,{})})})]})}],rowKey:e=>e.id,total:V.length,page:T,pageSize:O,onPageChange:E,onPageSizeChange:e=>{A(e),E(0)},loading:R,loadError:z??I?.partialFailure,emptyMessage:`Create an automation to run Xec scripts and shell steps.`,minWidth:560,scrollLabel:`Automation definitions`,dense:!0}):(0,X.jsx)(se,{data:H.slice(T*O,(T+1)*O),columns:[{key:`name`,header:`Automation`,render:e=>(0,X.jsx)(o,{size:`small`,onClick:()=>c(e.id),children:V.find(t=>t.id===e.pipelineId)?.name??e.pipelineId.slice(0,8)})},{key:`status`,header:`Status`,render:e=>(0,X.jsx)(d,{size:`small`,label:e.status,color:Z[e.status]??`default`})},{key:`startedAt`,header:`Started`,render:e=>ue(e.startedAt)},{key:`duration`,header:`Duration`,render:e=>le(Date.parse(e.completedAt??new Date().toISOString())-Date.parse(e.startedAt))},{key:`triggeredBy`,header:`Actor`,render:e=>e.triggeredBy}],rowKey:e=>e.id,total:H.length,page:T,pageSize:O,onPageChange:E,onPageSizeChange:e=>{A(e),E(0)},loading:R,loadError:z??I?.partialFailure,emptyMessage:`No automation runs yet.`,minWidth:620,scrollLabel:`Automation run history`,dense:!0}),e&&(0,X.jsx)(pe,{...e===`new`?{}:{definition:e},onClose:()=>t(null),onSaved:()=>{B()}}),(0,X.jsxs)(ee,{open:!!l,onClose:()=>{y||f(null)},maxWidth:`md`,fullWidth:!0,children:[(0,X.jsxs)(ne,{children:[`Run `,l?.name]}),(0,X.jsx)(p,{dividers:!0,children:(0,X.jsxs)(k,{spacing:2,children:[g&&(0,X.jsx)(M,{severity:`error`,variant:`outlined`,children:g}),j.error&&(0,X.jsx)(M,{severity:`warning`,variant:`outlined`,children:`Node names unavailable; verify target IDs below.`}),l?.steps.map(e=>(0,X.jsxs)(u,{component:`details`,children:[(0,X.jsxs)(u,{component:`summary`,sx:{cursor:`pointer`,fontSize:13},children:[e.name,` · `,e.kind??`shell`,` · `,P(e.nodeId),` · `,(e.timeout??3e5)/1e3,`s`]}),(0,X.jsx)(u,{component:`pre`,sx:{...$,mt:1},children:e.run}),(0,X.jsx)(u,{component:`pre`,"aria-label":`${e.name} execution settings`,sx:{...$,mt:1},children:JSON.stringify({targetId:e.nodeId??`local`,cwd:e.cwd??`Daemon working directory`,dependsOn:e.dependsOn??[],retries:e.retries??0,condition:e.condition??null,env:e.env??{}},null,2)})]},e.name)),(0,X.jsx)(b,{label:`Parameters (JSON)`,value:m,onChange:e=>h(e.target.value),multiline:!0,minRows:3,fullWidth:!0,helperText:`Values are passed as data and are not stored in run history.`,slotProps:{input:{sx:{fontFamily:`monospace`,fontSize:13}}}})]})}),(0,X.jsxs)(te,{children:[(0,X.jsx)(o,{disabled:y,onClick:()=>f(null),children:`Cancel`}),(0,X.jsx)(o,{disabled:y,variant:`contained`,onClick:()=>G(async()=>{let e=await r.executePipeline({id:l.id,expectedRevision:l.revision,params:JSON.parse(m)});c(e.id),i(`runs`),E(0),f(null)}),children:y?`Starting…`:`Run automation`})]})]}),(0,X.jsxs)(v,{anchor:`right`,open:!!s,onClose:()=>c(null),slotProps:{paper:{sx:{width:{xs:`100%`,sm:640},maxWidth:`100vw`,p:2,boxSizing:`border-box`}}},children:[(0,X.jsxs)(k,{direction:`row`,sx:{alignItems:`center`,justifyContent:`space-between`,mb:2},children:[(0,X.jsx)(S,{variant:`subtitle2`,children:`Run details`}),(0,X.jsx)(D,{title:`Close run details`,onClick:()=>c(null),children:(0,X.jsx)(ae,{})})]}),U.error&&(0,X.jsx)(M,{severity:`warning`,variant:`outlined`,children:`Updates unavailable. The displayed state may be stale.`}),g&&(0,X.jsx)(M,{severity:`error`,variant:`outlined`,sx:{mb:2},children:g}),W?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(he,{run:W,targetLabel:P}),(0,X.jsx)(N,{permission:`OmnitronPipelines.cancelRun`,children:Q(W)&&(0,X.jsx)(o,{sx:{mt:2},color:`warning`,variant:`outlined`,disabled:y||W.status===`cancelling`,onClick:()=>G(async()=>{await r.cancelRun({runId:W.id}),await U.refresh()}),children:`Cancel run`})})]}):(0,X.jsx)(M,{severity:`info`,variant:`outlined`,children:U.loading?`Loading run state…`:`Run state is unavailable.`})]}),(0,X.jsx)(ce,{open:!!C,onClose:()=>{y||w(null)},onConfirm:()=>G(async()=>{await r.deletePipeline({id:C.id}),w(null)}),title:`Delete automation?`,content:`${C?.name??``} and its run history will be removed. Active runs must be stopped first.`,confirmLabel:`Delete`,confirmColor:`error`})]})}var Y,X,Z,Q,_e,$;function ve(){return(ve=e((()=>{Y=t(),s(),c(),l(),h(),g(),m(),f(),_(),T(),C(),A(),x(),y(),G(),H(),j(),U(),P(),R(),V(),me(),i(),I(),W(),X=n(),Z={success:`success`,failed:`error`,running:`info`,pending:`default`,cancelling:`warning`,interrupted:`warning`,cancelled:`default`},Q=e=>[`pending`,`running`,`cancelling`].includes(e.status),_e=e=>e instanceof Error?e.message:String(e),$={m:0,p:1.5,borderRadius:1,bgcolor:`action.hover`,fontFamily:`monospace`,fontSize:12,whiteSpace:`pre-wrap`,overflowWrap:`anywhere`,maxHeight:320,overflow:`auto`,minWidth:0}})))()}ve();export{he as PipelineRunDetail,ge as default};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";var t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S;function C(){return(C=e((()=>{t=`bottom`,n=`right`,r=`left`,i=`auto`,a=[`top`,t,n,r],o=`start`,s=`clippingParents`,c=`viewport`,l=`popper`,u=`reference`,d=a.reduce(function(e,t){return e.concat([t+`-`+o,t+`-end`])},[]),f=[].concat(a,[i]).reduce(function(e,t){return e.concat([t,t+`-`+o,t+`-end`])},[]),p=`beforeRead`,m=`read`,h=`afterRead`,g=`beforeMain`,_=`main`,v=`afterMain`,y=`beforeWrite`,b=`write`,x=`afterWrite`,S=[p,m,h,g,_,v,y,b,x]})))()}function w(e){return e?(e.nodeName||``).toLowerCase():null}function T(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function E(e){return e instanceof T(e).Element||e instanceof Element}function D(e){return e instanceof T(e).HTMLElement||e instanceof HTMLElement}function O(e){return typeof ShadowRoot>`u`?!1:e instanceof T(e).ShadowRoot||e instanceof ShadowRoot}function k(){return(k=e((()=>{})))()}function A(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];D(i)&&w(i)&&(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function j(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});D(r)&&w(r)&&(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var M;function N(){return(N=e((()=>{k(),M={name:`applyStyles`,enabled:!0,phase:`write`,fn:A,effect:j,requires:[`computeStyles`]}})))()}function P(e){return e.split(`-`)[0]}var F,I,L;function R(){return(R=e((()=>{F=Math.max,I=Math.min,L=Math.round})))()}function z(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function ee(){return!/^((?!chrome|android).)*safari/i.test(z())}function B(){return(B=e((()=>{})))()}function V(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&D(e)&&(i=e.offsetWidth>0&&L(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&L(r.height)/e.offsetHeight||1);var o=(E(e)?T(e):window).visualViewport,s=!ee()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function H(){return(H=e((()=>{k(),R(),B()})))()}function te(e){var t=V(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function U(){return(U=e((()=>{H()})))()}function ne(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&O(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function re(){return(re=e((()=>{k()})))()}function W(e){return T(e).getComputedStyle(e)}function G(){return(G=e((()=>{})))()}function ie(e){return[`table`,`td`,`th`].indexOf(w(e))>=0}function ae(){return(ae=e((()=>{})))()}function K(e){return((E(e)?e.ownerDocument:e.document)||window.document).documentElement}function q(){return(q=e((()=>{k()})))()}function J(e){return w(e)===`html`?e:e.assignedSlot||e.parentNode||(O(e)?e.host:null)||K(e)}function Y(){return(Y=e((()=>{q(),k()})))()}function oe(e){return!D(e)||W(e).position===`fixed`?null:e.offsetParent}function se(e){var t=/firefox/i.test(z());if(/Trident/i.test(z())&&D(e)&&W(e).position===`fixed`)return null;var n=J(e);for(O(n)&&(n=n.host);D(n)&&[`html`,`body`].indexOf(w(n))<0;){var r=W(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function ce(e){for(var t=T(e),n=oe(e);n&&ie(n)&&W(n).position===`static`;)n=oe(n);return n&&(w(n)===`html`||w(n)===`body`&&W(n).position===`static`)?t:n||se(e)||t}function X(){return(X=e((()=>{G(),k(),ae(),Y()})))()}function le(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function ue(e,t,n){return F(e,I(t,n))}function de(e,t,n){var r=ue(e,t,n);return r>n?n:r}function fe(){return(fe=e((()=>{R()})))()}function pe(){return{top:0,right:0,bottom:0,left:0}}function me(e){return Object.assign({},pe(),e)}function Z(){return(Z=e((()=>{})))()}function Q(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}function he(e){var i,a=e.state,o=e.name,s=e.options,c=a.elements.arrow,l=a.modifiersData.popperOffsets,u=P(a.placement),d=le(u),f=[`left`,`right`].indexOf(u)>=0?`height`:`width`;if(c&&l){var p=_e(s.padding,a),m=te(c),h=d===`y`?`top`:r,g=d===`y`?t:n,_=a.rects.reference[f]+a.rects.reference[d]-l[d]-a.rects.popper[f],v=l[d]-a.rects.reference[d],y=ce(c),b=y?d===`y`?y.clientHeight||0:y.clientWidth||0:0,x=_/2-v/2,S=p[h],C=b-m[f]-p[g],w=b/2-m[f]/2+x,T=ue(S,w,C),E=d;a.modifiersData[o]=(i={},i[E]=T,i.centerOffset=T-w,i)}}function ge(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||ne(t.elements.popper,r)&&(t.elements.arrow=r))}var _e,ve;function ye(){return(ye=e((()=>{U(),re(),X(),fe(),Z(),C(),_e=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,me(typeof e==`number`?Q(e,a):e)},ve={name:`arrow`,enabled:!0,phase:`main`,fn:he,effect:ge,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]}})))()}function $(e){return e.split(`-`)[1]}function be(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:L(n*i)/i||0,y:L(r*i)/i||0}}function xe(e){var i,a=e.popper,o=e.popperRect,s=e.placement,c=e.variation,l=e.offsets,u=e.position,d=e.gpuAcceleration,f=e.adaptive,p=e.roundOffsets,m=e.isFixed,h=l.x,g=h===void 0?0:h,_=l.y,v=_===void 0?0:_,y=typeof p==`function`?p({x:g,y:v}):{x:g,y:v};g=y.x,v=y.y;var b=l.hasOwnProperty(`x`),x=l.hasOwnProperty(`y`),S=r,C=`top`,w=window;if(f){var E=ce(a),D=`clientHeight`,O=`clientWidth`;if(E===T(a)&&(E=K(a),W(E).position!==`static`&&u===`absolute`&&(D=`scrollHeight`,O=`scrollWidth`)),E=E,s===`top`||(s===`left`||s===`right`)&&c===`end`){C=t;var k=m&&E===w&&w.visualViewport?w.visualViewport.height:E[D];v-=k-o.height,v*=d?1:-1}if(s===`left`||(s===`top`||s===`bottom`)&&c===`end`){S=n;var A=m&&E===w&&w.visualViewport?w.visualViewport.width:E[O];g-=A-o.width,g*=d?1:-1}}var j=Object.assign({position:u},f&&Ce),M=p===!0?be({x:g,y:v},T(a)):{x:g,y:v};if(g=M.x,v=M.y,d){var N;return Object.assign({},j,(N={},N[C]=x?`0`:``,N[S]=b?`0`:``,N.transform=(w.devicePixelRatio||1)<=1?`translate(`+g+`px, `+v+`px)`:`translate3d(`+g+`px, `+v+`px, 0)`,N))}return Object.assign({},j,(i={},i[C]=x?v+`px`:``,i[S]=b?g+`px`:``,i.transform=``,i))}function Se(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0||r,a=n.adaptive,o=a===void 0||a,s=n.roundOffsets,c=s===void 0||s,l={placement:P(t.placement),variation:$(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,xe(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,xe(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Ce,we;function Te(){return(Te=e((()=>{C(),X(),q(),G(),R(),Ce={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`},we={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:Se,data:{}}})))()}function Ee(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0||i,o=r.resize,s=o===void 0||o,c=T(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,De)}),s&&c.addEventListener(`resize`,n.update,De),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,De)}),s&&c.removeEventListener(`resize`,n.update,De)}}var De,Oe;function ke(){return(ke=e((()=>{De={passive:!0},Oe={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:Ee,data:{}}})))()}function Ae(e){return e.replace(/left|right|bottom|top/g,function(e){return je[e]})}var je;function Me(){return(Me=e((()=>{je={left:`right`,right:`left`,bottom:`top`,top:`bottom`}})))()}function Ne(e){return e.replace(/start|end/g,function(e){return Pe[e]})}var Pe;function Fe(){return(Fe=e((()=>{Pe={start:`end`,end:`start`}})))()}function Ie(e){var t=T(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Le(){return(Le=e((()=>{})))()}function Re(e){return V(K(e)).left+Ie(e).scrollLeft}function ze(){return(ze=e((()=>{H(),q(),Le()})))()}function Be(e,t){var n=T(e),r=K(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=ee();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+Re(e),y:c}}function Ve(){return(Ve=e((()=>{q(),ze(),B()})))()}function He(e){var t=K(e),n=Ie(e),r=e.ownerDocument?.body,i=F(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=F(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+Re(e),s=-n.scrollTop;return W(r||t).direction===`rtl`&&(o+=F(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function Ue(){return(Ue=e((()=>{q(),G(),ze(),Le(),R()})))()}function We(e){var t=W(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Ge(){return(Ge=e((()=>{G()})))()}function Ke(e){return[`html`,`body`,`#document`].indexOf(w(e))>=0?e.ownerDocument.body:D(e)&&We(e)?e:Ke(J(e))}function qe(){return(qe=e((()=>{Y(),Ge(),k()})))()}function Je(e,t){t===void 0&&(t=[]);var n=Ke(e),r=n===e.ownerDocument?.body,i=T(n),a=r?[i].concat(i.visualViewport||[],We(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(Je(J(a)))}function Ye(){return(Ye=e((()=>{qe(),Y(),Ge()})))()}function Xe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Ze(e,t){var n=V(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Qe(e,t,n){return t===`viewport`?Xe(Be(e,n)):E(t)?Ze(t,n):Xe(He(K(e)))}function $e(e){var t=Je(J(e)),n=[`absolute`,`fixed`].indexOf(W(e).position)>=0&&D(e)?ce(e):e;return E(n)?t.filter(function(e){return E(e)&&ne(e,n)&&w(e)!==`body`}):[]}function et(e,t,n,r){var i=t===`clippingParents`?$e(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=Qe(e,n,r);return t.top=F(i.top,t.top),t.right=I(i.right,t.right),t.bottom=I(i.bottom,t.bottom),t.left=F(i.left,t.left),t},Qe(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function tt(){return(tt=e((()=>{C(),Ve(),Ue(),Ye(),X(),q(),G(),k(),H(),Y(),re(),R()})))()}function nt(e){var i=e.reference,a=e.element,s=e.placement,c=s?P(s):null,l=s?$(s):null,u=i.x+i.width/2-a.width/2,d=i.y+i.height/2-a.height/2,f;switch(c){case`top`:f={x:u,y:i.y-a.height};break;case t:f={x:u,y:i.y+i.height};break;case n:f={x:i.x+i.width,y:d};break;case r:f={x:i.x-a.width,y:d};break;default:f={x:i.x,y:i.y}}var p=c?le(c):null;if(p!=null){var m=p===`y`?`height`:`width`;switch(l){case o:f[p]=f[p]-(i[m]/2-a[m]/2);break;case`end`:f[p]=f[p]+(i[m]/2-a[m]/2)}}return f}function rt(){return(rt=e((()=>{C()})))()}function it(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.strategy,d=o===void 0?e.strategy:o,f=n.boundary,p=f===void 0?s:f,m=n.rootBoundary,h=m===void 0?c:m,g=n.elementContext,_=g===void 0?l:g,v=n.altBoundary,y=v!==void 0&&v,b=n.padding,x=b===void 0?0:b,S=me(typeof x==`number`?Q(x,a):x),C=_===`popper`?u:l,w=e.rects.popper,T=e.elements[y?C:_],D=et(E(T)?T:T.contextElement||K(e.elements.popper),p,h,d),O=V(e.elements.reference),k=nt({reference:O,element:w,strategy:`absolute`,placement:i}),A=Xe(Object.assign({},w,k)),j=_===`popper`?A:O,M={top:D.top-j.top+S.top,bottom:j.bottom-D.bottom+S.bottom,left:D.left-j.left+S.left,right:j.right-D.right+S.right},N=e.modifiersData.offset;if(_===`popper`&&N){var P=N[i];Object.keys(M).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;M[e]+=P[n]*t})}return M}function at(){return(at=e((()=>{tt(),q(),H(),rt(),C(),k(),Z()})))()}function ot(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,s=n.padding,c=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?f:l,p=$(r),m=p?c?d:d.filter(function(e){return $(e)===p}):a,h=m.filter(function(e){return u.indexOf(e)>=0});h.length===0&&(h=m);var g=h.reduce(function(t,n){return t[n]=it(e,{placement:n,boundary:i,rootBoundary:o,padding:s})[P(n)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}function st(){return(st=e((()=>{C(),at()})))()}function ct(e){if(P(e)===`auto`)return[];var t=Ae(e);return[Ne(e),t,Ne(t)]}function lt(e){var i=e.state,a=e.options,s=e.name;if(!i.modifiersData[s]._skip){for(var c=a.mainAxis,l=c===void 0||c,u=a.altAxis,d=u===void 0||u,f=a.fallbackPlacements,p=a.padding,m=a.boundary,h=a.rootBoundary,g=a.altBoundary,_=a.flipVariations,v=_===void 0||_,y=a.allowedAutoPlacements,b=i.options.placement,x=P(b)===b,S=f||(x||!v?[Ae(b)]:ct(b)),C=[b].concat(S).reduce(function(e,t){return e.concat(P(t)===`auto`?ot(i,{placement:t,boundary:m,rootBoundary:h,padding:p,flipVariations:v,allowedAutoPlacements:y}):t)},[]),w=i.rects.reference,T=i.rects.popper,E=new Map,D=!0,O=C[0],k=0;k<C.length;k++){var A=C[k],j=P(A),M=$(A)===o,N=[`top`,t].indexOf(j)>=0,F=N?`width`:`height`,I=it(i,{placement:A,boundary:m,rootBoundary:h,altBoundary:g,padding:p}),L=N?M?n:r:M?t:`top`;w[F]>T[F]&&(L=Ae(L));var R=Ae(L),z=[];if(l&&z.push(I[j]<=0),d&&z.push(I[L]<=0,I[R]<=0),z.every(function(e){return e})){O=A,D=!1;break}E.set(A,z)}if(D)for(var ee=v?3:1,B=function(e){var t=C.find(function(t){var n=E.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return O=t,`break`},V=ee;V>0&&B(V)!==`break`;V--);i.placement!==O&&(i.modifiersData[s]._skip=!0,i.placement=O,i.reset=!0)}}var ut;function dt(){return(dt=e((()=>{Me(),Fe(),at(),st(),C(),ut={name:`flip`,enabled:!0,phase:`main`,fn:lt,requiresIfExists:[`offset`],data:{_skip:!1}}})))()}function ft(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function pt(e){return[`top`,n,t,r].some(function(t){return e[t]>=0})}function mt(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=it(t,{elementContext:`reference`}),s=it(t,{altBoundary:!0}),c=ft(o,r),l=ft(s,i,a),u=pt(c),d=pt(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var ht;function gt(){return(gt=e((()=>{C(),at(),ht={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:mt}})))()}function _t(e,t,n){var r=P(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function vt(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=f.reduce(function(e,n){return e[n]=_t(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var yt;function bt(){return(bt=e((()=>{C(),yt={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:vt}})))()}function xt(e){var t=e.state,n=e.name;t.modifiersData[n]=nt({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var St;function Ct(){return(Ct=e((()=>{rt(),St={name:`popperOffsets`,enabled:!0,phase:`read`,fn:xt,data:{}}})))()}function wt(e){return e===`x`?`y`:`x`}function Tt(e){var i=e.state,a=e.options,o=e.name,s=a.mainAxis,c=s===void 0||s,l=a.altAxis,u=l!==void 0&&l,d=a.boundary,f=a.rootBoundary,p=a.altBoundary,m=a.padding,h=a.tether,g=h===void 0||h,_=a.tetherOffset,v=_===void 0?0:_,y=it(i,{boundary:d,rootBoundary:f,padding:m,altBoundary:p}),b=P(i.placement),x=$(i.placement),S=!x,C=le(b),w=wt(C),T=i.modifiersData.popperOffsets,E=i.rects.reference,D=i.rects.popper,O=typeof v==`function`?v(Object.assign({},i.rects,{placement:i.placement})):v,k=typeof O==`number`?{mainAxis:O,altAxis:O}:Object.assign({mainAxis:0,altAxis:0},O),A=i.modifiersData.offset?i.modifiersData.offset[i.placement]:null,j={x:0,y:0};if(T){if(c){var M=C===`y`?`top`:r,N=C===`y`?t:n,L=C===`y`?`height`:`width`,R=T[C],z=R+y[M],ee=R-y[N],B=g?-D[L]/2:0,V=x===`start`?E[L]:D[L],H=x===`start`?-D[L]:-E[L],U=i.elements.arrow,ne=g&&U?te(U):{width:0,height:0},re=i.modifiersData[`arrow#persistent`]?i.modifiersData[`arrow#persistent`].padding:pe(),W=re[M],G=re[N],ie=ue(0,E[L],ne[L]),ae=S?E[L]/2-B-ie-W-k.mainAxis:V-ie-W-k.mainAxis,K=S?-E[L]/2+B+ie+G+k.mainAxis:H+ie+G+k.mainAxis,q=i.elements.arrow&&ce(i.elements.arrow),J=q?C===`y`?q.clientTop||0:q.clientLeft||0:0,Y=A?.[C]??0,oe=R+ae-Y-J,se=R+K-Y,X=ue(g?I(z,oe):z,R,g?F(ee,se):ee);T[C]=X,j[C]=X-R}if(u){var fe=C===`x`?`top`:r,me=C===`x`?t:n,Z=T[w],Q=w===`y`?`height`:`width`,he=Z+y[fe],ge=Z-y[me],_e=[`top`,r].indexOf(b)!==-1,ve=A?.[w]??0,ye=_e?he:Z-E[Q]-D[Q]-ve+k.altAxis,be=_e?Z+E[Q]+D[Q]-ve-k.altAxis:ge,xe=g&&_e?de(ye,Z,be):ue(g?ye:he,Z,g?be:ge);T[w]=xe,j[w]=xe-Z}i.modifiersData[o]=j}}var Et;function Dt(){return(Dt=e((()=>{C(),fe(),U(),X(),at(),R(),Et={name:`preventOverflow`,enabled:!0,phase:`main`,fn:Tt,requiresIfExists:[`offset`]}})))()}function Ot(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function kt(e){return e===T(e)||!D(e)?Ie(e):Ot(e)}function At(){return(At=e((()=>{Le(),k()})))()}function jt(e){var t=e.getBoundingClientRect(),n=L(t.width)/e.offsetWidth||1,r=L(t.height)/e.offsetHeight||1;return n!==1||r!==1}function Mt(e,t,n){n===void 0&&(n=!1);var r=D(t),i=D(t)&&jt(t),a=K(t),o=V(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((w(t)!==`body`||We(a))&&(s=kt(t)),D(t)?(c=V(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=Re(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function Nt(){return(Nt=e((()=>{H(),At(),k(),ze(),q(),Ge(),R()})))()}function Pt(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function Ft(e){var t=Pt(e);return S.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function It(){return(It=e((()=>{C()})))()}function Lt(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function Rt(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}function zt(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function Bt(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?Vt:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},Vt,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:E(e)?Je(e):e.contextElement?Je(e.contextElement):[],popper:Je(t)};var s=Ft(Rt([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(zt(t,n)){i.rects={reference:Mt(t,ce(n),i.options.strategy===`fixed`),popper:te(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r<i.orderedModifiers.length;r++)if(i.reset===!0)i.reset=!1,r=-1;else{var a=i.orderedModifiers[r],o=a.fn,l=a.options,u=l===void 0?{}:l,d=a.name;typeof o==`function`&&(i=o({state:i,options:u,name:d,instance:c})||i)}}}},update:Lt(function(){return new Promise(function(e){c.forceUpdate(),e(i)})}),destroy:function(){u(),s=!0}};if(!zt(e,t))return c;c.setOptions(n).then(function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)});function l(){i.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=n===void 0?{}:n,a=e.effect;if(typeof a==`function`){var s=a({state:i,name:t,instance:c,options:r});o.push(s||function(){})}})}function u(){o.forEach(function(e){return e()}),o=[]}return c}}var Vt;function Ht(){return(Ht=e((()=>{Nt(),U(),Ye(),X(),It(),k(),Vt={placement:`bottom`,modifiers:[],strategy:`absolute`}})))()}var Ut,Wt;function Gt(){return(Gt=e((()=>{Ht(),ke(),Ct(),Te(),N(),bt(),dt(),Dt(),ye(),gt(),Ut=[Oe,St,we,M,yt,ut,Et,ve,ht],Wt=Bt({defaultModifiers:Ut})})))()}export{Gt as n,Wt as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";var t,n,r,i,a,o;function s(){return(s=e((()=>{t=`modulepreload`,n=function(e){return`/`+e},r={},i=function(e){return e.pathname.endsWith(`.css`)},a=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},o=function(e,o,s){let c=Promise.resolve();if(o&&o.length>0){let e,l=document.querySelector(`meta[property=csp-nonce]`),u=l?.nonce||l?.getAttribute(`nonce`);function d(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function f(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}c=d(o.map(o=>{o=n(o,s);let c=f(o),l=i(c);return a(r,c.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((l?e.styles:e.all).has(c.href))return;let n=document.createElement(`link`);if(n.rel=l?`stylesheet`:t,l||(n.as=`script`),n.crossOrigin=``,n.href=c.href,u&&n.setAttribute(`nonce`,u),document.head.appendChild(n),l)return new Promise((e,t)=>{n.addEventListener(`load`,e),n.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${c}`)))})})}).filter(e=>e!==void 0))}function l(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return c.then(t=>{for(let e of t||[])e.status===`rejected`&&l(e.reason);return e().catch(l)})}})))()}export{s as n,o as t};
@@ -0,0 +1 @@
1
+ import{i as e,n as t}from"./rolldown-runtime-CNOWq4Kh.js";import{i as n}from"./react-BN8qLIAi.js";import{O as r,g as i,h as a,x as o}from"./client-DFnuv2z3.js";import{n as s,r as c}from"./services-BddvcFi8.js";import{n as l,t as u}from"./react-CEuifcaQ.js";import{a as d,i as f,n as p,o as m,r as h}from"./storage-CKXnhqkt.js";function g(e){let t=/^(.*)-\d{12}-([0-9a-f]{8})-([0-9a-f]{8})(?:-[A-Za-z0-9]{6})?$/.exec(e);return{project:t?.[1]??e,projectCommit:t?.[2]??null,omniCommit:t?.[3]??null}}function ee(e){let t=e.apps.filter(e=>e.status!==`online`).map(e=>`${e.name} (${e.status})`),n=e.apps.length,r=n-t.length,i=e.notUp??[],a=[...new Set([...i,...t.filter(e=>!i.some(t=>t.startsWith(e+`: `)))])];e.status!==`running`&&a.push(`stack state: ${e.status}`);let o=a.length===0?`confirmed`:e.status===`error`?`failed`:`partial`;return{confirmed:o===`confirmed`,outcome:o,online:r,total:n,issues:a}}function te(e){return JSON.stringify([e.project,e.stack,e.node,e.app])}function ne(e,t,n){let r=[],i=[];for(let a of e){if(!a.project||!a.stack){i.push(a);continue}let e=(t.configurations?.find(e=>e.runtimeProject===a.project))?.stacks[a.stack]??(a.project===t.name?a.stack:void 0);e&&(!n||e===n)&&r.push(a.project===t.name&&a.stack===e?a:{...a,project:t.name,stack:e})}return{transfers:r,unscoped:i}}function re(e){return e?`${e.platform}/${e.arch} · Node ${e.node} · ABI ${e.abi}`:`Target not recorded`}function _(e){let t=e.omni.reproduced,n=t?.packages??e.omni.registry?.packages,r=n?.length??e.builtWith?.packages?.length;return r===void 0?`Framework source not recorded`:`${t?`Reproduced archives`:n?`npm registry`:`Linked checkout`} · ${r} framework package${r===1?``:`s`}`}function v(e){let t=e.length===1?e[0]:null;return t&&t.name===`gates`&&t.status===`not-run`?t:null}function y(e){if(e.manifestError)return{text:`invalid manifest`,tone:`failed`};if(!e.complete)return{text:`no manifest`,tone:`none`};let t=v(e.gateList);if(t)return{text:/--skip-gates/.test(t.detail??``)?`skipped`:`not run`,tone:`unfinished`};let{total:n,passed:r,failed:i}=e.gates;return n===0?{text:`—`,tone:`none`}:{text:`${r}/${n}`,tone:i>0?`failed`:r<n?`unfinished`:`passed`}}function b(e,t){return e?{known:!0,deployments:t}:{known:!1,why:C}}function ie(e){let t=new Map;for(let n of e)n.release&&t.set(n.release,[...t.get(n.release)??[],n]);return t}function x(e,t){let n=[e.project===!1?t:null,e.omni===!1?`omni`:null].filter(Boolean),r=[e.project==null?t:null,e.omni==null?`omni`:null].filter(Boolean);return{state:n.length?`missing`:r.length?`unknown`:`recorded`,label:n.length?`Git: unpublished source`:r.length?`Git: unverified`:`Git: publication recorded`,detail:n.length?`This release records unpublished source for ${n.join(` and `)}. Source publication is separate from where applications are deployed or running.`:r.length?`Git publication could not be verified for ${r.join(` and `)} when this release was built. This does not establish that the source is unpublished.`:`This release records both source commits as published at build time. This saved observation does not check current availability or identify running deployments.`}}function ae(e,t,n){if(!n.known)return n;let r=t.runtimeScope??{project:e,stack:t.name},i=n.deployments.filter(n=>n.project===e&&n.stack===t.name||n.project===r.project&&n.stack===r.stack);if(i.length===0)return{known:!0,last:null};if(i.some(e=>!Number.isFinite(Date.parse(e.at))))return{known:!1,why:`Deployment history contains an invalid timestamp`};let a=Math.max(...i.map(e=>Date.parse(e.at))),o=i.filter(e=>Date.parse(e.at)===a);return new Set(o.map(e=>JSON.stringify([e.release,e.releaseUnnamed,e.projectCommit,e.omniCommit]))).size>1?{known:!1,why:`Conflicting deployment records have the same timestamp`}:{known:!0,last:o[0]}}function S(e){let t=[],n=new Map,r=new Map,i=(e,i,a=!0)=>{if(a&&e.status===`stopped`)return;let o={app:e.name,node:i,pid:e.pid??null,...typeof e.generation==`string`&&{generation:e.generation}};if(!a||e.status===`unknown`){t.push({...o,state:`unavailable`,reason:`Application inventory unavailable; launch identity is unknown`});return}let s=e.release,c=e.generation!==void 0,l=typeof e.generation==`string`&&e.generation.length>0&&s?.state===`confirmed`&&e.generation===s.launchId,u=Number.isSafeInteger(e.pid)&&e.pid>0,d=c?l&&(e.pid==null||u):u,f=s?.state===`confirmed`?s.consumer:void 0,p=f===void 0||f&&typeof f==`object`&&!Array.isArray(f)&&Object.keys(f).sort().join(`,`)===`app,manifestSha256,releaseId`&&typeof f.releaseId==`string`&&/^[A-Za-z0-9][A-Za-z0-9._-]{0,255}$/.test(f.releaseId)&&!f.releaseId.includes(`..`)&&/^[a-f0-9]{64}$/.test(f.manifestSha256)&&f.app===e.name.split(`/`).at(-1);if(s?.state===`confirmed`&&e.status===`online`&&d&&s.basis===`verified-launch`&&typeof s.releaseId==`string`&&s.releaseId.length>0&&/^[a-f0-9]{64}$/.test(s.manifestSha256)&&/^[a-f0-9]{64}$/.test(s.artifactSha256)&&typeof s.launchId==`string`&&s.launchId.length>0&&Number.isFinite(Date.parse(s.observedAt))&&p){t.push({...o,state:`confirmed`,releaseId:s.releaseId,observedAt:s.observedAt,launchId:s.launchId,...f&&{consumer:{...f}}});let e=f??s;n.set(`${e.releaseId}:${e.manifestSha256}`,{releaseId:e.releaseId,manifestSha256:e.manifestSha256});let i=r.get(s.releaseId)??new Set;i.add(s.manifestSha256),r.set(s.releaseId,i)}else s?.state===`modified`?t.push({...o,state:`modified`,...s.releaseId&&{releaseId:s.releaseId},reason:s.reason}):t.push({...o,state:`unreported`,reason:e.status===`online`?s?.state===`confirmed`&&c&&!l?`Application generation is invalid or differs from its launch receipt; request a fresh owner observation`:s?.state===`confirmed`&&!d?`Application is online but its process identity is unavailable; the launch receipt cannot be bound to this instance`:p?s?.state===`unreported`?s.reason:s?`Runtime launch evidence is incomplete or invalid`:`Runtime does not report a verified launch receipt`:`Runtime launch consumer does not match this application or has invalid identity`:`Application is ${e.status}; no active launch is confirmed`})};if(e.type!==`local`&&e.placements?.length)for(let t of e.placements){for(let e of t.apps)i(e.process??{name:e.name,status:t.appsObserved?`stopped`:`unknown`},t.nodeKey,t.appsObserved);!t.appsObserved&&t.apps.length===0&&i({name:`inventory`,status:`unknown`},t.nodeKey,!1)}else{for(let t of e.apps)i(t,null);if(e.type!==`local`)for(let t of e.nodes.filter(e=>!e.connected))i({name:`inventory`,status:`unknown`},`${t.host}:${t.port}`,!1)}let a={verified:t.filter(e=>e.state===`confirmed`).length,total:t.length,releases:[...n.values()],observations:t},o=new Set(a.releases.map(e=>e.releaseId)).size!==n.size||[...r.values()].some(e=>e.size>1);return{runningRelease:t.length===0&&e.status===`stopped`?`not-running`:o||t.some(e=>e.state===`modified`)?`modified`:t.length===0||t.some(e=>e.state!==`confirmed`)?`unreported`:n.size>1?`mixed`:`confirmed`,releaseEvidence:a}}function oe(e){switch(e.runningRelease){case`not-running`:return`No applications running`;case`confirmed`:return`Launch release verified`;case`mixed`:return`Different releases are running`;case`modified`:return`Runtime differs from its release evidence`;default:return`Current release not reported`}}async function se(e,t){let[n,r]=await Promise.allSettled([t.stacks(),t.deployments()]),i=r.status===`fulfilled`?r.value:{known:!1,why:`Deployment history could not be read`},a=n.status===`fulfilled`?n.value.flatMap(e=>e.runtimeScope?[e.runtimeScope]:[]):[],o=i.known?{known:!0,deployments:i.deployments.filter(t=>t.project===e||a.some(e=>t.project===e.project&&t.stack===e.stack))}:i;return{project:e,observedAt:new Date().toISOString(),history:o,inventory:n.status===`fulfilled`?{known:!0}:{known:!1,why:`Stack inventory could not be read; execution state is unknown`},stacks:n.status===`fulfilled`?n.value.map(t=>({project:e,stack:t.name,type:t.type,status:t.status,apps:{online:t.apps.filter(e=>e.status===`online`).length,total:t.apps.length,unknown:t.apps.filter(e=>e.status===`unknown`).length},nodes:t.nodes.map(({host:e,port:t,label:n,connected:r})=>({host:e,port:t,label:n,connected:r,endpoint:`${e.includes(`:`)&&!e.startsWith(`[`)?`[${e}]`:e}:${t}`})),history:ae(e,t,o),...S(t)})):[]}}var C;function w(){return(w=t((()=>{C=`the daemon cannot read the deployment audit history; current execution is a separate observation`})))()}function T(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:E(e)&&E(t)?D(e)&&D(t)?O(e,t):k(e,t):O({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}var E,D,O,k;function A(){return(A=t((()=>{E=e=>Symbol.iterator in e,D=e=>`entries`in e,O=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},k=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done}})))()}function j(e){let t=M.useRef(void 0);return n=>{let r=e(n);return T(t.current,r)?t.current:t.current=r}}var M;function N(){return(N=t((()=>{M=e(n(),1),A()})))()}function P(e){return{runningStacks:e.filter(e=>e.status===`running`).length,totalStacks:e.length,unknownStacks:e.filter(e=>e.status===`unknown`).length}}function F(e){return e.flatMap(e=>e.apps.map(t=>({...t,stack:e.name,stackType:e.type})))}function I(){return(I=t((()=>{})))()}function L(e,t,n){if(!t)return[];let r=e?.configurations??[];if(n){let e=new Set;for(let t of r)for(let[r,i]of Object.entries(t.stacks))i===n&&e.add(`${t.runtimeProject}/${r}/`);return e.add(`${t}/${n}/`),[...e]}return[...new Set([t,...r.map(e=>e.runtimeProject)])].map(e=>`${e}/`)}function R(e,t){let[n,r]=t.split(`/`);return!n||!r||t.split(`/`).length<3?null:e?.configurations?.find(e=>e.runtimeProject===n)?.stacks[r]??r}function z(e,t,n){let r=e.find(e=>e.name===t||e.configurations?.some(e=>e.runtimeProject===t));if(!r)return null;let i=r.configurations?.find(e=>e.runtimeProject===t),a=Object.values(i?.stacks??{});return{project:r.name,stack:r.name===t?n:n?i?.stacks[n]??null:a.length===1?a[0]:null}}function B(){return(B=t((()=>{})))()}function V(e,t){e?d(K,e):f(K),t?d(q,t):f(q)}function H(){let e=p(K);return{project:e,stack:e?p(q):null,routes:h(J,{})}}function U(e){m(J,e)}function W(e,t,n,r){let i=e[t];return i?{...e,[t]:i.map(e=>e.name===n?{...e,status:r}:e)}:e}function G(){return X(j(e=>(e.activeProject?e.stacksByProject[e.activeProject]:void 0)??Q))}var K,q,J,Y,X,Z,Q;function $(){return($=t((()=>{s(),w(),l(),N(),a(),K=`omnitron_active_project`,q=`omnitron_active_stack`,J=`omnitron_workspace_routes`,Y=`__omnitron__`,X=u((e,t)=>{let n=H(),a=new Map,s=null,l=null,u=0,d=0,f=(t,n)=>e(e=>{let r={...e.stackNotices};return n?r[t]=n:delete r[t],{stackNotices:r}}),p=async(n,r)=>{try{await a.get(r),await t().fetchStacks(r)}finally{e(e=>{let t={...e.pendingOps};return delete t[n],{pendingOps:t}})}};return{projects:[],stacksByProject:{},stackReadErrors:{},stackNotices:{},clearStackNotice:e=>f(e),stackRuntimes:{},pendingOps:{},activeProject:n.project,activeStack:n.stack,workspaceRoutes:n.routes,loading:!1,error:null,fetchProjects:async n=>{if(!l)return;let r=u;try{e({loading:!0,error:null});let i=await o.listProjects();if(r!==u)return;e(e=>({projects:i.map(t=>e.stacksByProject[t.name]?{...t,...P(e.stacksByProject[t.name])}:t),loading:!1}));let a=t().activeProject;if(a){let r=z(i,a,t().activeStack);if(r){let i=t().activeStack;if(r.project!==a){let o=e=>i&&r.stack&&e===`/stacks/${i}`?`/stacks/${r.stack}`:e,s={...t().workspaceRoutes};if(s[a]&&!s[r.project]&&(s[r.project]=o(s[a])),e({activeProject:r.project,activeStack:r.stack,workspaceRoutes:s}),V(r.project,r.stack),U(s),t().fetchStacks(r.project),n&&o(n)!==n)return o(n)}else t().fetchStacks(a)}else e({activeProject:null,activeStack:null}),V(null,null)}else if(i.length===1){let n=i[0].name;e({activeProject:n}),V(n,null),t().fetchStacks(n)}}catch(t){r===u&&e({error:t.message,loading:!1})}},setInventoryReaders:(t,n)=>{l!==t&&(l=t,u++,e({projects:[],loading:!1,error:null})),s!==n&&(s=n,d++,a.clear(),e({stacksByProject:{},stackReadErrors:{}}))},fetchStacks:async n=>{if(!s)return null;let r=d,i=a.get(n);if(i)return i;let c=(async()=>{try{let i=await o.listStacks({project:n});return r===d?(e(e=>({stacksByProject:{...e.stacksByProject,[n]:i},stackReadErrors:{...e.stackReadErrors,[n]:null},projects:e.projects.map(e=>e.name===n?{...e,...P(i)}:e)})),t().activeProject===n&&t().activeStack&&!i.some(e=>e.name===t().activeStack)&&(e({activeStack:null}),V(n,null)),i):null}catch(t){return r===d&&e(e=>({stackReadErrors:{...e.stackReadErrors,[n]:t.message}})),null}})();a.set(n,c);try{return await c}finally{a.get(n)===c&&a.delete(n)}},fetchStackStatus:async(t,n)=>{try{let r=await o.getStackStatus({project:t,stack:n});return e(e=>({stackRuntimes:{...e.stackRuntimes,[`${t}/${n}`]:r}})),r}catch(t){return e({error:t.message}),null}},selectProject:(n,r)=>{let i=t(),a={...i.workspaceRoutes};if(r){let e=i.activeProject??Y;a[e]=r}let o=a[n]??`/`;return e({activeProject:n,activeStack:null,workspaceRoutes:a}),V(n,null),U(a),t().fetchStacks(n),o},deselectProject:n=>{let r=t(),i={...r.workspaceRoutes};n&&r.activeProject&&(i[r.activeProject]=n);let a=i[Y]??`/`;return e({activeProject:null,activeStack:null,workspaceRoutes:i}),V(null,null),U(i),a},saveCurrentRoute:n=>{let r=t(),i=r.activeProject??Y,a={...r.workspaceRoutes,[i]:n};e({workspaceRoutes:a}),U(a)},selectStack:n=>{let{activeProject:r,stacksByProject:i}=t();(!n||r&&i[r]?.some(e=>e.name===n))&&(e({activeStack:n}),V(r,n))},addProject:async(n,r)=>{try{e({loading:!0,error:null}),await o.addProject({name:n,path:r}),await t().fetchProjects()}catch(t){throw e({error:t.message,loading:!1}),t}},updateProject:async(n,r)=>{try{e({loading:!0,error:null});let i=await o.updateProject({name:n,...r});i.name!==n&&t().activeProject===n&&(e({activeProject:i.name,activeStack:null}),V(i.name,null)),await t().fetchProjects()}catch(t){throw e({error:t.message,loading:!1}),t}},removeProject:async n=>{try{e({loading:!0,error:null}),await o.removeProject({name:n}),t().activeProject===n&&(e({activeProject:null,activeStack:null}),V(null,null)),await t().fetchProjects()}catch(t){throw e({error:t.message,loading:!1}),t}},startStack:async(n,a,o)=>{let s=`${n}/${a}`;if(t().pendingOps[s])return{state:`busy`,message:`An operation is already pending for ${s}.`};f(s),e(e=>({pendingOps:{...e.pendingOps,[s]:`starting`},stacksByProject:W(e.stacksByProject,n,a,`starting`)}));try{let{outcome:e,issues:t,online:r,total:c}=ee(await i(`startStack`,{project:n,stack:a,...o?.release?{release:o.release}:{},...o?.workingTree?{workingTree:!0}:{},...o?.allowDirty?{allowDirty:!0}:{}}));if(e===`confirmed`)return{state:e};let l=`${s}: ${r}/${c} apps online. ${t.join(`; `)}.`;return f(s,l),{state:e,message:l}}catch(e){let t=r(e)||c(e),n=t?`No start acknowledgement for ${s}. Inspect the stack and deployment history before retrying.`:e instanceof Error?e.message:String(e);return f(s,n),{state:t?`unconfirmed`:`failed`,message:n}}finally{await p(s,n)}},resumeInstalledStack:async(n,a)=>{let o=`${n}/${a}`;if(!t().pendingOps[o]){f(o),e(e=>({pendingOps:{...e.pendingOps,[o]:`resuming`}}));try{let e=await i(`resumeInstalledStack`,{project:n,stack:a});if(e.outcome!==`running`){let t=e.nodes.filter(e=>e.outcome!==`running`).map(e=>[e.node,e.outcome,e.reason].filter(Boolean).join(` · `));f(o,[`Resume ${e.outcome}`,...t,e.operationId].join(` · `))}}catch(e){f(o,r(e)||c(e)?`Resume acknowledgement unavailable. Check the stack and each recipient before another recovery.`:e instanceof Error?e.message:String(e))}finally{await p(o,n)}}},stopStack:async(n,a,o,s=!1)=>{let l=`${n}/${a}`;if(!t().pendingOps[l]){f(l),e(e=>({pendingOps:{...e.pendingOps,[l]:`stopping`},stacksByProject:W(e.stacksByProject,n,a,`stopping`)}));try{let e=await i(`stopStack`,{project:n,stack:a,review:o,...s&&{keepInfrastructure:!0}});if(e.status!==`stopped`||e.stopOperation?.phase!==`stopped`)throw Error(`Daemon did not confirm the complete stack stop`);if(s&&e.stopOperation.keepInfrastructure!==!0)throw Error(`Daemon did not confirm infrastructure preservation. Inspect the stop operation before retrying.`)}catch(e){f(l,r(e)||c(e)?`Stop acknowledgement has not arrived. Check the stack operation before retrying; applications may still be running.`:e.message)}finally{await p(l,n)}}},createStack:async(n,r)=>{try{e({error:null});let i=await o.createStack({project:n,...r});return await t().fetchStacks(n),i}catch(t){throw e({error:t.message}),t}},deleteStack:async(e,n)=>{try{f(`${e}/${n}`),await o.deleteStack({project:e,stack:n}),await t().fetchStacks(e)}catch(t){throw f(`${e}/${n}`,t.message),t}},getStackPendingOp:(e,n)=>t().pendingOps[`${e}/${n}`]??null,clearError:()=>e({error:null})}}),Z=()=>X(e=>e.activeProject),Q=[]})))()}export{ie as S,se as _,B as a,re as b,I as c,te as d,b as f,y as g,ne as h,X as i,F as l,w as m,Z as n,L as o,_ as p,G as r,R as s,$ as t,P as u,g as v,oe as x,x as y};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{B as r,U as i,V as a,h as o,x as s,z as c}from"./client-DFnuv2z3.js";import{Vt as l,Yt as u}from"./mui-BTN91yBK.js";import{A as d,D as f,F as p,H as m,I as h,M as g,O as ee,Q as _,V as v,Z as y,c as b,d as x,f as S,g as C,h as w,i as T,j as E,k as D,m as O,p as k,r as A,s as j}from"./mui-BXSXx9c9.js";import{B as M,F as N,I as P,a as F,o as I,z as L}from"./mui-Cd711nOk.js";import{B as te,it as R,rt as z,z as B}from"./mui-AnEgAVjz.js";import{_ as V,v as H}from"./mui-BwsIrivo.js";import{r as ne,t as U}from"./alert-uBG6r9NW.js";import{n as re,r as ie}from"./snackbar-DSPmjMyi.js";import{c as ae,n as W,s as oe}from"./access-48hkC2-P.js";import{r as G,t as se}from"./use-polled-resource-B22hhr5L.js";import{i as K,t as ce}from"./project.store--G5pIF-J.js";import{A as le,G as ue,L as de,M as fe,j as pe,p as me}from"./icons-OboZgWSt.js";import{n as he,t as ge}from"./label-B1SF0RTL.js";import{n as _e,t as ve}from"./operation-status-Bm1x1wTz.js";import{n as ye,t as be}from"./page-breadcrumbs-fR7Jmpp4.js";import{n as xe,t as Se}from"./skeleton-BmWDJWF9.js";import{l as Ce}from"./formatters-RnRy4bXm.js";import{n as we,t as Te}from"./empty-content-7jOFhG4C.js";function Ee({project:e,onClose:t,onImport:n}){let[r,i]=(0,q.useState)(``),[a,o]=(0,q.useState)(``),[s,c]=(0,q.useState)(``),[l,u]=(0,q.useState)(`local=test`),[d,f]=(0,q.useState)(``),[m,h]=(0,q.useState)(!1),g=async()=>{f(``),h(!0);try{let i=Object.create(null);for(let e of l.trim().split(/\n+/)){let t=e.split(`=`).map(e=>e.trim());if(t.length!==2||!t[0]||!t[1]||Object.hasOwn(i,t[0]))throw Error(`Use one unique source=project stack mapping per line.`);i[t[0]]=t[1]}await n({project:e.name,name:r.trim(),path:a.trim(),...s.trim()?{registration:s.trim()}:{},stacks:i,expectedRevision:e.catalogRevision??``}),t()}catch(e){f(e instanceof Error?e.message:String(e))}finally{h(!1)}};return(0,J.jsxs)(w,{open:!0,onClose:m?void 0:t,fullWidth:!0,maxWidth:`sm`,children:[(0,J.jsxs)(j,{children:[`Import stacks into `,e.displayName]}),(0,J.jsx)(x,{children:(0,J.jsxs)(V,{spacing:2,sx:{pt:1},children:[(0,J.jsx)(L,{variant:`body2`,color:`text.secondary`,children:`Add stacks from a configuration in this repository. Running applications and their history stay in place.`}),(0,J.jsx)(ve,{active:m,label:`Importing stacks`,detail:`Validating the configuration and saving the project catalog`}),d&&(0,J.jsx)(U,{severity:`error`,children:d}),(0,J.jsx)(F,{autoFocus:!0,label:`Configuration name`,value:r,onChange:e=>i(e.target.value),disabled:m,required:!0}),(0,J.jsx)(F,{label:`Configuration directory`,value:a,onChange:e=>o(e.target.value),disabled:m,required:!0,helperText:`Inside ${e.path}`}),(0,J.jsx)(F,{label:`Stack mapping`,multiline:!0,minRows:2,value:l,onChange:e=>u(e.target.value),disabled:m,helperText:`Each line: source stack = stack name in this project. Map every source stack.`}),(0,J.jsx)(F,{label:`Existing registration (optional)`,value:s,onChange:e=>c(e.target.value),disabled:m,helperText:`To consolidate an existing registration, enter its exact name.`})]})}),(0,J.jsxs)(k,{children:[(0,J.jsx)(p,{onClick:t,disabled:m,children:`Cancel`}),(0,J.jsx)(p,{variant:`contained`,loading:m,onClick:()=>void g(),disabled:m||!r.trim()||!a.trim()||!l.trim()||!e.catalogRevision,children:`Import stacks`})]})]})}var q,J;function Y(){return(Y=e((()=>{_e(),q=t(),h(),C(),O(),S(),b(),H(),I(),M(),ne(),J=n()})))()}function De({project:e,onEdit:t,onRemove:n,onOpen:r,onImport:i}){let a=K(t=>t.stacksByProject[e.name]),o=K(t=>t.stackReadErrors[e.name]),s=K(e=>e.fetchStacks);G(()=>{s(e.name)},{intervalMs:1e4});let c=a?a.some(e=>e.status===`running`):!1,u=a?`${a.filter(e=>e.status===`running`).length}/${a.length}${o?` stale`:``}`:`?/${e.totalStacks}`;return(0,Q.jsxs)(E,{sx:{height:`100%`,display:`flex`,flexDirection:`column`,cursor:`pointer`,transition:`border-color 0.2s, box-shadow 0.2s`,"&:hover":{borderColor:e=>l(e.palette.primary.main,.3),boxShadow:e=>e.shadows[8]}},variant:`outlined`,onClick:()=>r(e.name),children:[(0,Q.jsxs)(f,{sx:{flex:1,pb:`12px !important`},children:[(0,Q.jsxs)(V,{direction:`row`,sx:{alignItems:`flex-start`,justifyContent:`space-between`,mb:1.5},children:[(0,Q.jsxs)(V,{direction:`row`,spacing:1,sx:{alignItems:`center`,minWidth:0},children:[(0,Q.jsx)(pe,{sx:{fontSize:28,color:c?`primary.main`:`text.secondary`,flexShrink:0}}),(0,Q.jsxs)(v,{sx:{minWidth:0},children:[(0,Q.jsx)(L,{variant:`subtitle2`,noWrap:!0,sx:{fontWeight:700},children:e.displayName}),(0,Q.jsx)(L,{variant:`caption`,noWrap:!0,sx:{color:`text.disabled`},children:e.name})]})]}),(0,Q.jsxs)(ge,{color:c?`success`:`default`,sx:{flexShrink:0},children:[u,` stacks`]})]}),(0,Q.jsx)(A,{sx:{mb:1.5}}),(0,Q.jsx)(X,{label:`Path`,value:e.path,mono:!0}),(0,Q.jsxs)(V,{spacing:.5,sx:{mt:1},children:[(0,Q.jsx)(X,{label:`Stacks`,value:u}),e.enabledStacks.length>0&&(0,Q.jsx)(X,{label:`Enabled`,value:e.enabledStacks.join(`, `)}),(0,Q.jsx)(X,{label:`Registered`,value:Ce(e.registeredAt)})]}),e.enabledStacks.length>0&&(0,Q.jsx)(V,{direction:`row`,spacing:.5,useFlexGap:!0,sx:{mt:1.5,flexWrap:`wrap`},children:e.enabledStacks.map(e=>(0,Q.jsx)(y,{label:e,size:`small`,variant:`outlined`,sx:{height:22,fontSize:11}},e))})]}),(0,Q.jsxs)(D,{sx:{px:2,pb:1.5,gap:1,flexWrap:`wrap`},onClick:e=>e.stopPropagation(),children:[(0,Q.jsx)(W,{permission:`OmnitronProject.removeProject`,children:(0,Q.jsx)(N,{title:`Remove project`,children:(0,Q.jsx)(`span`,{children:(0,Q.jsx)(z,{size:`small`,color:`error`,"aria-label":`Remove project ${e.name}`,onClick:()=>n(e.name),disabled:c,sx:{marginInlineEnd:1},children:(0,Q.jsx)(me,{sx:{fontSize:18}})})})})}),(0,Q.jsxs)(v,{sx:{marginInlineStart:`auto`,display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:1},children:[(0,Q.jsx)(W,{permission:`OmnitronProject.importConfiguration`,children:(0,Q.jsx)(p,{size:`small`,onClick:()=>i(e),children:`Import stacks`})}),(0,Q.jsx)(W,{permission:`OmnitronProject.updateProject`,children:(0,Q.jsx)(N,{title:`Settings`,children:(0,Q.jsx)(z,{size:`small`,"aria-label":`Settings for ${e.name}`,onClick:()=>t(e),children:(0,Q.jsx)(de,{sx:{fontSize:18}})})})})]})]})]})}function X({label:e,value:t,mono:n}){return(0,Q.jsxs)(V,{direction:`row`,spacing:1,sx:{justifyContent:`space-between`,alignItems:`center`},children:[(0,Q.jsx)(L,{variant:`caption`,sx:{color:`text.disabled`,flexShrink:0},children:e}),(0,Q.jsx)(L,{variant:`caption`,noWrap:!0,title:t,sx:{fontWeight:500,textAlign:`right`,minWidth:0,...n&&{fontFamily:`monospace`,fontSize:11}},children:t})]})}function Oe({open:e,onClose:t,project:n,onSave:r,loading:i}){let[a,o]=(0,Z.useState)(``);if((0,Z.useEffect)(()=>{e&&n&&o(n.path)},[e,n]),!n)return null;let s=a.trim()!==n.path,c=a.trim().length>0&&s;return(0,Q.jsxs)(w,{open:e,onClose:t,maxWidth:`sm`,fullWidth:!0,children:[(0,Q.jsxs)(j,{children:[`Project Settings — `,n.displayName]}),(0,Q.jsx)(x,{children:(0,Q.jsxs)(V,{spacing:2.5,sx:{mt:1},children:[(0,Q.jsx)(F,{label:`Project Name`,value:n.displayName,disabled:!0,fullWidth:!0,helperText:`Derived from omnitron.config.ts — change it there to rename.`}),(0,Q.jsx)(F,{label:`Registry Name`,value:n.name,disabled:!0,fullWidth:!0,size:`small`}),(0,Q.jsx)(F,{label:`Project Path`,value:a,onChange:e=>o(e.target.value),fullWidth:!0,placeholder:`/absolute/path/to/project`,helperText:`Absolute path to the monorepo root containing omnitron.config.ts`,slotProps:{input:{sx:{fontFamily:`monospace`,fontSize:14}}}}),(n.configurations?.length??0)>1&&(0,Q.jsxs)(V,{spacing:1,children:[(0,Q.jsx)(L,{variant:`subtitle2`,children:`Stack configurations`}),n.configurations?.map(e=>(0,Q.jsxs)(v,{sx:{minWidth:0},children:[(0,Q.jsxs)(L,{variant:`body2`,children:[e.name,` · `,Object.values(e.stacks).join(`, `)||`Default stacks`]}),(0,Q.jsx)(L,{variant:`caption`,sx:{color:`text.secondary`,overflowWrap:`anywhere`},children:e.path})]},e.runtimeProject))]}),(0,Q.jsx)(F,{label:`Registered`,value:new Date(n.registeredAt).toLocaleString(),disabled:!0,fullWidth:!0,size:`small`})]})}),(0,Q.jsxs)(k,{children:[(0,Q.jsx)(p,{onClick:t,color:`inherit`,children:`Cancel`}),(0,Q.jsx)(W,{permission:`OmnitronProject.updateProject`,children:(0,Q.jsx)(p,{variant:`contained`,onClick:()=>r(n.name,{path:a.trim()}),disabled:!c||i,children:`Save`})})]})]})}function ke({open:e,onClose:t,onAdd:n,loading:r}){let[i,a]=(0,Z.useState)(``),[o,s]=(0,Z.useState)(``);(0,Z.useEffect)(()=>{e&&(a(``),s(``))},[e]);let c=i.trim().length>0&&o.trim().length>0;return(0,Q.jsxs)(w,{open:e,onClose:t,maxWidth:`sm`,fullWidth:!0,children:[(0,Q.jsx)(j,{children:`Add Project`}),(0,Q.jsx)(x,{children:(0,Q.jsxs)(V,{spacing:2.5,sx:{mt:1},children:[(0,Q.jsx)(F,{label:`Project Name`,value:i,onChange:e=>a(e.target.value),fullWidth:!0,autoFocus:!0,placeholder:`my-project`,helperText:`Unique identifier for the project registry`}),(0,Q.jsx)(F,{label:`Project Path`,value:o,onChange:e=>s(e.target.value),fullWidth:!0,placeholder:`/absolute/path/to/project`,helperText:`Absolute path to the monorepo root containing omnitron.config.ts`,slotProps:{input:{sx:{fontFamily:`monospace`,fontSize:14}}}})]})}),(0,Q.jsxs)(k,{children:[(0,Q.jsx)(p,{onClick:t,color:`inherit`,children:`Cancel`}),(0,Q.jsx)(W,{permission:`OmnitronProject.addProject`,children:(0,Q.jsx)(p,{variant:`contained`,onClick:()=>n(i.trim(),o.trim()),disabled:!c||r,children:`Add Project`})})]})]})}function Ae(){let e=K(e=>e.projects),t=K(e=>e.loading),n=K(e=>e.error),o=K(e=>e.clearError),c=K(e=>e.fetchProjects),l=K(e=>e.addProject),u=K(e=>e.updateProject),d=K(e=>e.removeProject),f=K(e=>e.selectProject),m=a(),{pathname:h}=r(),g=ie(),{can:ee}=ae(),[_,y]=i(),[b,S]=(0,Z.useState)(null),[C,T]=(0,Z.useState)(null),E=_.get(`create`)===`1`&&ee(`OmnitronProject.addProject`),D=(0,Z.useCallback)(e=>{y(t=>{let n=new URLSearchParams(t);return e?n.set(`create`,`1`):n.delete(`create`),n},{replace:!0})},[y]),[O,A]=(0,Z.useState)(null),[M,N]=(0,Z.useState)(!1);G(()=>void c(),{intervalMs:15e3});let P=(0,Z.useCallback)(e=>{let t=f(e,h);m(t)},[f,m,h]),F=(0,Z.useCallback)(async(e,t)=>{N(!0);try{await l(e,t),D(!1),g.success(`Project "${e}" added`)}catch(e){g.error(e?.message??`Failed to add project`)}finally{N(!1)}},[l,g,D]),I=(0,Z.useCallback)(async(e,t)=>{N(!0);try{await u(e,t),S(null),g.success(`Project "${e}" updated`)}catch(e){g.error(e?.message??`Failed to update project`)}finally{N(!1)}},[u,g]),te=(0,Z.useCallback)(async()=>{if(O){N(!0);try{await d(O),g.success(`Project "${O}" removed`)}catch(e){g.error(e?.message??`Failed to remove project`)}finally{A(null),N(!1)}}},[O,d,g]),R=e.find(e=>e.name===O);return(0,Q.jsxs)(V,{spacing:3,children:[(0,Q.jsx)(be,{links:[{name:`Projects`}],action:(0,Q.jsxs)(V,{direction:`row`,spacing:1,children:[(0,Q.jsx)(p,{"data-console-command":`refresh`,variant:`outlined`,size:`small`,startIcon:(0,Q.jsx)(fe,{sx:{fontSize:18}}),onClick:()=>c(),children:`Refresh`}),(0,Q.jsx)(W,{permission:`OmnitronProject.addProject`,children:(0,Q.jsx)(p,{variant:`contained`,size:`small`,startIcon:(0,Q.jsx)(le,{sx:{fontSize:18}}),onClick:()=>D(!0),children:`Add Project`})})]})}),n&&(0,Q.jsx)(U,{closable:!0,severity:`error`,onClose:o,children:n}),t&&e.length===0?(0,Q.jsx)(B,{container:!0,spacing:3,children:[1,2,3].map(e=>(0,Q.jsx)(B,{size:{xs:12,sm:6,md:4},children:(0,Q.jsx)(Se,{variant:`rounded`,height:260})},e))}):e.length===0?(0,Q.jsx)(v,{sx:{flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`,minHeight:300},children:(0,Q.jsx)(Te,{title:`No projects`,description:`Register your first project to get started. A project is a monorepo with omnitron.config.ts at the root.`})}):(0,Q.jsx)(B,{container:!0,spacing:3,children:e.map(e=>(0,Q.jsx)(B,{size:{xs:12,sm:6,md:4},children:(0,Q.jsx)(De,{project:e,onEdit:S,onRemove:A,onOpen:P,onImport:T})},e.name))}),C&&(0,Q.jsx)(Ee,{project:C,onClose:()=>T(null),onImport:async e=>{await s.importConfiguration(e),await c()}}),(0,Q.jsx)(Oe,{open:!!b,onClose:()=>S(null),project:b,onSave:I,loading:M}),(0,Q.jsx)(ke,{open:E,onClose:()=>D(!1),onAdd:F,loading:M}),(0,Q.jsxs)(w,{open:!!O,onClose:()=>A(null),maxWidth:`xs`,fullWidth:!0,children:[(0,Q.jsx)(j,{children:`Remove Project`}),(0,Q.jsxs)(x,{children:[(0,Q.jsxs)(L,{variant:`body2`,children:[`Remove `,(0,Q.jsx)(`strong`,{children:R?.displayName??O}),` from the registry? This does not delete any files on disk.`]}),R&&R.runningStacks>0&&(0,Q.jsxs)(U,{severity:`warning`,sx:{mt:2},children:[`This project has `,R.runningStacks,` running stack(s). Stop them first.`]})]}),(0,Q.jsxs)(k,{children:[(0,Q.jsx)(p,{onClick:()=>A(null),color:`inherit`,children:`Cancel`}),(0,Q.jsx)(W,{permission:`OmnitronProject.removeProject`,children:(0,Q.jsx)(p,{onClick:te,color:`error`,variant:`contained`,disabled:M||(R?.runningStacks??0)>0,children:`Remove`})})]})]})]})}var Z,Q;function $(){return($=e((()=>{oe(),Z=t(),c(),m(),g(),ee(),d(),te(),M(),h(),R(),P(),_(),H(),C(),b(),S(),O(),I(),T(),u(),ne(),ye(),we(),he(),xe(),re(),o(),Y(),ce(),se(),ue(),Q=n()})))()}$();export{Ae as default};