@mrpatronz/nexusflow 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +57 -23
  2. package/dist/agent/AntigravityCliAdapter.d.ts +7 -0
  3. package/dist/agent/AntigravityCliAdapter.d.ts.map +1 -0
  4. package/dist/agent/AntigravityCliAdapter.js +13 -0
  5. package/dist/agent/AntigravityCliAdapter.js.map +1 -0
  6. package/dist/agent/ClaudeCliAdapter.d.ts +16 -0
  7. package/dist/agent/ClaudeCliAdapter.d.ts.map +1 -0
  8. package/dist/agent/ClaudeCliAdapter.js +34 -0
  9. package/dist/agent/ClaudeCliAdapter.js.map +1 -0
  10. package/dist/agent/CliAdapterBase.d.ts +48 -0
  11. package/dist/agent/CliAdapterBase.d.ts.map +1 -0
  12. package/dist/agent/CliAdapterBase.js +120 -0
  13. package/dist/agent/CliAdapterBase.js.map +1 -0
  14. package/dist/agent/NativeAgent.d.ts +13 -0
  15. package/dist/agent/NativeAgent.d.ts.map +1 -0
  16. package/dist/agent/NativeAgent.js +97 -0
  17. package/dist/agent/NativeAgent.js.map +1 -0
  18. package/dist/agent/NativeAgentBase.d.ts +27 -0
  19. package/dist/agent/NativeAgentBase.d.ts.map +1 -0
  20. package/dist/agent/NativeAgentBase.js +58 -0
  21. package/dist/agent/NativeAgentBase.js.map +1 -0
  22. package/dist/agent/NativeClaudeAgent.d.ts +13 -0
  23. package/dist/agent/NativeClaudeAgent.d.ts.map +1 -0
  24. package/dist/agent/NativeClaudeAgent.js +115 -0
  25. package/dist/agent/NativeClaudeAgent.js.map +1 -0
  26. package/dist/agent/NativeGoogleAgent.d.ts +13 -0
  27. package/dist/agent/NativeGoogleAgent.d.ts.map +1 -0
  28. package/dist/agent/NativeGoogleAgent.js +90 -0
  29. package/dist/agent/NativeGoogleAgent.js.map +1 -0
  30. package/dist/agent/ProviderRegistry.d.ts +31 -0
  31. package/dist/agent/ProviderRegistry.d.ts.map +1 -0
  32. package/dist/agent/ProviderRegistry.js +20 -0
  33. package/dist/agent/ProviderRegistry.js.map +1 -0
  34. package/dist/agent/ProviderRegistry.test.d.ts +2 -0
  35. package/dist/agent/ProviderRegistry.test.d.ts.map +1 -0
  36. package/dist/agent/ProviderRegistry.test.js +57 -0
  37. package/dist/agent/ProviderRegistry.test.js.map +1 -0
  38. package/dist/agent/adapters.d.ts +3 -0
  39. package/dist/agent/adapters.d.ts.map +1 -0
  40. package/dist/agent/adapters.js +48 -0
  41. package/dist/agent/adapters.js.map +1 -0
  42. package/dist/agent/nativeAgent.test.d.ts +2 -0
  43. package/dist/agent/nativeAgent.test.d.ts.map +1 -0
  44. package/dist/agent/nativeAgent.test.js +35 -0
  45. package/dist/agent/nativeAgent.test.js.map +1 -0
  46. package/dist/agent/nativeTools.d.ts +26 -0
  47. package/dist/agent/nativeTools.d.ts.map +1 -0
  48. package/dist/agent/nativeTools.js +62 -0
  49. package/dist/agent/nativeTools.js.map +1 -0
  50. package/dist/agent/nativeTools.test.d.ts +2 -0
  51. package/dist/agent/nativeTools.test.d.ts.map +1 -0
  52. package/dist/agent/nativeTools.test.js +67 -0
  53. package/dist/agent/nativeTools.test.js.map +1 -0
  54. package/dist/agent/session.d.ts +25 -0
  55. package/dist/agent/session.d.ts.map +1 -0
  56. package/dist/agent/session.js +31 -0
  57. package/dist/agent/session.js.map +1 -0
  58. package/dist/agent/session.test.d.ts +2 -0
  59. package/dist/agent/session.test.d.ts.map +1 -0
  60. package/dist/agent/session.test.js +44 -0
  61. package/dist/agent/session.test.js.map +1 -0
  62. package/dist/commands/create.d.ts +8 -7
  63. package/dist/commands/create.d.ts.map +1 -1
  64. package/dist/commands/create.js +134 -65
  65. package/dist/commands/create.js.map +1 -1
  66. package/dist/commands/desktop.d.ts +4 -5
  67. package/dist/commands/desktop.d.ts.map +1 -1
  68. package/dist/commands/desktop.js +35 -89
  69. package/dist/commands/desktop.js.map +1 -1
  70. package/dist/commands/doctor.d.ts.map +1 -1
  71. package/dist/commands/doctor.js +0 -1
  72. package/dist/commands/doctor.js.map +1 -1
  73. package/dist/commands/init.d.ts.map +1 -1
  74. package/dist/commands/init.js +1 -72
  75. package/dist/commands/init.js.map +1 -1
  76. package/dist/commands/list.d.ts.map +1 -1
  77. package/dist/commands/list.js +2 -1
  78. package/dist/commands/list.js.map +1 -1
  79. package/dist/commands/project.d.ts +30 -0
  80. package/dist/commands/project.d.ts.map +1 -0
  81. package/dist/commands/project.js +125 -0
  82. package/dist/commands/project.js.map +1 -0
  83. package/dist/commands/refresh.js +1 -1
  84. package/dist/commands/refresh.js.map +1 -1
  85. package/dist/commands/start.d.ts.map +1 -1
  86. package/dist/commands/start.js +18 -2
  87. package/dist/commands/start.js.map +1 -1
  88. package/dist/commands/stop.d.ts +1 -1
  89. package/dist/commands/stop.d.ts.map +1 -1
  90. package/dist/commands/stop.js +19 -2
  91. package/dist/commands/stop.js.map +1 -1
  92. package/dist/commands/tui.js +0 -1
  93. package/dist/commands/tui.js.map +1 -1
  94. package/dist/commands/ui.d.ts +7 -3
  95. package/dist/commands/ui.d.ts.map +1 -1
  96. package/dist/commands/ui.js +12 -6
  97. package/dist/commands/ui.js.map +1 -1
  98. package/dist/core/config.d.ts.map +1 -1
  99. package/dist/core/config.js +0 -9
  100. package/dist/core/config.js.map +1 -1
  101. package/dist/core/config.test.js +0 -9
  102. package/dist/core/config.test.js.map +1 -1
  103. package/dist/core/doctor.d.ts +1 -3
  104. package/dist/core/doctor.d.ts.map +1 -1
  105. package/dist/core/doctor.js +18 -69
  106. package/dist/core/doctor.js.map +1 -1
  107. package/dist/core/finish.d.ts.map +1 -1
  108. package/dist/core/finish.js +5 -0
  109. package/dist/core/finish.js.map +1 -1
  110. package/dist/core/graph.d.ts.map +1 -1
  111. package/dist/core/graph.js +2 -1
  112. package/dist/core/graph.js.map +1 -1
  113. package/dist/core/projects.d.ts +58 -0
  114. package/dist/core/projects.d.ts.map +1 -0
  115. package/dist/core/projects.js +190 -0
  116. package/dist/core/projects.js.map +1 -0
  117. package/dist/core/projects.test.d.ts +2 -0
  118. package/dist/core/projects.test.d.ts.map +1 -0
  119. package/dist/core/projects.test.js +165 -0
  120. package/dist/core/projects.test.js.map +1 -0
  121. package/dist/core/sync.d.ts.map +1 -1
  122. package/dist/core/sync.js +21 -0
  123. package/dist/core/sync.js.map +1 -1
  124. package/dist/core/sync.test.js +15 -0
  125. package/dist/core/sync.test.js.map +1 -1
  126. package/dist/core/workspace.create.test.js +68 -1
  127. package/dist/core/workspace.create.test.js.map +1 -1
  128. package/dist/core/workspace.d.ts +4 -3
  129. package/dist/core/workspace.d.ts.map +1 -1
  130. package/dist/core/workspace.js +138 -64
  131. package/dist/core/workspace.js.map +1 -1
  132. package/dist/desktop-server.d.ts +13 -0
  133. package/dist/desktop-server.d.ts.map +1 -0
  134. package/dist/desktop-server.js +23 -0
  135. package/dist/desktop-server.js.map +1 -0
  136. package/dist/generators/antigravity.js +1 -1
  137. package/dist/generators/antigravity.js.map +1 -1
  138. package/dist/generators/base.d.ts +1 -8
  139. package/dist/generators/base.d.ts.map +1 -1
  140. package/dist/generators/base.js +107 -58
  141. package/dist/generators/base.js.map +1 -1
  142. package/dist/generators/base.test.d.ts +2 -0
  143. package/dist/generators/base.test.d.ts.map +1 -0
  144. package/dist/generators/base.test.js +80 -0
  145. package/dist/generators/base.test.js.map +1 -0
  146. package/dist/generators/claude.js +1 -1
  147. package/dist/generators/claude.js.map +1 -1
  148. package/dist/generators/codex.js +1 -1
  149. package/dist/generators/codex.js.map +1 -1
  150. package/dist/generators/copilot.js +1 -1
  151. package/dist/generators/copilot.js.map +1 -1
  152. package/dist/generators/cursor.js +1 -1
  153. package/dist/generators/cursor.js.map +1 -1
  154. package/dist/generators/diff-context.d.ts.map +1 -1
  155. package/dist/generators/diff-context.js +3 -1
  156. package/dist/generators/diff-context.js.map +1 -1
  157. package/dist/generators/index.js +1 -1
  158. package/dist/generators/index.js.map +1 -1
  159. package/dist/generators/map-generator.d.ts.map +1 -1
  160. package/dist/generators/map-generator.js +3 -1
  161. package/dist/generators/map-generator.js.map +1 -1
  162. package/dist/gui/assets/DashboardPage-C3NH97y2.js +1 -0
  163. package/dist/gui/assets/GettingStartedPage-og-Kv7Sm.js +1 -0
  164. package/dist/gui/assets/ProjectsPage-COqqadEr.js +1 -0
  165. package/dist/gui/assets/ScaffoldRepoInline-DRipQsos.js +1 -0
  166. package/dist/gui/assets/Separator-Chx6O62Y.js +1 -0
  167. package/dist/gui/assets/SettingsPage-CpU3V9oU.js +1 -0
  168. package/dist/gui/assets/StartWorkPage-DIND0hJy.js +1 -0
  169. package/dist/gui/assets/StrategiesPage-6LWOnKdk.js +3 -0
  170. package/dist/gui/assets/WorkspacesPage-BUqgOhuy.js +6 -0
  171. package/dist/gui/assets/badge-BnkhqVEF.js +1 -0
  172. package/dist/gui/assets/button-cPldH5S4.js +1 -0
  173. package/dist/gui/assets/card-82INhRRE.js +1 -0
  174. package/dist/gui/assets/circle-plus-C0PNc7h4.js +1 -0
  175. package/dist/gui/assets/cpu-CPUNnHRM.js +1 -0
  176. package/dist/gui/assets/empty-DWyDwDYB.js +1 -0
  177. package/dist/gui/assets/external-link-BtYhMxno.js +1 -0
  178. package/dist/gui/assets/git-branch-Dw55pQWa.js +1 -0
  179. package/dist/gui/assets/index-CsA2SueF.css +2 -0
  180. package/dist/gui/assets/index-CyYbQwRf.js +52 -0
  181. package/dist/gui/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  182. package/dist/gui/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  183. package/dist/gui/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  184. package/dist/gui/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  185. package/dist/gui/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  186. package/dist/gui/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  187. package/dist/gui/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  188. package/dist/gui/assets/jetbrains-mono-latin-100-normal-DlYB2XW3.woff2 +0 -0
  189. package/dist/gui/assets/jetbrains-mono-latin-100-normal-DzH8uRxw.woff +0 -0
  190. package/dist/gui/assets/jetbrains-mono-latin-200-normal-CHn02WOn.woff +0 -0
  191. package/dist/gui/assets/jetbrains-mono-latin-200-normal-DvzYDkvL.woff2 +0 -0
  192. package/dist/gui/assets/jetbrains-mono-latin-300-normal-BYcAiAh2.woff +0 -0
  193. package/dist/gui/assets/jetbrains-mono-latin-300-normal-DuMDZskh.woff2 +0 -0
  194. package/dist/gui/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  195. package/dist/gui/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  196. package/dist/gui/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  197. package/dist/gui/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  198. package/dist/gui/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
  199. package/dist/gui/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
  200. package/dist/gui/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2 +0 -0
  201. package/dist/gui/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff +0 -0
  202. package/dist/gui/assets/jetbrains-mono-latin-800-normal-D2mQHRMK.woff2 +0 -0
  203. package/dist/gui/assets/jetbrains-mono-latin-800-normal-Dj9qwObk.woff +0 -0
  204. package/dist/gui/assets/label-JFgMNsTn.js +1 -0
  205. package/dist/gui/assets/search-ChVovkOL.js +1 -0
  206. package/dist/gui/assets/skeleton-CCPbfn1L.js +1 -0
  207. package/dist/gui/assets/spinner-DXt6mnJk.js +1 -0
  208. package/dist/gui/assets/textarea-BLU5HXmZ.js +1 -0
  209. package/dist/gui/assets/trash-2-Da8F2gKd.js +1 -0
  210. package/dist/gui/assets/useAriaLabelledBy-CjNlctb9.js +1 -0
  211. package/dist/gui/assets/useCompositeListItem-DWGFLKqA.js +1 -0
  212. package/dist/gui/index.html +16 -6
  213. package/dist/index.js +56 -5
  214. package/dist/index.js.map +1 -1
  215. package/dist/mcp/tools.d.ts.map +1 -1
  216. package/dist/mcp/tools.js +4 -63
  217. package/dist/mcp/tools.js.map +1 -1
  218. package/dist/orchestration/detect.d.ts.map +1 -1
  219. package/dist/orchestration/detect.js +72 -26
  220. package/dist/orchestration/detect.js.map +1 -1
  221. package/dist/orchestration/index.d.ts +3 -1
  222. package/dist/orchestration/index.d.ts.map +1 -1
  223. package/dist/orchestration/index.js +3 -1
  224. package/dist/orchestration/index.js.map +1 -1
  225. package/dist/orchestration/log-tail.d.ts +27 -0
  226. package/dist/orchestration/log-tail.d.ts.map +1 -0
  227. package/dist/orchestration/log-tail.js +93 -0
  228. package/dist/orchestration/log-tail.js.map +1 -0
  229. package/dist/orchestration/log-tail.test.d.ts +2 -0
  230. package/dist/orchestration/log-tail.test.d.ts.map +1 -0
  231. package/dist/orchestration/log-tail.test.js +72 -0
  232. package/dist/orchestration/log-tail.test.js.map +1 -0
  233. package/dist/orchestration/orchestrator.d.ts +26 -0
  234. package/dist/orchestration/orchestrator.d.ts.map +1 -0
  235. package/dist/orchestration/orchestrator.js +102 -0
  236. package/dist/orchestration/orchestrator.js.map +1 -0
  237. package/dist/orchestration/orchestrator.test.d.ts +2 -0
  238. package/dist/orchestration/orchestrator.test.d.ts.map +1 -0
  239. package/dist/orchestration/orchestrator.test.js +85 -0
  240. package/dist/orchestration/orchestrator.test.js.map +1 -0
  241. package/dist/orchestration/runner.d.ts +62 -3
  242. package/dist/orchestration/runner.d.ts.map +1 -1
  243. package/dist/orchestration/runner.js +198 -103
  244. package/dist/orchestration/runner.js.map +1 -1
  245. package/dist/orchestration/runner.test.js +125 -1
  246. package/dist/orchestration/runner.test.js.map +1 -1
  247. package/dist/server.d.ts.map +1 -1
  248. package/dist/server.js +395 -126
  249. package/dist/server.js.map +1 -1
  250. package/dist/server.test.js +111 -123
  251. package/dist/server.test.js.map +1 -1
  252. package/dist/types.d.ts +79 -16
  253. package/dist/types.d.ts.map +1 -1
  254. package/dist/utils/feature.d.ts +42 -0
  255. package/dist/utils/feature.d.ts.map +1 -0
  256. package/dist/utils/feature.js +52 -0
  257. package/dist/utils/feature.js.map +1 -0
  258. package/dist/utils/multi-git.d.ts.map +1 -1
  259. package/dist/utils/multi-git.js +30 -7
  260. package/dist/utils/multi-git.js.map +1 -1
  261. package/dist/utils/session-finder.d.ts +21 -1
  262. package/dist/utils/session-finder.d.ts.map +1 -1
  263. package/dist/utils/session-finder.js +220 -143
  264. package/dist/utils/session-finder.js.map +1 -1
  265. package/dist/utils/session-finder.test.d.ts +2 -0
  266. package/dist/utils/session-finder.test.d.ts.map +1 -0
  267. package/dist/utils/session-finder.test.js +65 -0
  268. package/dist/utils/session-finder.test.js.map +1 -0
  269. package/dist/utils/slug.d.ts +12 -0
  270. package/dist/utils/slug.d.ts.map +1 -0
  271. package/dist/utils/slug.js +18 -0
  272. package/dist/utils/slug.js.map +1 -0
  273. package/dist/utils/test-command.d.ts +12 -0
  274. package/dist/utils/test-command.d.ts.map +1 -0
  275. package/dist/utils/test-command.js +22 -0
  276. package/dist/utils/test-command.js.map +1 -0
  277. package/dist/utils/update-check.d.ts +8 -0
  278. package/dist/utils/update-check.d.ts.map +1 -1
  279. package/dist/utils/update-check.js +13 -7
  280. package/dist/utils/update-check.js.map +1 -1
  281. package/dist/utils/update-check.test.d.ts +2 -0
  282. package/dist/utils/update-check.test.d.ts.map +1 -0
  283. package/dist/utils/update-check.test.js +25 -0
  284. package/dist/utils/update-check.test.js.map +1 -0
  285. package/dist/utils/workflow-advisor.d.ts +2 -2
  286. package/dist/utils/workflow-advisor.d.ts.map +1 -1
  287. package/dist/utils/workflow-advisor.js +50 -92
  288. package/dist/utils/workflow-advisor.js.map +1 -1
  289. package/dist/utils/workflows.d.ts.map +1 -1
  290. package/dist/utils/workflows.js +2 -4
  291. package/dist/utils/workflows.js.map +1 -1
  292. package/package.json +10 -1
  293. package/dist/gui/assets/index-CB-Ekvrs.css +0 -1
  294. package/dist/gui/assets/index-CixLsYSa.js +0 -26
  295. package/dist/utils/local-ai.d.ts +0 -27
  296. package/dist/utils/local-ai.d.ts.map +0 -1
  297. package/dist/utils/local-ai.js +0 -100
  298. package/dist/utils/local-ai.js.map +0 -1
  299. package/dist/utils/local-ai.test.d.ts +0 -2
  300. package/dist/utils/local-ai.test.d.ts.map +0 -1
  301. package/dist/utils/local-ai.test.js +0 -108
  302. package/dist/utils/local-ai.test.js.map +0 -1
