@omnitron-dev/omnitron 0.1.3 → 0.2.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 (268) hide show
  1. package/dist/cli/omnitron.js +32 -1
  2. package/dist/cli/omnitron.js.map +1 -1
  3. package/dist/cluster/leader-election.d.ts.map +1 -1
  4. package/dist/cluster/leader-election.js +0 -2
  5. package/dist/cluster/leader-election.js.map +1 -1
  6. package/dist/commands/env.d.ts.map +1 -1
  7. package/dist/commands/env.js +10 -2
  8. package/dist/commands/env.js.map +1 -1
  9. package/dist/commands/health.d.ts.map +1 -1
  10. package/dist/commands/health.js +10 -2
  11. package/dist/commands/health.js.map +1 -1
  12. package/dist/commands/inspect-graph.d.ts +20 -0
  13. package/dist/commands/inspect-graph.d.ts.map +1 -0
  14. package/dist/commands/inspect-graph.js +78 -0
  15. package/dist/commands/inspect-graph.js.map +1 -0
  16. package/dist/commands/inspect.d.ts.map +1 -1
  17. package/dist/commands/inspect.js +10 -2
  18. package/dist/commands/inspect.js.map +1 -1
  19. package/dist/commands/list.d.ts.map +1 -1
  20. package/dist/commands/list.js +11 -1
  21. package/dist/commands/list.js.map +1 -1
  22. package/dist/commands/logs.d.ts.map +1 -1
  23. package/dist/commands/logs.js +17 -3
  24. package/dist/commands/logs.js.map +1 -1
  25. package/dist/commands/metrics.d.ts.map +1 -1
  26. package/dist/commands/metrics.js +10 -2
  27. package/dist/commands/metrics.js.map +1 -1
  28. package/dist/commands/monit.d.ts.map +1 -1
  29. package/dist/commands/monit.js +9 -0
  30. package/dist/commands/monit.js.map +1 -1
  31. package/dist/commands/output.d.ts +35 -0
  32. package/dist/commands/output.d.ts.map +1 -0
  33. package/dist/commands/output.js +63 -0
  34. package/dist/commands/output.js.map +1 -0
  35. package/dist/commands/stack.d.ts.map +1 -1
  36. package/dist/commands/stack.js +22 -7
  37. package/dist/commands/stack.js.map +1 -1
  38. package/dist/commands/status.d.ts.map +1 -1
  39. package/dist/commands/status.js +17 -0
  40. package/dist/commands/status.js.map +1 -1
  41. package/dist/commands/tor.d.ts +13 -0
  42. package/dist/commands/tor.d.ts.map +1 -0
  43. package/dist/commands/tor.js +100 -0
  44. package/dist/commands/tor.js.map +1 -0
  45. package/dist/commands/up.js +1 -1
  46. package/dist/commands/up.js.map +1 -1
  47. package/dist/config/loader.d.ts.map +1 -1
  48. package/dist/config/loader.js +29 -5
  49. package/dist/config/loader.js.map +1 -1
  50. package/dist/config/types.d.ts +14 -0
  51. package/dist/config/types.d.ts.map +1 -1
  52. package/dist/daemon/daemon-client.d.ts +14 -0
  53. package/dist/daemon/daemon-client.d.ts.map +1 -1
  54. package/dist/daemon/daemon-client.js +4 -0
  55. package/dist/daemon/daemon-client.js.map +1 -1
  56. package/dist/daemon/daemon-entry.js +17 -23
  57. package/dist/daemon/daemon-entry.js.map +1 -1
  58. package/dist/daemon/daemon.d.ts +2 -0
  59. package/dist/daemon/daemon.d.ts.map +1 -1
  60. package/dist/daemon/daemon.js +118 -7
  61. package/dist/daemon/daemon.js.map +1 -1
  62. package/dist/daemon/daemon.module.d.ts.map +1 -1
  63. package/dist/daemon/daemon.module.js +41 -14
  64. package/dist/daemon/daemon.module.js.map +1 -1
  65. package/dist/daemon/daemon.rpc-service.d.ts +19 -0
  66. package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
  67. package/dist/daemon/daemon.rpc-service.js +14 -0
  68. package/dist/daemon/daemon.rpc-service.js.map +1 -1
  69. package/dist/daemon/pid-manager.d.ts +55 -4
  70. package/dist/daemon/pid-manager.d.ts.map +1 -1
  71. package/dist/daemon/pid-manager.js +123 -16
  72. package/dist/daemon/pid-manager.js.map +1 -1
  73. package/dist/daemon/state-store.d.ts.map +1 -1
  74. package/dist/daemon/state-store.js +43 -1
  75. package/dist/daemon/state-store.js.map +1 -1
  76. package/dist/infrastructure/container-runtime.d.ts +10 -0
  77. package/dist/infrastructure/container-runtime.d.ts.map +1 -1
  78. package/dist/infrastructure/container-runtime.js +111 -36
  79. package/dist/infrastructure/container-runtime.js.map +1 -1
  80. package/dist/infrastructure/infrastructure.service.d.ts +41 -0
  81. package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
  82. package/dist/infrastructure/infrastructure.service.js +157 -8
  83. package/dist/infrastructure/infrastructure.service.js.map +1 -1
  84. package/dist/infrastructure/phantom-endpoint-janitor.d.ts +72 -0
  85. package/dist/infrastructure/phantom-endpoint-janitor.d.ts.map +1 -0
  86. package/dist/infrastructure/phantom-endpoint-janitor.js +149 -0
  87. package/dist/infrastructure/phantom-endpoint-janitor.js.map +1 -0
  88. package/dist/infrastructure/presets/index.d.ts.map +1 -1
  89. package/dist/infrastructure/presets/index.js +2 -0
  90. package/dist/infrastructure/presets/index.js.map +1 -1
  91. package/dist/infrastructure/presets/postgres.d.ts.map +1 -1
  92. package/dist/infrastructure/presets/postgres.js +9 -3
  93. package/dist/infrastructure/presets/postgres.js.map +1 -1
  94. package/dist/infrastructure/presets/redis.d.ts.map +1 -1
  95. package/dist/infrastructure/presets/redis.js +10 -4
  96. package/dist/infrastructure/presets/redis.js.map +1 -1
  97. package/dist/infrastructure/presets/registry.d.ts.map +1 -1
  98. package/dist/infrastructure/presets/registry.js +12 -0
  99. package/dist/infrastructure/presets/registry.js.map +1 -1
  100. package/dist/infrastructure/presets/tor.d.ts +74 -0
  101. package/dist/infrastructure/presets/tor.d.ts.map +1 -0
  102. package/dist/infrastructure/presets/tor.js +176 -0
  103. package/dist/infrastructure/presets/tor.js.map +1 -0
  104. package/dist/infrastructure/service-resolver.d.ts +31 -0
  105. package/dist/infrastructure/service-resolver.d.ts.map +1 -1
  106. package/dist/infrastructure/service-resolver.js +60 -9
  107. package/dist/infrastructure/service-resolver.js.map +1 -1
  108. package/dist/infrastructure/stack-infra-manager.d.ts +1 -1
  109. package/dist/infrastructure/stack-infra-manager.js +1 -1
  110. package/dist/infrastructure/types.d.ts +17 -0
  111. package/dist/infrastructure/types.d.ts.map +1 -1
  112. package/dist/observability/index.d.ts +4 -0
  113. package/dist/observability/index.d.ts.map +1 -0
  114. package/dist/observability/index.js +3 -0
  115. package/dist/observability/index.js.map +1 -0
  116. package/dist/observability/metrics-bridge.d.ts +87 -0
  117. package/dist/observability/metrics-bridge.d.ts.map +1 -0
  118. package/dist/observability/metrics-bridge.js +295 -0
  119. package/dist/observability/metrics-bridge.js.map +1 -0
  120. package/dist/observability/metrics-server.d.ts +68 -0
  121. package/dist/observability/metrics-server.d.ts.map +1 -0
  122. package/dist/observability/metrics-server.js +146 -0
  123. package/dist/observability/metrics-server.js.map +1 -0
  124. package/dist/orchestrator/app-handle.d.ts +13 -1
  125. package/dist/orchestrator/app-handle.d.ts.map +1 -1
  126. package/dist/orchestrator/app-handle.js +12 -0
  127. package/dist/orchestrator/app-handle.js.map +1 -1
  128. package/dist/orchestrator/bootstrap-process.d.ts +49 -0
  129. package/dist/orchestrator/bootstrap-process.d.ts.map +1 -1
  130. package/dist/orchestrator/bootstrap-process.js +167 -0
  131. package/dist/orchestrator/bootstrap-process.js.map +1 -1
  132. package/dist/orchestrator/build-service.d.ts +50 -3
  133. package/dist/orchestrator/build-service.d.ts.map +1 -1
  134. package/dist/orchestrator/build-service.js +357 -85
  135. package/dist/orchestrator/build-service.js.map +1 -1
  136. package/dist/orchestrator/file-watcher.d.ts.map +1 -1
  137. package/dist/orchestrator/file-watcher.js +60 -38
  138. package/dist/orchestrator/file-watcher.js.map +1 -1
  139. package/dist/orchestrator/orchestrator.service.d.ts +176 -3
  140. package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
  141. package/dist/orchestrator/orchestrator.service.js +587 -56
  142. package/dist/orchestrator/orchestrator.service.js.map +1 -1
  143. package/dist/orchestrator/process-janitor.d.ts +153 -0
  144. package/dist/orchestrator/process-janitor.d.ts.map +1 -0
  145. package/dist/orchestrator/process-janitor.js +279 -0
  146. package/dist/orchestrator/process-janitor.js.map +1 -0
  147. package/dist/project/config-resolver.d.ts.map +1 -1
  148. package/dist/project/config-resolver.js +38 -12
  149. package/dist/project/config-resolver.js.map +1 -1
  150. package/dist/project/registry.d.ts +1 -0
  151. package/dist/project/registry.d.ts.map +1 -1
  152. package/dist/project/registry.js +30 -0
  153. package/dist/project/registry.js.map +1 -1
  154. package/dist/services/auth.service.d.ts.map +1 -1
  155. package/dist/services/auth.service.js +9 -2
  156. package/dist/services/auth.service.js.map +1 -1
  157. package/dist/services/netron-telemetry-transport.d.ts.map +1 -1
  158. package/dist/services/netron-telemetry-transport.js +0 -4
  159. package/dist/services/netron-telemetry-transport.js.map +1 -1
  160. package/dist/services/node-manager.service.js +1 -1
  161. package/dist/services/node-manager.service.js.map +1 -1
  162. package/dist/services/pipeline.service.d.ts +15 -0
  163. package/dist/services/pipeline.service.d.ts.map +1 -1
  164. package/dist/services/pipeline.service.js +53 -2
  165. package/dist/services/pipeline.service.js.map +1 -1
  166. package/dist/services/project.rpc-service.d.ts +4 -0
  167. package/dist/services/project.rpc-service.d.ts.map +1 -1
  168. package/dist/services/project.rpc-service.js +9 -0
  169. package/dist/services/project.rpc-service.js.map +1 -1
  170. package/dist/services/project.service.d.ts +9 -0
  171. package/dist/services/project.service.d.ts.map +1 -1
  172. package/dist/services/project.service.js +148 -21
  173. package/dist/services/project.service.js.map +1 -1
  174. package/dist/shared/dto/project.d.ts +1 -1
  175. package/dist/shared/dto/project.d.ts.map +1 -1
  176. package/dist/shared/dto/services.d.ts +24 -0
  177. package/dist/shared/dto/services.d.ts.map +1 -1
  178. package/dist/workers/health-monitor.service.d.ts.map +1 -1
  179. package/dist/workers/health-monitor.service.js +4 -1
  180. package/dist/workers/health-monitor.service.js.map +1 -1
  181. package/dist/workers/types.d.ts +3 -0
  182. package/dist/workers/types.d.ts.map +1 -1
  183. package/package.json +19 -18
  184. package/webapp/dist/assets/Badge-D2ZBP5iK.js +1 -0
  185. package/webapp/dist/assets/Card-vO88g06B.js +1 -0
  186. package/webapp/dist/assets/CardActions-C9h7Q2wW.js +1 -0
  187. package/webapp/dist/assets/CardContent-BA_Xmmhk.js +1 -0
  188. package/webapp/dist/assets/CardHeader-ceIs__6x.js +1 -0
  189. package/webapp/dist/assets/Chip-Ckk0xUhK.js +1 -0
  190. package/webapp/dist/assets/DialogActions-BhHM7hov.js +1 -0
  191. package/webapp/dist/assets/DialogContentText-BT2JQRmK.js +1 -0
  192. package/webapp/dist/assets/FormControlLabel-CcQByVS8.js +1 -0
  193. package/webapp/dist/assets/Grid-14PETRQW.js +1 -0
  194. package/webapp/dist/assets/InputAdornment-B8aHIsQ7.js +1 -0
  195. package/webapp/dist/assets/Skeleton-B74-Ds6O.js +37 -0
  196. package/webapp/dist/assets/Switch-DvWD2wh4.js +1 -0
  197. package/webapp/dist/assets/SwitchBase-CDU4nY8O.js +1 -0
  198. package/webapp/dist/assets/Tab-DcCOYYp5.js +1 -0
  199. package/webapp/dist/assets/TableContainer-CzTh4mu-.js +1 -0
  200. package/webapp/dist/assets/TableRow-BySEreZR.js +2 -0
  201. package/webapp/dist/assets/TextField-BLf-BHz2.js +1 -0
  202. package/webapp/dist/assets/alerts-DnRbT41C.js +1 -0
  203. package/webapp/dist/assets/apps-CdR0VH2d.js +1 -0
  204. package/webapp/dist/assets/chunk-DtcAfS_W.js +1 -0
  205. package/webapp/dist/assets/client-DU8I_lDc.js +2 -0
  206. package/webapp/dist/assets/containers-Dw-rRXV1.js +1 -0
  207. package/webapp/dist/assets/dashboard-CzgB0uZz.js +1 -0
  208. package/webapp/dist/assets/dashboard-builder-DsA0yg33.js +1 -0
  209. package/webapp/dist/assets/deployments-DtQAoIcQ.js +1 -0
  210. package/webapp/dist/assets/detail-BJR-G7JG.js +1 -0
  211. package/webapp/dist/assets/detail-nlCeSltl.js +8 -0
  212. package/webapp/dist/assets/index-ByQDwp2r.js +566 -0
  213. package/webapp/dist/assets/isMuiElement-DwF2naaF.js +1 -0
  214. package/webapp/dist/assets/logs-Kn8o4H7k.js +11 -0
  215. package/webapp/dist/assets/metrics-DN8Zu5wT.js +2 -0
  216. package/webapp/dist/assets/nodes-Bgch7AtN.js +7 -0
  217. package/webapp/dist/assets/pipelines-Cry3qm-S.js +4 -0
  218. package/webapp/dist/assets/popper-BJFSj6rc.js +1 -0
  219. package/webapp/dist/assets/preload-helper-DSXbuxSR.js +1 -0
  220. package/webapp/dist/assets/projects-Dym2GI1U.js +1 -0
  221. package/webapp/dist/assets/react-apexcharts.esm-CSGK5Cxn.js +958 -0
  222. package/webapp/dist/assets/react-apexcharts.esm-DEAWOwx5.js +1003 -0
  223. package/webapp/dist/assets/settings-va3zTcow.js +1 -0
  224. package/webapp/dist/assets/sign-in-ik35umbp.js +1 -0
  225. package/webapp/dist/assets/stacks-CVFOnxbF.js +1 -0
  226. package/webapp/dist/assets/system-info-npIXAjX2.js +1 -0
  227. package/webapp/dist/assets/topology-bDe70vLs.js +12 -0
  228. package/webapp/dist/assets/traces-DIIcT8DF.js +1 -0
  229. package/webapp/dist/assets/use-stack-context-DHLwZv1r.js +1 -0
  230. package/webapp/dist/index.html +5 -6
  231. package/webapp/dist/assets/Chip-BySxTjyN.js +0 -1
  232. package/webapp/dist/assets/DialogContentText-YQWiAVrU.js +0 -1
  233. package/webapp/dist/assets/DialogTitle-CDkgUIwp.js +0 -1
  234. package/webapp/dist/assets/FormControlLabel-Bu3CCsBM.js +0 -1
  235. package/webapp/dist/assets/Grid-BFY8hAzL.js +0 -1
  236. package/webapp/dist/assets/InputAdornment-_Dayk-3y.js +0 -3
  237. package/webapp/dist/assets/Skeleton-BGj6Sw8m.js +0 -37
  238. package/webapp/dist/assets/Switch-CA6682vv.js +0 -1
  239. package/webapp/dist/assets/TableContainer-4epq10KJ.js +0 -1
  240. package/webapp/dist/assets/TextField-C73KHMVN.js +0 -1
  241. package/webapp/dist/assets/alerts-JEQALS7Y.js +0 -1
  242. package/webapp/dist/assets/apps-DMPysEKB.js +0 -1
  243. package/webapp/dist/assets/client-DlGPter5.js +0 -110
  244. package/webapp/dist/assets/containers-CvkC7do8.js +0 -1
  245. package/webapp/dist/assets/dashboard-C0Fre9pC.js +0 -1
  246. package/webapp/dist/assets/dashboard-builder-DAghqdpE.js +0 -1
  247. package/webapp/dist/assets/deployments-Cg1lI1uT.js +0 -1
  248. package/webapp/dist/assets/detail-CyFtEson.js +0 -1
  249. package/webapp/dist/assets/detail-DqoSGKT1.js +0 -8
  250. package/webapp/dist/assets/icons-ynIWYfBP.js +0 -3
  251. package/webapp/dist/assets/index-vKrDmEA_.js +0 -259
  252. package/webapp/dist/assets/isMuiElement-BRL3YuCT.js +0 -1
  253. package/webapp/dist/assets/logs-IovIij1C.js +0 -11
  254. package/webapp/dist/assets/metrics-Dufwtwjq.js +0 -1
  255. package/webapp/dist/assets/nodes-Brvu8W3j.js +0 -7
  256. package/webapp/dist/assets/pipelines-t40X4MuC.js +0 -4
  257. package/webapp/dist/assets/prop-types-CvVtHxp4.js +0 -1
  258. package/webapp/dist/assets/react-apexcharts.esm-CLO6gala.js +0 -954
  259. package/webapp/dist/assets/settings-DTAIST3v.js +0 -1
  260. package/webapp/dist/assets/sign-in-DQEAkJum.js +0 -1
  261. package/webapp/dist/assets/stacks-BjM1f45N.js +0 -1
  262. package/webapp/dist/assets/system-info-BQSbSEK-.js +0 -1
  263. package/webapp/dist/assets/topology-6N8-Az_Z.js +0 -12
  264. package/webapp/dist/assets/traces-DVXyb-4m.js +0 -1
  265. package/webapp/dist/assets/use-stack-context-CbE8fxBA.js +0 -1
  266. /package/webapp/dist/assets/{constants-DqFQJ27U.js → constants-BgnT-Xdy.js} +0 -0
  267. /package/webapp/dist/assets/{formatters-J3Xqn6BQ.js → formatters-Do41SRmE.js} +0 -0
  268. /package/webapp/dist/assets/{fs-uP8eiZAR.js → fs-CgZLtHiQ.js} +0 -0
