@friggframework/devtools 2.0.0--canary.522.cbd3d5a.0 → 2.0.0--canary.517.21b69ac.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 (247) hide show
  1. package/.eslintrc.json +3 -0
  2. package/CHANGELOG.md +132 -0
  3. package/frigg-cli/README.md +1 -1
  4. package/frigg-cli/__tests__/unit/commands/doctor.test.js +2 -0
  5. package/frigg-cli/__tests__/unit/commands/install.test.js +17 -21
  6. package/frigg-cli/doctor-command/index.js +16 -17
  7. package/frigg-cli/index.js +6 -21
  8. package/frigg-cli/index.test.js +1 -7
  9. package/frigg-cli/init-command/backend-first-handler.js +42 -124
  10. package/frigg-cli/init-command/index.js +1 -2
  11. package/frigg-cli/init-command/template-handler.js +3 -13
  12. package/frigg-cli/install-command/backend-js.js +3 -3
  13. package/frigg-cli/install-command/environment-variables.js +19 -16
  14. package/frigg-cli/install-command/environment-variables.test.js +13 -12
  15. package/frigg-cli/install-command/index.js +9 -14
  16. package/frigg-cli/install-command/integration-file.js +3 -3
  17. package/frigg-cli/install-command/logger.js +12 -0
  18. package/frigg-cli/install-command/validate-package.js +9 -5
  19. package/frigg-cli/jest.config.js +1 -4
  20. package/frigg-cli/repair-command/index.js +128 -101
  21. package/frigg-cli/start-command/index.js +2 -246
  22. package/frigg-cli/ui-command/index.js +36 -58
  23. package/frigg-cli/utils/repo-detection.js +37 -85
  24. package/infrastructure/docs/iam-policy-templates.md +1 -1
  25. package/infrastructure/domains/networking/vpc-builder.test.js +4 -2
  26. package/infrastructure/domains/networking/vpc-resolver.test.js +1 -1
  27. package/infrastructure/domains/shared/cloudformation-discovery.test.js +7 -4
  28. package/infrastructure/domains/shared/resource-discovery.js +5 -5
  29. package/infrastructure/domains/shared/types/discovery-result.test.js +1 -1
  30. package/infrastructure/domains/shared/utilities/base-definition-factory.js +2 -25
  31. package/infrastructure/domains/shared/utilities/base-definition-factory.test.js +2 -2
  32. package/infrastructure/infrastructure-composer.test.js +2 -2
  33. package/layers/prisma/.build-complete +3 -0
  34. package/layers/prisma/nodejs/package.json +8 -0
  35. package/management-ui/.eslintrc.js +22 -0
  36. package/management-ui/README.md +109 -245
  37. package/management-ui/components.json +21 -0
  38. package/management-ui/docs/phase2-integration-guide.md +320 -0
  39. package/management-ui/index.html +13 -0
  40. package/management-ui/package.json +76 -0
  41. package/management-ui/packages/devtools/frigg-cli/ui-command/index.js +302 -0
  42. package/management-ui/postcss.config.js +6 -0
  43. package/management-ui/server/api/backend.js +256 -0
  44. package/management-ui/server/api/cli.js +315 -0
  45. package/management-ui/server/api/codegen.js +663 -0
  46. package/management-ui/server/api/connections.js +857 -0
  47. package/management-ui/server/api/discovery.js +185 -0
  48. package/management-ui/server/api/environment/index.js +1 -0
  49. package/management-ui/server/api/environment/router.js +378 -0
  50. package/management-ui/server/api/environment.js +328 -0
  51. package/management-ui/server/api/integrations.js +876 -0
  52. package/management-ui/server/api/logs.js +248 -0
  53. package/management-ui/server/api/monitoring.js +282 -0
  54. package/management-ui/server/api/open-ide.js +31 -0
  55. package/management-ui/server/api/project.js +1029 -0
  56. package/management-ui/server/api/users/sessions.js +371 -0
  57. package/management-ui/server/api/users/simulation.js +254 -0
  58. package/management-ui/server/api/users.js +362 -0
  59. package/management-ui/server/api-contract.md +275 -0
  60. package/management-ui/server/index.js +873 -0
  61. package/management-ui/server/middleware/errorHandler.js +93 -0
  62. package/management-ui/server/middleware/security.js +32 -0
  63. package/management-ui/server/processManager.js +296 -0
  64. package/management-ui/server/server.js +346 -0
  65. package/management-ui/server/services/aws-monitor.js +413 -0
  66. package/management-ui/server/services/npm-registry.js +347 -0
  67. package/management-ui/server/services/template-engine.js +538 -0
  68. package/management-ui/server/utils/cliIntegration.js +220 -0
  69. package/management-ui/server/utils/environment/auditLogger.js +471 -0
  70. package/management-ui/server/utils/environment/awsParameterStore.js +275 -0
  71. package/management-ui/server/utils/environment/encryption.js +278 -0
  72. package/management-ui/server/utils/environment/envFileManager.js +286 -0
  73. package/management-ui/server/utils/import-commonjs.js +28 -0
  74. package/management-ui/server/utils/response.js +83 -0
  75. package/management-ui/server/websocket/handler.js +325 -0
  76. package/management-ui/src/App.jsx +25 -0
  77. package/management-ui/src/assets/FriggLogo.svg +1 -0
  78. package/management-ui/src/components/AppRouter.jsx +65 -0
  79. package/management-ui/src/components/Button.jsx +70 -0
  80. package/management-ui/src/components/Card.jsx +97 -0
  81. package/management-ui/src/components/EnvironmentCompare.jsx +400 -0
  82. package/management-ui/src/components/EnvironmentEditor.jsx +372 -0
  83. package/management-ui/src/components/EnvironmentImportExport.jsx +469 -0
  84. package/management-ui/src/components/EnvironmentSchema.jsx +491 -0
  85. package/management-ui/src/components/EnvironmentSecurity.jsx +463 -0
  86. package/management-ui/src/components/ErrorBoundary.jsx +73 -0
  87. package/management-ui/src/components/IntegrationCard.jsx +481 -0
  88. package/management-ui/src/components/IntegrationCardEnhanced.jsx +770 -0
  89. package/management-ui/src/components/IntegrationExplorer.jsx +379 -0
  90. package/management-ui/src/components/IntegrationStatus.jsx +336 -0
  91. package/management-ui/src/components/Layout.jsx +716 -0
  92. package/management-ui/src/components/LoadingSpinner.jsx +113 -0
  93. package/management-ui/src/components/RepositoryPicker.jsx +248 -0
  94. package/management-ui/src/components/SessionMonitor.jsx +350 -0
  95. package/management-ui/src/components/StatusBadge.jsx +208 -0
  96. package/management-ui/src/components/UserContextSwitcher.jsx +212 -0
  97. package/management-ui/src/components/UserSimulation.jsx +327 -0
  98. package/management-ui/src/components/Welcome.jsx +434 -0
  99. package/management-ui/src/components/codegen/APIEndpointGenerator.jsx +637 -0
  100. package/management-ui/src/components/codegen/APIModuleSelector.jsx +227 -0
  101. package/management-ui/src/components/codegen/CodeGenerationWizard.jsx +247 -0
  102. package/management-ui/src/components/codegen/CodePreviewEditor.jsx +316 -0
  103. package/management-ui/src/components/codegen/DynamicModuleForm.jsx +271 -0
  104. package/management-ui/src/components/codegen/FormBuilder.jsx +737 -0
  105. package/management-ui/src/components/codegen/IntegrationGenerator.jsx +855 -0
  106. package/management-ui/src/components/codegen/ProjectScaffoldWizard.jsx +797 -0
  107. package/management-ui/src/components/codegen/SchemaBuilder.jsx +303 -0
  108. package/management-ui/src/components/codegen/TemplateSelector.jsx +586 -0
  109. package/management-ui/src/components/codegen/index.js +10 -0
  110. package/management-ui/src/components/connections/ConnectionConfigForm.jsx +362 -0
  111. package/management-ui/src/components/connections/ConnectionHealthMonitor.jsx +182 -0
  112. package/management-ui/src/components/connections/ConnectionTester.jsx +200 -0
  113. package/management-ui/src/components/connections/EntityRelationshipMapper.jsx +292 -0
  114. package/management-ui/src/components/connections/OAuthFlow.jsx +204 -0
  115. package/management-ui/src/components/connections/index.js +5 -0
  116. package/management-ui/src/components/index.js +21 -0
  117. package/management-ui/src/components/monitoring/APIGatewayMetrics.jsx +222 -0
  118. package/management-ui/src/components/monitoring/LambdaMetrics.jsx +169 -0
  119. package/management-ui/src/components/monitoring/MetricsChart.jsx +197 -0
  120. package/management-ui/src/components/monitoring/MonitoringDashboard.jsx +393 -0
  121. package/management-ui/src/components/monitoring/SQSMetrics.jsx +246 -0
  122. package/management-ui/src/components/monitoring/index.js +6 -0
  123. package/management-ui/src/components/monitoring/monitoring.css +218 -0
  124. package/management-ui/src/components/theme-provider.jsx +52 -0
  125. package/management-ui/src/components/theme-toggle.jsx +39 -0
  126. package/management-ui/src/components/ui/badge.tsx +36 -0
  127. package/management-ui/src/components/ui/button.test.jsx +56 -0
  128. package/management-ui/src/components/ui/button.tsx +57 -0
  129. package/management-ui/src/components/ui/card.tsx +76 -0
  130. package/management-ui/src/components/ui/dropdown-menu.tsx +199 -0
  131. package/management-ui/src/components/ui/select.tsx +157 -0
  132. package/management-ui/src/components/ui/skeleton.jsx +15 -0
  133. package/management-ui/src/hooks/useFrigg.jsx +387 -0
  134. package/management-ui/src/hooks/useSocket.jsx +58 -0
  135. package/management-ui/src/index.css +193 -0
  136. package/management-ui/src/lib/utils.ts +6 -0
  137. package/management-ui/src/main.jsx +10 -0
  138. package/management-ui/src/pages/CodeGeneration.jsx +14 -0
  139. package/management-ui/src/pages/Connections.jsx +252 -0
  140. package/management-ui/src/pages/ConnectionsEnhanced.jsx +633 -0
  141. package/management-ui/src/pages/Dashboard.jsx +311 -0
  142. package/management-ui/src/pages/Environment.jsx +314 -0
  143. package/management-ui/src/pages/IntegrationConfigure.jsx +669 -0
  144. package/management-ui/src/pages/IntegrationDiscovery.jsx +567 -0
  145. package/management-ui/src/pages/IntegrationTest.jsx +742 -0
  146. package/management-ui/src/pages/Integrations.jsx +253 -0
  147. package/management-ui/src/pages/Monitoring.jsx +17 -0
  148. package/management-ui/src/pages/Simulation.jsx +155 -0
  149. package/management-ui/src/pages/Users.jsx +492 -0
  150. package/management-ui/src/services/api.js +41 -0
  151. package/management-ui/src/services/apiModuleService.js +193 -0
  152. package/management-ui/src/services/websocket-handlers.js +120 -0
  153. package/management-ui/src/test/api/project.test.js +273 -0
  154. package/management-ui/src/test/components/Welcome.test.jsx +378 -0
  155. package/management-ui/src/test/mocks/server.js +178 -0
  156. package/management-ui/src/test/setup.js +61 -0
  157. package/management-ui/src/test/utils/test-utils.jsx +134 -0
  158. package/management-ui/src/utils/repository.js +98 -0
  159. package/management-ui/src/utils/repository.test.js +118 -0
  160. package/management-ui/src/workflows/phase2-integration-workflows.js +884 -0
  161. package/management-ui/tailwind.config.js +63 -0
  162. package/management-ui/tsconfig.json +37 -0
  163. package/management-ui/tsconfig.node.json +10 -0
  164. package/management-ui/vite.config.js +26 -0
  165. package/management-ui/vitest.config.js +38 -0
  166. package/package.json +7 -17
  167. package/frigg-cli/__tests__/application/use-cases/AddApiModuleToIntegrationUseCase.test.js +0 -326
  168. package/frigg-cli/__tests__/application/use-cases/CreateApiModuleUseCase.test.js +0 -337
  169. package/frigg-cli/__tests__/domain/entities/ApiModule.test.js +0 -373
  170. package/frigg-cli/__tests__/domain/entities/AppDefinition.test.js +0 -313
  171. package/frigg-cli/__tests__/domain/services/IntegrationValidator.test.js +0 -269
  172. package/frigg-cli/__tests__/domain/value-objects/IntegrationName.test.js +0 -82
  173. package/frigg-cli/__tests__/infrastructure/adapters/IntegrationJsUpdater.test.js +0 -408
  174. package/frigg-cli/__tests__/infrastructure/repositories/FileSystemApiModuleRepository.test.js +0 -583
  175. package/frigg-cli/__tests__/infrastructure/repositories/FileSystemAppDefinitionRepository.test.js +0 -314
  176. package/frigg-cli/__tests__/infrastructure/repositories/FileSystemIntegrationRepository.test.js +0 -430
  177. package/frigg-cli/__tests__/unit/commands/init.test.js +0 -406
  178. package/frigg-cli/__tests__/unit/commands/repair.test.js +0 -275
  179. package/frigg-cli/__tests__/unit/start-command/application/RunPreflightChecksUseCase.test.js +0 -411
  180. package/frigg-cli/__tests__/unit/start-command/infrastructure/DatabaseAdapter.test.js +0 -405
  181. package/frigg-cli/__tests__/unit/start-command/infrastructure/DockerAdapter.test.js +0 -496
  182. package/frigg-cli/__tests__/unit/start-command/presentation/InteractivePromptAdapter.test.js +0 -474
  183. package/frigg-cli/__tests__/unit/utils/output.test.js +0 -196
  184. package/frigg-cli/application/use-cases/AddApiModuleToIntegrationUseCase.js +0 -93
  185. package/frigg-cli/application/use-cases/CreateApiModuleUseCase.js +0 -93
  186. package/frigg-cli/application/use-cases/CreateIntegrationUseCase.js +0 -103
  187. package/frigg-cli/container.js +0 -172
  188. package/frigg-cli/docs/OUTPUT_MIGRATION_GUIDE.md +0 -286
  189. package/frigg-cli/domain/entities/ApiModule.js +0 -272
  190. package/frigg-cli/domain/entities/AppDefinition.js +0 -227
  191. package/frigg-cli/domain/entities/Integration.js +0 -198
  192. package/frigg-cli/domain/exceptions/DomainException.js +0 -24
  193. package/frigg-cli/domain/ports/IApiModuleRepository.js +0 -53
  194. package/frigg-cli/domain/ports/IAppDefinitionRepository.js +0 -43
  195. package/frigg-cli/domain/ports/IIntegrationRepository.js +0 -61
  196. package/frigg-cli/domain/services/IntegrationValidator.js +0 -185
  197. package/frigg-cli/domain/value-objects/IntegrationId.js +0 -42
  198. package/frigg-cli/domain/value-objects/IntegrationName.js +0 -60
  199. package/frigg-cli/domain/value-objects/SemanticVersion.js +0 -70
  200. package/frigg-cli/infrastructure/UnitOfWork.js +0 -46
  201. package/frigg-cli/infrastructure/adapters/BackendJsUpdater.js +0 -197
  202. package/frigg-cli/infrastructure/adapters/FileSystemAdapter.js +0 -224
  203. package/frigg-cli/infrastructure/adapters/IntegrationJsUpdater.js +0 -249
  204. package/frigg-cli/infrastructure/adapters/SchemaValidator.js +0 -92
  205. package/frigg-cli/infrastructure/repositories/FileSystemApiModuleRepository.js +0 -373
  206. package/frigg-cli/infrastructure/repositories/FileSystemAppDefinitionRepository.js +0 -116
  207. package/frigg-cli/infrastructure/repositories/FileSystemIntegrationRepository.js +0 -277
  208. package/frigg-cli/package-lock.json +0 -16226
  209. package/frigg-cli/start-command/application/RunPreflightChecksUseCase.js +0 -376
  210. package/frigg-cli/start-command/infrastructure/DatabaseAdapter.js +0 -591
  211. package/frigg-cli/start-command/infrastructure/DockerAdapter.js +0 -306
  212. package/frigg-cli/start-command/presentation/InteractivePromptAdapter.js +0 -329
  213. package/frigg-cli/templates/backend/.env.example +0 -62
  214. package/frigg-cli/templates/backend/.eslintrc.json +0 -12
  215. package/frigg-cli/templates/backend/.prettierrc +0 -6
  216. package/frigg-cli/templates/backend/docker-compose.yml +0 -22
  217. package/frigg-cli/templates/backend/index.js +0 -96
  218. package/frigg-cli/templates/backend/infrastructure.js +0 -12
  219. package/frigg-cli/templates/backend/jest.config.js +0 -17
  220. package/frigg-cli/templates/backend/package.json +0 -50
  221. package/frigg-cli/templates/backend/src/api-modules/.gitkeep +0 -10
  222. package/frigg-cli/templates/backend/src/base/.gitkeep +0 -7
  223. package/frigg-cli/templates/backend/src/integrations/.gitkeep +0 -10
  224. package/frigg-cli/templates/backend/src/integrations/ExampleIntegration.js +0 -65
  225. package/frigg-cli/templates/backend/src/utils/.gitkeep +0 -7
  226. package/frigg-cli/templates/backend/test/setup.js +0 -30
  227. package/frigg-cli/templates/backend/ui-extensions/.gitkeep +0 -0
  228. package/frigg-cli/templates/backend/ui-extensions/README.md +0 -77
  229. package/frigg-cli/utils/__tests__/repo-detection.test.js +0 -436
  230. package/frigg-cli/utils/output.js +0 -382
  231. package/frigg-cli/validate-command/__tests__/adapters/validate-command.test.js +0 -205
  232. package/frigg-cli/validate-command/__tests__/application/validate-app-use-case.test.js +0 -104
  233. package/frigg-cli/validate-command/__tests__/domain/fix-suggestion.test.js +0 -153
  234. package/frigg-cli/validate-command/__tests__/domain/validation-error.test.js +0 -162
  235. package/frigg-cli/validate-command/__tests__/domain/validation-result.test.js +0 -152
  236. package/frigg-cli/validate-command/__tests__/infrastructure/api-module-validator.test.js +0 -332
  237. package/frigg-cli/validate-command/__tests__/infrastructure/app-definition-validator.test.js +0 -191
  238. package/frigg-cli/validate-command/__tests__/infrastructure/integration-class-validator.test.js +0 -146
  239. package/frigg-cli/validate-command/__tests__/infrastructure/template-validation.test.js +0 -155
  240. package/frigg-cli/validate-command/adapters/cli/validate-command.js +0 -199
  241. package/frigg-cli/validate-command/application/use-cases/validate-app-use-case.js +0 -35
  242. package/frigg-cli/validate-command/domain/entities/validation-result.js +0 -74
  243. package/frigg-cli/validate-command/domain/value-objects/fix-suggestion.js +0 -74
  244. package/frigg-cli/validate-command/domain/value-objects/validation-error.js +0 -68
  245. package/frigg-cli/validate-command/infrastructure/validators/api-module-validator.js +0 -181
  246. package/frigg-cli/validate-command/infrastructure/validators/app-definition-validator.js +0 -128
  247. package/frigg-cli/validate-command/infrastructure/validators/integration-class-validator.js +0 -113