@@ -15,6 +15,44 @@ const STATE_FILE = '.nexusflow-running.json';
15
15
  function getStatePath(workspacePath) {
16
16
  return path.join(workspacePath, STATE_FILE);
17
17
  }
18
+ /** PM2 app name for a workspace service: `nexusflow-<workspaceId>-<name>`. */
19
+ export function pm2AppName(workspacePath, serviceName) {
20
+ return `nexusflow-${path.basename(workspacePath)}-${serviceName}`;
21
+ }
22
+ /**
23
+ * Log file for a service. Service names may contain '/' (nested packages,
24
+ * e.g. `repo/sub`), which maps to a nested path under the log dir.
25
+ */
26
+ export function serviceLogFile(logDir, serviceName) {
27
+ return path.join(logDir, `${serviceName}.log`);
28
+ }
29
+ /**
30
+ * Launches a command under PM2 using the shared NexusFlow launch shape: delete
31
+ * any same-named app first (idempotent restart), then start it with stdout and
32
+ * stderr wired to a single log file and no interpreter (run the binary
33
+ * directly). Shared by service and orchestrator starts so their logging and
34
+ * restart behavior can never drift apart.
35
+ */
36
+ export async function pm2Start(opts) {
37
+ await execa('npx', ['pm2', 'delete', opts.name], { reject: false });
38
+ await execa('npx', [
39
+ 'pm2',
40
+ 'start',
41
+ opts.command,
42
+ '--name',
43
+ opts.name,
44
+ '--cwd',
45
+ opts.cwd,
46
+ '-o',
47
+ opts.logFile,
48
+ '-e',
49
+ opts.logFile,
50
+ '--interpreter',
51
+ 'none',
52
+ '--',
53
+ ...opts.args,
54
+ ]);
55
+ }
18
56
  /**
19
57
  * Parses `pm2 jlist` output defensively. npx/pm2 can emit preamble lines before
20
58
  * the JSON array, which would make a bare JSON.parse throw and silently drop us
@@ -50,62 +88,172 @@ export async function getPm2List() {
50
88
  }
51
89
  }
52
90
  /**
53
- * Loads the running state from disk, syncing active status with PM2.
91
+ * Reads the raw on-disk running state without reconciling it against PM2.
92
+ * Callers that need the full recorded set — e.g. the stop path, which must
93
+ * still tear down a crashed orchestrator that {@link loadRunningState} hides —
94
+ * use this instead of the reconciled view.
95
+ *
96
+ * @param workspacePath - Workspace root path.
97
+ */
98
+ export async function readRawRunningState(workspacePath) {
99
+ try {
100
+ return JSON.parse(await fs.readFile(getStatePath(workspacePath), 'utf-8'));
101
+ }
102
+ catch {
103
+ return null;
104
+ }
105
+ }
106
+ /**
107
+ * Loads the running state from disk, syncing active status with PM2. Services
108
+ * and pm2-mode orchestrators are verified against the live PM2 process list and
109
+ * dropped when no longer online (crashed or stopped outside NexusFlow), so the
110
+ * Services tab and dashboard count never show a phantom-running process.
111
+ * One-shot tools (docker compose up -d) have no PM2 app or PID to verify; they
112
+ * are passed through and cleared on explicit stop.
54
113
  *
55
114
  * @param workspacePath - Workspace root path.
56
115
  * @param pm2List - Optional pre-fetched `pm2 jlist` output (see {@link getPm2List}).
57
116
  */
