@auto-engineer/cli 1.17.0 → 1.18.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 (56) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/src/index.js +63 -30
  3. package/dist/src/index.js.map +1 -1
  4. package/dist/src/server.d.ts +4 -0
  5. package/dist/src/server.d.ts.map +1 -1
  6. package/dist/src/server.js +8 -0
  7. package/dist/src/server.js.map +1 -1
  8. package/dist/src/tui/App.d.ts +18 -0
  9. package/dist/src/tui/App.d.ts.map +1 -0
  10. package/dist/src/tui/App.js +57 -0
  11. package/dist/src/tui/App.js.map +1 -0
  12. package/dist/src/tui/Dashboard.d.ts +26 -0
  13. package/dist/src/tui/Dashboard.d.ts.map +1 -0
  14. package/dist/src/tui/Dashboard.js +21 -0
  15. package/dist/src/tui/Dashboard.js.map +1 -0
  16. package/dist/src/tui/LogBuffer.d.ts +10 -0
  17. package/dist/src/tui/LogBuffer.d.ts.map +1 -0
  18. package/dist/src/tui/LogBuffer.js +23 -0
  19. package/dist/src/tui/LogBuffer.js.map +1 -0
  20. package/dist/src/tui/ServiceRegistry.d.ts +22 -0
  21. package/dist/src/tui/ServiceRegistry.d.ts.map +1 -0
  22. package/dist/src/tui/ServiceRegistry.js +41 -0
  23. package/dist/src/tui/ServiceRegistry.js.map +1 -0
  24. package/dist/src/tui/components/AutoTab.d.ts +24 -0
  25. package/dist/src/tui/components/AutoTab.d.ts.map +1 -0
  26. package/dist/src/tui/components/AutoTab.js +21 -0
  27. package/dist/src/tui/components/AutoTab.js.map +1 -0
  28. package/dist/src/tui/components/Footer.d.ts +3 -0
  29. package/dist/src/tui/components/Footer.d.ts.map +1 -0
  30. package/dist/src/tui/components/Footer.js +6 -0
  31. package/dist/src/tui/components/Footer.js.map +1 -0
  32. package/dist/src/tui/components/ServiceTab.d.ts +8 -0
  33. package/dist/src/tui/components/ServiceTab.d.ts.map +1 -0
  34. package/dist/src/tui/components/ServiceTab.js +12 -0
  35. package/dist/src/tui/components/ServiceTab.js.map +1 -0
  36. package/dist/src/tui/components/SummaryTab.d.ts +15 -0
  37. package/dist/src/tui/components/SummaryTab.d.ts.map +1 -0
  38. package/dist/src/tui/components/SummaryTab.js +19 -0
  39. package/dist/src/tui/components/SummaryTab.js.map +1 -0
  40. package/dist/src/tui/components/TabBar.d.ts +13 -0
  41. package/dist/src/tui/components/TabBar.d.ts.map +1 -0
  42. package/dist/src/tui/components/TabBar.js +10 -0
  43. package/dist/src/tui/components/TabBar.js.map +1 -0
  44. package/dist/src/tui/hooks/useServiceStreams.d.ts +4 -0
  45. package/dist/src/tui/hooks/useServiceStreams.d.ts.map +1 -0
  46. package/dist/src/tui/hooks/useServiceStreams.js +7 -0
  47. package/dist/src/tui/hooks/useServiceStreams.js.map +1 -0
  48. package/dist/src/tui/index.d.ts +20 -0
  49. package/dist/src/tui/index.d.ts.map +1 -0
  50. package/dist/src/tui/index.js +10 -0
  51. package/dist/src/tui/index.js.map +1 -0
  52. package/dist/src/tunnel.d.ts.map +1 -1
  53. package/dist/src/tunnel.js +31 -1
  54. package/dist/src/tunnel.js.map +1 -1
  55. package/dist/tsconfig.tsbuildinfo +1 -1
  56. package/package.json +9 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,71 @@
1
1
  # @auto-engineer/cli
2
2
 
