@friggframework/devtools 2.0.0-next.3 → 2.0.0-next.30

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 (199) hide show
  1. package/frigg-cli/.eslintrc.js +141 -0
  2. package/frigg-cli/__tests__/jest.config.js +102 -0
  3. package/frigg-cli/__tests__/unit/commands/build.test.js +483 -0
  4. package/frigg-cli/__tests__/unit/commands/install.test.js +418 -0
  5. package/frigg-cli/__tests__/unit/commands/ui.test.js +592 -0
  6. package/frigg-cli/__tests__/utils/command-tester.js +170 -0
  7. package/frigg-cli/__tests__/utils/mock-factory.js +270 -0
  8. package/frigg-cli/__tests__/utils/test-fixtures.js +463 -0
  9. package/frigg-cli/__tests__/utils/test-setup.js +286 -0
  10. package/frigg-cli/build-command/index.js +54 -0
  11. package/frigg-cli/deploy-command/index.js +36 -0
  12. package/frigg-cli/generate-command/__tests__/generate-command.test.js +312 -0
  13. package/frigg-cli/generate-command/azure-generator.js +43 -0
  14. package/frigg-cli/generate-command/gcp-generator.js +47 -0
  15. package/frigg-cli/generate-command/index.js +332 -0
  16. package/frigg-cli/generate-command/terraform-generator.js +555 -0
  17. package/frigg-cli/generate-iam-command.js +115 -0
  18. package/frigg-cli/index.js +47 -1
  19. package/frigg-cli/index.test.js +1 -4
  20. package/frigg-cli/init-command/backend-first-handler.js +756 -0
  21. package/frigg-cli/init-command/index.js +93 -0
  22. package/frigg-cli/init-command/template-handler.js +143 -0
  23. package/frigg-cli/install-command/index.js +1 -4
  24. package/frigg-cli/package.json +51 -0
  25. package/frigg-cli/start-command/index.js +24 -4
  26. package/frigg-cli/test/init-command.test.js +180 -0
  27. package/frigg-cli/test/npm-registry.test.js +319 -0
  28. package/frigg-cli/ui-command/index.js +154 -0
  29. package/frigg-cli/utils/app-resolver.js +319 -0
  30. package/frigg-cli/utils/backend-path.js +16 -17
  31. package/frigg-cli/utils/npm-registry.js +167 -0
  32. package/frigg-cli/utils/process-manager.js +199 -0
  33. package/frigg-cli/utils/repo-detection.js +405 -0
  34. package/infrastructure/AWS-DISCOVERY-TROUBLESHOOTING.md +245 -0
  35. package/infrastructure/AWS-IAM-CREDENTIAL-NEEDS.md +596 -0
  36. package/infrastructure/DEPLOYMENT-INSTRUCTIONS.md +268 -0
  37. package/infrastructure/GENERATE-IAM-DOCS.md +253 -0
  38. package/infrastructure/IAM-POLICY-TEMPLATES.md +176 -0
  39. package/infrastructure/README-TESTING.md +332 -0
  40. package/infrastructure/README.md +421 -0
  41. package/infrastructure/WEBSOCKET-CONFIGURATION.md +105 -0
  42. package/infrastructure/__tests__/fixtures/mock-aws-resources.js +391 -0
  43. package/infrastructure/__tests__/helpers/test-utils.js +277 -0
  44. package/infrastructure/aws-discovery.js +568 -0
  45. package/infrastructure/aws-discovery.test.js +373 -0
  46. package/infrastructure/build-time-discovery.js +206 -0
  47. package/infrastructure/build-time-discovery.test.js +375 -0
  48. package/infrastructure/create-frigg-infrastructure.js +3 -5
  49. package/infrastructure/frigg-deployment-iam-stack.yaml +379 -0
  50. package/infrastructure/iam-generator.js +687 -0
  51. package/infrastructure/iam-generator.test.js +169 -0
  52. package/infrastructure/iam-policy-basic.json +212 -0
  53. package/infrastructure/iam-policy-full.json +282 -0
  54. package/infrastructure/integration.test.js +383 -0
  55. package/infrastructure/run-discovery.js +110 -0
  56. package/infrastructure/serverless-template.js +923 -113
  57. package/infrastructure/serverless-template.test.js +541 -0
  58. package/management-ui/.eslintrc.js +22 -0
  59. package/management-ui/README.md +203 -0
  60. package/management-ui/components.json +21 -0
  61. package/management-ui/docs/phase2-integration-guide.md +320 -0
  62. package/management-ui/index.html +13 -0
  63. package/management-ui/package-lock.json +16517 -0
  64. package/management-ui/package.json +76 -0
  65. package/management-ui/packages/devtools/frigg-cli/ui-command/index.js +302 -0
  66. package/management-ui/postcss.config.js +6 -0
  67. package/management-ui/server/api/backend.js +256 -0
  68. package/management-ui/server/api/cli.js +315 -0
  69. package/management-ui/server/api/codegen.js +663 -0
  70. package/management-ui/server/api/connections.js +857 -0
  71. package/management-ui/server/api/discovery.js +185 -0
  72. package/management-ui/server/api/environment/index.js +1 -0
  73. package/management-ui/server/api/environment/router.js +378 -0
  74. package/management-ui/server/api/environment.js +328 -0
  75. package/management-ui/server/api/integrations.js +876 -0
  76. package/management-ui/server/api/logs.js +248 -0
  77. package/management-ui/server/api/monitoring.js +282 -0
  78. package/management-ui/server/api/open-ide.js +31 -0
  79. package/management-ui/server/api/project.js +1029 -0
  80. package/management-ui/server/api/users/sessions.js +371 -0
  81. package/management-ui/server/api/users/simulation.js +254 -0
  82. package/management-ui/server/api/users.js +362 -0
  83. package/management-ui/server/api-contract.md +275 -0
  84. package/management-ui/server/index.js +873 -0
  85. package/management-ui/server/middleware/errorHandler.js +93 -0
  86. package/management-ui/server/middleware/security.js +32 -0
  87. package/management-ui/server/processManager.js +296 -0
  88. package/management-ui/server/server.js +346 -0
  89. package/management-ui/server/services/aws-monitor.js +413 -0
  90. package/management-ui/server/services/npm-registry.js +347 -0
  91. package/management-ui/server/services/template-engine.js +538 -0
  92. package/management-ui/server/utils/cliIntegration.js +220 -0
  93. package/management-ui/server/utils/environment/auditLogger.js +471 -0
  94. package/management-ui/server/utils/environment/awsParameterStore.js +264 -0
  95. package/management-ui/server/utils/environment/encryption.js +278 -0
  96. package/management-ui/server/utils/environment/envFileManager.js +286 -0
  97. package/management-ui/server/utils/import-commonjs.js +28 -0
  98. package/management-ui/server/utils/response.js +83 -0
  99. package/management-ui/server/websocket/handler.js +325 -0
  100. package/management-ui/src/App.jsx +109 -0
  101. package/management-ui/src/assets/FriggLogo.svg +1 -0
  102. package/management-ui/src/components/AppRouter.jsx +65 -0
  103. package/management-ui/src/components/Button.jsx +70 -0
  104. package/management-ui/src/components/Card.jsx +97 -0
  105. package/management-ui/src/components/EnvironmentCompare.jsx +400 -0
  106. package/management-ui/src/components/EnvironmentEditor.jsx +372 -0
  107. package/management-ui/src/components/EnvironmentImportExport.jsx +469 -0
  108. package/management-ui/src/components/EnvironmentSchema.jsx +491 -0
  109. package/management-ui/src/components/EnvironmentSecurity.jsx +463 -0
  110. package/management-ui/src/components/ErrorBoundary.jsx +73 -0
  111. package/management-ui/src/components/IntegrationCard.jsx +481 -0
  112. package/management-ui/src/components/IntegrationCardEnhanced.jsx +770 -0
  113. package/management-ui/src/components/IntegrationExplorer.jsx +379 -0
  114. package/management-ui/src/components/IntegrationStatus.jsx +336 -0
  115. package/management-ui/src/components/Layout.jsx +716 -0
  116. package/management-ui/src/components/LoadingSpinner.jsx +113 -0
  117. package/management-ui/src/components/RepositoryPicker.jsx +248 -0
  118. package/management-ui/src/components/SessionMonitor.jsx +350 -0
  119. package/management-ui/src/components/StatusBadge.jsx +208 -0
  120. package/management-ui/src/components/UserContextSwitcher.jsx +212 -0
  121. package/management-ui/src/components/UserSimulation.jsx +327 -0
  122. package/management-ui/src/components/Welcome.jsx +434 -0
  123. package/management-ui/src/components/codegen/APIEndpointGenerator.jsx +637 -0
  124. package/management-ui/src/components/codegen/APIModuleSelector.jsx +227 -0
  125. package/management-ui/src/components/codegen/CodeGenerationWizard.jsx +247 -0
  126. package/management-ui/src/components/codegen/CodePreviewEditor.jsx +316 -0
  127. package/management-ui/src/components/codegen/DynamicModuleForm.jsx +271 -0
  128. package/management-ui/src/components/codegen/FormBuilder.jsx +737 -0
  129. package/management-ui/src/components/codegen/IntegrationGenerator.jsx +855 -0
  130. package/management-ui/src/components/codegen/ProjectScaffoldWizard.jsx +797 -0
  131. package/management-ui/src/components/codegen/SchemaBuilder.jsx +303 -0
  132. package/management-ui/src/components/codegen/TemplateSelector.jsx +586 -0
  133. package/management-ui/src/components/codegen/index.js +10 -0
  134. package/management-ui/src/components/connections/ConnectionConfigForm.jsx +362 -0
  135. package/management-ui/src/components/connections/ConnectionHealthMonitor.jsx +182 -0
  136. package/management-ui/src/components/connections/ConnectionTester.jsx +200 -0
  137. package/management-ui/src/components/connections/EntityRelationshipMapper.jsx +292 -0
  138. package/management-ui/src/components/connections/OAuthFlow.jsx +204 -0
  139. package/management-ui/src/components/connections/index.js +5 -0
  140. package/management-ui/src/components/index.js +21 -0
  141. package/management-ui/src/components/monitoring/APIGatewayMetrics.jsx +222 -0
  142. package/management-ui/src/components/monitoring/LambdaMetrics.jsx +169 -0
  143. package/management-ui/src/components/monitoring/MetricsChart.jsx +197 -0
  144. package/management-ui/src/components/monitoring/MonitoringDashboard.jsx +393 -0
  145. package/management-ui/src/components/monitoring/SQSMetrics.jsx +246 -0
  146. package/management-ui/src/components/monitoring/index.js +6 -0
  147. package/management-ui/src/components/monitoring/monitoring.css +218 -0
  148. package/management-ui/src/components/theme-provider.jsx +52 -0
  149. package/management-ui/src/components/theme-toggle.jsx +39 -0
  150. package/management-ui/src/components/ui/badge.tsx +36 -0
  151. package/management-ui/src/components/ui/button.test.jsx +56 -0
  152. package/management-ui/src/components/ui/button.tsx +57 -0
  153. package/management-ui/src/components/ui/card.tsx +76 -0
  154. package/management-ui/src/components/ui/dropdown-menu.tsx +199 -0
  155. package/management-ui/src/components/ui/select.tsx +157 -0
  156. package/management-ui/src/components/ui/skeleton.jsx +15 -0
  157. package/management-ui/src/hooks/useFrigg.jsx +601 -0
  158. package/management-ui/src/hooks/useSocket.jsx +58 -0
  159. package/management-ui/src/index.css +193 -0
  160. package/management-ui/src/lib/utils.ts +6 -0
  161. package/management-ui/src/main.jsx +10 -0
  162. package/management-ui/src/pages/CodeGeneration.jsx +14 -0
  163. package/management-ui/src/pages/Connections.jsx +252 -0
  164. package/management-ui/src/pages/ConnectionsEnhanced.jsx +633 -0
  165. package/management-ui/src/pages/Dashboard.jsx +311 -0
  166. package/management-ui/src/pages/Environment.jsx +314 -0
  167. package/management-ui/src/pages/IntegrationConfigure.jsx +669 -0
  168. package/management-ui/src/pages/IntegrationDiscovery.jsx +567 -0
  169. package/management-ui/src/pages/IntegrationTest.jsx +742 -0
  170. package/management-ui/src/pages/Integrations.jsx +253 -0
  171. package/management-ui/src/pages/Monitoring.jsx +17 -0
  172. package/management-ui/src/pages/Simulation.jsx +155 -0
  173. package/management-ui/src/pages/Users.jsx +492 -0
  174. package/management-ui/src/services/api.js +41 -0
  175. package/management-ui/src/services/apiModuleService.js +193 -0
  176. package/management-ui/src/services/websocket-handlers.js +120 -0
  177. package/management-ui/src/test/api/project.test.js +273 -0
  178. package/management-ui/src/test/components/Welcome.test.jsx +378 -0
  179. package/management-ui/src/test/mocks/server.js +178 -0
  180. package/management-ui/src/test/setup.js +61 -0
  181. package/management-ui/src/test/utils/test-utils.jsx +134 -0
  182. package/management-ui/src/utils/repository.js +98 -0
  183. package/management-ui/src/utils/repository.test.js +118 -0
  184. package/management-ui/src/workflows/phase2-integration-workflows.js +884 -0
  185. package/management-ui/tailwind.config.js +63 -0
  186. package/management-ui/tsconfig.json +37 -0
  187. package/management-ui/tsconfig.node.json +10 -0
  188. package/management-ui/vite.config.js +26 -0
  189. package/management-ui/vitest.config.js +38 -0
  190. package/package.json +16 -9
  191. package/infrastructure/app-handler-helpers.js +0 -57
  192. package/infrastructure/backend-utils.js +0 -90
  193. package/infrastructure/routers/auth.js +0 -26
  194. package/infrastructure/routers/integration-defined-routers.js +0 -37
  195. package/infrastructure/routers/middleware/loadUser.js +0 -15
  196. package/infrastructure/routers/middleware/requireLoggedInUser.js +0 -12
  197. package/infrastructure/routers/user.js +0 -41
  198. package/infrastructure/routers/websocket.js +0 -55
  199. package/infrastructure/workers/integration-defined-workers.js +0 -24