58
117
  export async function loadRunningState(workspacePath, pm2List) {
118
+ const state = await readRawRunningState(workspacePath);
119
+ if (!state)
120
+ return null;
59
121
  try {
60
- const raw = await fs.readFile(getStatePath(workspacePath), 'utf-8');
61
- const state = JSON.parse(raw);
62
- try {
63
- // Query current PM2 process list to verify actual running status
64
- const list = pm2List ?? await getPm2List();
65
- const workspaceId = path.basename(workspacePath);
66
- const prefix = `nexusflow-${workspaceId}-`;
67
- const activeServices = state.services.map((service) => {
68
- const uniqueName = `${prefix}${service.name}`;
69
- const pm2App = list.find((app) => app.name === uniqueName);
70
- const running = pm2App && pm2App.pm2_env?.status === 'online';
71
- return {
72
- ...service,
73
- pid: running ? (pm2App.pid || service.pid) : 0,
74
- };
75
- }).filter((service) => service.pid > 0);
122
+ // Query current PM2 process list to verify actual running status.
123
+ const list = pm2List ?? await getPm2List();
124
+ const isOnline = (name) => {
125
+ const app = list.find((a) => a.name === name);
126
+ return !!app && app.pm2_env?.status === 'online';
127
+ };
128
+ const activeServices = state.services.map((service) => {
129
+ const uniqueName = pm2AppName(workspacePath, service.name);
130
+ const pm2App = list.find((app) => app.name === uniqueName);
131
+ const running = pm2App && pm2App.pm2_env?.status === 'online';
76
132
  return {
77
- ...state,
78
- services: activeServices,
79
- updatedAt: new Date().toISOString(),
133
+ ...service,
134
+ pid: running ? (pm2App.pid || service.pid) : 0,
80
135
  };
81
- }
82
- catch {
83
- // Fallback to cached state on disk if PM2 query fails
84
- return state;
85
- }
136
+ }).filter((service) => service.pid > 0);
137
+ const orchestrators = state.orchestrators?.filter((o) => o.mode !== 'pm2' || !o.pm2Name || isOnline(o.pm2Name));
138
+ return {
139
+ ...state,
140
+ services: activeServices,
141
+ orchestrators,
142
+ updatedAt: new Date().toISOString(),
143
+ };
86
144
  }
87
145
  catch {
88
- return null;
146
+ // Fallback to cached state on disk if PM2 query fails.
147
+ return state;
89
148
  }
90
149
  }