@@ -0,0 +1,481 @@
1
+ import React, { useState } from 'react'
2
+ import { Download, CheckCircle, ExternalLink, Settings, AlertCircle } from 'lucide-react'
3
+ <<<<<<< HEAD
4
+ <<<<<<< HEAD
5
+ =======
6
+ <<<<<<< HEAD
7
+ <<<<<<< HEAD
8
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
9
+ =======
10
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
11
+ import { Card, CardContent } from './ui/card'
12
+ import { Button } from './ui/button'
13
+ import LoadingSpinner from './LoadingSpinner'
14
+ import { cn } from '../lib/utils'
15
+
16
+ <<<<<<< HEAD
17
+ <<<<<<< HEAD
18
+ =======
19
+ const IntegrationCard = ({
20
+ integration,
21
+ onInstall,
22
+ onConfigure,
23
+ onUninstall,
24
+ installing = false,
25
+ className,
26
+ ...props
27
+ }) => {
28
+ const [showDetails, setShowDetails] = useState(false)
29
+
30
+ =======
31
+ import { Card, CardContent } from './Card'
32
+ import { Button } from './Button'
33
+ =======
34
+ import { Card, CardContent } from './ui/card'
35
+ import { Button } from './ui/button'
36
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
37
+ import LoadingSpinner from './LoadingSpinner'
38
+ import { cn } from '../lib/utils'
39
+
40
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
41
+ =======
42
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
43
+ const IntegrationCard = ({
44
+ integration,
45
+ onInstall,
46
+ onConfigure,
47
+ onUninstall,
48
+ installing = false,
49
+ className,
50
+ ...props
51
+ }) => {
52
+ const [showDetails, setShowDetails] = useState(false)
53
+
54
+ <<<<<<< HEAD
55
+ <<<<<<< HEAD
56
+ =======
57
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
58
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
59
+ =======
60
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
61
+ const isInstalled = integration.installed || integration.status === 'installed'
62
+ const isInstalling = installing || integration.status === 'installing'
63
+ const hasError = integration.status === 'error'
64
+
65
+ const handleInstall = async () => {
66
+ if (onInstall && !isInstalled && !isInstalling) {
67
+ await onInstall(integration.name)
68
+ }
69
+ }
70
+
71
+ const handleConfigure = () => {
72
+ if (onConfigure && isInstalled) {
73
+ onConfigure(integration.name)
74
+ }
75
+ }
76
+
77
+ const handleUninstall = async () => {
78
+ if (onUninstall && isInstalled) {
79
+ await onUninstall(integration.name)
80
+ }
81
+ }
82
+
83
+ <<<<<<< HEAD
84
+ <<<<<<< HEAD
85
+ =======
86
+ <<<<<<< HEAD
87
+ <<<<<<< HEAD
88
+ // Filter out invalid DOM props
89
+ const { onUpdate, onTest, uninstalling, updating, error, ...cardProps } = props
90
+
91
+ return (
92
+ <Card className={cn('hover:shadow-lg industrial-transition', className)} {...cardProps}>
93
+ =======
94
+ return (
95
+ <Card className={cn('hover:shadow-md transition-shadow', className)} {...props}>
96
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
97
+ =======
98
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
99
+ =======
100
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
101
+ // Filter out invalid DOM props
102
+ const { onUpdate, onTest, uninstalling, updating, error, ...cardProps } = props
103
+
104
+ return (
105
+ <Card className={cn('hover:shadow-lg industrial-transition', className)} {...cardProps}>
106
+ <<<<<<< HEAD
107
+ <<<<<<< HEAD
108
+ =======
109
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
110
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
111
+ =======
112
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
113
+ <CardContent className="p-6">
114
+ <div className="flex items-start justify-between mb-4">
115
+ <div className="flex-1">
116
+ <div className="flex items-center mb-2">
117
+ <<<<<<< HEAD
118
+ <<<<<<< HEAD
119
+ =======
120
+ <<<<<<< HEAD
121
+ <<<<<<< HEAD
122
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
123
+ =======
124
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
125
+ <h4 className="font-semibold text-foreground text-lg">
126
+ {integration.displayName || integration.name}
127
+ </h4>
128
+ {integration.version && (
129
+ <span className="ml-2 text-xs bg-muted text-muted-foreground px-2 py-1 sharp-badge">
130
+ <<<<<<< HEAD
131
+ <<<<<<< HEAD
132
+ =======
133
+ =======
134
+ <h4 className="font-semibold text-gray-900 text-lg">
135
+ {integration.displayName || integration.name}
136
+ </h4>
137
+ {integration.version && (
138
+ <span className="ml-2 text-xs bg-gray-100 text-gray-600 px-2 py-1 rounded">
139
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
140
+ =======
141
+ <h4 className="font-semibold text-foreground text-lg">
142
+ {integration.displayName || integration.name}
143
+ </h4>
144
+ {integration.version && (
145
+ <span className="ml-2 text-xs bg-muted text-muted-foreground px-2 py-1 sharp-badge">
146
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
147
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
148
+ =======
149
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
150
+ v{integration.version}
151
+ </span>
152
+ )}
153
+ </div>
154
+ <<<<<<< HEAD
155
+ <<<<<<< HEAD
156
+ <p className="text-sm text-muted-foreground mb-3">
157
+ {integration.description || 'No description available'}
158
+ </p>
159
+
160
+ =======
161
+ <<<<<<< HEAD
162
+ <<<<<<< HEAD
163
+ =======
164
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
165
+ <p className="text-sm text-muted-foreground mb-3">
166
+ {integration.description || 'No description available'}
167
+ </p>
168
+
169
+ <<<<<<< HEAD
170
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
171
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
172
+ =======
173
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
174
+ {integration.tags && integration.tags.length > 0 && (
175
+ <div className="flex flex-wrap gap-1 mb-3">
176
+ {integration.tags.map((tag, index) => (
177
+ <span
178
+ key={index}
179
+ <<<<<<< HEAD
180
+ <<<<<<< HEAD
181
+ className="text-xs bg-primary/10 text-primary px-2 py-1 sharp-badge"
182
+ =======
183
+ <<<<<<< HEAD
184
+ <<<<<<< HEAD
185
+ className="text-xs bg-primary/10 text-primary px-2 py-1 sharp-badge"
186
+ =======
187
+ className="text-xs bg-blue-100 text-blue-700 px-2 py-1 rounded-full"
188
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
189
+ =======
190
+ className="text-xs bg-primary/10 text-primary px-2 py-1 sharp-badge"
191
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
192
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
193
+ =======
194
+ className="text-xs bg-primary/10 text-primary px-2 py-1 sharp-badge"
195
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
196
+ >
197
+ {tag}
198
+ </span>
199
+ ))}
200
+ </div>
201
+ )}
202
+ </div>
203
+ <<<<<<< HEAD
204
+ <<<<<<< HEAD
205
+
206
+ =======
207
+ <<<<<<< HEAD
208
+
209
+ =======
210
+
211
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
212
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
213
+ =======
214
+
215
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
216
+ <div className="flex items-center ml-4">
217
+ {hasError && (
218
+ <AlertCircle size={20} className="text-red-500 mr-2" />
219
+ )}
220
+ {isInstalled && !hasError && (
221
+ <CheckCircle size={20} className="text-green-500 mr-2" />
222
+ )}
223
+ {isInstalling && (
224
+ <LoadingSpinner size="sm" className="mr-2" />
225
+ )}
226
+ </div>
227
+ </div>
228
+
229
+ <div className="flex items-center justify-between">
230
+ <div className="flex items-center space-x-2">
231
+ {!isInstalled && !isInstalling && (
232
+ <Button
233
+ size="sm"
234
+ onClick={handleInstall}
235
+ disabled={isInstalling}
236
+ className="inline-flex items-center"
237
+ >
238
+ <Download size={16} className="mr-1" />
239
+ Install
240
+ </Button>
241
+ )}
242
+ <<<<<<< HEAD
243
+ <<<<<<< HEAD
244
+
245
+ =======
246
+ <<<<<<< HEAD
247
+
248
+ =======
249
+
250
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
251
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
252
+ =======
253
+
254
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
255
+ {isInstalled && !hasError && (
256
+ <Button
257
+ size="sm"
258
+ variant="outline"
259
+ onClick={handleConfigure}
260
+ className="inline-flex items-center"
261
+ >
262
+ <Settings size={16} className="mr-1" />
263
+ Configure
264
+ </Button>
265
+ )}
266
+ <<<<<<< HEAD
267
+ <<<<<<< HEAD
268
+
269
+ =======
270
+ <<<<<<< HEAD
271
+
272
+ =======
273
+
274
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
275
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
276
+ =======
277
+
278
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
279
+ {isInstalling && (
280
+ <Button size="sm" disabled className="inline-flex items-center">
281
+ <LoadingSpinner size="sm" className="mr-1" />
282
+ Installing...
283
+ </Button>
284
+ )}
285
+ <<<<<<< HEAD
286
+ <<<<<<< HEAD
287
+
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
+
297
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
298
+ {hasError && (
299
+ <Button
300
+ size="sm"
301
+ variant="destructive"
302
+ onClick={handleInstall}
303
+ className="inline-flex items-center"
304
+ >
305
+ <AlertCircle size={16} className="mr-1" />
306
+ Retry
307
+ </Button>
308
+ )}
309
+ </div>
310
+ <<<<<<< HEAD
311
+ <<<<<<< HEAD
312
+
313
+ =======
314
+ <<<<<<< HEAD
315
+
316
+ =======
317
+
318
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
319
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
320
+ =======
321
+
322
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
323
+ <div className="flex items-center space-x-2">
324
+ {integration.docsUrl && (
325
+ <Button
326
+ size="sm"
327
+ variant="ghost"
328
+ onClick={() => window.open(integration.docsUrl, '_blank')}
329
+ className="inline-flex items-center text-xs"
330
+ >
331
+ <ExternalLink size={14} className="mr-1" />
332
+ Docs
333
+ </Button>
334
+ )}
335
+ <<<<<<< HEAD
336
+ <<<<<<< HEAD
337
+
338
+ =======
339
+ <<<<<<< HEAD
340
+
341
+ =======
342
+
343
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
344
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
345
+ =======
346
+
347
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
348
+ {isInstalled && (
349
+ <Button
350
+ size="sm"
351
+ variant="ghost"
352
+ onClick={() => setShowDetails(!showDetails)}
353
+ className="text-xs"
354
+ >
355
+ {showDetails ? 'Less' : 'More'}
356
+ </Button>
357
+ )}
358
+ </div>
359
+ </div>
360
+
361
+ {showDetails && isInstalled && (
362
+ <<<<<<< HEAD
363
+ <<<<<<< HEAD
364
+ =======
365
+ <<<<<<< HEAD
366
+ <<<<<<< HEAD
367
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
368
+ =======
369
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
370
+ <div className="mt-4 pt-4 border-t border-border">
371
+ <div className="space-y-2 text-sm">
372
+ {integration.endpoints && (
373
+ <div>
374
+ <span className="font-medium text-foreground">Endpoints:</span>
375
+ <span className="ml-2 text-muted-foreground">{integration.endpoints.length}</span>
376
+ <<<<<<< HEAD
377
+ <<<<<<< HEAD
378
+ =======
379
+ =======
380
+ <div className="mt-4 pt-4 border-t border-gray-200">
381
+ <div className="space-y-2 text-sm">
382
+ {integration.endpoints && (
383
+ <div>
384
+ <span className="font-medium text-gray-700">Endpoints:</span>
385
+ <span className="ml-2 text-gray-600">{integration.endpoints.length}</span>
386
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
387
+ =======
388
+ <div className="mt-4 pt-4 border-t border-border">
389
+ <div className="space-y-2 text-sm">
390
+ {integration.endpoints && (
391
+ <div>
392
+ <span className="font-medium text-foreground">Endpoints:</span>
393
+ <span className="ml-2 text-muted-foreground">{integration.endpoints.length}</span>
394
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
395
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
396
+ =======
397
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
398
+ </div>
399
+ )}
400
+ {integration.lastUpdated && (
401
+ <div>
402
+ <<<<<<< HEAD
403
+ <<<<<<< HEAD
404
+ <span className="font-medium text-foreground">Last Updated:</span>
405
+ <span className="ml-2 text-muted-foreground">
406
+ =======
407
+ <<<<<<< HEAD
408
+ <<<<<<< HEAD
409
+ <span className="font-medium text-foreground">Last Updated:</span>
410
+ <span className="ml-2 text-muted-foreground">
411
+ =======
412
+ <span className="font-medium text-gray-700">Last Updated:</span>
413
+ <span className="ml-2 text-gray-600">
414
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
415
+ =======
416
+ <span className="font-medium text-foreground">Last Updated:</span>
417
+ <span className="ml-2 text-muted-foreground">
418
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
419
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
420
+ =======
421
+ <span className="font-medium text-foreground">Last Updated:</span>
422
+ <span className="ml-2 text-muted-foreground">
423
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
424
+ {new Date(integration.lastUpdated).toLocaleDateString()}
425
+ </span>
426
+ </div>
427
+ )}
428
+ {integration.connections && (
429
+ <div>
430
+ <<<<<<< HEAD
431
+ <<<<<<< HEAD
432
+ =======
433
+ <<<<<<< HEAD
434
+ <<<<<<< HEAD
435
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
436
+ =======
437
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
438
+ <span className="font-medium text-foreground">Active Connections:</span>
439
+ <span className="ml-2 text-muted-foreground">{integration.connections}</span>
440
+ </div>
441
+ )}
442
+ </div>
443
+ <<<<<<< HEAD
444
+ <<<<<<< HEAD
445
+
446
+ =======
447
+
448
+ =======
449
+ <span className="font-medium text-gray-700">Active Connections:</span>
450
+ <span className="ml-2 text-gray-600">{integration.connections}</span>
451
+ =======
452
+ <span className="font-medium text-foreground">Active Connections:</span>
453
+ <span className="ml-2 text-muted-foreground">{integration.connections}</span>
454
+ >>>>>>> f153939e (refactor: clean up CLI help display and remove unused dependencies)
455
+ </div>
456
+ )}
457
+ </div>
458
+
459
+ >>>>>>> 652520a5 (Claude Flow RFC related development)
460
+ >>>>>>> 860052b4 (feat: integrate complete management-ui and additional features)
461
+ =======
462
+
463
+ >>>>>>> 7e97f01c (fix: resolve ui-command merge conflicts and update package.json)
464
+ <div className="mt-3 flex justify-end">
465
+ <Button
466
+ size="sm"
467
+ variant="destructive"
468
+ onClick={handleUninstall}
469
+ className="inline-flex items-center text-xs"
470
+ >
471
+ Uninstall
472
+ </Button>
473
+ </div>
474
+ </div>
475
+ )}
476
+ </CardContent>
477
+ </Card>
478
+ )
479
+ }
480
+
481
+ export default IntegrationCard