3
+ ## 1.18.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`4318041`](https://github.com/BeOnAuto/auto-engineer/commit/4318041b4440bcbda9e6f3ef1eb448b5c42fe111) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add ServiceRegistry to server and global accessor
8
+
9
+ - [`bbd1ec6`](https://github.com/BeOnAuto/auto-engineer/commit/bbd1ec6bac6f378b99ae8727cc88e1cdb9236783) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add TUI entry point with renderTui function
10
+
11
+ - [`3be579a`](https://github.com/BeOnAuto/auto-engineer/commit/3be579a34ac90caf0425be922b286ee2f4ff95ee) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **dev-server**: use piped output in TUI mode
12
+
13
+ - [`0a72b70`](https://github.com/BeOnAuto/auto-engineer/commit/0a72b705ebb74e71df40b9c939723e4d242e0a96) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add ServiceHandle and ServiceRegistry for TUI
14
+
15
+ - [`0f5f2c5`](https://github.com/BeOnAuto/auto-engineer/commit/0f5f2c5ba51c46ac0594f031d6c700ef17e96785) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add Footer component for TUI
16
+
17
+ - [`052148f`](https://github.com/BeOnAuto/auto-engineer/commit/052148f8c73cd6fe2fc3b4c73567c2980be7b816) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add App component with keyboard handling
18
+
19
+ - [`442ad2d`](https://github.com/BeOnAuto/auto-engineer/commit/442ad2dd2d4918008ce73512e4edf49df348ba29) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **cli**: add --tunnel flag with auth middleware wiring and console output
20
+ - **cli**: extend AutoConfig with tunnel config and resolve defaults
21
+ - **cli**: startTunnel wraps ngrok.forward with error handling
22
+ - **cli**: add @ngrok/ngrok dependency and tunnelUrl to ServerHandle
23
+ - **cli**: createTunnelSocketMiddleware with localhost bypass and token auth
24
+
25
+ - [`e972f8f`](https://github.com/BeOnAuto/auto-engineer/commit/e972f8f38b631bfa9124f220fd44b641506a0c4c) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: improve AutoTab display with remote access hint
26
+
27
+ - [`5bf3089`](https://github.com/BeOnAuto/auto-engineer/commit/5bf3089bef242f8fc44aac1dd12f94f7f219167d) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: rename Summary tab to Auto tab
28
+
29
+ - [`60c62e0`](https://github.com/BeOnAuto/auto-engineer/commit/60c62e0f276e826e6d318bdcdde16b509f116666) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add AutoTab component with server endpoints display
30
+
31
+ - [`e2616d4`](https://github.com/BeOnAuto/auto-engineer/commit/e2616d4b6aed2444684c2e2fa14e952f0de660b0) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add Dashboard component for TUI
32
+
33
+ - [`685f429`](https://github.com/BeOnAuto/auto-engineer/commit/685f4295e7e87a80fd310c95caac78d16ef7f901) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - Added ngrok tunnel mode for remote access to the dev server
34
+ - Introduced TUI (Terminal UI) as the default startup mode for better visibility and status monitoring
35
+
36
+ - [`78c49a9`](https://github.com/BeOnAuto/auto-engineer/commit/78c49a9eff9790ce0ea1c8e027d27ca5bf35adc4) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add SummaryTab component for TUI
37
+
38
+ - [`cbdfbdd`](https://github.com/BeOnAuto/auto-engineer/commit/cbdfbdd9c6e05d2c8e583b7bba7e3888c2ab2054) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add LogBuffer for TUI log buffering
39
+
40
+ - [`3bec017`](https://github.com/BeOnAuto/auto-engineer/commit/3bec0171827f005dcfaa1519b58eebf0fe26d875) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add wireServiceStream for TUI log piping
41
+
42
+ - [`210e97c`](https://github.com/BeOnAuto/auto-engineer/commit/210e97c5210e66197f4d91fe2fb1cc1b8ff8bc5b) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add ServiceTab component for TUI
43
+
44
+ - [`5de2847`](https://github.com/BeOnAuto/auto-engineer/commit/5de2847e745a77b1359d192c651fae4bb3b89f1e) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: integrate TUI as default startup mode
45
+
46
+ - [`aa8202a`](https://github.com/BeOnAuto/auto-engineer/commit/aa8202aab81ea0a672c439a975ebe19c8a4bb446) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add TabBar component for TUI
47
+
48
+ ### Patch Changes
49
+
50
+ - [`f16f4d3`](https://github.com/BeOnAuto/auto-engineer/commit/f16f4d35d3c05e77445c762a41ce13494d8e56fb) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: update App to use serverInfo prop
51
+
52
+ - [`4af0b7f`](https://github.com/BeOnAuto/auto-engineer/commit/4af0b7fefe51512b522ce84d309d7dec4d075f6e) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add ink-testing-library and JSX support
53
+
54
+ - [`446d0aa`](https://github.com/BeOnAuto/auto-engineer/commit/446d0aa7b8d7b3a9165387156a6735880f9cd1d5) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: add ink, react, @inkjs/ui dependencies for TUI
55
+
56
+ - [`27f3784`](https://github.com/BeOnAuto/auto-engineer/commit/27f3784d5450f19f8ce71f64ce9749eefa3cd2d3) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **ci**: skip pre-commit hook on version commit, reset index before publish
57
+
58
+ - [`1776619`](https://github.com/BeOnAuto/auto-engineer/commit/1776619849592fedad8ba8a62413be919f450485) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: update renderTui to accept serverInfo
59
+
60
+ - [`e063e5e`](https://github.com/BeOnAuto/auto-engineer/commit/e063e5e85674b0d518a1e971f9056c1471f79b5d) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: update Dashboard to use serverInfo and AutoTab
61
+
62
+ - [`6a6659f`](https://github.com/BeOnAuto/auto-engineer/commit/6a6659f68883dafb496b34b13fd0b3a93141dd5a) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **cli**: remove unused SummaryTab spec file
63
+
64
+ - Updated dependencies [[`4318041`](https://github.com/BeOnAuto/auto-engineer/commit/4318041b4440bcbda9e6f3ef1eb448b5c42fe111), [`bbd1ec6`](https://github.com/BeOnAuto/auto-engineer/commit/bbd1ec6bac6f378b99ae8727cc88e1cdb9236783), [`3be579a`](https://github.com/BeOnAuto/auto-engineer/commit/3be579a34ac90caf0425be922b286ee2f4ff95ee), [`0a72b70`](https://github.com/BeOnAuto/auto-engineer/commit/0a72b705ebb74e71df40b9c939723e4d242e0a96), [`f16f4d3`](https://github.com/BeOnAuto/auto-engineer/commit/f16f4d35d3c05e77445c762a41ce13494d8e56fb), [`0f5f2c5`](https://github.com/BeOnAuto/auto-engineer/commit/0f5f2c5ba51c46ac0594f031d6c700ef17e96785), [`052148f`](https://github.com/BeOnAuto/auto-engineer/commit/052148f8c73cd6fe2fc3b4c73567c2980be7b816), [`442ad2d`](https://github.com/BeOnAuto/auto-engineer/commit/442ad2dd2d4918008ce73512e4edf49df348ba29), [`e972f8f`](https://github.com/BeOnAuto/auto-engineer/commit/e972f8f38b631bfa9124f220fd44b641506a0c4c), [`4af0b7f`](https://github.com/BeOnAuto/auto-engineer/commit/4af0b7fefe51512b522ce84d309d7dec4d075f6e), [`5bf3089`](https://github.com/BeOnAuto/auto-engineer/commit/5bf3089bef242f8fc44aac1dd12f94f7f219167d), [`60c62e0`](https://github.com/BeOnAuto/auto-engineer/commit/60c62e0f276e826e6d318bdcdde16b509f116666), [`e2616d4`](https://github.com/BeOnAuto/auto-engineer/commit/e2616d4b6aed2444684c2e2fa14e952f0de660b0), [`446d0aa`](https://github.com/BeOnAuto/auto-engineer/commit/446d0aa7b8d7b3a9165387156a6735880f9cd1d5), [`27f3784`](https://github.com/BeOnAuto/auto-engineer/commit/27f3784d5450f19f8ce71f64ce9749eefa3cd2d3), [`1776619`](https://github.com/BeOnAuto/auto-engineer/commit/1776619849592fedad8ba8a62413be919f450485), [`685f429`](https://github.com/BeOnAuto/auto-engineer/commit/685f4295e7e87a80fd310c95caac78d16ef7f901), [`78c49a9`](https://github.com/BeOnAuto/auto-engineer/commit/78c49a9eff9790ce0ea1c8e027d27ca5bf35adc4), [`cbdfbdd`](https://github.com/BeOnAuto/auto-engineer/commit/cbdfbdd9c6e05d2c8e583b7bba7e3888c2ab2054), [`3bec017`](https://github.com/BeOnAuto/auto-engineer/commit/3bec0171827f005dcfaa1519b58eebf0fe26d875), [`210e97c`](https://github.com/BeOnAuto/auto-engineer/commit/210e97c5210e66197f4d91fe2fb1cc1b8ff8bc5b), [`5de2847`](https://github.com/BeOnAuto/auto-engineer/commit/5de2847e745a77b1359d192c651fae4bb3b89f1e), [`e063e5e`](https://github.com/BeOnAuto/auto-engineer/commit/e063e5e85674b0d518a1e971f9056c1471f79b5d), [`aa8202a`](https://github.com/BeOnAuto/auto-engineer/commit/aa8202aab81ea0a672c439a975ebe19c8a4bb446), [`6a6659f`](https://github.com/BeOnAuto/auto-engineer/commit/6a6659f68883dafb496b34b13fd0b3a93141dd5a)]:
65
+ - @auto-engineer/file-store@1.18.0
66
+ - @auto-engineer/narrative@1.18.0
67
+ - @auto-engineer/pipeline@1.18.0
68
+
3
69
  ## 1.17.0
4
70
 
5
71
  ### Minor Changes
package/dist/src/index.js CHANGED
@@ -8,6 +8,7 @@ import * as dotenv from 'dotenv';
8
8
  import ora from 'ora';
9
9
  import { loadAutoConfig } from './config-loader.js';
10
10
  import { startServer as startServerCore } from './server.js';
11
+ import { renderTui } from './tui/index.js';
11
12
  import { createTunnelAuthMiddleware, createTunnelSocketMiddleware, generateBearerToken, startTunnel, } from './tunnel.js';
12
13
  dotenv.config();
13
14
  const __filename = fileURLToPath(import.meta.url);
@@ -41,6 +42,11 @@ async function dispatchCommand(baseUrl, commandType, data) {
41
42
  }
42
43
  async function startServer(opts) {
43
44
  const port = parseInt(opts.port, 10);
45
+ const useTui = !opts.noTui;
46
+ // Set TUI mode early so command handlers know to pipe output
47
+ if (useTui) {
48
+ process.env.AUTO_TUI_MODE = '1';
49
+ }
44
50
  const spinner = ora('Starting server...').start();
45
51
  try {
46
52
  const configPath = opts.config ?? findConfigFile();
@@ -62,6 +68,7 @@ async function startServer(opts) {
62
68
  socketMiddleware,
63
69
  });
64
70
  let tunnelHandle;
71
+ let tunnelError;
65
72
  if (tunnelEnabled) {
66
73
  try {
67
74
  tunnelHandle = await startTunnel({
@@ -72,38 +79,63 @@ async function startServer(opts) {
72
79
  handle.tunnelUrl = tunnelHandle.url;
73
80
  }
74
81
  catch (error) {
75
- console.error(chalk.yellow(`\nWarning: ${error instanceof Error ? error.message : String(error)}`));
76
- console.error(chalk.yellow('Server will continue running without tunnel.\n'));
82
+ tunnelError = error instanceof Error ? error.message : String(error);
83
+ if (!useTui) {
84
+ console.error(chalk.yellow(`\nWarning: ${tunnelError}`));
85
+ console.error(chalk.yellow('Server will continue running without tunnel.\n'));
86
+ }
77
87
  }
78
88
  }
79
- process.on('SIGINT', () => {
80
- console.log(chalk.yellow('\nShutting down...'));
81
- void tunnelHandle?.close();
82
- void handle.stop();
83
- process.exit(0);
84
- });
85
- spinner.succeed(`Pipeline server running at http://localhost:${handle.actualPort}`);
86
- if (tunnelHandle) {
87
- console.log(chalk.cyan('\nTunnel:'));
88
- console.log(` ${chalk.gray('Public URL:')} ${tunnelHandle.url}`);
89
- console.log(` ${chalk.gray('Auth Token:')} ${bearerToken}`);
90
- console.log(chalk.gray('\n Use these to connect from OnAuto cloud.'));
91
- console.log(chalk.gray(' To disable: set tunnel.enabled: false in auto.config.ts'));
89
+ if (useTui) {
90
+ spinner.stop();
91
+ const serverInfo = {
92
+ port: handle.actualPort,
93
+ tunnel: tunnelHandle && bearerToken ? { url: tunnelHandle.url, token: bearerToken } : undefined,
94
+ tunnelError,
95
+ };
96
+ const { unmount } = renderTui({
97
+ serverInfo,
98
+ registry: handle.serviceRegistry,
99
+ });
100
+ process.on('SIGINT', () => {
101
+ unmount();
102
+ handle.serviceRegistry.killAll();
103
+ void Promise.all([tunnelHandle?.close(), handle.stop()]).finally(() => {
104
+ process.exit(0);
105
+ });
106
+ });
92
107
  }
93
- console.log(chalk.cyan('\nEndpoints:'));
94
- console.log(` ${chalk.gray('Health:')} http://localhost:${handle.actualPort}/health`);
95
- console.log(` ${chalk.gray('Registry:')} http://localhost:${handle.actualPort}/registry`);
96
- console.log(` ${chalk.gray('Pipeline:')} http://localhost:${handle.actualPort}/pipeline`);
97
- console.log(` ${chalk.gray('Diagram:')} http://localhost:${handle.actualPort}/pipeline/diagram`);
98
- console.log(` ${chalk.gray('Events:')} http://localhost:${handle.actualPort}/events (SSE)`);
99
- console.log(` ${chalk.gray('FileSync:')} ws://localhost:${handle.actualPort}/file-sync (Socket.IO)`);
100
- if (!tunnelEnabled) {
101
- console.log(chalk.cyan('\nRemote Access:'));
102
- console.log(chalk.gray(' Run with --tunnel to expose a public URL for OnAuto cloud integration.'));
103
- console.log(chalk.gray(' Requires a free ngrok account: https://ngrok.com/signup'));
104
- console.log(chalk.gray(' Set your authtoken via NGROK_AUTHTOKEN in .env or tunnel.authtoken in auto.config.ts'));
108
+ else {
109
+ process.on('SIGINT', () => {
110
+ console.log(chalk.yellow('\nShutting down...'));
111
+ handle.serviceRegistry.killAll();
112
+ void Promise.all([tunnelHandle?.close(), handle.stop()]).finally(() => {
113
+ process.exit(0);
114
+ });
115
+ });
116
+ spinner.succeed(`Pipeline server running at http://localhost:${handle.actualPort}`);
117
+ if (tunnelHandle) {
118
+ console.log(chalk.cyan('\nTunnel:'));
119
+ console.log(` ${chalk.gray('Public URL:')} ${tunnelHandle.url}`);
120
+ console.log(` ${chalk.gray('Auth Token:')} ${bearerToken}`);
121
+ console.log(chalk.gray('\n Use these to connect from the Auto cloud app.'));
122
+ console.log(chalk.gray(' To disable: set tunnel.enabled: false in auto.config.ts'));
123
+ }
124
+ console.log(chalk.cyan('\nEndpoints:'));
125
+ console.log(` ${chalk.gray('Health:')} http://localhost:${handle.actualPort}/health`);
126
+ console.log(` ${chalk.gray('Registry:')} http://localhost:${handle.actualPort}/registry`);
127
+ console.log(` ${chalk.gray('Pipeline:')} http://localhost:${handle.actualPort}/pipeline`);
128
+ console.log(` ${chalk.gray('Diagram:')} http://localhost:${handle.actualPort}/pipeline/diagram`);
129
+ console.log(` ${chalk.gray('Events:')} http://localhost:${handle.actualPort}/events (SSE)`);
130
+ console.log(` ${chalk.gray('FileSync:')} ws://localhost:${handle.actualPort}/file-sync (Socket.IO)`);
131
+ if (!tunnelEnabled) {
132
+ console.log(chalk.cyan('\nRemote Access:'));
133
+ console.log(chalk.gray(' Run with --tunnel to expose a public URL for OnAuto cloud integration.'));
134
+ console.log(chalk.gray(' Requires a free ngrok account: https://ngrok.com/signup'));
135
+ console.log(chalk.gray(' Set your authtoken via NGROK_AUTHTOKEN in .env or tunnel.authtoken in auto.config.ts'));
136
+ }
137
+ console.log(chalk.gray('\nPress Ctrl+C to stop'));
105
138
  }
106
- console.log(chalk.gray('\nPress Ctrl+C to stop'));
107
139
  }
108
140
  catch (error) {
109
141
  spinner.fail('Failed to start server');
@@ -131,13 +163,14 @@ async function main() {
131
163
  .option('-d, --debug', 'Enable debug mode')
132
164
  .option('-c, --config <path>', 'Path to pipeline config file')
133
165
  .option('--host <url>', 'Connect to existing server instead of starting one')
134
- .option('--tunnel', 'Enable ngrok tunnel for remote access');
166
+ .option('--tunnel', 'Enable ngrok tunnel for remote access')
167
+ .option('--no-tui', 'Disable TUI mode (use legacy console output)');
135
168
  program
136
169
  .command('start', { isDefault: true })
137
170
  .description('Start the pipeline server with loaded config (default)')
138
171
  .action(async () => {
139
172
  const opts = program.opts();
140
- await startServer(opts);
173
+ await startServer({ ...opts, noTui: opts.tui === false });
141
174
  });
142
175
  program
143
176
  .command('dispatch <command>')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,aAAa,GAAG;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC;SACjD,CAAC;QAEF,KAAK,MAAM,eAAe,IAAI,aAAa,EAAE,CAAC;YAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAwB,CAAC;gBACjG,OAAO,WAAW,CAAC,OAAO,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS,CAAC;AACtD,CAAC;AAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,WAAmB,EAAE,IAA6B;IAChG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,UAAU,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAM1B;IACC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;IAE3B,6DAA6D;IAC7D,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QAEzE,MAAM,cAAc,GAAuC,EAAE,CAAC;QAC9D,IAAI,gBAA+E,CAAC;QACpF,IAAI,WAA+B,CAAC;QAEpC,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,GAAG,UAAU,EAAE,MAAM,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC;YAChE,cAAc,CAAC,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7D,gBAAgB,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,cAAc,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACtE,gBAAgB;SACjB,CAAC,CAAC;QAEH,IAAI,YAAqE,CAAC;QAE1E,IAAI,WAA+B,CAAC;QACpC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,WAAW,CAAC;oBAC/B,IAAI,EAAE,MAAM,CAAC,UAAU;oBACvB,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS;oBACvC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM;iBAClC,CAAC,CAAC;gBACH,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC,CAAC;oBACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,MAAM,UAAU,GAAG;gBACjB,IAAI,EAAE,MAAM,CAAC,UAAU;gBACvB,MAAM,EAAE,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC/F,WAAW;aACZ,CAAC;YAEF,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;gBAC5B,UAAU;gBACV,QAAQ,EAAE,MAAM,CAAC,eAAe;aACjC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;oBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAChD,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;oBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,+CAA+C,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAEpF,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;gBACnE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;gBAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;YACvF,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,MAAM,CAAC,UAAU,SAAS,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,MAAM,CAAC,UAAU,WAAW,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,MAAM,CAAC,UAAU,WAAW,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,MAAM,CAAC,UAAU,mBAAmB,CAAC,CAAC;YACnG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,MAAM,CAAC,UAAU,eAAe,CAAC,CAAC;YAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,MAAM,CAAC,UAAU,wBAAwB,CAAC,CAAC;YAEtG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC,CAAC;gBACpG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;gBACrF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,wFAAwF,CAAC,CACrG,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,UAAU,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACxD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,8DAA8D,CAAC;SAC3E,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;SACjC,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,MAAM,CAAC;SACpD,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;SAC7D,MAAM,CAAC,cAAc,EAAE,oDAAoD,CAAC;SAC5E,MAAM,CAAC,UAAU,EAAE,uCAAuC,CAAC;SAC3D,MAAM,CAAC,UAAU,EAAE,8CAA8C,CAAC,CAAC;IAEtE,OAAO;SACJ,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACrC,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAMxB,CAAC;QACF,MAAM,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,IAAI,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAyB,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAqC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;QAE7D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,WAAW,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAA4B,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YACjE,OAAO,CAAC,OAAO,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAqC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAG1C,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEnE,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAG9C,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAqC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,GAAG,OAAO,mBAAmB,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC,CAAC;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7F,IAAI,CAAC,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -2,6 +2,9 @@ import type { Server as HttpServer } from 'node:http';
2
2
  import type { MessageBus } from '@auto-engineer/pipeline';
3
3
  import type { RequestHandler } from 'express';
4
4
  import { FileSyncer, type SocketMiddleware } from './file-syncer/index.js';
5
+ import { type ServiceHandle, ServiceRegistry } from './tui/ServiceRegistry.js';
6
+ export type { ServiceHandle };
7
+ export declare function getServiceRegistry(): ServiceRegistry | null;
5
8
  export type { SocketMiddleware };
6
9
  export interface StartServerOptions {
7
10
  port: number;
@@ -15,6 +18,7 @@ export interface ServerHandle {
15
18
  httpServer: HttpServer;
16
19
  actualPort: number;
17
20
  messageBus: MessageBus;
21
+ serviceRegistry: ServiceRegistry;
18
22
  tunnelUrl?: string;
19
23
  stop: () => Promise<void>;
20
24
  onPreShutdown: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AAGtD,OAAO,KAAK,EAA8B,UAAU,EAAY,MAAM,yBAAyB,CAAC;AAEhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAYjC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5C;AAyJD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwFjF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AAGtD,OAAO,KAAK,EAA8B,UAAU,EAAY,MAAM,yBAAyB,CAAC;AAEhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE/E,YAAY,EAAE,aAAa,EAAE,CAAC;AAI9B,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAE3D;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAYjC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5C;AAyJD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA2FjF"}
@@ -7,6 +7,11 @@ import createJiti from 'jiti';
7
7
  import { Server as SocketIOServer } from 'socket.io';
8
8
  import { loadAutoConfig } from './config-loader.js';
9
9
  import { FileSyncer } from './file-syncer/index.js';
10
+ import { ServiceRegistry } from './tui/ServiceRegistry.js';
11
+ let globalServiceRegistry = null;
12
+ export function getServiceRegistry() {
13
+ return globalServiceRegistry;
14
+ }
10
15
  function findConfigFile() {
11
16
  const candidates = ['auto.config.ts', 'auto.config.js'];
12
17
  for (const candidate of candidates) {
@@ -154,6 +159,8 @@ async function loadCommandHandlers(plugins) {
154
159
  export async function startServer(opts) {
155
160
  const port = opts.port;
156
161
  const actualPort = await getPort({ port: port === 0 ? undefined : portNumbers(port, port + 100) });
162
+ const serviceRegistry = new ServiceRegistry();
163
+ globalServiceRegistry = serviceRegistry;
157
164
  const configPath = opts.configPath ?? findConfigFile();
158
165
  if (!configPath) {
159
166
  throw new Error('No pipeline config found. Create an auto.config.ts file.');
@@ -220,6 +227,7 @@ export async function startServer(opts) {
220
227
  httpServer,
221
228
  actualPort,
222
229
  messageBus: pipelineServer.getMessageBus(),
230
+ serviceRegistry,
223
231
  stop,
224
232
  onPreShutdown,
225
233
  resetFileSyncer,
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { ServiceRegistry } from './ServiceRegistry.js';
3
+ interface TunnelInfo {
4
+ url: string;
5
+ token: string;
6
+ }
7
+ interface ServerInfo {
8
+ port: number;
9
+ tunnel?: TunnelInfo;
10
+ tunnelError?: string;
11
+ }
12
+ interface AppProps {
13
+ serverInfo: ServerInfo;
14
+ registry: ServiceRegistry;
15
+ }
16
+ export declare function App({ serverInfo, registry }: AppProps): ReactElement;
17
+ export {};
18
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/tui/App.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3E,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD,UAAU,QAAQ;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAgB,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAG,YAAY,CA0DpE"}
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useApp, useInput } from 'ink';
3
+ import { useCallback, useEffect, useState } from 'react';
4
+ import { Dashboard } from './Dashboard.js';
5
+ import { wireServiceStream } from './hooks/useServiceStreams.js';
6
+ import { LogBuffer } from './LogBuffer.js';
7
+ export function App({ serverInfo, registry }) {
8
+ const { exit } = useApp();
9
+ const [activeTab, setActiveTab] = useState('auto');
10
+ const [services, setServices] = useState([]);
11
+ const [, forceUpdate] = useState(0);
12
+ const rerender = useCallback(() => {
13
+ forceUpdate((n) => n + 1);
14
+ }, []);
15
+ useEffect(() => {
16
+ const addService = (handle) => {
17
+ const buffer = new LogBuffer(500);
18
+ wireServiceStream(handle.stdout, buffer, rerender);
19
+ wireServiceStream(handle.stderr, buffer, rerender);
20
+ setServices((prev) => [
21
+ ...prev,
22
+ {
23
+ id: handle.id,
24
+ displayName: handle.displayName,
25
+ status: 'running',
26
+ logs: [],
27
+ buffer,
28
+ },
29
+ ]);
30
+ };
31
+ // Add any services already registered
32
+ for (const handle of registry.getAll()) {
33
+ addService(handle);
34
+ }
35
+ // Listen for new services
36
+ const unsubscribe = registry.onServiceAdded(addService);
37
+ return unsubscribe;
38
+ }, [registry, rerender]);
39
+ useInput((input, key) => {
40
+ if (input === 'q') {
41
+ exit();
42
+ return;
43
+ }
44
+ if (key.tab) {
45
+ const tabs = ['auto', ...services.map((s) => s.id)];
46
+ const currentIndex = tabs.indexOf(activeTab);
47
+ const nextIndex = (currentIndex + 1) % tabs.length;
48
+ setActiveTab(tabs[nextIndex]);
49
+ }
50
+ });
51
+ const servicesWithLogs = services.map((s) => ({
52
+ ...s,
53
+ logs: s.buffer.getLines(),
54
+ }));
55
+ return _jsx(Dashboard, { serverInfo: serverInfo, services: servicesWithLogs, activeTab: activeTab });
56
+ }
57
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/tui/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ReactElement } from 'react';
2
+ type ServiceStatus = 'starting' | 'running' | 'error' | 'stopped';
3
+ interface TunnelInfo {
4
+ url: string;
5
+ token: string;
6
+ }
7
+ interface ServerInfo {
8
+ port: number;
9
+ tunnel?: TunnelInfo;
10
+ tunnelError?: string;
11
+ }
12
+ interface ServiceState {
13
+ id: string;
14
+ displayName: string;
15
+ status: ServiceStatus;
16
+ statusMessage?: string;
17
+ logs: string[];
18
+ }
19
+ interface DashboardProps {
20
+ serverInfo: ServerInfo;
21
+ services: ServiceState[];
22
+ activeTab: string;
23
+ }
24
+ export declare function Dashboard({ serverInfo, services, activeTab }: DashboardProps): ReactElement;
25
+ export {};
26
+ //# sourceMappingURL=Dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/tui/Dashboard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,KAAK,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,GAAG,YAAY,CAgC3F"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box } from 'ink';
3
+ import { AutoTab } from './components/AutoTab.js';
4
+ import { Footer } from './components/Footer.js';
5
+ import { ServiceTab } from './components/ServiceTab.js';
6
+ import { TabBar } from './components/TabBar.js';
7
+ export function Dashboard({ serverInfo, services, activeTab }) {
8
+ const hasAutoError = !!serverInfo.tunnelError || services.some((s) => s.status === 'error');
9
+ const tabs = [
10
+ { id: 'auto', label: 'Auto', hasError: hasAutoError },
11
+ ...services.map((s) => ({ id: s.id, label: s.displayName, hasError: s.status === 'error' })),
12
+ ];
13
+ const activeService = services.find((s) => s.id === activeTab);
14
+ return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsx(TabBar, { tabs: tabs, activeTab: activeTab }), _jsx(Box, { flexGrow: 1, overflowY: "hidden", children: activeTab === 'auto' ? (_jsx(AutoTab, { serverInfo: serverInfo, services: services.map((s) => ({
15
+ id: s.id,
16
+ displayName: s.displayName,
17
+ status: s.status,
18
+ statusMessage: s.statusMessage,
19
+ })) })) : activeService ? (_jsx(ServiceTab, { displayName: activeService.displayName, logs: activeService.logs })) : null }), _jsx(Footer, {})] }));
20
+ }
21
+ //# sourceMappingURL=Dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../../src/tui/Dashboard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAY,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA6B1D,MAAM,UAAU,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAkB;IAC3E,MAAM,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAC5F,MAAM,IAAI,GAAU;QAClB,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE;QACrD,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;KAC7F,CAAC;IAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAE/D,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,aACvC,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAI,EAE5C,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,QAAQ,YACjC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CACtB,KAAC,OAAO,IACN,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,aAAa,EAAE,CAAC,CAAC,aAAa;qBAC/B,CAAC,CAAC,GACH,CACH,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAClB,KAAC,UAAU,IAAC,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,GAAI,CACjF,CAAC,CAAC,CAAC,IAAI,GACJ,EAEN,KAAC,MAAM,KAAG,IACN,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare class LogBuffer {
2
+ private lines;
3
+ private readonly capacity;
4
+ constructor(capacity: number);
5
+ append(text: string): void;
6
+ getLines(): string[];
7
+ clear(): void;
8
+ get lineCount(): number;
9
+ }
10
+ //# sourceMappingURL=LogBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogBuffer.d.ts","sourceRoot":"","sources":["../../../src/tui/LogBuffer.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,QAAQ,EAAE,MAAM;IAI5B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS1B,QAAQ,IAAI,MAAM,EAAE;IAIpB,KAAK,IAAI,IAAI;IAIb,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
@@ -0,0 +1,23 @@
1
+ export class LogBuffer {
2
+ constructor(capacity) {
3
+ this.lines = [];
4
+ this.capacity = capacity;
5
+ }
6
+ append(text) {
7
+ const newLines = text.split('\n');
8
+ this.lines.push(...newLines);
9
+ if (this.lines.length > this.capacity) {
10
+ this.lines = this.lines.slice(-this.capacity);
11
+ }
12
+ }
13
+ getLines() {
14
+ return [...this.lines];
15
+ }
16
+ clear() {
17
+ this.lines = [];
18
+ }
19
+ get lineCount() {
20
+ return this.lines.length;
21
+ }
22
+ }
23
+ //# sourceMappingURL=LogBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogBuffer.js","sourceRoot":"","sources":["../../../src/tui/LogBuffer.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAIpB,YAAY,QAAgB;QAHpB,UAAK,GAAa,EAAE,CAAC;QAI3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import type { ChildProcess } from 'node:child_process';
2
+ import type { Readable } from 'node:stream';
3
+ export interface ServiceHandle {
4
+ id: string;
5
+ displayName: string;
6
+ color: string;
7
+ stdout: Readable;
8
+ stderr: Readable;
9
+ process: ChildProcess;
10
+ }
11
+ type ServiceListener = (handle: ServiceHandle) => void;
12
+ export declare class ServiceRegistry {
13
+ private services;
14
+ private listeners;
15
+ register(handle: ServiceHandle): void;
16
+ get(id: string): ServiceHandle | undefined;
17
+ getAll(): ServiceHandle[];
18
+ onServiceAdded(listener: ServiceListener): () => void;
19
+ killAll(): void;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=ServiceRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceRegistry.d.ts","sourceRoot":"","sources":["../../../src/tui/ServiceRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAEvD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAyB;IAE1C,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAOrC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C,MAAM,IAAI,aAAa,EAAE;IAIzB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAUrD,OAAO,IAAI,IAAI;CAYhB"}
@@ -0,0 +1,41 @@
1
+ export class ServiceRegistry {
2
+ constructor() {
3
+ this.services = new Map();
4
+ this.listeners = [];
5
+ }
6
+ register(handle) {
7
+ this.services.set(handle.id, handle);
8
+ for (const listener of this.listeners) {
9
+ listener(handle);
10
+ }
11
+ }
12
+ get(id) {
13
+ return this.services.get(id);
14
+ }
15
+ getAll() {
16
+ return [...this.services.values()];
17
+ }
18
+ onServiceAdded(listener) {
19
+ this.listeners.push(listener);
20
+ return () => {
21
+ const index = this.listeners.indexOf(listener);
22
+ if (index !== -1) {
23
+ this.listeners.splice(index, 1);
24
+ }
25
+ };
26
+ }
27
+ killAll() {
28
+ for (const handle of this.services.values()) {
29
+ try {
30
+ // Only kill actual child processes (not the main process used as placeholder)
31
+ if (handle.process?.pid && typeof handle.process.kill === 'function' && handle.process.pid !== process.pid) {
32
+ handle.process.kill('SIGTERM');
33
+ }
34
+ }
35
+ catch {
36
+ // Process may already be dead
37
+ }
38
+ }
39
+ }
40
+ }
41
+ //# sourceMappingURL=ServiceRegistry.js.map