@@ -118,6 +118,18 @@ export class FileWatcher {
118
118
  this.logger.debug({ app: entry.name }, 'File watching disabled for this app');
119
119
  return;
120
120
  }
121
+ // Bootstrap-mode apps get their import graph watched precisely by
122
+ // BuildService (esbuild context.watch) — running fs.watch on the same
123
+ // tree on top of that would deliver duplicate restart triggers (often
124
+ // staggered, often within the same debounce window) and was a primary
125
+ // contributor to the dev-mode restart storms. esbuild watch knows
126
+ // EXACTLY which files contribute to the bundle; fs.watch is a
127
+ // strictly less-precise superset that includes generated files,
128
+ // editor scratch artefacts, and unrelated paths.
129
+ if (entry.bootstrap) {
130
+ this.logger.debug({ app: entry.name }, 'Bootstrap-mode app — using esbuild import-graph watcher only (fs.watch skipped)');
131
+ return;
132
+ }
121
133
  // Resolve watch directories from config
122
134
  const { dirs, extraIgnore, debounce } = this.resolveWatchConfig(entry);
123
135
  if (dirs.length === 0) {
@@ -137,7 +149,11 @@ export class FileWatcher {
137
149
  try {
138
150
  for (const dir of dirs) {
139
151
  if (!fs.existsSync(dir)) {
140
- this.logger.warn({ app: entry.name, directory: dir }, 'Watch directory does not exist — skipping');
152
+ // ERROR — not WARN — because a missing watch directory means
153
+ // dev-mode hot reload is silently broken for this app. Misconfig
154
+ // (relative path resolved against the wrong base) used to slip
155
+ // through unnoticed; surface it loudly.
156
+ this.logger.error({ app: entry.name, directory: dir, base: entry.cwd ?? this.cwd }, 'Watch directory does not exist — file watching disabled for this path');
141
157
  continue;
142
158
  }
143
159
  const w = fs.watch(dir, { recursive: true }, (eventType, filename) => {
@@ -146,12 +162,12 @@ export class FileWatcher {
146
162
  this.onFileChange(watched, filename, eventType);
147
163
  });
148
164
  w.on('error', (err) => {
149
- this.logger.warn({ app: entry.name, error: err.message }, 'File watcher error');
165
+ this.logger.error({ app: entry.name, error: err.message }, 'File watcher error');
150
166
  });
151
167
  watched.watchers.push(w);
152
168
  }
153
169
  if (watched.watchers.length === 0) {
154
- this.logger.warn({ app: entry.name }, 'No valid watch directories — skipping');
170
+ this.logger.error({ app: entry.name, attempted: dirs }, 'No valid watch directories — dev-mode hot reload is DISABLED for this app');
155
171
  return;
156
172
  }
157
173
  this.apps.set(entry.name, watched);
@@ -169,10 +185,16 @@ export class FileWatcher {
169
185
  }
170
186
  resolveWatchConfig(entry) {
171
187
  const watchValue = entry.watch;
188
+ // Resolve relative paths against the entry's PROJECT root, not the
189
+ // daemon's cwd. The daemon may have been launched from anywhere; only
190
+ // the entry knows where its config came from. Stamped by the config
191
+ // loader; falls back to daemon cwd only when the entry pre-dates that
192
+ // stamping (e.g., synthetic / test configs).
193
+ const resolveBase = entry.cwd ?? this.cwd;
172
194
  // Explicit string — single directory
173
195
  if (typeof watchValue === 'string') {
174
196
  return {
175
- dirs: [path.resolve(this.cwd, watchValue)],
197
+ dirs: [path.resolve(resolveBase, watchValue)],
176
198
  extraIgnore: [],
177
199
  debounce: this.debounceMs,
178
200
  };
@@ -180,10 +202,10 @@ export class FileWatcher {
180
202
  // Full IWatchConfig
181
203
  if (watchValue && typeof watchValue === 'object') {
182
204
  const cfg = watchValue;
183
- const dirs = [path.resolve(this.cwd, cfg.directory)];
205
+ const dirs = [path.resolve(resolveBase, cfg.directory)];
184
206
  if (cfg.include) {
185
207
  for (const inc of cfg.include) {
186
- dirs.push(path.resolve(this.cwd, inc));
208
+ dirs.push(path.resolve(resolveBase, inc));
187
209
  }
188
210
  }
189
211
  return {
@@ -197,7 +219,7 @@ export class FileWatcher {
197
219
  if (!entryFile) {
198
220
  return { dirs: [], extraIgnore: [], debounce: this.debounceMs };
199
221
  }
200
- const resolved = this.resolveAppRoot(entryFile);
222
+ const resolved = this.resolveAppRoot(entryFile, resolveBase);
201
223
  return {
202
224
  dirs: resolved ? [resolved] : [],
203
225
  extraIgnore: [],
@@ -228,41 +250,41 @@ export class FileWatcher {
228
250
  const changedFiles = [...app.pendingFiles];
229
251
  app.pendingFiles.clear();
230
252
  app.restarting = true;
231
- const filesDisplay = changedFiles.length <= 3
232
- ? changedFiles.join(', ')
233
- : `${changedFiles.slice(0, 3).join(', ')} +${changedFiles.length - 3} more`;
234
- this.logger.info({ app: app.entry.name, files: filesDisplay, count: changedFiles.length }, 'File change detected — restarting');
235
- // Clear bootstrap loader cache so daemon re-reads fresh topology
236
- try {
237
- const { clearCompileCache } = await import('./ts-compiler.js');
238
- clearCompileCache();
239
- }
240
- catch {
241
- // ts-compiler not available — non-critical
242
- }
243
- // Note: esbuild rebuilds are handled by BuildService watch mode
244
- // or by orchestrator.restartApp() which clears buildResults and rebuilds
245
- // Skip restart if the app hasn't been started yet (initial boot in progress)
246
- const appStatus = this.orchestrator.getAppStatus?.(app.entry.name);
247
- if (appStatus === 'stopped' || appStatus === 'starting') {
248
- this.logger.debug({ app: app.entry.name }, 'Skipping restart — app still starting');
249
- return;
250
- }
251
- this.logger.info({ app: app.entry.name, files: filesDisplay }, 'File change detected — restarting');
252
- // Resolve actual app handle name — in stack mode it's namespaced (e.g., 'omni/dev/main')
253
- const appName = this.orchestrator.resolveAppName?.(app.entry.name) ?? app.entry.name;
253
+ // app.restarting MUST be reset on every exit path — use try-finally from here.
254
254
  try {
255
- await this.orchestrator.restartApp(appName);
256
- this.logger.info({ app: appName }, 'Restart complete');
257
- }
258
- catch (err) {
259
- this.logger.error({ app: appName, error: err.message }, 'Restart failed');
255
+ const filesDisplay = changedFiles.length <= 3
256
+ ? changedFiles.join(', ')
257
+ : `${changedFiles.slice(0, 3).join(', ')} +${changedFiles.length - 3} more`;
258
+ // Clear bootstrap loader cache so daemon re-reads fresh topology
259
+ try {
260
+ const { clearCompileCache } = await import('./ts-compiler.js');
261
+ clearCompileCache();
262
+ }
263
+ catch {
264
+ // ts-compiler not available — non-critical
265
+ }
266
+ // Skip restart if the app hasn't been started yet (initial boot in progress)
267
+ const appStatus = this.orchestrator.getAppStatus?.(app.entry.name);
268
+ if (appStatus === 'stopped' || appStatus === 'starting') {
269
+ this.logger.debug({ app: app.entry.name }, 'Skipping restart — app still starting');
270
+ return;
271
+ }
272
+ this.logger.info({ app: app.entry.name, files: filesDisplay, count: changedFiles.length }, 'File change detected — restarting');
273
+ // Resolve actual app handle name — in stack mode it's namespaced (e.g., 'omni/dev/main')
274
+ const appName = this.orchestrator.resolveAppName?.(app.entry.name) ?? app.entry.name;
275
+ try {
276
+ await this.orchestrator.restartApp(appName);
277
+ this.logger.info({ app: appName }, 'Restart complete');
278
+ }
279
+ catch (err) {
280
+ this.logger.error({ app: appName, error: err.message }, 'Restart failed');
281
+ }
260
282
  }
261
283
  finally {
262
284
  app.restarting = false;
263
285
  // If more changes accumulated during restart, trigger again
264
286
  if (app.pendingFiles.size > 0) {
265
- this.triggerRestart(app);
287
+ void this.triggerRestart(app);
266
288
  }
267
289
  }
268
290
  }
@@ -287,8 +309,8 @@ export class FileWatcher {
287
309
  * Resolve the app's root directory from its bootstrap/script entry path.
288
310
  * Walks up from the entry file until a package.json is found.
289
311
  */
290
- resolveAppRoot(entryPath) {
291
- const absPath = path.resolve(this.cwd, entryPath);
312
+ resolveAppRoot(entryPath, base = this.cwd) {
313
+ const absPath = path.resolve(base, entryPath);
292
314
  let dir = path.dirname(absPath);
293
315
  const root = path.parse(dir).root;
294
316
  while (dir !== root) {
@@ -1 +1 @@
1
- {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/orchestrator/file-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/orchestrator/file-watcher.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,17 @@ export declare class OrchestratorService extends EventEmitter {
33
33
  private readonly pm;
34
34
  private readonly stateStore;
35
35
  private readonly handles;
36
+ /**
37
+ * Per-name in-flight start lock (T#57). When two `startApp()` calls
38
+ * arrive concurrently for the same app, the first one's promise is
39
+ * stored here; the second one awaits and returns the same handle
40
+ * rather than racing through to a parallel `launchBootstrapMode` /
41
+ * `launchClassicMode` that would spawn a second worker pool and
42
+ * leak the original. The map is cleared in a `finally` once the
43
+ * launch settles (success or failure) so the next legitimate call
44
+ * for the same name isn't permanently locked out.
45
+ */
46
+ private readonly startingApps;
36
47
  private config;
37
48
  private readonly cwd;
38
49
  private metricsTimer;
@@ -43,25 +54,169 @@ export declare class OrchestratorService extends EventEmitter {
43
54
  private buildService;
44
55
  /** Cached build results per app name */
45
56
  private readonly buildResults;
57
+ /**
58
+ * Per-app restart coalescer state.
59
+ *
60
+ * `inFlight` — the currently-running restart promise (so a concurrent
61
+ * trigger doesn't kick off a parallel restart and tear down the half-
62
+ * started state from the previous one).
63
+ * `triggerSerial` — monotonically incremented by external trigger
64
+ * entry points (BuildService onRebuild, RPC restartApp, manual
65
+ * `omnitron restart`, deploy.service). Internal coalescer arms
66
+ * that queue themselves DO NOT bump it.
67
+ * `firedSerial` — value of `triggerSerial` that the most recently
68
+ * completed restart consumed. A trailing coalesced restart only
69
+ * fires when `triggerSerial > firedSerial`, i.e. a genuinely new
70
+ * external trigger arrived during the in-flight window. Two
71
+ * coalescer arms colliding can no longer cause a self-perpetuating
72
+ * loop because neither bumps `triggerSerial`.
73
+ * `cooldownUntil` — absolute epoch ms timestamp. Any trigger received
74
+ * before this clears is queued instead of fired immediately.
75
+ * Prevents the storm where esbuild's onEnd fires for a freshly-
76
+ * spawned context milliseconds after the app reports online.
77
+ */
78
+ private readonly restartCoalescer;
79
+ /**
80
+ * Wall-clock window in ms during which restart triggers from
81
+ * BuildService.watchApp are deferred after `app:online`. Sized so a
82
+ * normal bundle build + child spawn + DI bootstrap fits comfortably
83
+ * inside; anything legitimately changing more often than this is a
84
+ * developer typing very fast, which the regular debounce handles.
85
+ */
86
+ private static readonly POST_ONLINE_COOLDOWN_MS;
87
+ /**
88
+ * Orphan-process reaper. Lazily created on first `startAll` so unit
89
+ * tests that hit `startApp` directly don't get a periodic timer.
90
+ */
91
+ private janitor;
46
92
  /** Daemon's Netron instance for native service routing */
47
93
  private daemonNetron;
48
94
  /** Daemon Unix socket path for child-to-daemon Netron connections */
49
95
  private daemonSocketPath;
96
+ /**
97
+ * Promise that resolves once the daemon's Netron is wired up. Apps that
98
+ * declare topology cannot launch until this is ready — instead of failing
99
+ * with "daemon Netron not available" the launcher awaits this promise
100
+ * (with a generous timeout) so transient startup-order interleavings
101
+ * resolve themselves instead of becoming user-visible errors.
102
+ */
103
+ private daemonNetronReady;
104
+ private resolveDaemonNetronReady;
105
+ /**
106
+ * Optional metrics sink. Set by the daemon at boot via
107
+ * `setMetricsBridge` so the orchestrator can forward janitor sweeps,
108
+ * esbuild rebuilds, and lifecycle events without coupling itself to
109
+ * the metrics module. Null means metrics are disabled (tests, slim
110
+ * bootstraps).
111
+ */
112
+ private metricsBridge;
50
113
  constructor(logger: ILogger, pm: ProcessManager, stateStore: StateStore, cwd?: string);
51
114
  /**
52
115
  * Set the daemon Netron instance and socket path for native topology routing.
53
116
  * Called by the daemon after start when Netron is available.
54
117
  */
55
118
  setDaemonNetron(netron: Netron, socketPath: string): void;
119
+ /**
120
+ * Wire the metrics bridge. Called once during daemon bootstrap.
121
+ * After this, janitor sweeps, esbuild rebuilds, and orchestrator
122
+ * lifecycle events are forwarded to Prometheus.
123
+ */
124
+ setMetricsBridge(bridge: import('../observability/metrics-bridge.js').MetricsBridge): void;
125
+ /**
126
+ * Subscribe to our own EventEmitter to forward state-change events to
127
+ * the metrics bridge. Idempotent so repeated `setMetricsBridge` calls
128
+ * (mostly tests) don't multiply listeners.
129
+ */
130
+ private telemetryWired;
131
+ private wireOrchestratorTelemetry;
132
+ /**
133
+ * Wait until the daemon Netron is available, with a hard ceiling so we
134
+ * never hang forever if `setDaemonNetron()` was never wired in.
135
+ */
136
+ private ensureDaemonNetronReady;
56
137
  startAll(config: IEcosystemConfig): Promise<void>;
138
+ /**
139
+ * Lazily create the orphan-process janitor with the live "owned
140
+ * pids" snapshot wired to the orchestrator's handle map.
141
+ */
142
+ private ensureJanitor;
143
+ /**
144
+ * Walk every live handle's supervisor children and collect the OS
145
+ * pids the orchestrator currently considers ours. Cheap — called
146
+ * every janitor sweep.
147
+ */
148
+ private collectOwnedPids;
57
149
  startApp(entry: IEcosystemAppEntry, config?: IEcosystemConfig): Promise<AppHandle>;
150
+ private startAppInternal;
58
151
  stopApp(name: string, force?: boolean, timeout?: number): Promise<void>;
59
152
  stopAll(force?: boolean): Promise<number>;
153
+ /**
154
+ * Restart an app, coalescing concurrent triggers.
155
+ *
156
+ * The dev-mode hot-reload path can deliver many restart triggers per
157
+ * second (file save → esbuild rebuild → onEnd → debounced → restart),
158
+ * and naive parallelism here ends in cross-stomping state mutations
159
+ * (one restart's stopApp tearing down the other's freshly-spawned
160
+ * child). This wrapper serialises restarts per app:
161
+ *
162
+ * - If a restart is already in flight, we set the `pending` bit and
163
+ * await the current restart. When it completes we run exactly one
164
+ * follow-up — extra triggers received in the meantime collapse onto
165
+ * the same bit, so a burst of N triggers produces at most 2 actual
166
+ * restarts (the current one + one trailing).
167
+ * - If we're inside the post-online cooldown window, the trigger is
168
+ * queued (via `pending`) and fires after the cooldown clears.
169
+ *
170
+ * The hot path is `restartAppNow()` which contains the actual work and
171
+ * is what tests / non-coalescing callers can hit directly.
172
+ */
60
173
  restartApp(name: string): Promise<AppHandle>;
61
174
  /**
62
- * Resolve raw app name to its handle key.
63
- * In stack mode, handles are namespaced (e.g., 'omni/dev/main' for app 'main').
64
- * This finds the handle whose key ends with the raw app name.
175
+ * Internal coalescer dispatcher.
176
+ *
177
+ * `fromExternal=true` bumps `triggerSerial` (a user / file-watcher /
178
+ * RPC asked us to restart). `fromExternal=false` is used by the
179
+ * recursive arms (cooldown-wait, await-inflight) which are NOT new
180
+ * triggers, just continuations — they must not bump or the trailing
181
+ * coalesced restart would re-fire forever.
182
+ */
183
+ private restartAppCoalesced;
184
+ /**
185
+ * Internal restart hot path — assumes coalescer has cleared us to proceed.
186
+ *
187
+ * Architecture note (Fix #247): we deliberately do NOT tear down the
188
+ * esbuild watch or invalidate buildResults here. The watch is what
189
+ * triggered us in the first place — its bundle is already fresh, and
190
+ * disposing the context creates a window where the next save can be
191
+ * missed (esbuild's metafile doesn't carry over between contexts).
192
+ *
193
+ * `launchBootstrapMode` sees the live buildResult + watch and skips
194
+ * the cold rebuild, so a restart cycle is just: kill old child →
195
+ * spawn new child with the bundle that was already on disk. The
196
+ * bootstrap-config cache is cleared because changes to `bootstrap.ts`
197
+ * (topology definition) need to take effect on the next start.
198
+ */
199
+ private restartAppNow;
200
+ private getCoalescerState;
201
+ /**
202
+ * Start the post-online cooldown for an app. Called from the `app:online`
203
+ * transition (both initial startApp and subsequent restartApp paths
204
+ * funnel through this), so a freshly-online app cannot be torn down by
205
+ * a rebuild signal that was already in flight when it finished booting.
206
+ */
207
+ private startPostOnlineCooldown;
208
+ /**
209
+ * Resolve a user-supplied name to a canonical handle key.
210
+ *
211
+ * Inputs accepted:
212
+ * - exact canonical key (`omni/dev/paysys`) → returned as-is
213
+ * - bare short name (`paysys`) → returns the canonical key whose
214
+ * last `/`-segment matches, IF AND ONLY IF the match is unique.
215
+ *
216
+ * Returns `undefined` for no match. Throws on ambiguity (multiple
217
+ * stacks expose the same short name) so the caller can surface a
218
+ * clear error to the operator instead of operating on the wrong
219
+ * app.
65
220
  */
66
221
  resolveAppName(rawName: string): string | undefined;
67
222
  /**
@@ -92,6 +247,24 @@ export declare class OrchestratorService extends EventEmitter {
92
247
  */
93
248
  listHandleNames(prefix?: string): string[];
94
249
  getWorkerHandle(processId: string): import("@omnitron-dev/titan-pm").IWorkerHandle | undefined;
250
+ /**
251
+ * Pull the live DI dependency graph from a running app's first child
252
+ * worker. Used by the daemon RPC backing `omnitron inspect <app>
253
+ * --graph`. Returns null if the app isn't running, has no children,
254
+ * or the worker doesn't expose `getDependencyGraph` (older bootstraps).
255
+ */
256
+ getDependencyGraph(name: string): Promise<{
257
+ nodes: Array<{
258
+ id: string;
259
+ label?: string;
260
+ type?: string;
261
+ }>;
262
+ edges: Array<{
263
+ from: string;
264
+ to: string;
265
+ type?: 'dependency' | 'parent';
266
+ }>;
267
+ } | null>;
95
268
  getMetrics(name?: string): Promise<Record<string, IProcessMetrics | null>>;
96
269
  getHealth(name?: string): Promise<Record<string, IHealthStatus | null>>;
97
270
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.service.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.service.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAGL,KAAK,cAAc,EAGnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAInB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAElB,cAAc,EACd,SAAS,EAEV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQ5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AA4CzD,qBAAa,mBAAoB,SAAQ,YAAY;IAoGjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;IArG7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IAExD;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyC;IACtE,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsD;IAErF,oFAAoF;IACpF,OAAO,UAAS;IAEhB,kFAAkF;IAClF,OAAO,CAAC,YAAY,CAA6B;IAEjD,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAE/D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAQ7B;IAEJ;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IAExD;;;OAGG;IACH,OAAO,CAAC,OAAO,CAA+B;IAE9C,0DAA0D;IAC1D,OAAO,CAAC,YAAY,CAAuB;IAE3C,qEAAqE;IACrE,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,wBAAwB,CAA+B;IAE/D;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAA2E;gBAG7E,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,cAAc,EAClB,UAAU,EAAE,UAAU,EACvC,GAAG,CAAC,EAAE,MAAM;IASd;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAOzD;;;;OAIG;IACH,gBAAgB,CAAC,MAAM,EAAE,OAAO,oCAAoC,EAAE,aAAa,GAAG,IAAI;IAM1F;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,yBAAyB;IAcjC;;;OAGG;YACW,uBAAuB;IAgB/B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DvD;;;OAGG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAgBlB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;YAsB1E,gBAAgB;IA4ExB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,EAAE,OAAO,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrE,OAAO,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAiD7C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKlD;;;;;;;;OAQG;YACW,mBAAmB;IAqEjC;;;;;;;;;;;;;;OAcG;YACW,aAAa;IAa3B,OAAO,CAAC,iBAAiB;IASzB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAK/B;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAcnD;;;;;;;;;OASG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAsDjD;;;OAGG;YACW,kBAAkB;IA2B1B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA0BnE,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,EAAE;IAQpD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAM3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAU9C;;;OAGG;IACH,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAM1C,eAAe,CAAC,SAAS,EAAE,MAAM;IAQjC;;;;;OAKG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAC9C,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;SAAE,CAAC,CAAC;KAC5E,GAAG,IAAI,CAAC;IA8BH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC;IAgD1E,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;IAuB7E;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC,CAAC;IA4BnF;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBlF,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAc5E;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAKjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;YAQlD,iBAAiB;IAmB/B;;;;;;OAMG;YACW,mBAAmB;IAkMjC;;;;;;;;;;;;OAYG;YACW,cAAc;IA4O5B;;OAEG;YACW,mBAAmB;IA+GjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;YA+BV,gBAAgB;YA4BhB,kBAAkB;IAkChC,OAAO,CAAC,gBAAgB;IAaxB,6FAA6F;YAC/E,oBAAoB;IAmBlC,0DAA0D;IAC1D,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,aAAa;IAyErB,OAAO,CAAC,YAAY;CAqBrB"}