@friggframework/devtools 2.0.0-next.29 → 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.
- package/frigg-cli/.eslintrc.js +141 -0
- package/frigg-cli/__tests__/jest.config.js +102 -0
- package/frigg-cli/__tests__/unit/commands/build.test.js +483 -0
- package/frigg-cli/__tests__/unit/commands/install.test.js +418 -0
- package/frigg-cli/__tests__/unit/commands/ui.test.js +592 -0
- package/frigg-cli/__tests__/utils/command-tester.js +170 -0
- package/frigg-cli/__tests__/utils/mock-factory.js +270 -0
- package/frigg-cli/__tests__/utils/test-fixtures.js +463 -0
- package/frigg-cli/__tests__/utils/test-setup.js +286 -0
- package/frigg-cli/generate-command/__tests__/generate-command.test.js +312 -0
- package/frigg-cli/generate-command/azure-generator.js +43 -0
- package/frigg-cli/generate-command/gcp-generator.js +47 -0
- package/frigg-cli/generate-command/index.js +332 -0
- package/frigg-cli/generate-command/terraform-generator.js +555 -0
- package/frigg-cli/index.js +19 -1
- package/frigg-cli/init-command/backend-first-handler.js +756 -0
- package/frigg-cli/init-command/index.js +93 -0
- package/frigg-cli/init-command/template-handler.js +143 -0
- package/frigg-cli/package.json +51 -0
- package/frigg-cli/test/init-command.test.js +180 -0
- package/frigg-cli/test/npm-registry.test.js +319 -0
- package/frigg-cli/ui-command/index.js +154 -0
- package/frigg-cli/utils/app-resolver.js +319 -0
- package/frigg-cli/utils/backend-path.js +25 -0
- package/frigg-cli/utils/npm-registry.js +167 -0
- package/frigg-cli/utils/process-manager.js +199 -0
- package/frigg-cli/utils/repo-detection.js +405 -0
- package/infrastructure/serverless-template.js +177 -292
- package/management-ui/.eslintrc.js +22 -0
- package/management-ui/README.md +203 -0
- package/management-ui/components.json +21 -0
- package/management-ui/docs/phase2-integration-guide.md +320 -0
- package/management-ui/{dist/index.html → index.html} +1 -2
- package/management-ui/package-lock.json +16517 -0
- package/management-ui/package.json +76 -0
- package/management-ui/packages/devtools/frigg-cli/ui-command/index.js +302 -0
- package/management-ui/postcss.config.js +6 -0
- package/management-ui/server/api/backend.js +256 -0
- package/management-ui/server/api/cli.js +315 -0
- package/management-ui/server/api/codegen.js +663 -0
- package/management-ui/server/api/connections.js +857 -0
- package/management-ui/server/api/discovery.js +185 -0
- package/management-ui/server/api/environment/index.js +1 -0
- package/management-ui/server/api/environment/router.js +378 -0
- package/management-ui/server/api/environment.js +328 -0
- package/management-ui/server/api/integrations.js +876 -0
- package/management-ui/server/api/logs.js +248 -0
- package/management-ui/server/api/monitoring.js +282 -0
- package/management-ui/server/api/open-ide.js +31 -0
- package/management-ui/server/api/project.js +1029 -0
- package/management-ui/server/api/users/sessions.js +371 -0
- package/management-ui/server/api/users/simulation.js +254 -0
- package/management-ui/server/api/users.js +362 -0
- package/management-ui/server/api-contract.md +275 -0
- package/management-ui/server/index.js +873 -0
- package/management-ui/server/middleware/errorHandler.js +93 -0
- package/management-ui/server/middleware/security.js +32 -0
- package/management-ui/server/processManager.js +296 -0
- package/management-ui/server/server.js +346 -0
- package/management-ui/server/services/aws-monitor.js +413 -0
- package/management-ui/server/services/npm-registry.js +347 -0
- package/management-ui/server/services/template-engine.js +538 -0
- package/management-ui/server/utils/cliIntegration.js +220 -0
- package/management-ui/server/utils/environment/auditLogger.js +471 -0
- package/management-ui/server/utils/environment/awsParameterStore.js +264 -0
- package/management-ui/server/utils/environment/encryption.js +278 -0
- package/management-ui/server/utils/environment/envFileManager.js +286 -0
- package/management-ui/server/utils/import-commonjs.js +28 -0
- package/management-ui/server/utils/response.js +83 -0
- package/management-ui/server/websocket/handler.js +325 -0
- package/management-ui/src/App.jsx +109 -0
- package/management-ui/src/components/AppRouter.jsx +65 -0
- package/management-ui/src/components/Button.jsx +70 -0
- package/management-ui/src/components/Card.jsx +97 -0
- package/management-ui/src/components/EnvironmentCompare.jsx +400 -0
- package/management-ui/src/components/EnvironmentEditor.jsx +372 -0
- package/management-ui/src/components/EnvironmentImportExport.jsx +469 -0
- package/management-ui/src/components/EnvironmentSchema.jsx +491 -0
- package/management-ui/src/components/EnvironmentSecurity.jsx +463 -0
- package/management-ui/src/components/ErrorBoundary.jsx +73 -0
- package/management-ui/src/components/IntegrationCard.jsx +481 -0
- package/management-ui/src/components/IntegrationCardEnhanced.jsx +770 -0
- package/management-ui/src/components/IntegrationExplorer.jsx +379 -0
- package/management-ui/src/components/IntegrationStatus.jsx +336 -0
- package/management-ui/src/components/Layout.jsx +716 -0
- package/management-ui/src/components/LoadingSpinner.jsx +113 -0
- package/management-ui/src/components/RepositoryPicker.jsx +248 -0
- package/management-ui/src/components/SessionMonitor.jsx +350 -0
- package/management-ui/src/components/StatusBadge.jsx +208 -0
- package/management-ui/src/components/UserContextSwitcher.jsx +212 -0
- package/management-ui/src/components/UserSimulation.jsx +327 -0
- package/management-ui/src/components/Welcome.jsx +434 -0
- package/management-ui/src/components/codegen/APIEndpointGenerator.jsx +637 -0
- package/management-ui/src/components/codegen/APIModuleSelector.jsx +227 -0
- package/management-ui/src/components/codegen/CodeGenerationWizard.jsx +247 -0
- package/management-ui/src/components/codegen/CodePreviewEditor.jsx +316 -0
- package/management-ui/src/components/codegen/DynamicModuleForm.jsx +271 -0
- package/management-ui/src/components/codegen/FormBuilder.jsx +737 -0
- package/management-ui/src/components/codegen/IntegrationGenerator.jsx +855 -0
- package/management-ui/src/components/codegen/ProjectScaffoldWizard.jsx +797 -0
- package/management-ui/src/components/codegen/SchemaBuilder.jsx +303 -0
- package/management-ui/src/components/codegen/TemplateSelector.jsx +586 -0
- package/management-ui/src/components/codegen/index.js +10 -0
- package/management-ui/src/components/connections/ConnectionConfigForm.jsx +362 -0
- package/management-ui/src/components/connections/ConnectionHealthMonitor.jsx +182 -0
- package/management-ui/src/components/connections/ConnectionTester.jsx +200 -0
- package/management-ui/src/components/connections/EntityRelationshipMapper.jsx +292 -0
- package/management-ui/src/components/connections/OAuthFlow.jsx +204 -0
- package/management-ui/src/components/connections/index.js +5 -0
- package/management-ui/src/components/index.js +21 -0
- package/management-ui/src/components/monitoring/APIGatewayMetrics.jsx +222 -0
- package/management-ui/src/components/monitoring/LambdaMetrics.jsx +169 -0
- package/management-ui/src/components/monitoring/MetricsChart.jsx +197 -0
- package/management-ui/src/components/monitoring/MonitoringDashboard.jsx +393 -0
- package/management-ui/src/components/monitoring/SQSMetrics.jsx +246 -0
- package/management-ui/src/components/monitoring/index.js +6 -0
- package/management-ui/src/components/monitoring/monitoring.css +218 -0
- package/management-ui/src/components/theme-provider.jsx +52 -0
- package/management-ui/src/components/theme-toggle.jsx +39 -0
- package/management-ui/src/components/ui/badge.tsx +36 -0
- package/management-ui/src/components/ui/button.test.jsx +56 -0
- package/management-ui/src/components/ui/button.tsx +57 -0
- package/management-ui/src/components/ui/card.tsx +76 -0
- package/management-ui/src/components/ui/dropdown-menu.tsx +199 -0
- package/management-ui/src/components/ui/select.tsx +157 -0
- package/management-ui/src/components/ui/skeleton.jsx +15 -0
- package/management-ui/src/hooks/useFrigg.jsx +601 -0
- package/management-ui/src/hooks/useSocket.jsx +58 -0
- package/management-ui/src/index.css +193 -0
- package/management-ui/src/lib/utils.ts +6 -0
- package/management-ui/src/main.jsx +10 -0
- package/management-ui/src/pages/CodeGeneration.jsx +14 -0
- package/management-ui/src/pages/Connections.jsx +252 -0
- package/management-ui/src/pages/ConnectionsEnhanced.jsx +633 -0
- package/management-ui/src/pages/Dashboard.jsx +311 -0
- package/management-ui/src/pages/Environment.jsx +314 -0
- package/management-ui/src/pages/IntegrationConfigure.jsx +669 -0
- package/management-ui/src/pages/IntegrationDiscovery.jsx +567 -0
- package/management-ui/src/pages/IntegrationTest.jsx +742 -0
- package/management-ui/src/pages/Integrations.jsx +253 -0
- package/management-ui/src/pages/Monitoring.jsx +17 -0
- package/management-ui/src/pages/Simulation.jsx +155 -0
- package/management-ui/src/pages/Users.jsx +492 -0
- package/management-ui/src/services/api.js +41 -0
- package/management-ui/src/services/apiModuleService.js +193 -0
- package/management-ui/src/services/websocket-handlers.js +120 -0
- package/management-ui/src/test/api/project.test.js +273 -0
- package/management-ui/src/test/components/Welcome.test.jsx +378 -0
- package/management-ui/src/test/mocks/server.js +178 -0
- package/management-ui/src/test/setup.js +61 -0
- package/management-ui/src/test/utils/test-utils.jsx +134 -0
- package/management-ui/src/utils/repository.js +98 -0
- package/management-ui/src/utils/repository.test.js +118 -0
- package/management-ui/src/workflows/phase2-integration-workflows.js +884 -0
- package/management-ui/tailwind.config.js +63 -0
- package/management-ui/tsconfig.json +37 -0
- package/management-ui/tsconfig.node.json +10 -0
- package/management-ui/vite.config.js +26 -0
- package/management-ui/vitest.config.js +38 -0
- package/package.json +5 -5
- package/management-ui/dist/assets/index-BA21WgFa.js +0 -1221
- package/management-ui/dist/assets/index-CbM64Oba.js +0 -1221
- package/management-ui/dist/assets/index-CkvseXTC.css +0 -1
- /package/management-ui/{dist/assets/FriggLogo-B7Xx8ZW1.svg → src/assets/FriggLogo.svg} +0 -0
|
@@ -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
|