@gxp-dev/tools 2.0.5 → 2.0.6

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 (169) hide show
  1. package/dist/tui/App.d.ts +13 -0
  2. package/dist/tui/App.d.ts.map +1 -0
  3. package/dist/tui/App.js +480 -0
  4. package/dist/tui/App.js.map +1 -0
  5. package/dist/tui/components/CommandInput.d.ts +13 -0
  6. package/dist/tui/components/CommandInput.d.ts.map +1 -0
  7. package/dist/tui/components/CommandInput.js +180 -0
  8. package/dist/tui/components/CommandInput.js.map +1 -0
  9. package/dist/tui/components/GeminiPanel.d.ts +7 -0
  10. package/dist/tui/components/GeminiPanel.d.ts.map +1 -0
  11. package/dist/tui/components/GeminiPanel.js +99 -0
  12. package/dist/tui/components/GeminiPanel.js.map +1 -0
  13. package/dist/tui/components/Header.d.ts +6 -0
  14. package/dist/tui/components/Header.d.ts.map +1 -0
  15. package/dist/tui/components/Header.js +6 -0
  16. package/dist/tui/components/Header.js.map +1 -0
  17. package/dist/tui/components/LogPanel.d.ts +8 -0
  18. package/dist/tui/components/LogPanel.d.ts.map +1 -0
  19. package/dist/tui/components/LogPanel.js +89 -0
  20. package/dist/tui/components/LogPanel.js.map +1 -0
  21. package/dist/tui/components/TabBar.d.ts +9 -0
  22. package/dist/tui/components/TabBar.d.ts.map +1 -0
  23. package/dist/tui/components/TabBar.js +23 -0
  24. package/dist/tui/components/TabBar.js.map +1 -0
  25. package/dist/tui/components/WelcomeScreen.d.ts +2 -0
  26. package/dist/tui/components/WelcomeScreen.d.ts.map +1 -0
  27. package/dist/tui/components/WelcomeScreen.js +14 -0
  28. package/dist/tui/components/WelcomeScreen.js.map +1 -0
  29. package/dist/tui/index.d.ts +8 -0
  30. package/dist/tui/index.d.ts.map +1 -0
  31. package/dist/tui/index.js +47 -0
  32. package/dist/tui/index.js.map +1 -0
  33. package/dist/tui/package.json +1 -0
  34. package/dist/tui/services/ExtensionService.d.ts +11 -0
  35. package/dist/tui/services/ExtensionService.d.ts.map +1 -0
  36. package/dist/tui/services/ExtensionService.js +101 -0
  37. package/dist/tui/services/ExtensionService.js.map +1 -0
  38. package/dist/tui/services/GeminiService.d.ts +40 -0
  39. package/dist/tui/services/GeminiService.d.ts.map +1 -0
  40. package/dist/tui/services/GeminiService.js +327 -0
  41. package/dist/tui/services/GeminiService.js.map +1 -0
  42. package/dist/tui/services/ServiceManager.d.ts +40 -0
  43. package/dist/tui/services/ServiceManager.d.ts.map +1 -0
  44. package/dist/tui/services/ServiceManager.js +283 -0
  45. package/dist/tui/services/ServiceManager.js.map +1 -0
  46. package/dist/tui/services/SocketService.d.ts +19 -0
  47. package/dist/tui/services/SocketService.d.ts.map +1 -0
  48. package/dist/tui/services/SocketService.js +163 -0
  49. package/dist/tui/services/SocketService.js.map +1 -0
  50. package/dist/tui/services/ViteService.d.ts +8 -0
  51. package/dist/tui/services/ViteService.d.ts.map +1 -0
  52. package/dist/tui/services/ViteService.js +89 -0
  53. package/dist/tui/services/ViteService.js.map +1 -0
  54. package/dist/tui/services/index.d.ts +6 -0
  55. package/dist/tui/services/index.d.ts.map +1 -0
  56. package/dist/tui/services/index.js +6 -0
  57. package/dist/tui/services/index.js.map +1 -0
  58. package/package.json +6 -1
  59. package/.github/workflows/npm-publish.yml +0 -48
  60. package/CLAUDE.md +0 -400
  61. package/REFACTOR_PLAN.md +0 -194
  62. package/browser-extensions/README.md +0 -1
  63. package/browser-extensions/chrome/background.js +0 -857
  64. package/browser-extensions/chrome/content.js +0 -51
  65. package/browser-extensions/chrome/devtools.html +0 -9
  66. package/browser-extensions/chrome/devtools.js +0 -23
  67. package/browser-extensions/chrome/icons/gx_off_128.png +0 -0
  68. package/browser-extensions/chrome/icons/gx_off_16.png +0 -0
  69. package/browser-extensions/chrome/icons/gx_off_32.png +0 -0
  70. package/browser-extensions/chrome/icons/gx_off_64.png +0 -0
  71. package/browser-extensions/chrome/icons/gx_on_128.png +0 -0
  72. package/browser-extensions/chrome/icons/gx_on_16.png +0 -0
  73. package/browser-extensions/chrome/icons/gx_on_32.png +0 -0
  74. package/browser-extensions/chrome/icons/gx_on_64.png +0 -0
  75. package/browser-extensions/chrome/inspector.js +0 -1087
  76. package/browser-extensions/chrome/manifest.json +0 -70
  77. package/browser-extensions/chrome/panel.html +0 -638
  78. package/browser-extensions/chrome/panel.js +0 -862
  79. package/browser-extensions/chrome/popup.html +0 -399
  80. package/browser-extensions/chrome/popup.js +0 -515
  81. package/browser-extensions/chrome/rules.json +0 -1
  82. package/browser-extensions/chrome/test-chrome.html +0 -145
  83. package/browser-extensions/chrome/test-mixed-content.html +0 -190
  84. package/browser-extensions/chrome/test-uri-pattern.html +0 -199
  85. package/browser-extensions/firefox/README.md +0 -134
  86. package/browser-extensions/firefox/background.js +0 -804
  87. package/browser-extensions/firefox/content.js +0 -120
  88. package/browser-extensions/firefox/debug-errors.html +0 -229
  89. package/browser-extensions/firefox/debug-https.html +0 -113
  90. package/browser-extensions/firefox/devtools.html +0 -9
  91. package/browser-extensions/firefox/devtools.js +0 -24
  92. package/browser-extensions/firefox/icons/gx_off_128.png +0 -0
  93. package/browser-extensions/firefox/icons/gx_off_16.png +0 -0
  94. package/browser-extensions/firefox/icons/gx_off_32.png +0 -0
  95. package/browser-extensions/firefox/icons/gx_off_64.png +0 -0
  96. package/browser-extensions/firefox/icons/gx_on_128.png +0 -0
  97. package/browser-extensions/firefox/icons/gx_on_16.png +0 -0
  98. package/browser-extensions/firefox/icons/gx_on_32.png +0 -0
  99. package/browser-extensions/firefox/icons/gx_on_64.png +0 -0
  100. package/browser-extensions/firefox/inspector.js +0 -1087
  101. package/browser-extensions/firefox/manifest.json +0 -67
  102. package/browser-extensions/firefox/panel.html +0 -638
  103. package/browser-extensions/firefox/panel.js +0 -862
  104. package/browser-extensions/firefox/popup.html +0 -525
  105. package/browser-extensions/firefox/popup.js +0 -536
  106. package/browser-extensions/firefox/test-gramercy.html +0 -126
  107. package/browser-extensions/firefox/test-imports.html +0 -58
  108. package/browser-extensions/firefox/test-masking.html +0 -147
  109. package/browser-extensions/firefox/test-uri-pattern.html +0 -199
  110. package/docs/DOCUSAURUS_IMPORT.md +0 -378
  111. package/docs/_category_.json +0 -8
  112. package/docs/app-manifest.md +0 -272
  113. package/docs/building-for-platform.md +0 -315
  114. package/docs/dev-tools.md +0 -291
  115. package/docs/getting-started.md +0 -180
  116. package/docs/gxp-store.md +0 -305
  117. package/docs/index.md +0 -44
  118. package/runtime/PortalContainer.vue +0 -326
  119. package/runtime/dev-tools/DevToolsModal.vue +0 -217
  120. package/runtime/dev-tools/LayoutSwitcher.vue +0 -221
  121. package/runtime/dev-tools/MockDataEditor.vue +0 -621
  122. package/runtime/dev-tools/SocketSimulator.vue +0 -562
  123. package/runtime/dev-tools/StoreInspector.vue +0 -644
  124. package/runtime/dev-tools/index.js +0 -6
  125. package/runtime/gxpStringsPlugin.js +0 -428
  126. package/runtime/index.html +0 -22
  127. package/runtime/main.js +0 -32
  128. package/runtime/mock-api/auth-middleware.js +0 -97
  129. package/runtime/mock-api/image-generator.js +0 -221
  130. package/runtime/mock-api/index.js +0 -197
  131. package/runtime/mock-api/response-generator.js +0 -394
  132. package/runtime/mock-api/route-generator.js +0 -323
  133. package/runtime/mock-api/socket-triggers.js +0 -371
  134. package/runtime/mock-api/spec-loader.js +0 -300
  135. package/runtime/server.js +0 -180
  136. package/runtime/stores/gxpPortalConfigStore.js +0 -554
  137. package/runtime/stores/index.js +0 -6
  138. package/runtime/vite-inspector-plugin.js +0 -749
  139. package/runtime/vite-source-tracker-plugin.js +0 -232
  140. package/runtime/vite.config.js +0 -402
  141. package/scripts/launch-chrome.js +0 -90
  142. package/scripts/pack-chrome.js +0 -91
  143. package/socket-events/AiSessionMessageCreated.json +0 -18
  144. package/socket-events/SocialStreamPostCreated.json +0 -24
  145. package/socket-events/SocialStreamPostVariantCompleted.json +0 -23
  146. package/template/README.md +0 -332
  147. package/template/app-manifest.json +0 -32
  148. package/template/dev-assets/images/avatar-placeholder.png +0 -0
  149. package/template/dev-assets/images/background-placeholder.jpg +0 -0
  150. package/template/dev-assets/images/banner-placeholder.jpg +0 -0
  151. package/template/dev-assets/images/icon-placeholder.png +0 -0
  152. package/template/dev-assets/images/logo-placeholder.png +0 -0
  153. package/template/dev-assets/images/product-placeholder.jpg +0 -0
  154. package/template/dev-assets/images/thumbnail-placeholder.jpg +0 -0
  155. package/template/env.example +0 -51
  156. package/template/gitignore +0 -53
  157. package/template/index.html +0 -22
  158. package/template/main.js +0 -28
  159. package/template/src/DemoPage.vue +0 -459
  160. package/template/src/Plugin.vue +0 -38
  161. package/template/src/stores/index.js +0 -9
  162. package/template/src/stores/test-data.json +0 -173
  163. package/template/theme-layouts/AdditionalStyling.css +0 -0
  164. package/template/theme-layouts/PrivateLayout.vue +0 -39
  165. package/template/theme-layouts/PublicLayout.vue +0 -39
  166. package/template/theme-layouts/SystemLayout.vue +0 -39
  167. package/template/vite.config.js +0 -333
  168. package/tsconfig.tui.json +0 -21
  169. package/vite.config.js +0 -164