150
+ // ─── State mutation (serialized per workspace) ────────────────────────────────
151
+ /** Per-workspace promise chains so concurrent mutations never lose writes. */
152
+ const stateQueues = new Map();
91
153
  /**
92
- * Saves the running state to disk.
154
+ * Applies a read-modify-write mutation to the raw on-disk running state,
155
+ * serialized per workspace. The mutator receives the current state (a fresh
156
+ * empty one when no file exists) and returns the state to persist; when both
157
+ * services and orchestrators end up empty, the file is removed instead.
93
158
  */
94
- async function saveRunningState(state) {
95
- const data = JSON.stringify(state, null, 2) + '\n';
96
- await fs.writeFile(getStatePath(state.workspacePath), data, 'utf-8');
159
+ export async function mutateRunningState(workspacePath, mutator) {
160
+ const previous = stateQueues.get(workspacePath) ?? Promise.resolve();
161
+ const next = previous.then(async () => {
162
+ let state;
163
+ try {
164
+ state = JSON.parse(await fs.readFile(getStatePath(workspacePath), 'utf-8'));
165
+ }
166
+ catch {
167
+ state = { workspacePath, services: [], updatedAt: new Date().toISOString() };
168
+ }
169
+ const updated = mutator(state);
170
+ updated.updatedAt = new Date().toISOString();
171
+ if (updated.services.length === 0 && (updated.orchestrators?.length ?? 0) === 0) {
172
+ await fs.unlink(getStatePath(workspacePath)).catch(() => { });
173
+ return;
174
+ }
175
+ await fs.writeFile(getStatePath(workspacePath), JSON.stringify(updated, null, 2) + '\n', 'utf-8');
176
+ });
177
+ // Keep the chain alive even when a link fails.
178
+ stateQueues.set(workspacePath, next.catch(() => { }));
179
+ return next;
97
180
  }
181
+ // ─── Per-service lifecycle ────────────────────────────────────────────────────
98
182
  /**
99
- * Clears the running state file.
183
+ * Starts ONE service under PM2 (deleting any same-named app first), resolves
184
+ * its PID, and upserts it into the running state. Returns the running entry,
185
+ * or null when the start failed or the PID could not be resolved.
100
186
  */
101
- async function clearRunningState(workspacePath) {
187
+ export async function startService(service, workspacePath, logDir) {
188
+ const logFile = serviceLogFile(logDir, service.name);
189
+ const uniqueName = pm2AppName(workspacePath, service.name);
190
+ const portStr = service.port ? ` on port ${service.port}` : '';
191
+ console.log(chalk.cyan(` Starting ${chalk.bold(service.name)}${portStr} under PM2...`));
192
+ console.log(chalk.dim(` ${service.command} ${service.args.join(' ')} (in ${service.cwd})`));
102
193
  try {
103
- await fs.unlink(getStatePath(workspacePath));
194
+ await fs.mkdir(path.dirname(logFile), { recursive: true });
195
+ // Start under PM2 (pre-deletes any same-named app), wiring stdout+stderr to
196
+ // the service log via the shared launch shape.
197
+ await pm2Start({
198
+ name: uniqueName,
199
+ command: service.command,
200
+ args: service.args,
201
+ cwd: service.cwd,
202
+ logFile,
203
+ });
204
+ // Retrieve the real PID from PM2
205
+ const pm2List = await getPm2List();
206
+ const pm2App = pm2List.find((app) => app.name === uniqueName);
207
+ const pid = pm2App?.pid || 0;
208
+ if (!pid) {
209
+ console.warn(chalk.yellow(` ⚠ Started ${service.name} but could not resolve PID from PM2.`));
210
+ return null;
211
+ }
212
+ const running = {
213
+ name: service.name,
214
+ pid,
215
+ config: service,
216
+ startedAt: new Date().toISOString(),
217
+ };
218
+ await mutateRunningState(workspacePath, (state) => ({
219
+ ...state,
220
+ services: [...state.services.filter((s) => s.name !== service.name), running],
221
+ }));
222
+ console.log(chalk.green(` ✔ ${service.name} started under PM2 (PID: ${pid})`));
223
+ return running;
104
224
  }
105
- catch {
106
- // File doesn't exist, that's fine
225
+ catch (error) {
226
+ const msg = error instanceof Error ? error.message : String(error);
227
+ console.error(chalk.red(` ✖ Failed to start ${service.name} via PM2: ${msg}`));
228
+ return null;
107
229
  }
108
230
  }
231
+ /**
232
+ * Stops ONE service: deletes its PM2 app and removes it from the running
233
+ * state. Returns whether a PM2 app or state entry existed for it.
234
+ */
235
+ export async function stopService(workspacePath, serviceName) {
236
+ const uniqueName = pm2AppName(workspacePath, serviceName);
237
+ let existed = false;
238
+ const pm2List = await getPm2List();
239
+ if (pm2List.some((app) => app.name === uniqueName)) {
240
+ existed = true;
241
+ await execa('npx', ['pm2', 'delete', uniqueName], { reject: false });
242
+ }
243
+ await mutateRunningState(workspacePath, (state) => {
244
+ if (state.services.some((s) => s.name === serviceName))
245
+ existed = true;
246
+ return { ...state, services: state.services.filter((s) => s.name !== serviceName) };
247
+ });
248
+ return existed;
249
+ }
250
+ /**
251
+ * Restarts ONE service. PM2 starts pre-delete the app, so this is startService
252
+ * — kept as a named export for endpoint and UI clarity.
253
+ */
254
+ export async function restartService(service, workspacePath, logDir) {
255
+ return startService(service, workspacePath, logDir);
256
+ }
109
257
  /**
110
258
  * Starts all services in the given list using PM2.
111
259
  *
@@ -114,73 +262,14 @@ async function clearRunningState(workspacePath) {
114
262
  * @param logDir - Directory to write log files to.
115
263
  */
116
264
  export async function startServices(services, workspacePath, logDir) {
117
- // Ensure log directory exists
118
265
  await fs.mkdir(logDir, { recursive: true });
119
- const runningServices = [];
120
- const workspaceId = path.basename(workspacePath);
121
266
  for (const service of services) {
122
- const logFile = path.join(logDir, `${service.name}.log`);
123
- const portStr = service.port ? ` on port ${service.port}` : '';
124
- const uniqueName = `nexusflow-${workspaceId}-${service.name}`;
125
- console.log(chalk.cyan(` Starting ${chalk.bold(service.name)}${portStr} under PM2...`));
126
- console.log(chalk.dim(` ${service.command} ${service.args.join(' ')} (in ${service.cwd})`));
127
- try {
128
- // Ensure parent directory for this log file exists
129
- await fs.mkdir(path.dirname(logFile), { recursive: true });
130
- // Delete any existing PM2 configuration with the same name to avoid duplicate starts
131
- await execa('npx', ['pm2', 'delete', uniqueName], { reject: false });
132
- // Start the service using PM2 as a direct process execution
133
- await execa('npx', [
134
- 'pm2',
135
- 'start',
136
- service.command,
137
- '--name',
138
- uniqueName,
139
- '--cwd',
140
- service.cwd,
141
- '-o',
142
- logFile,
143
- '-e',
144
- logFile,
145
- '--interpreter',
146
- 'none',
147
- '--',
148
- ...service.args
149
- ]);
150
- // Retrieve the real PID from PM2
151
- const { stdout } = await execa('npx', ['pm2', 'jlist']);
152
- const pm2List = parsePm2Json(stdout);
153
- const pm2App = pm2List.find((app) => app.name === uniqueName);
154
- const pid = pm2App?.pid || 0;
155
- if (pid) {
156
- runningServices.push({
157
- name: service.name,
158
- pid,
159
- config: service,
160
- startedAt: new Date().toISOString(),
161
- });
162
- console.log(chalk.green(` ✔ ${service.name} started under PM2 (PID: ${pid})`));
163
- }
164
- else {
165
- console.warn(chalk.yellow(` ⚠ Started ${service.name} but could not resolve PID from PM2.`));
166
- }
167
- }
168
- catch (error) {
169
- const msg = error instanceof Error ? error.message : String(error);
170
- console.error(chalk.red(` ✖ Failed to start ${service.name} via PM2: ${msg}`));
171
- }
172
- }
173
- // Save state
174
- if (runningServices.length > 0) {
175
- await saveRunningState({
176
- workspacePath,
177
- services: runningServices,
178
- updatedAt: new Date().toISOString(),
179
- });
267
+ await startService(service, workspacePath, logDir);
180
268
  }
181
269
  }
182
270
  /**
183
- * Stops all services for a workspace under PM2.
271
+ * Stops all services for a workspace under PM2. Orchestrator entries in the
272
+ * running state are preserved — they are stopped separately.
184
273
  *
185
274
  * @param workspacePath - Workspace root path.
186
275
  */
@@ -188,10 +277,17 @@ export async function stopServices(workspacePath) {
188
277
  const workspaceId = path.basename(workspacePath);
189
278
  const prefix = `nexusflow-${workspaceId}-`;
190
279
  console.log(chalk.cyan(` Stopping all services under PM2 for workspace: ${workspaceId}...`));
280
+ // Never tear down a recorded orchestrator as part of a service stop-all —
281
+ // they are stopped separately. Exclude their PM2 app names by exact match
282
+ // (not by an `orch-` name prefix) so a service literally named `orch-*` is
283
+ // still stopped.
284
+ const raw = await readRawRunningState(workspacePath);
285
+ const orchNames = new Set((raw?.orchestrators ?? [])
286
+ .map((o) => o.pm2Name)
287
+ .filter((n) => typeof n === 'string'));
191
288
  try {
192
- const { stdout } = await execa('npx', ['pm2', 'jlist']);
193
- const pm2List = JSON.parse(stdout);
194
- const targetApps = pm2List.filter((app) => app.name && app.name.startsWith(prefix));
289
+ const pm2List = await getPm2List();
290
+ const targetApps = pm2List.filter((app) => app.name && app.name.startsWith(prefix) && !orchNames.has(app.name));
195
291
  if (targetApps.length === 0) {
196
292
  console.log(chalk.yellow(' No running services found for this workspace.'));
197
293
  }
@@ -206,7 +302,7 @@ export async function stopServices(workspacePath) {
206
302
  catch (error) {
207
303
  console.error(chalk.red(` ✖ Failed to stop services via PM2: ${error.message}`));
208
304
  }
209
- await clearRunningState(workspacePath);
305
+ await mutateRunningState(workspacePath, (state) => ({ ...state, services: [] }));
210
306
  }
211
307
  /**
212
308
  * Shows the status of all services in a workspace by querying PM2.
@@ -217,8 +313,7 @@ export async function getServiceStatus(workspacePath) {
217
313
  const workspaceId = path.basename(workspacePath);
218
314
  const prefix = `nexusflow-${workspaceId}-`;
219
315
  try {
220
- const { stdout } = await execa('npx', ['pm2', 'jlist']);
221
- const pm2List = JSON.parse(stdout);
316
+ const pm2List = await getPm2List();
222
317
  const targetApps = pm2List.filter((app) => app.name && app.name.startsWith(prefix));
223
318
  if (targetApps.length === 0) {
224
319
  console.log(chalk.yellow(' No running services found for this workspace in PM2.'));
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/orchestration/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/orchestration/runner.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
2
  import * as fs from 'node:fs/promises';
3
3
  import { execa } from 'execa';
4
4
  import * as path from 'node:path';
5
- import { getPm2List, loadRunningState, parsePm2Json } from './runner.js';
5
+ import { getPm2List, loadRunningState, parsePm2Json, pm2AppName, serviceLogFile, startService, stopService, stopServices, } from './runner.js';
6
6
  vi.mock('node:fs/promises');
7
7
  vi.mock('execa');
8
8
  function service(name, cwd) {
@@ -67,5 +67,129 @@ describe('orchestration runner PM2 state handling', () => {
67
67
  expect(runningState?.services[0]?.pid).toBe(333);
68
68
  expect(execa).not.toHaveBeenCalled();
69
69
  });
70
+ it('loadRunningState keeps one-shot orchestrators (no PM2 app to verify)', async () => {
71
+ const workspacePath = path.join(process.cwd(), 'feature-b');
72
+ const state = {
73
+ workspacePath,
74
+ services: [],
75
+ orchestrators: [
76
+ { id: 'docker-compose:docker-compose.yml', tool: 'docker-compose', configPath: 'x', mode: 'oneshot', startedAt: '2026-01-01T00:00:00.000Z' },
77
+ ],
78
+ updatedAt: '2026-01-01T00:00:00.000Z',
79
+ };
80
+ vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify(state));
81
+ const running = await loadRunningState(workspacePath, []);
82
+ expect(running?.orchestrators).toHaveLength(1);
83
+ expect(running?.orchestrators?.[0]?.tool).toBe('docker-compose');
84
+ });
85
+ it('loadRunningState drops pm2-mode orchestrators whose PM2 app is offline, keeps online ones', async () => {
86
+ const workspacePath = path.join(process.cwd(), 'feature-c');
87
+ const state = {
88
+ workspacePath,
89
+ services: [],
90
+ orchestrators: [
91
+ { id: 'tilt:a/Tiltfile', tool: 'tilt', configPath: 'a/Tiltfile', mode: 'pm2', pm2Name: 'nexusflow-feature-c-orch-tilt-a-tiltfile', logName: 'orch-tilt-a-tiltfile', startedAt: 'x' },
92
+ { id: 'makefile:b/Makefile', tool: 'makefile', configPath: 'b/Makefile', mode: 'pm2', pm2Name: 'nexusflow-feature-c-orch-makefile-b-makefile', logName: 'orch-makefile-b-makefile', startedAt: 'x' },
93
+ ],
94
+ updatedAt: 'x',
95
+ };
96
+ vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify(state));
97
+ const running = await loadRunningState(workspacePath, [
98
+ { name: 'nexusflow-feature-c-orch-tilt-a-tiltfile', pm2_env: { status: 'online' } },
99
+ { name: 'nexusflow-feature-c-orch-makefile-b-makefile', pm2_env: { status: 'errored' } },
100
+ ]);
101
+ // The errored makefile orchestrator is dropped; the online tilt one stays.
102
+ expect(running?.orchestrators?.map((o) => o.tool)).toEqual(['tilt']);
103
+ });
104
+ describe('per-service lifecycle', () => {
105
+ it('pm2AppName and serviceLogFile derive workspace-scoped names', () => {
106
+ const ws = path.join(process.cwd(), 'my-ws');
107
+ expect(pm2AppName(ws, 'api')).toBe('nexusflow-my-ws-api');
108
+ expect(serviceLogFile('/logs', 'api')).toBe(path.join('/logs', 'api.log'));
109
+ });
110
+ it('startService deletes any existing app, starts PM2, resolves the PID and upserts state', async () => {
111
+ const ws = path.join(process.cwd(), 'my-ws');
112
+ // fs: mkdir (log dir), then mutateRunningState reads (ENOENT) + writes.
113
+ vi.mocked(fs.mkdir).mockResolvedValue(undefined);
114
+ vi.mocked(fs.readFile).mockRejectedValue(new Error('ENOENT'));
115
+ vi.mocked(fs.writeFile).mockResolvedValue(undefined);
116
+ vi.mocked(execa)
117
+ .mockResolvedValueOnce({ stdout: '' }) // pm2 delete
118
+ .mockResolvedValueOnce({ stdout: '' }) // pm2 start
119
+ .mockResolvedValueOnce({ stdout: '[{"name":"nexusflow-my-ws-api","pid":4321}]' }); // pm2 jlist
120
+ const running = await startService(service('api', ws), ws, '/logs');
121
+ expect(running?.pid).toBe(4321);
122
+ const calls = vi.mocked(execa).mock.calls;
123
+ expect(calls[0]).toEqual(['npx', ['pm2', 'delete', 'nexusflow-my-ws-api'], { reject: false }]);
124
+ expect(calls[1]?.[1]).toContain('start');
125
+ expect(calls[1]?.[1]).toContain('nexusflow-my-ws-api');
126
+ // State written with the running service.
127
+ const written = JSON.parse(vi.mocked(fs.writeFile).mock.calls.at(-1)?.[1]);
128
+ expect(written.services.map((s) => s.name)).toEqual(['api']);
129
+ });
130
+ it('startService returns null when the PID cannot be resolved', async () => {
131
+ const ws = path.join(process.cwd(), 'my-ws');
132
+ vi.mocked(fs.mkdir).mockResolvedValue(undefined);
133
+ vi.mocked(execa)
134
+ .mockResolvedValueOnce({ stdout: '' })
135
+ .mockResolvedValueOnce({ stdout: '' })
136
+ .mockResolvedValueOnce({ stdout: '[]' }); // jlist: app not found
137
+ expect(await startService(service('api', ws), ws, '/logs')).toBeNull();
138
+ });
139
+ it('stopService deletes the PM2 app and removes it from state', async () => {
140
+ const ws = path.join(process.cwd(), 'my-ws');
141
+ const state = {
142
+ workspacePath: ws,
143
+ services: [{ name: 'api', pid: 1, config: service('api', ws), startedAt: 'x' }],
144
+ updatedAt: 'x',
145
+ };
146
+ vi.mocked(execa)
147
+ .mockResolvedValueOnce({ stdout: '[{"name":"nexusflow-my-ws-api"}]' }) // jlist
148
+ .mockResolvedValueOnce({ stdout: '' }); // pm2 delete
149
+ vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify(state));
150
+ vi.mocked(fs.unlink).mockResolvedValue(undefined);
151
+ expect(await stopService(ws, 'api')).toBe(true);
152
+ expect(vi.mocked(execa).mock.calls[1]).toEqual(['npx', ['pm2', 'delete', 'nexusflow-my-ws-api'], { reject: false }]);
153
+ // Services now empty → state file removed.
154
+ expect(fs.unlink).toHaveBeenCalled();
155
+ });
156
+ });
157
+ describe('stop-all carve-out', () => {
158
+ it('stops orch-* named services but excludes recorded orchestrator apps', async () => {
159
+ const ws = path.join(process.cwd(), 'my-ws');
160
+ const state = {
161
+ workspacePath: ws,
162
+ services: [],
163
+ orchestrators: [
164
+ { id: 'tilt:Tiltfile', tool: 'tilt', configPath: 'Tiltfile', mode: 'pm2', pm2Name: 'nexusflow-my-ws-orch-tilt-tiltfile', logName: 'orch-tilt-tiltfile', startedAt: 'x' },
165
+ ],
166
+ updatedAt: 'x',
167
+ };
168
+ // readRawRunningState + mutateRunningState both read the state file.
169
+ vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify(state));
170
+ vi.mocked(fs.writeFile).mockResolvedValue(undefined);
171
+ vi.mocked(fs.unlink).mockResolvedValue(undefined);
172
+ vi.mocked(execa)
173
+ // getPm2List (jlist): the real orchestrator, a SERVICE literally named
174
+ // orch-worker, and a plain service.
175
+ .mockResolvedValueOnce({
176
+ stdout: JSON.stringify([
177
+ { name: 'nexusflow-my-ws-orch-tilt-tiltfile' },
178
+ { name: 'nexusflow-my-ws-orch-worker' },
179
+ { name: 'nexusflow-my-ws-api' },
180
+ ]),
181
+ })
182
+ .mockResolvedValue({ stdout: '' }); // subsequent pm2 delete calls
183
+ await stopServices(ws);
184
+ const deleted = vi.mocked(execa).mock.calls
185
+ .filter((c) => c[1]?.[1] === 'delete')
186
+ .map((c) => c[1][2]);
187
+ // The orch-* SERVICE and the plain service are stopped...
188
+ expect(deleted).toContain('nexusflow-my-ws-orch-worker');
189
+ expect(deleted).toContain('nexusflow-my-ws-api');
190
+ // ...but the recorded orchestrator app is left running.
191
+ expect(deleted).not.toContain('nexusflow-my-ws-orch-tilt-tiltfile');
192
+ });
193
+ });
70
194
  });
71
195
  //# sourceMappingURL=runner.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../../src/orchestration/runner.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../../src/orchestration/runner.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAsE5B,eAAO,MAAM,GAAG,4EAAa,CAAC;AAW9B,yEAAyE;AACzE,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,SAA2B;CAI/C;AAcD,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/E;AAWD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAc7D;AAq9CD,wBAAgB,WAAW,CACzB,IAAI,SAAO,EACX,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,CAwBxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAiF5B,eAAO,MAAM,GAAG,4EAAa,CAAC;AAoH9B,yEAAyE;AACzE,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,SAA2B;CAI/C;AAcD,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/E;AAWD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAc7D;AAipDD,wBAAgB,WAAW,CACzB,IAAI,SAAO,EACX,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,CA0BxC"}