@@ -0,0 +1,346 @@
1
+ import express from 'express'
2
+ import { createServer } from 'http'
3
+ import { Server } from 'socket.io'
4
+ import cors from 'cors'
5
+ import path from 'path'
6
+ import { fileURLToPath } from 'url'
7
+
8
+ // Import middleware and utilities
9
+ import { errorHandler } from './middleware/errorHandler.js'
10
+ import { createStandardResponse } from './utils/response.js'
11
+ import { setupWebSocket } from './websocket/handler.js'
12
+ import { addLogEntry, LOG_LEVELS } from './api/logs.js'
13
+
14
+ // Import API routes
15
+ import projectRouter from './api/project.js'
16
+ import integrationsRouter from './api/integrations.js'
17
+ import environmentRouter from './api/environment.js'
18
+ import usersRouter from './api/users.js'
19
+ import connectionsRouter from './api/connections.js'
20
+ import cliRouter from './api/cli.js'
21
+ import logsRouter from './api/logs.js'
22
+ <<<<<<< HEAD
23
+ <<<<<<< HEAD
24
+ import monitoringRouter from './api/monitoring.js'
25
+ import codegenRouter from './api/codegen.js'
26
+ import discoveryRouter from './api/discovery.js'
27
+ import openIdeHandler from './api/open-ide.js'
28
+ =======
29
+ <<<<<<< HEAD
30
+ <<<<<<< HEAD
31
+ =======
32
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
33
+ import monitoringRouter from './api/monitoring.js'
34
+ import codegenRouter from './api/codegen.js'
35
+ import discoveryRouter from './api/discovery.js'
36
+ import openIdeHandler from './api/open-ide.js'
37
+ <<<<<<< HEAD
38
+ >>>>>>> d6114470 (feat: add comprehensive DDD/Hexagonal architecture RFC series)
39
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
40
+ =======
41
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
42
+
43
+ const __filename = fileURLToPath(import.meta.url)
44
+ const __dirname = path.dirname(__filename)
45
+
46
+ const app = express()
47
+ const httpServer = createServer(app)
48
+ const io = new Server(httpServer, {
49
+ cors: {
50
+ origin: ["http://localhost:5173", "http://localhost:3000"],
51
+ methods: ["GET", "POST", "PUT", "DELETE"],
52
+ credentials: true
53
+ }
54
+ })
55
+
56
+ // Store io instance in app for route access
57
+ app.set('io', io)
58
+
59
+ // Middleware
60
+ app.use(cors({
61
+ origin: ["http://localhost:5173", "http://localhost:3000"],
62
+ credentials: true
63
+ }))
64
+ app.use(express.json({ limit: '10mb' }))
65
+ app.use(express.urlencoded({ extended: true }))
66
+
67
+ // Request logging middleware
68
+ app.use((req, res, next) => {
69
+ const timestamp = new Date().toISOString()
70
+ console.log(`${timestamp} - ${req.method} ${req.path}`)
71
+
72
+ <<<<<<< HEAD
73
+ =======
74
+ <<<<<<< HEAD
75
+
76
+ =======
77
+
78
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
79
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
80
+ =======
81
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
82
+ // Log API requests
83
+ addLogEntry(LOG_LEVELS.INFO, `${req.method} ${req.path}`, 'api', {
84
+ method: req.method,
85
+ path: req.path,
86
+ query: req.query,
87
+ userAgent: req.get('User-Agent')
88
+ })
89
+
90
+ <<<<<<< HEAD
91
+ =======
92
+ <<<<<<< HEAD
93
+
94
+ =======
95
+
96
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
97
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
98
+ =======
99
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
100
+ next()
101
+ })
102
+
103
+ // Setup WebSocket handling
104
+ setupWebSocket(io)
105
+
106
+ // Health check endpoint
107
+ app.get('/health', (req, res) => {
108
+ res.json(createStandardResponse({
109
+ status: 'healthy',
110
+ timestamp: new Date().toISOString(),
111
+ uptime: process.uptime(),
112
+ version: process.env.npm_package_version || '1.0.0'
113
+ }))
114
+ })
115
+
116
+ <<<<<<< HEAD
117
+ <<<<<<< HEAD
118
+ =======
119
+ <<<<<<< HEAD
120
+ <<<<<<< HEAD
121
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
122
+ =======
123
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
124
+ // Get initial repository info
125
+ app.get('/api/repository/current', (req, res) => {
126
+ const repoInfo = process.env.REPOSITORY_INFO ?
127
+ JSON.parse(process.env.REPOSITORY_INFO) :
128
+ <<<<<<< HEAD
129
+ <<<<<<< HEAD
130
+ =======
131
+ =======
132
+ // Get initial repository info
133
+ app.get('/api/repository/current', (req, res) => {
134
+ const repoInfo = process.env.REPOSITORY_INFO ?
135
+ JSON.parse(process.env.REPOSITORY_INFO) :
136
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
137
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
138
+ =======
139
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
140
+ null
141
+ res.json(createStandardResponse({ repository: repoInfo }))
142
+ })
143
+
144
+ <<<<<<< HEAD
145
+ <<<<<<< HEAD
146
+ =======
147
+ <<<<<<< HEAD
148
+ =======
149
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
150
+ =======
151
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
152
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
153
+ =======
154
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
155
+ // API endpoints
156
+ app.use('/api/project', projectRouter)
157
+ app.use('/api/integrations', integrationsRouter)
158
+ app.use('/api/environment', environmentRouter)
159
+ app.use('/api/users', usersRouter)
160
+ app.use('/api/connections', connectionsRouter)
161
+ app.use('/api/cli', cliRouter)
162
+ app.use('/api/logs', logsRouter)
163
+ <<<<<<< HEAD
164
+ <<<<<<< HEAD
165
+ app.use('/api/monitoring', monitoringRouter)
166
+ app.use('/api/codegen', codegenRouter)
167
+ app.use('/api/discovery', discoveryRouter)
168
+ app.post('/api/open-in-ide', openIdeHandler)
169
+ =======
170
+ <<<<<<< HEAD
171
+ <<<<<<< HEAD
172
+ =======
173
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
174
+ app.use('/api/monitoring', monitoringRouter)
175
+ app.use('/api/codegen', codegenRouter)
176
+ app.use('/api/discovery', discoveryRouter)
177
+ app.post('/api/open-in-ide', openIdeHandler)
178
+ <<<<<<< HEAD
179
+ >>>>>>> d6114470 (feat: add comprehensive DDD/Hexagonal architecture RFC series)
180
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
181
+ =======
182
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
183
+
184
+ // API documentation endpoint
185
+ app.get('/api', (req, res) => {
186
+ res.json(createStandardResponse({
187
+ name: 'Frigg Management UI API',
188
+ version: '1.0.0',
189
+ description: 'REST API for Frigg CLI-GUI communication',
190
+ endpoints: {
191
+ project: '/api/project',
192
+ integrations: '/api/integrations',
193
+ environment: '/api/environment',
194
+ users: '/api/users',
195
+ connections: '/api/connections',
196
+ cli: '/api/cli',
197
+ <<<<<<< HEAD
198
+ <<<<<<< HEAD
199
+ logs: '/api/logs',
200
+ monitoring: '/api/monitoring',
201
+ codegen: '/api/codegen'
202
+ =======
203
+ <<<<<<< HEAD
204
+ <<<<<<< HEAD
205
+ logs: '/api/logs',
206
+ monitoring: '/api/monitoring',
207
+ codegen: '/api/codegen'
208
+ =======
209
+ logs: '/api/logs'
210
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
211
+ =======
212
+ logs: '/api/logs',
213
+ monitoring: '/api/monitoring',
214
+ codegen: '/api/codegen'
215
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
216
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
217
+ =======
218
+ logs: '/api/logs',
219
+ monitoring: '/api/monitoring',
220
+ codegen: '/api/codegen'
221
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
222
+ },
223
+ websocket: {
224
+ url: 'ws://localhost:3001',
225
+ events: [
226
+ 'project:status',
227
+ 'project:logs',
228
+ 'integrations:update',
229
+ 'environment:update',
230
+ 'cli:output',
231
+ 'cli:complete',
232
+ <<<<<<< HEAD
233
+ <<<<<<< HEAD
234
+ 'logs:new',
235
+ 'monitoring:metrics',
236
+ 'monitoring:error'
237
+ =======
238
+ <<<<<<< HEAD
239
+ <<<<<<< HEAD
240
+ 'logs:new',
241
+ 'monitoring:metrics',
242
+ 'monitoring:error'
243
+ =======
244
+ 'logs:new'
245
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
246
+ =======
247
+ 'logs:new',
248
+ 'monitoring:metrics',
249
+ 'monitoring:error'
250
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
251
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
252
+ =======
253
+ 'logs:new',
254
+ 'monitoring:metrics',
255
+ 'monitoring:error'
256
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
257
+ ]
258
+ },
259
+ documentation: '/api-contract.md'
260
+ }))
261
+ })
262
+
263
+ // Serve static files in production
264
+ if (process.env.NODE_ENV === 'production') {
265
+ app.use(express.static(path.join(__dirname, '../dist')))
266
+ app.get('*', (req, res) => {
267
+ res.sendFile(path.join(__dirname, '../dist/index.html'))
268
+ })
269
+ }
270
+
271
+ // 404 handler for API routes
272
+ app.use('/api/*', (req, res) => {
273
+ res.status(404).json(createStandardResponse(null, `API endpoint not found: ${req.path}`))
274
+ })
275
+
276
+ // Error handling middleware (must be last)
277
+ app.use(errorHandler)
278
+
279
+ // Start server
280
+ const PORT = process.env.PORT || 3001
281
+ httpServer.listen(PORT, () => {
282
+ console.log(`🚀 Frigg Management UI server running on port ${PORT}`)
283
+ console.log(`📡 WebSocket server ready for connections`)
284
+ console.log(`📚 API documentation: http://localhost:${PORT}/api`)
285
+ console.log(`🏥 Health check: http://localhost:${PORT}/health`)
286
+
287
+ <<<<<<< HEAD
288
+ =======
289
+ <<<<<<< HEAD
290
+
291
+ =======
292
+
293
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
294
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
295
+ =======
296
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
297
+ // Log server startup
298
+ addLogEntry(LOG_LEVELS.INFO, `Server started on port ${PORT}`, 'server', {
299
+ port: PORT,
300
+ nodeVersion: process.version,
301
+ environment: process.env.NODE_ENV || 'development'
302
+ })
303
+ })
304
+
305
+ // Graceful shutdown
306
+ process.on('SIGTERM', () => {
307
+ console.log('SIGTERM received, shutting down gracefully...')
308
+ addLogEntry(LOG_LEVELS.INFO, 'Server shutting down gracefully', 'server')
309
+
310
+ <<<<<<< HEAD
311
+ =======
312
+ <<<<<<< HEAD
313
+
314
+ =======
315
+
316
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
317
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
318
+ =======
319
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
320
+ httpServer.close(() => {
321
+ console.log('Server closed')
322
+ process.exit(0)
323
+ })
324
+ })
325
+
326
+ process.on('SIGINT', () => {
327
+ console.log('SIGINT received, shutting down gracefully...')
328
+ addLogEntry(LOG_LEVELS.INFO, 'Server interrupted, shutting down', 'server')
329
+
330
+ <<<<<<< HEAD
331
+ =======
332
+ <<<<<<< HEAD
333
+
334
+ =======
335
+
336
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
337
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
338
+ =======
339
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
340
+ httpServer.close(() => {
341
+ console.log('Server closed')
342
+ process.exit(0)
343
+ })
344
+ })
345
+
346
+ export default app