@@ -0,0 +1,283 @@
1
+ import { spawn, execSync } from 'child_process';
2
+ import { EventEmitter } from 'events';
3
+ // Store configs for restart capability
4
+ const serviceConfigs = new Map();
5
+ export class ServiceManager extends EventEmitter {
6
+ constructor() {
7
+ super();
8
+ this.services = new Map();
9
+ this.maxLogLines = 1000;
10
+ this.cleanupRegistered = false;
11
+ this.registerCleanupHandlers();
12
+ }
13
+ // Register cleanup handlers to kill all services on exit
14
+ registerCleanupHandlers() {
15
+ if (this.cleanupRegistered)
16
+ return;
17
+ this.cleanupRegistered = true;
18
+ const cleanup = () => {
19
+ this.forceStopAll();
20
+ };
21
+ // Handle various exit scenarios
22
+ process.on('exit', cleanup);
23
+ process.on('SIGINT', cleanup);
24
+ process.on('SIGTERM', cleanup);
25
+ process.on('SIGHUP', cleanup);
26
+ process.on('beforeExit', cleanup);
27
+ // Handle uncaught exceptions
28
+ process.on('uncaughtException', (err) => {
29
+ console.error('Uncaught exception:', err);
30
+ cleanup();
31
+ process.exit(1);
32
+ });
33
+ }
34
+ getService(id) {
35
+ return this.services.get(id);
36
+ }
37
+ getAllServices() {
38
+ return Array.from(this.services.values());
39
+ }
40
+ isRunning(id) {
41
+ const service = this.services.get(id);
42
+ return service?.status === 'running' || service?.status === 'starting';
43
+ }
44
+ start(config) {
45
+ // Store config for restart capability
46
+ serviceConfigs.set(config.id, config);
47
+ // Check if already running
48
+ const existing = this.services.get(config.id);
49
+ if (existing && (existing.status === 'running' || existing.status === 'starting')) {
50
+ this.addLog(config.id, `[${config.name}] Already running`);
51
+ return existing;
52
+ }
53
+ // Create or reset service state
54
+ const state = {
55
+ id: config.id,
56
+ name: config.name,
57
+ status: 'starting',
58
+ logs: existing?.logs || [],
59
+ };
60
+ this.services.set(config.id, state);
61
+ this.addLog(config.id, `[${config.name}] Starting...`);
62
+ this.emit('statusChange', config.id, 'starting');
63
+ try {
64
+ // Spawn the process with environment variables to prevent stdin access
65
+ // CI=true disables interactive prompts in many tools
66
+ // These prevent child processes from trying to use raw stdin mode
67
+ // detached: true creates a new process group that doesn't share the parent's tty
68
+ const proc = spawn(config.command, config.args, {
69
+ cwd: config.cwd,
70
+ env: {
71
+ ...process.env,
72
+ ...config.env,
73
+ FORCE_COLOR: '1',
74
+ CI: 'true',
75
+ },
76
+ shell: true,
77
+ stdio: ['ignore', 'pipe', 'pipe'],
78
+ detached: true,
79
+ });
80
+ state.process = proc;
81
+ state.pid = proc.pid;
82
+ // Handle stdout
83
+ proc.stdout?.on('data', (data) => {
84
+ const lines = data.toString().split('\n').filter(line => line.trim());
85
+ lines.forEach(line => {
86
+ this.addLog(config.id, line);
87
+ });
88
+ // Detect when service is ready
89
+ const output = data.toString();
90
+ if (state.status === 'starting') {
91
+ // Vite ready indicators
92
+ if (output.includes('ready in') || output.includes('Local:') || output.includes('VITE')) {
93
+ state.status = 'running';
94
+ this.emit('statusChange', config.id, 'running');
95
+ }
96
+ // Socket.IO ready indicator
97
+ if (output.includes('Socket.IO server') || output.includes('listening on port')) {
98
+ state.status = 'running';
99
+ this.emit('statusChange', config.id, 'running');
100
+ }
101
+ }
102
+ });
103
+ // Handle stderr
104
+ proc.stderr?.on('data', (data) => {
105
+ const lines = data.toString().split('\n').filter(line => line.trim());
106
+ lines.forEach(line => {
107
+ this.addLog(config.id, `[stderr] ${line}`);
108
+ });
109
+ });
110
+ // Handle process exit
111
+ proc.on('close', (code) => {
112
+ state.process = undefined;
113
+ if (code === 0 || code === null) {
114
+ state.status = 'stopped';
115
+ this.addLog(config.id, `[${config.name}] Stopped`);
116
+ }
117
+ else {
118
+ state.status = 'error';
119
+ state.error = `Process exited with code ${code}`;
120
+ this.addLog(config.id, `[${config.name}] Error: exited with code ${code}`);
121
+ }
122
+ this.emit('statusChange', config.id, state.status);
123
+ });
124
+ // Handle spawn errors
125
+ proc.on('error', (err) => {
126
+ state.status = 'error';
127
+ state.error = err.message;
128
+ state.process = undefined;
129
+ this.addLog(config.id, `[${config.name}] Error: ${err.message}`);
130
+ this.emit('statusChange', config.id, 'error');
131
+ });
132
+ // Set running after a short delay if no ready message detected
133
+ setTimeout(() => {
134
+ if (state.status === 'starting' && state.process) {
135
+ state.status = 'running';
136
+ this.emit('statusChange', config.id, 'running');
137
+ }
138
+ }, 3000);
139
+ }
140
+ catch (err) {
141
+ state.status = 'error';
142
+ state.error = err instanceof Error ? err.message : 'Unknown error';
143
+ this.addLog(config.id, `[${config.name}] Failed to start: ${state.error}`);
144
+ this.emit('statusChange', config.id, 'error');
145
+ }
146
+ return state;
147
+ }
148
+ stop(id) {
149
+ const service = this.services.get(id);
150
+ if (!service || !service.process) {
151
+ return false;
152
+ }
153
+ this.addLog(id, `[${service.name}] Stopping...`);
154
+ // Kill the process tree
155
+ try {
156
+ process.kill(-service.process.pid, 'SIGTERM');
157
+ }
158
+ catch {
159
+ // Process group kill failed, try direct kill
160
+ service.process.kill('SIGTERM');
161
+ }
162
+ // Force kill after timeout
163
+ setTimeout(() => {
164
+ if (service.process && !service.process.killed) {
165
+ try {
166
+ process.kill(-service.process.pid, 'SIGKILL');
167
+ }
168
+ catch {
169
+ service.process.kill('SIGKILL');
170
+ }
171
+ }
172
+ }, 2000);
173
+ return true;
174
+ }
175
+ stopAll() {
176
+ for (const [id] of this.services) {
177
+ this.stop(id);
178
+ }
179
+ }
180
+ // Force stop all services synchronously - used during process exit
181
+ forceStopAll() {
182
+ for (const [id, service] of this.services) {
183
+ if (service.pid) {
184
+ try {
185
+ // Try to kill the process group first
186
+ process.kill(-service.pid, 'SIGKILL');
187
+ }
188
+ catch {
189
+ // Process group kill failed, try direct kill
190
+ try {
191
+ process.kill(service.pid, 'SIGKILL');
192
+ }
193
+ catch {
194
+ // Process may already be dead
195
+ }
196
+ }
197
+ }
198
+ if (service.process && !service.process.killed) {
199
+ try {
200
+ service.process.kill('SIGKILL');
201
+ }
202
+ catch {
203
+ // Ignore errors
204
+ }
205
+ }
206
+ }
207
+ // Also try to kill any orphaned vite/nodemon processes using lsof on common ports
208
+ try {
209
+ // Kill processes on typical dev ports synchronously
210
+ execSync('lsof -ti :3060 | xargs kill -9 2>/dev/null || true', { stdio: 'ignore' });
211
+ execSync('lsof -ti :3069 | xargs kill -9 2>/dev/null || true', { stdio: 'ignore' });
212
+ }
213
+ catch {
214
+ // Ignore errors - best effort cleanup
215
+ }
216
+ }
217
+ restart(id) {
218
+ const config = serviceConfigs.get(id);
219
+ if (!config) {
220
+ return false;
221
+ }
222
+ const service = this.services.get(id);
223
+ if (service?.process) {
224
+ // Stop first, then restart after process exits
225
+ this.addLog(id, `[${config.name}] Restarting...`);
226
+ const onExit = () => {
227
+ // Small delay to ensure cleanup
228
+ setTimeout(() => {
229
+ this.start(config);
230
+ }, 500);
231
+ };
232
+ // Listen for process exit once
233
+ service.process.once('close', onExit);
234
+ // Kill the process
235
+ try {
236
+ process.kill(-service.process.pid, 'SIGTERM');
237
+ }
238
+ catch {
239
+ service.process.kill('SIGTERM');
240
+ }
241
+ // Force kill after timeout
242
+ setTimeout(() => {
243
+ if (service.process && !service.process.killed) {
244
+ try {
245
+ process.kill(-service.process.pid, 'SIGKILL');
246
+ }
247
+ catch {
248
+ service.process.kill('SIGKILL');
249
+ }
250
+ }
251
+ }, 2000);
252
+ }
253
+ else {
254
+ // Not running, just start
255
+ this.start(config);
256
+ }
257
+ return true;
258
+ }
259
+ getConfig(id) {
260
+ return serviceConfigs.get(id);
261
+ }
262
+ clearLogs(id) {
263
+ const service = this.services.get(id);
264
+ if (service) {
265
+ service.logs = [];
266
+ this.emit('logsCleared', id);
267
+ }
268
+ }
269
+ addLog(id, message) {
270
+ const service = this.services.get(id);
271
+ if (!service)
272
+ return;
273
+ service.logs.push(message);
274
+ // Trim logs if too many
275
+ if (service.logs.length > this.maxLogLines) {
276
+ service.logs = service.logs.slice(-this.maxLogLines);
277
+ }
278
+ this.emit('log', id, message);
279
+ }
280
+ }
281
+ // Singleton instance
282
+ export const serviceManager = new ServiceManager();
283
+ //# sourceMappingURL=ServiceManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceManager.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/ServiceManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface SocketOptions {
2
+ cwd?: string;
3
+ withMock?: boolean;
4
+ }
5
+ export interface SocketEvent {
6
+ name: string;
7
+ event: string;
8
+ channel: string;
9
+ data: Record<string, unknown>;
10
+ }
11
+ export declare function startSocket(options?: SocketOptions): void;
12
+ export declare function stopSocket(): boolean;
13
+ export declare function isSocketRunning(): boolean;
14
+ export declare function listSocketEvents(cwd?: string): SocketEvent[];
15
+ export declare function sendSocketEvent(eventName: string, identifier?: string, cwd?: string): Promise<{
16
+ success: boolean;
17
+ message: string;
18
+ }>;
19
+ //# sourceMappingURL=SocketService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SocketService.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/services/SocketService.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAgCD,wBAAgB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,IAAI,CAuB7D;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAyB5D;AAGD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwFhD"}
@@ -0,0 +1,163 @@
1
+ import { serviceManager } from './ServiceManager.js';
2
+ import path from 'path';
3
+ import fs from 'fs';
4
+ import { fileURLToPath } from 'url';
5
+ import https from 'https';
6
+ import http from 'http';
7
+ // Get toolkit root
8
+ function getToolkitRoot() {
9
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
+ // From dist/tui/services/ go up 3 levels to toolkit root
11
+ return path.resolve(__dirname, '..', '..', '..');
12
+ }
13
+ // Get the path to the runtime server.js
14
+ function getServerPath() {
15
+ const toolkitRoot = getToolkitRoot();
16
+ return path.join(toolkitRoot, 'runtime', 'server.js');
17
+ }
18
+ // Get the socket events directory
19
+ function getSocketEventsDir(cwd) {
20
+ // Check local project first
21
+ const localDir = path.join(cwd, 'socket-events');
22
+ if (fs.existsSync(localDir)) {
23
+ return localDir;
24
+ }
25
+ // Fall back to toolkit's socket-events
26
+ const toolkitDir = path.join(getToolkitRoot(), 'socket-events');
27
+ if (fs.existsSync(toolkitDir)) {
28
+ return toolkitDir;
29
+ }
30
+ return null;
31
+ }
32
+ export function startSocket(options = {}) {
33
+ const cwd = options.cwd || process.cwd();
34
+ const withMock = options.withMock || false;
35
+ const env = {
36
+ FORCE_COLOR: '1',
37
+ };
38
+ // Enable mock API if requested
39
+ if (withMock) {
40
+ env.MOCK_API_ENABLED = 'true';
41
+ }
42
+ const config = {
43
+ id: 'socket',
44
+ name: withMock ? 'Socket.IO + Mock API' : 'Socket.IO',
45
+ command: 'node',
46
+ args: [getServerPath()],
47
+ cwd,
48
+ env,
49
+ };
50
+ serviceManager.start(config);
51
+ }
52
+ export function stopSocket() {
53
+ return serviceManager.stop('socket');
54
+ }
55
+ export function isSocketRunning() {
56
+ return serviceManager.isRunning('socket');
57
+ }
58
+ // List available socket events
59
+ export function listSocketEvents(cwd) {
60
+ const eventsDir = getSocketEventsDir(cwd || process.cwd());
61
+ if (!eventsDir) {
62
+ return [];
63
+ }
64
+ const events = [];
65
+ const files = fs.readdirSync(eventsDir).filter(f => f.endsWith('.json'));
66
+ for (const file of files) {
67
+ try {
68
+ const content = fs.readFileSync(path.join(eventsDir, file), 'utf-8');
69
+ const data = JSON.parse(content);
70
+ events.push({
71
+ name: path.basename(file, '.json'),
72
+ event: data.event,
73
+ channel: data.channel,
74
+ data: data.data,
75
+ });
76
+ }
77
+ catch {
78
+ // Skip invalid files
79
+ }
80
+ }
81
+ return events;
82
+ }
83
+ // Send a socket event
84
+ export async function sendSocketEvent(eventName, identifier, cwd) {
85
+ const eventsDir = getSocketEventsDir(cwd || process.cwd());
86
+ if (!eventsDir) {
87
+ return { success: false, message: 'Socket events directory not found' };
88
+ }
89
+ const eventPath = path.join(eventsDir, `${eventName}.json`);
90
+ if (!fs.existsSync(eventPath)) {
91
+ return { success: false, message: `Event "${eventName}" not found` };
92
+ }
93
+ try {
94
+ const content = fs.readFileSync(eventPath, 'utf-8');
95
+ const eventData = JSON.parse(content);
96
+ // Update channel if identifier provided
97
+ if (identifier) {
98
+ const channelParts = eventData.channel.split('.');
99
+ if (channelParts.length >= 2) {
100
+ const model = channelParts[1];
101
+ eventData.channel = `private.${model}.${identifier}`;
102
+ }
103
+ }
104
+ const socketPort = process.env.SOCKET_IO_PORT || 3069;
105
+ const payload = JSON.stringify({
106
+ event: eventData.event,
107
+ channel: eventData.channel,
108
+ data: eventData.data,
109
+ });
110
+ return new Promise((resolve) => {
111
+ // Try HTTPS first, then HTTP
112
+ const tryRequest = (useHttps) => {
113
+ const protocol = useHttps ? https : http;
114
+ const url = `${useHttps ? 'https' : 'http'}://localhost:${socketPort}/emit`;
115
+ const req = protocol.request(url, {
116
+ method: 'POST',
117
+ headers: {
118
+ 'Content-Type': 'application/json',
119
+ 'Content-Length': Buffer.byteLength(payload),
120
+ },
121
+ rejectUnauthorized: false, // Allow self-signed certs
122
+ }, (res) => {
123
+ if (res.statusCode === 200) {
124
+ resolve({
125
+ success: true,
126
+ message: `Sent "${eventData.event}" to channel "${eventData.channel}"`,
127
+ });
128
+ }
129
+ else {
130
+ resolve({
131
+ success: false,
132
+ message: `Server returned status ${res.statusCode}`,
133
+ });
134
+ }
135
+ });
136
+ req.on('error', (err) => {
137
+ if (useHttps && err.message.includes('ECONNREFUSED')) {
138
+ // Try HTTP if HTTPS fails
139
+ tryRequest(false);
140
+ }
141
+ else {
142
+ resolve({
143
+ success: false,
144
+ message: err.message.includes('ECONNREFUSED')
145
+ ? 'Socket.IO server not running. Start it with /socket'
146
+ : `Error: ${err.message}`,
147
+ });
148
+ }
149
+ });
150
+ req.write(payload);
151
+ req.end();
152
+ };
153
+ tryRequest(true);
154
+ });
155
+ }
156
+ catch (err) {
157
+ return {
158
+ success: false,
159
+ message: `Error reading event file: ${err instanceof Error ? err.message : 'Unknown error'}`,
160
+ };
161
+ }
162
+ }
163
+ //# sourceMappingURL=SocketService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SocketService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/SocketService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface ViteOptions {
2
+ noHttps?: boolean;
3
+ cwd?: string;
4
+ }
5
+ export declare function startVite(options?: ViteOptions): void;
6
+ export declare function stopVite(): boolean;
7
+ export declare function isViteRunning(): boolean;
8
+ //# sourceMappingURL=ViteService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViteService.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/services/ViteService.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA0BD,wBAAgB,SAAS,CAAC,OAAO,GAAE,WAAgB,GAAG,IAAI,CA+DzD;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
@@ -0,0 +1,89 @@
1
+ import { serviceManager } from './ServiceManager.js';
2
+ import path from 'path';
3
+ import fs from 'fs';
4
+ import { fileURLToPath } from 'url';
5
+ import dotenv from 'dotenv';
6
+ // Get the toolkit root directory
7
+ function getToolkitRoot() {
8
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
+ // Navigate from dist/tui/services to project root (3 levels up)
10
+ return path.resolve(__dirname, '..', '..', '..');
11
+ }
12
+ // Find existing SSL certificates in a directory
13
+ function findExistingCertificates(certsDir) {
14
+ if (!fs.existsSync(certsDir))
15
+ return null;
16
+ const files = fs.readdirSync(certsDir);
17
+ const certFile = files.find(f => f.endsWith('.pem') && !f.includes('key'));
18
+ const keyFile = files.find(f => f.includes('key') && f.endsWith('.pem'));
19
+ if (certFile && keyFile) {
20
+ return {
21
+ certPath: path.join(certsDir, certFile),
22
+ keyPath: path.join(certsDir, keyFile),
23
+ };
24
+ }
25
+ return null;
26
+ }
27
+ export function startVite(options = {}) {
28
+ const cwd = options.cwd || process.cwd();
29
+ const toolkitRoot = getToolkitRoot();
30
+ // Load .env file if it exists
31
+ const envPath = path.join(cwd, '.env');
32
+ let envVars = {};
33
+ if (fs.existsSync(envPath)) {
34
+ const envResult = dotenv.config({ path: envPath });
35
+ if (envResult.parsed) {
36
+ envVars = { ...envResult.parsed };
37
+ }
38
+ }
39
+ // Determine HTTPS settings
40
+ let useHttps = !options.noHttps;
41
+ let certPath = '';
42
+ let keyPath = '';
43
+ if (useHttps) {
44
+ const certsDir = path.join(cwd, '.certs');
45
+ const existingCerts = findExistingCertificates(certsDir);
46
+ if (existingCerts) {
47
+ certPath = existingCerts.certPath;
48
+ keyPath = existingCerts.keyPath;
49
+ }
50
+ else {
51
+ useHttps = false; // No certs found, fall back to HTTP
52
+ }
53
+ }
54
+ // Determine the port (priority: .env > default)
55
+ const port = envVars.NODE_PORT || '3060';
56
+ // Find vite.config.js (local or toolkit runtime)
57
+ const localViteConfig = path.join(cwd, 'vite.config.js');
58
+ // The correct vite.config.js is in the runtime directory, not the root
59
+ const toolkitViteConfig = path.join(toolkitRoot, 'runtime', 'vite.config.js');
60
+ const viteConfigPath = fs.existsSync(localViteConfig) ? localViteConfig : toolkitViteConfig;
61
+ // Build final environment variables
62
+ const env = {
63
+ ...envVars,
64
+ FORCE_COLOR: '1',
65
+ NODE_PORT: port,
66
+ USE_HTTPS: useHttps ? 'true' : 'false',
67
+ CERT_PATH: certPath,
68
+ KEY_PATH: keyPath,
69
+ COMPONENT_PATH: envVars.COMPONENT_PATH || './src/Plugin.vue',
70
+ NODE_LOG_LEVEL: envVars.NODE_LOG_LEVEL || 'info',
71
+ };
72
+ // Run vite directly with the correct config
73
+ const config = {
74
+ id: 'vite',
75
+ name: 'Vite',
76
+ command: 'npx',
77
+ args: ['vite', 'dev', '--config', viteConfigPath],
78
+ cwd,
79
+ env,
80
+ };
81
+ serviceManager.start(config);
82
+ }
83
+ export function stopVite() {
84
+ return serviceManager.stop('vite');
85
+ }
86
+ export function isViteRunning() {
87
+ return serviceManager.isRunning('vite');
88
+ }
89
+ //# sourceMappingURL=ViteService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViteService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/ViteService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { serviceManager, ServiceManager, ServiceStatus, ServiceConfig, ServiceState } from './ServiceManager.js';
2
+ export { startVite, stopVite, isViteRunning, ViteOptions } from './ViteService.js';
3
+ export { startSocket, stopSocket, isSocketRunning, listSocketEvents, sendSocketEvent, SocketOptions, SocketEvent } from './SocketService.js';
4
+ export { startExtension, stopExtension, isExtensionRunning, BrowserType, ExtensionOptions } from './ExtensionService.js';
5
+ export { geminiService, GeminiService, GeminiConfig, isAuthenticated, loadGeminiConfig, saveGeminiConfig, clearAuthTokens } from './GeminiService.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7I,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzH,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAChB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { serviceManager, ServiceManager } from './ServiceManager.js';
2
+ export { startVite, stopVite, isViteRunning } from './ViteService.js';
3
+ export { startSocket, stopSocket, isSocketRunning, listSocketEvents, sendSocketEvent } from './SocketService.js';
4
+ export { startExtension, stopExtension, isExtensionRunning } from './ExtensionService.js';
5
+ export { geminiService, GeminiService, isAuthenticated, loadGeminiConfig, saveGeminiConfig, clearAuthTokens } from './GeminiService.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAA8C,MAAM,qBAAqB,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAe,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAA8B,MAAM,oBAAoB,CAAC;AAC7I,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAiC,MAAM,uBAAuB,CAAC;AACzH,OAAO,EACL,aAAa,EACb,aAAa,EAEb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAChB,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "@gxp-dev/tools",
3
- "version": "2.0.5",
3
+ "version": "2.0.6",
4
4
  "description": "Dev tools to create platform plugins",
5
5
  "type": "commonjs",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
+ "files": [
10
+ "bin",
11
+ "dist/tui",
12
+ "README.md"
13
+ ],
9
14
  "scripts": {
10
15
  "test": "echo \"Error: no test specified\" && exit 1",
11
16
  "dev": "concurrently 'vite dev' 'nodemon config/server.js'",