@julianpedro/plugin-dev-ai-hub 0.2.0 → 0.4.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 (50) hide show
  1. package/dist/api/DevAiHubClient.esm.js +15 -2
  2. package/dist/api/DevAiHubClient.esm.js.map +1 -1
  3. package/dist/components/AdminPage/AdminPage.esm.js +106 -0
  4. package/dist/components/AdminPage/AdminPage.esm.js.map +1 -0
  5. package/dist/components/AdminPage/index.esm.js +6 -0
  6. package/dist/components/AdminPage/index.esm.js.map +1 -0
  7. package/dist/components/AssetCard/AssetCard.esm.js +117 -26
  8. package/dist/components/AssetCard/AssetCard.esm.js.map +1 -1
  9. package/dist/components/AssetDetailPanel/AssetDetailPanel.esm.js +271 -87
  10. package/dist/components/AssetDetailPanel/AssetDetailPanel.esm.js.map +1 -1
  11. package/dist/components/AssetFilters/AssetFilters.esm.js +105 -44
  12. package/dist/components/AssetFilters/AssetFilters.esm.js.map +1 -1
  13. package/dist/components/AssetHelpDialog/AssetHelpDialog.esm.js +87 -0
  14. package/dist/components/AssetHelpDialog/AssetHelpDialog.esm.js.map +1 -0
  15. package/dist/components/AssetInstallDialog/AssetInstallDialog.esm.js +328 -108
  16. package/dist/components/AssetInstallDialog/AssetInstallDialog.esm.js.map +1 -1
  17. package/dist/components/AssetsTab/AssetsTab.esm.js +221 -0
  18. package/dist/components/AssetsTab/AssetsTab.esm.js.map +1 -0
  19. package/dist/components/AssetsTab/index.esm.js +6 -0
  20. package/dist/components/AssetsTab/index.esm.js.map +1 -0
  21. package/dist/components/DevAiHubPage/DevAiHubPage.esm.js +266 -134
  22. package/dist/components/DevAiHubPage/DevAiHubPage.esm.js.map +1 -1
  23. package/dist/components/McpConfigDialog/McpConfigDialog.esm.js +20 -297
  24. package/dist/components/McpConfigDialog/McpConfigDialog.esm.js.map +1 -1
  25. package/dist/components/McpPage/McpPage.esm.js +478 -0
  26. package/dist/components/McpPage/McpPage.esm.js.map +1 -0
  27. package/dist/components/McpPage/index.esm.js +6 -0
  28. package/dist/components/McpPage/index.esm.js.map +1 -0
  29. package/dist/components/ModelIcon/ModelBadge.esm.js +73 -0
  30. package/dist/components/ModelIcon/ModelBadge.esm.js.map +1 -0
  31. package/dist/components/ModelIcon/ModelIcon.esm.js +45 -0
  32. package/dist/components/ModelIcon/ModelIcon.esm.js.map +1 -0
  33. package/dist/components/ToolIcon/ToolIcon.esm.js +4 -1
  34. package/dist/components/ToolIcon/ToolIcon.esm.js.map +1 -1
  35. package/dist/context/UiConfigContext.esm.js +79 -0
  36. package/dist/context/UiConfigContext.esm.js.map +1 -0
  37. package/dist/hooks/index.esm.js +36 -1
  38. package/dist/hooks/index.esm.js.map +1 -1
  39. package/dist/index.d.ts +146 -23
  40. package/dist/index.esm.js +1 -0
  41. package/dist/index.esm.js.map +1 -1
  42. package/dist/locales/es.esm.js +121 -0
  43. package/dist/locales/es.esm.js.map +1 -0
  44. package/dist/locales/pt-BR.esm.js +121 -0
  45. package/dist/locales/pt-BR.esm.js.map +1 -0
  46. package/dist/plugin.esm.js +35 -6
  47. package/dist/plugin.esm.js.map +1 -1
  48. package/dist/translation.esm.js +151 -0
  49. package/dist/translation.esm.js.map +1 -0
  50. package/package.json +15 -5
@@ -0,0 +1,121 @@
1
+ var es = {
2
+ "toolIcon.universal": "Universal",
3
+ "assetCard.newBadge": "Nuevo",
4
+ "assetCard.updatedBadge": "Actualizado",
5
+ "assetCard.installTooltip": "Instalar en el editor",
6
+ "assetCard.detailsTooltip": "Ver detalles",
7
+ "assetCard.helpTooltip": "Gu\xEDa de uso",
8
+ "assetCard.mcpsRequired": "MCPs requeridos",
9
+ "assetCard.bundleFooter": "{{itemCount}} assets \xB7 {{author}}",
10
+ "assetCard.versionFooter": "v{{version}} \xB7 {{author}}",
11
+ "assetCard.moreTags": "+{{count}}",
12
+ "assetDetailPanel.loading": "Cargando...",
13
+ "assetDetailPanel.tabPreview": "Vista previa",
14
+ "assetDetailPanel.tabMetadata": "Metadatos",
15
+ "assetDetailPanel.tabRawYaml": "YAML sin formato",
16
+ "assetDetailPanel.bundlePreviewTitle": "Contenido del bundle \u2014 {{total}} assets",
17
+ "assetDetailPanel.bundleItemNotSynced": "No sincronizado \u2014 {{ref}}",
18
+ "assetDetailPanel.metaAuthor": "Autor",
19
+ "assetDetailPanel.metaVersion": "Versi\xF3n",
20
+ "assetDetailPanel.metaProvider": "Proveedor",
21
+ "assetDetailPanel.metaCommit": "Commit",
22
+ "assetDetailPanel.metaLastSynced": "\xDAltima sincronizaci\xF3n",
23
+ "assetDetailPanel.metaBranch": "Rama",
24
+ "assetDetailPanel.compatibleTools": "Herramientas compatibles",
25
+ "assetDetailPanel.tagsLabel": "Etiquetas",
26
+ "assetDetailPanel.bundleContents": "Contenido del bundle ({{total}} assets)",
27
+ "assetDetailPanel.bundleItemNotSyncedYet": "A\xFAn no sincronizado \u2014 {{ref}}",
28
+ "assetDetailPanel.bundledFiles": "Archivos incluidos",
29
+ "assetDetailPanel.zipDescription": "Se descarga como .zip con todos los archivos anteriores.",
30
+ "assetDetailPanel.repository": "Repositorio",
31
+ "assetDetailPanel.copyMarkdown": "Copiar Markdown",
32
+ "assetDetailPanel.openInRepo": "Abrir en el repositorio",
33
+ "assetDetailPanel.copiedMessage": "\xA1Markdown copiado al portapapeles!",
34
+ "assetFilters.searchPlaceholder": "Buscar assets por nombre, descripci\xF3n o contenido\u2026",
35
+ "assetFilters.typeHeader": "Tipo",
36
+ "assetFilters.typeAll": "Todos",
37
+ "assetFilters.aiToolHeader": "Herramienta de IA",
38
+ "assetFilters.allTools": "Todas las herramientas",
39
+ "assetFilters.providerHeader": "Proveedor",
40
+ "assetFilters.tagsHeader": "Etiquetas",
41
+ "assetFilters.tagsShowMore": "+{{remaining}} m\xE1s",
42
+ "assetFilters.tagsShowLess": "Ver menos",
43
+ "assetInstallDialog.bundledSkillTitle": "Skill con archivos \u2014 se descarga como .zip",
44
+ "assetInstallDialog.bundledSkillDescription": "Esta skill incluye archivos de recursos junto al SKILL.md. Extraiga el zip y coloque todos los archivos en el directorio de la skill.",
45
+ "assetInstallDialog.installPathLabel": "Ruta de instalaci\xF3n",
46
+ "assetInstallDialog.installInVscode": "Instalar en VSCode",
47
+ "assetInstallDialog.copied": "\xA1Copiado!",
48
+ "assetInstallDialog.copyTooltip": "Copiar contenido markdown",
49
+ "assetInstallDialog.copyContent": "Copiar contenido",
50
+ "assetInstallDialog.downloadZipTooltip": "Descargar como .zip con todos los archivos",
51
+ "assetInstallDialog.downloadTooltip": "Descargar archivo con el nombre correcto",
52
+ "assetInstallDialog.downloadZip": "Descargar .zip",
53
+ "assetInstallDialog.download": "Descargar",
54
+ "assetInstallDialog.stepProgress": "Paso {{current}} de {{total}}",
55
+ "assetInstallDialog.notSyncedTitle": "Este asset a\xFAn no ha sido sincronizado.",
56
+ "assetInstallDialog.notSyncedRef": "Ref: {{ref}}",
57
+ "assetInstallDialog.dialogTitleBundle": "Instalar Bundle: {{name}}",
58
+ "assetInstallDialog.dialogSubtitleBundle": "Instale cada asset del bundle paso a paso.",
59
+ "assetInstallDialog.dialogTitle": "Instalar: {{name}}",
60
+ "assetInstallDialog.dialogSubtitle": "Copie el contenido y coloque el archivo en la ruta indicada para su herramienta.",
61
+ "assetInstallDialog.bundleProgress": "{{current}} / {{total}} assets",
62
+ "assetInstallDialog.bundleEmpty": "Este bundle a\xFAn no tiene elementos.",
63
+ "assetInstallDialog.downloadBundle": "Descargar Bundle .zip",
64
+ "assetInstallDialog.back": "Volver",
65
+ "assetInstallDialog.next": "Siguiente",
66
+ "assetInstallDialog.finish": "Finalizar",
67
+ "assetInstallDialog.close": "Cerrar",
68
+ "mcpConfigDialog.title": "Configuraci\xF3n MCP",
69
+ "mcpConfigDialog.subtitle": "Explore el cat\xE1logo de servidores MCP listos para instalar o configure el MCP de Dev AI Hub para su herramienta de IA.",
70
+ "mcpConfigDialog.catalogTab": "Cat\xE1logo MCP",
71
+ "mcpConfigDialog.catalogDescription": "Servidores MCP preconfigurados que puede instalar con un clic en VSCode o Cursor.",
72
+ "mcpConfigDialog.catalogEmpty": "No hay servidores MCP configurados en el cat\xE1logo.",
73
+ "mcpConfigDialog.catalogAddHint": "Agregue un archivo mcp-catalog.yaml en la ra\xEDz de su repositorio de assets para gestionar el cat\xE1logo.",
74
+ "mcpConfigDialog.toolConfigSection": "Configurar MCP de Dev AI Hub",
75
+ "mcpConfigDialog.scopeToProvider": "Filtrar por Proveedor",
76
+ "mcpConfigDialog.allProviders": "Todos los proveedores",
77
+ "mcpConfigDialog.proactiveSuggestions": "Sugerencias proactivas",
78
+ "mcpConfigDialog.proactiveDescription": "La IA sugerir\xE1 autom\xE1ticamente assets relevantes seg\xFAn el contexto de su proyecto. Desact\xEDvelo si prefiere buscar manualmente.",
79
+ "mcpConfigDialog.mcpEndpoint": "Endpoint MCP",
80
+ "mcpConfigDialog.copyUrl": "Copiar URL",
81
+ "mcpConfigDialog.installInVscode": "Instalar en VSCode",
82
+ "mcpConfigDialog.installInCursor": "Instalar en Cursor",
83
+ "mcpConfigDialog.manualConfig": "Config manual \u2014 {{file}}",
84
+ "mcpConfigDialog.claudeConfigDesc": "Agregue a .mcp.json en la ra\xEDz del proyecto (o ejecute via claude mcp add):",
85
+ "mcpConfigDialog.copilotConfigDesc": "Agregue a la configuraci\xF3n de VS Code (.vscode/settings.json o configuraci\xF3n de usuario):",
86
+ "mcpConfigDialog.geminiConfigDesc": "Agregue a su configuraci\xF3n del Gemini CLI:",
87
+ "mcpConfigDialog.cursorConfigDesc": "Agregue a .cursor/mcp.json en la ra\xEDz del proyecto:",
88
+ "mcpConfigDialog.omitToolHint": "Omita ?tool= para recibir todos los assets independientemente de la herramienta.",
89
+ "mcpConfigDialog.close": "Cerrar",
90
+ "devAiHubPage.title": "Dev AI Hub",
91
+ "devAiHubPage.subtitle": "Assets de IA centralizados para su equipo",
92
+ "devAiHubPage.statsInstructions": "{{count}} Instructions",
93
+ "devAiHubPage.statsAgents": "{{count}} Agents",
94
+ "devAiHubPage.statsSkills": "{{count}} Skills",
95
+ "devAiHubPage.statsWorkflows": "{{count}} Workflows",
96
+ "devAiHubPage.lastSync": "\xDAltima sync: {{time}}",
97
+ "devAiHubPage.configMcp": "MCP Servers",
98
+ "devAiHubPage.assetCountOne": "{{n}} asset",
99
+ "devAiHubPage.assetCountOther": "{{n}} assets",
100
+ "devAiHubPage.providerCountOne": "{{n}} proveedor",
101
+ "devAiHubPage.providerCountOther": "{{n}} proveedores",
102
+ "devAiHubPage.totalStats": "{{totalAssets}} assets \xB7 {{providers}}",
103
+ "devAiHubPage.noAssetsTitle": "No se encontraron assets",
104
+ "devAiHubPage.noAssetsSubtitle": "Intente ajustar los filtros o los t\xE9rminos de b\xFAsqueda.",
105
+ "devAiHubPage.timeJustNow": "justo ahora",
106
+ "devAiHubPage.timeMinutesAgo": "hace {{count}}min",
107
+ "devAiHubPage.timeHoursAgo": "hace {{count}}h",
108
+ "devAiHubPage.timeDaysAgo": "hace {{count}}d",
109
+ "devAiHubPage.providersSectionTitle": "Providers",
110
+ "devAiHubPage.syncAllButton": "Sincronizar Todo",
111
+ "devAiHubPage.syncButton": "Sincronizar",
112
+ "devAiHubPage.syncTriggered": "Sincronizaci\xF3n disparada",
113
+ "devAiHubPage.providerStatusError": "Error",
114
+ "devAiHubPage.noProvidersConfigured": "No hay proveedores configurados.",
115
+ "devAiHubPage.tabAssets": "Assets",
116
+ "devAiHubPage.tabMcp": "MCP",
117
+ "devAiHubPage.tabAdmin": "Admin"
118
+ };
119
+
120
+ export { es as default };
121
+ //# sourceMappingURL=es.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.esm.js","sources":["../../src/locales/es.ts"],"sourcesContent":["export default {\n 'toolIcon.universal': 'Universal',\n\n 'assetCard.newBadge': 'Nuevo',\n 'assetCard.updatedBadge': 'Actualizado',\n 'assetCard.installTooltip': 'Instalar en el editor',\n 'assetCard.detailsTooltip': 'Ver detalles',\n 'assetCard.helpTooltip': 'Guía de uso',\n 'assetCard.mcpsRequired': 'MCPs requeridos',\n 'assetCard.bundleFooter': '{{itemCount}} assets · {{author}}',\n 'assetCard.versionFooter': 'v{{version}} · {{author}}',\n 'assetCard.moreTags': '+{{count}}',\n\n 'assetDetailPanel.loading': 'Cargando...',\n 'assetDetailPanel.tabPreview': 'Vista previa',\n 'assetDetailPanel.tabMetadata': 'Metadatos',\n 'assetDetailPanel.tabRawYaml': 'YAML sin formato',\n 'assetDetailPanel.bundlePreviewTitle': 'Contenido del bundle — {{total}} assets',\n 'assetDetailPanel.bundleItemNotSynced': 'No sincronizado — {{ref}}',\n 'assetDetailPanel.metaAuthor': 'Autor',\n 'assetDetailPanel.metaVersion': 'Versión',\n 'assetDetailPanel.metaProvider': 'Proveedor',\n 'assetDetailPanel.metaCommit': 'Commit',\n 'assetDetailPanel.metaLastSynced': 'Última sincronización',\n 'assetDetailPanel.metaBranch': 'Rama',\n 'assetDetailPanel.compatibleTools': 'Herramientas compatibles',\n 'assetDetailPanel.tagsLabel': 'Etiquetas',\n 'assetDetailPanel.bundleContents': 'Contenido del bundle ({{total}} assets)',\n 'assetDetailPanel.bundleItemNotSyncedYet': 'Aún no sincronizado — {{ref}}',\n 'assetDetailPanel.bundledFiles': 'Archivos incluidos',\n 'assetDetailPanel.zipDescription': 'Se descarga como .zip con todos los archivos anteriores.',\n 'assetDetailPanel.repository': 'Repositorio',\n 'assetDetailPanel.copyMarkdown': 'Copiar Markdown',\n 'assetDetailPanel.openInRepo': 'Abrir en el repositorio',\n 'assetDetailPanel.copiedMessage': '¡Markdown copiado al portapapeles!',\n\n 'assetFilters.searchPlaceholder': 'Buscar assets por nombre, descripción o contenido…',\n 'assetFilters.typeHeader': 'Tipo',\n 'assetFilters.typeAll': 'Todos',\n 'assetFilters.aiToolHeader': 'Herramienta de IA',\n 'assetFilters.allTools': 'Todas las herramientas',\n 'assetFilters.providerHeader': 'Proveedor',\n 'assetFilters.tagsHeader': 'Etiquetas',\n 'assetFilters.tagsShowMore': '+{{remaining}} más',\n 'assetFilters.tagsShowLess': 'Ver menos',\n\n 'assetInstallDialog.bundledSkillTitle': 'Skill con archivos — se descarga como .zip',\n 'assetInstallDialog.bundledSkillDescription': 'Esta skill incluye archivos de recursos junto al SKILL.md. Extraiga el zip y coloque todos los archivos en el directorio de la skill.',\n 'assetInstallDialog.installPathLabel': 'Ruta de instalación',\n 'assetInstallDialog.installInVscode': 'Instalar en VSCode',\n 'assetInstallDialog.copied': '¡Copiado!',\n 'assetInstallDialog.copyTooltip': 'Copiar contenido markdown',\n 'assetInstallDialog.copyContent': 'Copiar contenido',\n 'assetInstallDialog.downloadZipTooltip': 'Descargar como .zip con todos los archivos',\n 'assetInstallDialog.downloadTooltip': 'Descargar archivo con el nombre correcto',\n 'assetInstallDialog.downloadZip': 'Descargar .zip',\n 'assetInstallDialog.download': 'Descargar',\n 'assetInstallDialog.stepProgress': 'Paso {{current}} de {{total}}',\n 'assetInstallDialog.notSyncedTitle': 'Este asset aún no ha sido sincronizado.',\n 'assetInstallDialog.notSyncedRef': 'Ref: {{ref}}',\n 'assetInstallDialog.dialogTitleBundle': 'Instalar Bundle: {{name}}',\n 'assetInstallDialog.dialogSubtitleBundle': 'Instale cada asset del bundle paso a paso.',\n 'assetInstallDialog.dialogTitle': 'Instalar: {{name}}',\n 'assetInstallDialog.dialogSubtitle': 'Copie el contenido y coloque el archivo en la ruta indicada para su herramienta.',\n 'assetInstallDialog.bundleProgress': '{{current}} / {{total}} assets',\n 'assetInstallDialog.bundleEmpty': 'Este bundle aún no tiene elementos.',\n 'assetInstallDialog.downloadBundle': 'Descargar Bundle .zip',\n 'assetInstallDialog.back': 'Volver',\n 'assetInstallDialog.next': 'Siguiente',\n 'assetInstallDialog.finish': 'Finalizar',\n 'assetInstallDialog.close': 'Cerrar',\n\n 'mcpConfigDialog.title': 'Configuración MCP',\n 'mcpConfigDialog.subtitle': 'Explore el catálogo de servidores MCP listos para instalar o configure el MCP de Dev AI Hub para su herramienta de IA.',\n 'mcpConfigDialog.catalogTab': 'Catálogo MCP',\n 'mcpConfigDialog.catalogDescription': 'Servidores MCP preconfigurados que puede instalar con un clic en VSCode o Cursor.',\n 'mcpConfigDialog.catalogEmpty': 'No hay servidores MCP configurados en el catálogo.',\n 'mcpConfigDialog.catalogAddHint': 'Agregue un archivo mcp-catalog.yaml en la raíz de su repositorio de assets para gestionar el catálogo.',\n 'mcpConfigDialog.toolConfigSection': 'Configurar MCP de Dev AI Hub',\n 'mcpConfigDialog.scopeToProvider': 'Filtrar por Proveedor',\n 'mcpConfigDialog.allProviders': 'Todos los proveedores',\n 'mcpConfigDialog.proactiveSuggestions': 'Sugerencias proactivas',\n 'mcpConfigDialog.proactiveDescription': 'La IA sugerirá automáticamente assets relevantes según el contexto de su proyecto. Desactívelo si prefiere buscar manualmente.',\n 'mcpConfigDialog.mcpEndpoint': 'Endpoint MCP',\n 'mcpConfigDialog.copyUrl': 'Copiar URL',\n 'mcpConfigDialog.installInVscode': 'Instalar en VSCode',\n 'mcpConfigDialog.installInCursor': 'Instalar en Cursor',\n 'mcpConfigDialog.manualConfig': 'Config manual — {{file}}',\n 'mcpConfigDialog.claudeConfigDesc': 'Agregue a .mcp.json en la raíz del proyecto (o ejecute via claude mcp add):',\n 'mcpConfigDialog.copilotConfigDesc': 'Agregue a la configuración de VS Code (.vscode/settings.json o configuración de usuario):',\n 'mcpConfigDialog.geminiConfigDesc': 'Agregue a su configuración del Gemini CLI:',\n 'mcpConfigDialog.cursorConfigDesc': 'Agregue a .cursor/mcp.json en la raíz del proyecto:',\n 'mcpConfigDialog.omitToolHint': 'Omita ?tool= para recibir todos los assets independientemente de la herramienta.',\n 'mcpConfigDialog.close': 'Cerrar',\n\n 'devAiHubPage.title': 'Dev AI Hub',\n 'devAiHubPage.subtitle': 'Assets de IA centralizados para su equipo',\n 'devAiHubPage.statsInstructions': '{{count}} Instructions',\n 'devAiHubPage.statsAgents': '{{count}} Agents',\n 'devAiHubPage.statsSkills': '{{count}} Skills',\n 'devAiHubPage.statsWorkflows': '{{count}} Workflows',\n 'devAiHubPage.lastSync': 'Última sync: {{time}}',\n 'devAiHubPage.configMcp': 'MCP Servers',\n 'devAiHubPage.assetCountOne': '{{n}} asset',\n 'devAiHubPage.assetCountOther': '{{n}} assets',\n 'devAiHubPage.providerCountOne': '{{n}} proveedor',\n 'devAiHubPage.providerCountOther': '{{n}} proveedores',\n 'devAiHubPage.totalStats': '{{totalAssets}} assets · {{providers}}',\n 'devAiHubPage.noAssetsTitle': 'No se encontraron assets',\n 'devAiHubPage.noAssetsSubtitle': 'Intente ajustar los filtros o los términos de búsqueda.',\n 'devAiHubPage.timeJustNow': 'justo ahora',\n 'devAiHubPage.timeMinutesAgo': 'hace {{count}}min',\n 'devAiHubPage.timeHoursAgo': 'hace {{count}}h',\n 'devAiHubPage.timeDaysAgo': 'hace {{count}}d',\n 'devAiHubPage.providersSectionTitle': 'Providers',\n 'devAiHubPage.syncAllButton': 'Sincronizar Todo',\n 'devAiHubPage.syncButton': 'Sincronizar',\n 'devAiHubPage.syncTriggered': 'Sincronización disparada',\n 'devAiHubPage.providerStatusError': 'Error',\n 'devAiHubPage.noProvidersConfigured': 'No hay proveedores configurados.',\n 'devAiHubPage.tabAssets': 'Assets',\n 'devAiHubPage.tabMcp': 'MCP',\n 'devAiHubPage.tabAdmin': 'Admin',\n};"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ var ptBR = {
2
+ "toolIcon.universal": "Universal",
3
+ "assetCard.newBadge": "Novo",
4
+ "assetCard.updatedBadge": "Atualizado",
5
+ "assetCard.installTooltip": "Instalar no editor",
6
+ "assetCard.detailsTooltip": "Ver detalhes",
7
+ "assetCard.helpTooltip": "Guia de uso",
8
+ "assetCard.mcpsRequired": "MCPs requeridos",
9
+ "assetCard.bundleFooter": "{{itemCount}} assets \xB7 {{author}}",
10
+ "assetCard.versionFooter": "v{{version}} \xB7 {{author}}",
11
+ "assetCard.moreTags": "+{{count}}",
12
+ "assetDetailPanel.loading": "Carregando...",
13
+ "assetDetailPanel.tabPreview": "Visualiza\xE7\xE3o",
14
+ "assetDetailPanel.tabMetadata": "Metadados",
15
+ "assetDetailPanel.tabRawYaml": "YAML bruto",
16
+ "assetDetailPanel.bundlePreviewTitle": "Conte\xFAdo do bundle \u2014 {{total}} assets",
17
+ "assetDetailPanel.bundleItemNotSynced": "N\xE3o sincronizado \u2014 {{ref}}",
18
+ "assetDetailPanel.metaAuthor": "Autor",
19
+ "assetDetailPanel.metaVersion": "Vers\xE3o",
20
+ "assetDetailPanel.metaProvider": "Provedor",
21
+ "assetDetailPanel.metaCommit": "Commit",
22
+ "assetDetailPanel.metaLastSynced": "\xDAltima sincroniza\xE7\xE3o",
23
+ "assetDetailPanel.metaBranch": "Branch",
24
+ "assetDetailPanel.compatibleTools": "Ferramentas compat\xEDveis",
25
+ "assetDetailPanel.tagsLabel": "Tags",
26
+ "assetDetailPanel.bundleContents": "Conte\xFAdo do bundle ({{total}} assets)",
27
+ "assetDetailPanel.bundleItemNotSyncedYet": "Ainda n\xE3o sincronizado \u2014 {{ref}}",
28
+ "assetDetailPanel.bundledFiles": "Arquivos inclu\xEDdos",
29
+ "assetDetailPanel.zipDescription": "Baixa como .zip contendo todos os arquivos acima.",
30
+ "assetDetailPanel.repository": "Reposit\xF3rio",
31
+ "assetDetailPanel.copyMarkdown": "Copiar Markdown",
32
+ "assetDetailPanel.openInRepo": "Abrir no reposit\xF3rio",
33
+ "assetDetailPanel.copiedMessage": "Markdown copiado para a \xE1rea de transfer\xEAncia!",
34
+ "assetFilters.searchPlaceholder": "Buscar assets por nome, descri\xE7\xE3o ou conte\xFAdo\u2026",
35
+ "assetFilters.typeHeader": "Tipo",
36
+ "assetFilters.typeAll": "Todos",
37
+ "assetFilters.aiToolHeader": "Ferramenta de IA",
38
+ "assetFilters.allTools": "Todas as ferramentas",
39
+ "assetFilters.providerHeader": "Provedor",
40
+ "assetFilters.tagsHeader": "Tags",
41
+ "assetFilters.tagsShowMore": "+{{remaining}} mais",
42
+ "assetFilters.tagsShowLess": "Ver menos",
43
+ "assetInstallDialog.bundledSkillTitle": "Skill com arquivos \u2014 baixa como .zip",
44
+ "assetInstallDialog.bundledSkillDescription": "Esta skill inclui arquivos de recursos junto ao SKILL.md. Extraia o zip e coloque todos os arquivos no diret\xF3rio da skill.",
45
+ "assetInstallDialog.installPathLabel": "Caminho de instala\xE7\xE3o",
46
+ "assetInstallDialog.installInVscode": "Instalar no VSCode",
47
+ "assetInstallDialog.copied": "Copiado!",
48
+ "assetInstallDialog.copyTooltip": "Copiar conte\xFAdo markdown",
49
+ "assetInstallDialog.copyContent": "Copiar conte\xFAdo",
50
+ "assetInstallDialog.downloadZipTooltip": "Baixar como .zip com todos os arquivos",
51
+ "assetInstallDialog.downloadTooltip": "Baixar arquivo com o nome correto",
52
+ "assetInstallDialog.downloadZip": "Baixar .zip",
53
+ "assetInstallDialog.download": "Baixar",
54
+ "assetInstallDialog.stepProgress": "Passo {{current}} de {{total}}",
55
+ "assetInstallDialog.notSyncedTitle": "Este asset ainda n\xE3o foi sincronizado.",
56
+ "assetInstallDialog.notSyncedRef": "Ref: {{ref}}",
57
+ "assetInstallDialog.dialogTitleBundle": "Instalar Bundle: {{name}}",
58
+ "assetInstallDialog.dialogSubtitleBundle": "Instale cada asset do bundle passo a passo.",
59
+ "assetInstallDialog.dialogTitle": "Instalar: {{name}}",
60
+ "assetInstallDialog.dialogSubtitle": "Copie o conte\xFAdo e coloque o arquivo no caminho indicado para sua ferramenta.",
61
+ "assetInstallDialog.bundleProgress": "{{current}} / {{total}} assets",
62
+ "assetInstallDialog.bundleEmpty": "Este bundle ainda n\xE3o tem itens.",
63
+ "assetInstallDialog.downloadBundle": "Baixar Bundle .zip",
64
+ "assetInstallDialog.back": "Voltar",
65
+ "assetInstallDialog.next": "Pr\xF3ximo",
66
+ "assetInstallDialog.finish": "Concluir",
67
+ "assetInstallDialog.close": "Fechar",
68
+ "mcpConfigDialog.title": "Configura\xE7\xE3o MCP",
69
+ "mcpConfigDialog.subtitle": "Explore o cat\xE1logo de servidores MCP prontos para instalar ou configure o MCP do Dev AI Hub para sua ferramenta de IA.",
70
+ "mcpConfigDialog.catalogTab": "Cat\xE1logo MCP",
71
+ "mcpConfigDialog.catalogDescription": "Servidores MCP pr\xE9-configurados que voc\xEA pode instalar com um clique no VSCode ou Cursor.",
72
+ "mcpConfigDialog.catalogEmpty": "Nenhum servidor MCP configurado no cat\xE1logo.",
73
+ "mcpConfigDialog.catalogAddHint": "Adicione um arquivo mcp-catalog.yaml na raiz do seu reposit\xF3rio de assets para gerenciar o cat\xE1logo.",
74
+ "mcpConfigDialog.toolConfigSection": "Configurar MCP do Dev AI Hub",
75
+ "mcpConfigDialog.scopeToProvider": "Filtrar por Provedor",
76
+ "mcpConfigDialog.allProviders": "Todos os provedores",
77
+ "mcpConfigDialog.proactiveSuggestions": "Sugest\xF5es proativas",
78
+ "mcpConfigDialog.proactiveDescription": "A IA sugerir\xE1 automaticamente assets relevantes com base no contexto do seu projeto. Desative se preferir buscar manualmente.",
79
+ "mcpConfigDialog.mcpEndpoint": "Endpoint MCP",
80
+ "mcpConfigDialog.copyUrl": "Copiar URL",
81
+ "mcpConfigDialog.installInVscode": "Instalar no VSCode",
82
+ "mcpConfigDialog.installInCursor": "Instalar no Cursor",
83
+ "mcpConfigDialog.manualConfig": "Config manual \u2014 {{file}}",
84
+ "mcpConfigDialog.claudeConfigDesc": "Adicione ao .mcp.json na raiz do projeto (ou execute via claude mcp add):",
85
+ "mcpConfigDialog.copilotConfigDesc": "Adicione \xE0s configura\xE7\xF5es do VS Code (.vscode/settings.json ou configura\xE7\xF5es do usu\xE1rio):",
86
+ "mcpConfigDialog.geminiConfigDesc": "Adicione \xE0 configura\xE7\xE3o do Gemini CLI:",
87
+ "mcpConfigDialog.cursorConfigDesc": "Adicione ao .cursor/mcp.json na raiz do projeto:",
88
+ "mcpConfigDialog.omitToolHint": "Omita ?tool= para receber todos os assets independente da ferramenta.",
89
+ "mcpConfigDialog.close": "Fechar",
90
+ "devAiHubPage.title": "Dev AI Hub",
91
+ "devAiHubPage.subtitle": "Assets de IA centralizados para o seu time",
92
+ "devAiHubPage.statsInstructions": "{{count}} Instructions",
93
+ "devAiHubPage.statsAgents": "{{count}} Agents",
94
+ "devAiHubPage.statsSkills": "{{count}} Skills",
95
+ "devAiHubPage.statsWorkflows": "{{count}} Workflows",
96
+ "devAiHubPage.lastSync": "\xDAltima sync: {{time}}",
97
+ "devAiHubPage.configMcp": "MCP Servers",
98
+ "devAiHubPage.assetCountOne": "{{n}} asset",
99
+ "devAiHubPage.assetCountOther": "{{n}} assets",
100
+ "devAiHubPage.providerCountOne": "{{n}} provedor",
101
+ "devAiHubPage.providerCountOther": "{{n}} provedores",
102
+ "devAiHubPage.totalStats": "{{totalAssets}} assets \xB7 {{providers}}",
103
+ "devAiHubPage.noAssetsTitle": "Nenhum asset encontrado",
104
+ "devAiHubPage.noAssetsSubtitle": "Tente ajustar os filtros ou os termos de busca.",
105
+ "devAiHubPage.timeJustNow": "agora mesmo",
106
+ "devAiHubPage.timeMinutesAgo": "h\xE1 {{count}}min",
107
+ "devAiHubPage.timeHoursAgo": "h\xE1 {{count}}h",
108
+ "devAiHubPage.timeDaysAgo": "h\xE1 {{count}}d",
109
+ "devAiHubPage.providersSectionTitle": "Providers",
110
+ "devAiHubPage.syncAllButton": "Sincronizar Tudo",
111
+ "devAiHubPage.syncButton": "Sincronizar",
112
+ "devAiHubPage.syncTriggered": "Sincroniza\xE7\xE3o disparada",
113
+ "devAiHubPage.providerStatusError": "Erro",
114
+ "devAiHubPage.noProvidersConfigured": "Nenhum provider configurado.",
115
+ "devAiHubPage.tabAssets": "Assets",
116
+ "devAiHubPage.tabMcp": "MCP",
117
+ "devAiHubPage.tabAdmin": "Admin"
118
+ };
119
+
120
+ export { ptBR as default };
121
+ //# sourceMappingURL=pt-BR.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pt-BR.esm.js","sources":["../../src/locales/pt-BR.ts"],"sourcesContent":["export default {\n 'toolIcon.universal': 'Universal',\n\n 'assetCard.newBadge': 'Novo',\n 'assetCard.updatedBadge': 'Atualizado',\n 'assetCard.installTooltip': 'Instalar no editor',\n 'assetCard.detailsTooltip': 'Ver detalhes',\n 'assetCard.helpTooltip': 'Guia de uso',\n 'assetCard.mcpsRequired': 'MCPs requeridos',\n 'assetCard.bundleFooter': '{{itemCount}} assets · {{author}}',\n 'assetCard.versionFooter': 'v{{version}} · {{author}}',\n 'assetCard.moreTags': '+{{count}}',\n\n 'assetDetailPanel.loading': 'Carregando...',\n 'assetDetailPanel.tabPreview': 'Visualização',\n 'assetDetailPanel.tabMetadata': 'Metadados',\n 'assetDetailPanel.tabRawYaml': 'YAML bruto',\n 'assetDetailPanel.bundlePreviewTitle': 'Conteúdo do bundle — {{total}} assets',\n 'assetDetailPanel.bundleItemNotSynced': 'Não sincronizado — {{ref}}',\n 'assetDetailPanel.metaAuthor': 'Autor',\n 'assetDetailPanel.metaVersion': 'Versão',\n 'assetDetailPanel.metaProvider': 'Provedor',\n 'assetDetailPanel.metaCommit': 'Commit',\n 'assetDetailPanel.metaLastSynced': 'Última sincronização',\n 'assetDetailPanel.metaBranch': 'Branch',\n 'assetDetailPanel.compatibleTools': 'Ferramentas compatíveis',\n 'assetDetailPanel.tagsLabel': 'Tags',\n 'assetDetailPanel.bundleContents': 'Conteúdo do bundle ({{total}} assets)',\n 'assetDetailPanel.bundleItemNotSyncedYet': 'Ainda não sincronizado — {{ref}}',\n 'assetDetailPanel.bundledFiles': 'Arquivos incluídos',\n 'assetDetailPanel.zipDescription': 'Baixa como .zip contendo todos os arquivos acima.',\n 'assetDetailPanel.repository': 'Repositório',\n 'assetDetailPanel.copyMarkdown': 'Copiar Markdown',\n 'assetDetailPanel.openInRepo': 'Abrir no repositório',\n 'assetDetailPanel.copiedMessage': 'Markdown copiado para a área de transferência!',\n\n 'assetFilters.searchPlaceholder': 'Buscar assets por nome, descrição ou conteúdo…',\n 'assetFilters.typeHeader': 'Tipo',\n 'assetFilters.typeAll': 'Todos',\n 'assetFilters.aiToolHeader': 'Ferramenta de IA',\n 'assetFilters.allTools': 'Todas as ferramentas',\n 'assetFilters.providerHeader': 'Provedor',\n 'assetFilters.tagsHeader': 'Tags',\n 'assetFilters.tagsShowMore': '+{{remaining}} mais',\n 'assetFilters.tagsShowLess': 'Ver menos',\n\n 'assetInstallDialog.bundledSkillTitle': 'Skill com arquivos — baixa como .zip',\n 'assetInstallDialog.bundledSkillDescription': 'Esta skill inclui arquivos de recursos junto ao SKILL.md. Extraia o zip e coloque todos os arquivos no diretório da skill.',\n 'assetInstallDialog.installPathLabel': 'Caminho de instalação',\n 'assetInstallDialog.installInVscode': 'Instalar no VSCode',\n 'assetInstallDialog.copied': 'Copiado!',\n 'assetInstallDialog.copyTooltip': 'Copiar conteúdo markdown',\n 'assetInstallDialog.copyContent': 'Copiar conteúdo',\n 'assetInstallDialog.downloadZipTooltip': 'Baixar como .zip com todos os arquivos',\n 'assetInstallDialog.downloadTooltip': 'Baixar arquivo com o nome correto',\n 'assetInstallDialog.downloadZip': 'Baixar .zip',\n 'assetInstallDialog.download': 'Baixar',\n 'assetInstallDialog.stepProgress': 'Passo {{current}} de {{total}}',\n 'assetInstallDialog.notSyncedTitle': 'Este asset ainda não foi sincronizado.',\n 'assetInstallDialog.notSyncedRef': 'Ref: {{ref}}',\n 'assetInstallDialog.dialogTitleBundle': 'Instalar Bundle: {{name}}',\n 'assetInstallDialog.dialogSubtitleBundle': 'Instale cada asset do bundle passo a passo.',\n 'assetInstallDialog.dialogTitle': 'Instalar: {{name}}',\n 'assetInstallDialog.dialogSubtitle': 'Copie o conteúdo e coloque o arquivo no caminho indicado para sua ferramenta.',\n 'assetInstallDialog.bundleProgress': '{{current}} / {{total}} assets',\n 'assetInstallDialog.bundleEmpty': 'Este bundle ainda não tem itens.',\n 'assetInstallDialog.downloadBundle': 'Baixar Bundle .zip',\n 'assetInstallDialog.back': 'Voltar',\n 'assetInstallDialog.next': 'Próximo',\n 'assetInstallDialog.finish': 'Concluir',\n 'assetInstallDialog.close': 'Fechar',\n\n 'mcpConfigDialog.title': 'Configuração MCP',\n 'mcpConfigDialog.subtitle': 'Explore o catálogo de servidores MCP prontos para instalar ou configure o MCP do Dev AI Hub para sua ferramenta de IA.',\n 'mcpConfigDialog.catalogTab': 'Catálogo MCP',\n 'mcpConfigDialog.catalogDescription': 'Servidores MCP pré-configurados que você pode instalar com um clique no VSCode ou Cursor.',\n 'mcpConfigDialog.catalogEmpty': 'Nenhum servidor MCP configurado no catálogo.',\n 'mcpConfigDialog.catalogAddHint': 'Adicione um arquivo mcp-catalog.yaml na raiz do seu repositório de assets para gerenciar o catálogo.',\n 'mcpConfigDialog.toolConfigSection': 'Configurar MCP do Dev AI Hub',\n 'mcpConfigDialog.scopeToProvider': 'Filtrar por Provedor',\n 'mcpConfigDialog.allProviders': 'Todos os provedores',\n 'mcpConfigDialog.proactiveSuggestions': 'Sugestões proativas',\n 'mcpConfigDialog.proactiveDescription': 'A IA sugerirá automaticamente assets relevantes com base no contexto do seu projeto. Desative se preferir buscar manualmente.',\n 'mcpConfigDialog.mcpEndpoint': 'Endpoint MCP',\n 'mcpConfigDialog.copyUrl': 'Copiar URL',\n 'mcpConfigDialog.installInVscode': 'Instalar no VSCode',\n 'mcpConfigDialog.installInCursor': 'Instalar no Cursor',\n 'mcpConfigDialog.manualConfig': 'Config manual — {{file}}',\n 'mcpConfigDialog.claudeConfigDesc': 'Adicione ao .mcp.json na raiz do projeto (ou execute via claude mcp add):',\n 'mcpConfigDialog.copilotConfigDesc': 'Adicione às configurações do VS Code (.vscode/settings.json ou configurações do usuário):',\n 'mcpConfigDialog.geminiConfigDesc': 'Adicione à configuração do Gemini CLI:',\n 'mcpConfigDialog.cursorConfigDesc': 'Adicione ao .cursor/mcp.json na raiz do projeto:',\n 'mcpConfigDialog.omitToolHint': 'Omita ?tool= para receber todos os assets independente da ferramenta.',\n 'mcpConfigDialog.close': 'Fechar',\n\n 'devAiHubPage.title': 'Dev AI Hub',\n 'devAiHubPage.subtitle': 'Assets de IA centralizados para o seu time',\n 'devAiHubPage.statsInstructions': '{{count}} Instructions',\n 'devAiHubPage.statsAgents': '{{count}} Agents',\n 'devAiHubPage.statsSkills': '{{count}} Skills',\n 'devAiHubPage.statsWorkflows': '{{count}} Workflows',\n 'devAiHubPage.lastSync': 'Última sync: {{time}}',\n 'devAiHubPage.configMcp': 'MCP Servers',\n 'devAiHubPage.assetCountOne': '{{n}} asset',\n 'devAiHubPage.assetCountOther': '{{n}} assets',\n 'devAiHubPage.providerCountOne': '{{n}} provedor',\n 'devAiHubPage.providerCountOther': '{{n}} provedores',\n 'devAiHubPage.totalStats': '{{totalAssets}} assets · {{providers}}',\n 'devAiHubPage.noAssetsTitle': 'Nenhum asset encontrado',\n 'devAiHubPage.noAssetsSubtitle': 'Tente ajustar os filtros ou os termos de busca.',\n 'devAiHubPage.timeJustNow': 'agora mesmo',\n 'devAiHubPage.timeMinutesAgo': 'há {{count}}min',\n 'devAiHubPage.timeHoursAgo': 'há {{count}}h',\n 'devAiHubPage.timeDaysAgo': 'há {{count}}d',\n 'devAiHubPage.providersSectionTitle': 'Providers',\n 'devAiHubPage.syncAllButton': 'Sincronizar Tudo',\n 'devAiHubPage.syncButton': 'Sincronizar',\n 'devAiHubPage.syncTriggered': 'Sincronização disparada',\n 'devAiHubPage.providerStatusError': 'Erro',\n 'devAiHubPage.noProvidersConfigured': 'Nenhum provider configurado.',\n 'devAiHubPage.tabAssets': 'Assets',\n 'devAiHubPage.tabMcp': 'MCP',\n 'devAiHubPage.tabAdmin': 'Admin',\n};"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { createFrontendPlugin, ApiBlueprint, createApiFactory, fetchApiRef, discoveryApiRef, PageBlueprint, NavItemBlueprint } from '@backstage/frontend-plugin-api';
2
+ import { createFrontendPlugin, ApiBlueprint, createApiFactory, fetchApiRef, discoveryApiRef, PageBlueprint, SubPageBlueprint } from '@backstage/frontend-plugin-api';
3
+ import { TranslationBlueprint } from '@backstage/plugin-app-react';
4
+ import AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings';
5
+ import ExtensionIcon from '@mui/icons-material/Extension';
6
+ import GridViewIcon from '@mui/icons-material/GridView';
3
7
  import HubIcon from '@mui/icons-material/Hub';
4
8
  import { DevAiHubClient, devAiHubApiRef } from './api/DevAiHubClient.esm.js';
9
+ import { devAiHubTranslationResource } from './translation.esm.js';
5
10
  import { rootRouteRef } from './routes.esm.js';
6
11
 
7
12
  const devAiHubPlugin = createFrontendPlugin({
@@ -19,18 +24,42 @@ const devAiHubPlugin = createFrontendPlugin({
19
24
  })
20
25
  )
21
26
  }),
27
+ TranslationBlueprint.make({
28
+ params: { resource: devAiHubTranslationResource }
29
+ }),
22
30
  PageBlueprint.make({
23
31
  params: {
24
32
  path: "/dev-ai-hub",
25
33
  routeRef: rootRouteRef,
26
- loader: () => import('./components/DevAiHubPage/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.DevAiHubPage, {}))
34
+ title: "AI Hub",
35
+ icon: /* @__PURE__ */ jsx(HubIcon, {})
27
36
  }
28
37
  }),
29
- NavItemBlueprint.make({
38
+ SubPageBlueprint.make({
39
+ name: "assets",
30
40
  params: {
31
- title: "AI Hub",
32
- routeRef: rootRouteRef,
33
- icon: HubIcon
41
+ path: "assets",
42
+ title: "Assets",
43
+ icon: /* @__PURE__ */ jsx(GridViewIcon, {}),
44
+ loader: () => import('./components/AssetsTab/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.AssetsTab, {}))
45
+ }
46
+ }),
47
+ SubPageBlueprint.make({
48
+ name: "mcp",
49
+ params: {
50
+ path: "mcp",
51
+ title: "MCP",
52
+ icon: /* @__PURE__ */ jsx(ExtensionIcon, {}),
53
+ loader: () => import('./components/McpPage/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.McpPage, {}))
54
+ }
55
+ }),
56
+ SubPageBlueprint.make({
57
+ name: "admin",
58
+ params: {
59
+ path: "admin",
60
+ title: "Admin",
61
+ icon: /* @__PURE__ */ jsx(AdminPanelSettingsIcon, {}),
62
+ loader: () => import('./components/AdminPage/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.AdminPage, {}))
34
63
  }
35
64
  })
36
65
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.esm.js","sources":["../src/plugin.tsx"],"sourcesContent":["import {\n createFrontendPlugin,\n PageBlueprint,\n ApiBlueprint,\n NavItemBlueprint,\n createApiFactory,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/frontend-plugin-api';\nimport HubIcon from '@mui/icons-material/Hub';\nimport { devAiHubApiRef, DevAiHubClient } from './api/DevAiHubClient';\nimport { rootRouteRef } from './routes';\n\nexport const devAiHubPlugin = createFrontendPlugin({\n pluginId: 'dev-ai-hub',\n routes: {\n root: rootRouteRef,\n },\n extensions: [\n ApiBlueprint.make({\n params: defineParams =>\n defineParams(\n createApiFactory({\n api: devAiHubApiRef,\n deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef },\n factory: ({ discoveryApi, fetchApi }) =>\n new DevAiHubClient(discoveryApi, fetchApi),\n }),\n ),\n }),\n PageBlueprint.make({\n params: {\n path: '/dev-ai-hub',\n routeRef: rootRouteRef,\n loader: () =>\n import('./components/DevAiHubPage').then(m => <m.DevAiHubPage />),\n },\n }),\n NavItemBlueprint.make({\n params: {\n title: 'AI Hub',\n routeRef: rootRouteRef,\n icon: HubIcon,\n },\n }),\n ],\n});\n"],"names":[],"mappings":";;;;;;AAaO,MAAM,iBAAiB,oBAAA,CAAqB;AAAA,EACjD,QAAA,EAAU,YAAA;AAAA,EACV,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,UAAA,EAAY;AAAA,IACV,aAAa,IAAA,CAAK;AAAA,MAChB,QAAQ,CAAA,YAAA,KACN,YAAA;AAAA,QACE,gBAAA,CAAiB;AAAA,UACf,GAAA,EAAK,cAAA;AAAA,UACL,IAAA,EAAM,EAAE,YAAA,EAAc,eAAA,EAAiB,UAAU,WAAA,EAAY;AAAA,UAC7D,OAAA,EAAS,CAAC,EAAE,YAAA,EAAc,UAAS,KACjC,IAAI,cAAA,CAAe,YAAA,EAAc,QAAQ;AAAA,SAC5C;AAAA;AACH,KACH,CAAA;AAAA,IACD,cAAc,IAAA,CAAK;AAAA,MACjB,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,aAAA;AAAA,QACN,QAAA,EAAU,YAAA;AAAA,QACV,MAAA,EAAQ,MACN,OAAO,wCAA2B,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAAK,GAAA,CAAC,CAAA,CAAE,YAAA,EAAF,EAAe,CAAE;AAAA;AACpE,KACD,CAAA;AAAA,IACD,iBAAiB,IAAA,CAAK;AAAA,MACpB,MAAA,EAAQ;AAAA,QACN,KAAA,EAAO,QAAA;AAAA,QACP,QAAA,EAAU,YAAA;AAAA,QACV,IAAA,EAAM;AAAA;AACR,KACD;AAAA;AAEL,CAAC;;;;"}
1
+ {"version":3,"file":"plugin.esm.js","sources":["../src/plugin.tsx"],"sourcesContent":["import {\n createFrontendPlugin,\n PageBlueprint,\n SubPageBlueprint,\n ApiBlueprint,\n createApiFactory,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/frontend-plugin-api';\nimport { TranslationBlueprint } from '@backstage/plugin-app-react';\nimport AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings';\nimport ExtensionIcon from '@mui/icons-material/Extension';\nimport GridViewIcon from '@mui/icons-material/GridView';\nimport HubIcon from '@mui/icons-material/Hub';\nimport { devAiHubApiRef, DevAiHubClient } from './api/DevAiHubClient';\nimport { devAiHubTranslationResource } from './translation';\nimport { rootRouteRef } from './routes';\n\nexport const devAiHubPlugin = createFrontendPlugin({\n pluginId: 'dev-ai-hub',\n routes: {\n root: rootRouteRef,\n },\n extensions: [\n ApiBlueprint.make({\n params: defineParams =>\n defineParams(\n createApiFactory({\n api: devAiHubApiRef,\n deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef },\n factory: ({ discoveryApi, fetchApi }) =>\n new DevAiHubClient(discoveryApi, fetchApi),\n }),\n ),\n }),\n TranslationBlueprint.make({\n params: { resource: devAiHubTranslationResource },\n }),\n PageBlueprint.make({\n params: {\n path: '/dev-ai-hub',\n routeRef: rootRouteRef,\n title: 'AI Hub',\n icon: <HubIcon />,\n },\n }),\n SubPageBlueprint.make({\n name: 'assets',\n params: {\n path: 'assets',\n title: 'Assets',\n icon: <GridViewIcon />,\n loader: () =>\n import('./components/AssetsTab').then(m => <m.AssetsTab />),\n },\n }),\n SubPageBlueprint.make({\n name: 'mcp',\n params: {\n path: 'mcp',\n title: 'MCP',\n icon: <ExtensionIcon />,\n loader: () =>\n import('./components/McpPage').then(m => <m.McpPage />),\n },\n }),\n SubPageBlueprint.make({\n name: 'admin',\n params: {\n path: 'admin',\n title: 'Admin',\n icon: <AdminPanelSettingsIcon />,\n loader: () =>\n import('./components/AdminPage').then(m => <m.AdminPage />),\n },\n }),\n ],\n});"],"names":[],"mappings":";;;;;;;;;;;AAkBO,MAAM,iBAAiB,oBAAA,CAAqB;AAAA,EACjD,QAAA,EAAU,YAAA;AAAA,EACV,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,UAAA,EAAY;AAAA,IACV,aAAa,IAAA,CAAK;AAAA,MAChB,QAAQ,CAAA,YAAA,KACN,YAAA;AAAA,QACE,gBAAA,CAAiB;AAAA,UACf,GAAA,EAAK,cAAA;AAAA,UACL,IAAA,EAAM,EAAE,YAAA,EAAc,eAAA,EAAiB,UAAU,WAAA,EAAY;AAAA,UAC7D,OAAA,EAAS,CAAC,EAAE,YAAA,EAAc,UAAS,KACjC,IAAI,cAAA,CAAe,YAAA,EAAc,QAAQ;AAAA,SAC5C;AAAA;AACH,KACH,CAAA;AAAA,IACD,qBAAqB,IAAA,CAAK;AAAA,MACxB,MAAA,EAAQ,EAAE,QAAA,EAAU,2BAAA;AAA4B,KACjD,CAAA;AAAA,IACD,cAAc,IAAA,CAAK;AAAA,MACjB,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,aAAA;AAAA,QACN,QAAA,EAAU,YAAA;AAAA,QACV,KAAA,EAAO,QAAA;AAAA,QACP,IAAA,sBAAO,OAAA,EAAA,EAAQ;AAAA;AACjB,KACD,CAAA;AAAA,IACD,iBAAiB,IAAA,CAAK;AAAA,MACpB,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,QAAA;AAAA,QACN,KAAA,EAAO,QAAA;AAAA,QACP,IAAA,sBAAO,YAAA,EAAA,EAAa,CAAA;AAAA,QACpB,MAAA,EAAQ,MACN,OAAO,qCAAwB,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAAK,GAAA,CAAC,CAAA,CAAE,SAAA,EAAF,EAAY,CAAE;AAAA;AAC9D,KACD,CAAA;AAAA,IACD,iBAAiB,IAAA,CAAK;AAAA,MACpB,IAAA,EAAM,KAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO,KAAA;AAAA,QACP,IAAA,sBAAO,aAAA,EAAA,EAAc,CAAA;AAAA,QACrB,MAAA,EAAQ,MACN,OAAO,mCAAsB,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAAK,GAAA,CAAC,CAAA,CAAE,OAAA,EAAF,EAAU,CAAE;AAAA;AAC1D,KACD,CAAA;AAAA,IACD,iBAAiB,IAAA,CAAK;AAAA,MACpB,IAAA,EAAM,OAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,OAAA;AAAA,QACN,KAAA,EAAO,OAAA;AAAA,QACP,IAAA,sBAAO,sBAAA,EAAA,EAAuB,CAAA;AAAA,QAC9B,MAAA,EAAQ,MACN,OAAO,qCAAwB,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAAK,GAAA,CAAC,CAAA,CAAE,SAAA,EAAF,EAAY,CAAE;AAAA;AAC9D,KACD;AAAA;AAEL,CAAC;;;;"}
@@ -0,0 +1,151 @@
1
+ import { createTranslationRef, createTranslationResource } from '@backstage/frontend-plugin-api';
2
+
3
+ const devAiHubTranslationRef = createTranslationRef({
4
+ id: "dev-ai-hub",
5
+ messages: {
6
+ toolIcon: {
7
+ universal: "Universal"
8
+ },
9
+ assetCard: {
10
+ newBadge: "New",
11
+ updatedBadge: "Updated",
12
+ installTooltip: "Install in editor",
13
+ detailsTooltip: "View details",
14
+ helpTooltip: "Usage guide",
15
+ mcpsRequired: "Required MCPs",
16
+ bundleFooter: "{{itemCount}} assets \xB7 {{author}}",
17
+ versionFooter: "v{{version}} \xB7 {{author}}",
18
+ moreTags: "+{{count}}"
19
+ },
20
+ assetDetailPanel: {
21
+ loading: "Loading...",
22
+ tabPreview: "Preview",
23
+ tabMetadata: "Metadata",
24
+ tabRawYaml: "Raw YAML",
25
+ bundlePreviewTitle: "Bundle contents \u2014 {{total}} assets",
26
+ bundleItemNotSynced: "Not synced \u2014 {{ref}}",
27
+ metaAuthor: "Author",
28
+ metaVersion: "Version",
29
+ metaProvider: "Provider",
30
+ metaCommit: "Commit",
31
+ metaLastSynced: "Last synced",
32
+ metaBranch: "Branch",
33
+ compatibleTools: "Compatible tools",
34
+ tagsLabel: "Tags",
35
+ bundleContents: "Bundle contents ({{total}} assets)",
36
+ bundleItemNotSyncedYet: "Not synced yet \u2014 {{ref}}",
37
+ bundledFiles: "Bundled files",
38
+ zipDescription: "Downloads as .zip containing all files above.",
39
+ repository: "Repository",
40
+ copyMarkdown: "Copy Markdown",
41
+ openInRepo: "Open in Repo",
42
+ copiedMessage: "Markdown copied to clipboard!"
43
+ },
44
+ assetFilters: {
45
+ searchPlaceholder: "Search assets by name, description or content\u2026",
46
+ typeHeader: "Type",
47
+ typeAll: "All",
48
+ aiToolHeader: "AI Tool",
49
+ allTools: "All Tools",
50
+ providerHeader: "Provider",
51
+ tagsHeader: "Tags",
52
+ tagsShowMore: "+{{remaining}} more",
53
+ tagsShowLess: "Show less"
54
+ },
55
+ assetInstallDialog: {
56
+ bundledSkillTitle: "Bundled skill \u2014 downloads as .zip",
57
+ bundledSkillDescription: "This skill includes resource files alongside SKILL.md. Extract the zip and place all files in the skill directory.",
58
+ installPathLabel: "Install path",
59
+ installInVscode: "Install in VSCode",
60
+ copied: "Copied!",
61
+ copyTooltip: "Copy markdown content",
62
+ copyContent: "Copy Content",
63
+ downloadZipTooltip: "Download as .zip with all bundled files",
64
+ downloadTooltip: "Download file with correct name",
65
+ downloadZip: "Download .zip",
66
+ download: "Download",
67
+ stepProgress: "Step {{current}} of {{total}}",
68
+ notSyncedTitle: "This asset has not been synced yet.",
69
+ notSyncedRef: "Ref: {{ref}}",
70
+ dialogTitleBundle: "Install Bundle: {{name}}",
71
+ dialogSubtitleBundle: "Install each asset in the bundle step by step.",
72
+ dialogTitle: "Install: {{name}}",
73
+ dialogSubtitle: "Copy the content and place the file at the path shown for your tool.",
74
+ bundleProgress: "{{current}} / {{total}} assets",
75
+ bundleEmpty: "This bundle has no items yet.",
76
+ downloadBundle: "Download Bundle .zip",
77
+ back: "Back",
78
+ next: "Next",
79
+ finish: "Finish",
80
+ close: "Close"
81
+ },
82
+ mcpConfigDialog: {
83
+ title: "MCP Configuration",
84
+ subtitle: "Browse the catalog of ready-to-install MCP servers, or configure the Dev AI Hub MCP for your AI tool.",
85
+ catalogTab: "MCP Catalog",
86
+ catalogDescription: "Pre-configured MCP servers you can install with one click in VSCode or Cursor.",
87
+ catalogEmpty: "No MCP servers configured in the catalog.",
88
+ catalogAddHint: "Add a mcp-catalog.yaml file to the root of your assets repository to manage the catalog.",
89
+ toolConfigSection: "Configure Dev AI Hub MCP",
90
+ scopeToProvider: "Scope to Provider",
91
+ allProviders: "All providers",
92
+ proactiveSuggestions: "Proactive suggestions",
93
+ proactiveDescription: "The AI will automatically suggest relevant assets based on your project context. Disable if you prefer to search manually.",
94
+ mcpEndpoint: "MCP Endpoint",
95
+ copyUrl: "Copy URL",
96
+ installInVscode: "Install in VSCode",
97
+ installInCursor: "Install in Cursor",
98
+ manualConfig: "Manual config \u2014 {{file}}",
99
+ claudeConfigDesc: "Add to .mcp.json in your project root (or run via claude mcp add):",
100
+ copilotConfigDesc: "Add to your VS Code settings (.vscode/settings.json or user settings):",
101
+ geminiConfigDesc: "Add to your Gemini CLI configuration:",
102
+ cursorConfigDesc: "Add to .cursor/mcp.json in your project root:",
103
+ omitToolHint: "Omit ?tool= to receive all assets regardless of tool compatibility.",
104
+ close: "Close"
105
+ },
106
+ devAiHubPage: {
107
+ title: "Dev AI Hub",
108
+ subtitle: "Centralized AI assets for your team",
109
+ statsInstructions: "{{count}} Instructions",
110
+ statsAgents: "{{count}} Agents",
111
+ statsSkills: "{{count}} Skills",
112
+ statsWorkflows: "{{count}} Workflows",
113
+ lastSync: "Last sync: {{time}}",
114
+ configMcp: "MCP Servers",
115
+ assetCountOne: "{{n}} asset",
116
+ assetCountOther: "{{n}} assets",
117
+ providerCountOne: "{{n}} provider",
118
+ providerCountOther: "{{n}} providers",
119
+ totalStats: "{{totalAssets}} assets \xB7 {{providers}}",
120
+ noAssetsTitle: "No assets found",
121
+ noAssetsSubtitle: "Try adjusting your filters or search terms.",
122
+ timeJustNow: "just now",
123
+ timeMinutesAgo: "{{count}}m ago",
124
+ timeHoursAgo: "{{count}}h ago",
125
+ timeDaysAgo: "{{count}}d ago",
126
+ providersSectionTitle: "Providers",
127
+ syncAllButton: "Sync All",
128
+ syncButton: "Sync",
129
+ syncTriggered: "Sync triggered",
130
+ providerStatusError: "Error",
131
+ noProvidersConfigured: "No providers configured.",
132
+ tabAssets: "Assets",
133
+ tabMcp: "MCP",
134
+ tabAdmin: "Admin"
135
+ }
136
+ },
137
+ translations: {
138
+ "pt-BR": () => import('./locales/pt-BR.esm.js'),
139
+ "es": () => import('./locales/es.esm.js')
140
+ }
141
+ });
142
+ const devAiHubTranslationResource = createTranslationResource({
143
+ ref: devAiHubTranslationRef,
144
+ translations: {
145
+ "pt-BR": () => import('./locales/pt-BR.esm.js'),
146
+ "es": () => import('./locales/es.esm.js')
147
+ }
148
+ });
149
+
150
+ export { devAiHubTranslationRef, devAiHubTranslationResource };
151
+ //# sourceMappingURL=translation.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["import { createTranslationRef, createTranslationResource } from '@backstage/frontend-plugin-api';\n\nexport const devAiHubTranslationRef = createTranslationRef({\n id: 'dev-ai-hub',\n messages: {\n toolIcon: {\n universal: 'Universal',\n },\n assetCard: {\n newBadge: 'New',\n updatedBadge: 'Updated',\n installTooltip: 'Install in editor',\n detailsTooltip: 'View details',\n helpTooltip: 'Usage guide',\n mcpsRequired: 'Required MCPs',\n bundleFooter: '{{itemCount}} assets · {{author}}',\n versionFooter: 'v{{version}} · {{author}}',\n moreTags: '+{{count}}',\n },\n assetDetailPanel: {\n loading: 'Loading...',\n tabPreview: 'Preview',\n tabMetadata: 'Metadata',\n tabRawYaml: 'Raw YAML',\n bundlePreviewTitle: 'Bundle contents — {{total}} assets',\n bundleItemNotSynced: 'Not synced — {{ref}}',\n metaAuthor: 'Author',\n metaVersion: 'Version',\n metaProvider: 'Provider',\n metaCommit: 'Commit',\n metaLastSynced: 'Last synced',\n metaBranch: 'Branch',\n compatibleTools: 'Compatible tools',\n tagsLabel: 'Tags',\n bundleContents: 'Bundle contents ({{total}} assets)',\n bundleItemNotSyncedYet: 'Not synced yet — {{ref}}',\n bundledFiles: 'Bundled files',\n zipDescription: 'Downloads as .zip containing all files above.',\n repository: 'Repository',\n copyMarkdown: 'Copy Markdown',\n openInRepo: 'Open in Repo',\n copiedMessage: 'Markdown copied to clipboard!',\n },\n assetFilters: {\n searchPlaceholder: 'Search assets by name, description or content…',\n typeHeader: 'Type',\n typeAll: 'All',\n aiToolHeader: 'AI Tool',\n allTools: 'All Tools',\n providerHeader: 'Provider',\n tagsHeader: 'Tags',\n tagsShowMore: '+{{remaining}} more',\n tagsShowLess: 'Show less',\n },\n assetInstallDialog: {\n bundledSkillTitle: 'Bundled skill — downloads as .zip',\n bundledSkillDescription: 'This skill includes resource files alongside SKILL.md. Extract the zip and place all files in the skill directory.',\n installPathLabel: 'Install path',\n installInVscode: 'Install in VSCode',\n copied: 'Copied!',\n copyTooltip: 'Copy markdown content',\n copyContent: 'Copy Content',\n downloadZipTooltip: 'Download as .zip with all bundled files',\n downloadTooltip: 'Download file with correct name',\n downloadZip: 'Download .zip',\n download: 'Download',\n stepProgress: 'Step {{current}} of {{total}}',\n notSyncedTitle: 'This asset has not been synced yet.',\n notSyncedRef: 'Ref: {{ref}}',\n dialogTitleBundle: 'Install Bundle: {{name}}',\n dialogSubtitleBundle: 'Install each asset in the bundle step by step.',\n dialogTitle: 'Install: {{name}}',\n dialogSubtitle: 'Copy the content and place the file at the path shown for your tool.',\n bundleProgress: '{{current}} / {{total}} assets',\n bundleEmpty: 'This bundle has no items yet.',\n downloadBundle: 'Download Bundle .zip',\n back: 'Back',\n next: 'Next',\n finish: 'Finish',\n close: 'Close',\n },\n mcpConfigDialog: {\n title: 'MCP Configuration',\n subtitle: 'Browse the catalog of ready-to-install MCP servers, or configure the Dev AI Hub MCP for your AI tool.',\n catalogTab: 'MCP Catalog',\n catalogDescription: 'Pre-configured MCP servers you can install with one click in VSCode or Cursor.',\n catalogEmpty: 'No MCP servers configured in the catalog.',\n catalogAddHint: 'Add a mcp-catalog.yaml file to the root of your assets repository to manage the catalog.',\n toolConfigSection: 'Configure Dev AI Hub MCP',\n scopeToProvider: 'Scope to Provider',\n allProviders: 'All providers',\n proactiveSuggestions: 'Proactive suggestions',\n proactiveDescription: 'The AI will automatically suggest relevant assets based on your project context. Disable if you prefer to search manually.',\n mcpEndpoint: 'MCP Endpoint',\n copyUrl: 'Copy URL',\n installInVscode: 'Install in VSCode',\n installInCursor: 'Install in Cursor',\n manualConfig: 'Manual config — {{file}}',\n claudeConfigDesc: 'Add to .mcp.json in your project root (or run via claude mcp add):',\n copilotConfigDesc: 'Add to your VS Code settings (.vscode/settings.json or user settings):',\n geminiConfigDesc: 'Add to your Gemini CLI configuration:',\n cursorConfigDesc: 'Add to .cursor/mcp.json in your project root:',\n omitToolHint: 'Omit ?tool= to receive all assets regardless of tool compatibility.',\n close: 'Close',\n },\n devAiHubPage: {\n title: 'Dev AI Hub',\n subtitle: 'Centralized AI assets for your team',\n statsInstructions: '{{count}} Instructions',\n statsAgents: '{{count}} Agents',\n statsSkills: '{{count}} Skills',\n statsWorkflows: '{{count}} Workflows',\n lastSync: 'Last sync: {{time}}',\n configMcp: 'MCP Servers',\n assetCountOne: '{{n}} asset',\n assetCountOther: '{{n}} assets',\n providerCountOne: '{{n}} provider',\n providerCountOther: '{{n}} providers',\n totalStats: '{{totalAssets}} assets · {{providers}}',\n noAssetsTitle: 'No assets found',\n noAssetsSubtitle: 'Try adjusting your filters or search terms.',\n timeJustNow: 'just now',\n timeMinutesAgo: '{{count}}m ago',\n timeHoursAgo: '{{count}}h ago',\n timeDaysAgo: '{{count}}d ago',\n providersSectionTitle: 'Providers',\n syncAllButton: 'Sync All',\n syncButton: 'Sync',\n syncTriggered: 'Sync triggered',\n providerStatusError: 'Error',\n noProvidersConfigured: 'No providers configured.',\n tabAssets: 'Assets',\n tabMcp: 'MCP',\n tabAdmin: 'Admin',\n },\n },\n translations: {\n 'pt-BR': () => import('./locales/pt-BR'),\n 'es': () => import('./locales/es'),\n },\n});\n\n// Exported for manual registration in legacy apps (__experimentalTranslations.resources)\nexport const devAiHubTranslationResource = createTranslationResource({\n ref: devAiHubTranslationRef,\n translations: {\n 'pt-BR': () => import('./locales/pt-BR'),\n 'es': () => import('./locales/es'),\n },\n});"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@julianpedro/plugin-dev-ai-hub",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Frontend plugin for Dev AI Hub",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -47,7 +47,7 @@
47
47
  "tsc": "tsc --noEmit"
48
48
  },
49
49
  "dependencies": {
50
- "@julianpedro/plugin-dev-ai-hub-common": "^0.2.0",
50
+ "@julianpedro/plugin-dev-ai-hub-common": "^0.4.0",
51
51
  "@mui/icons-material": "^5.15.0",
52
52
  "@mui/material": "^5.15.0",
53
53
  "react-markdown": "^9.0.0",
@@ -71,13 +71,23 @@
71
71
  "react-router-dom": "^6.0.0"
72
72
  },
73
73
  "peerDependencies": {
74
- "@backstage/core-components": ">=1.40.0",
75
- "@backstage/core-plugin-api": ">=1.40.0",
76
- "@backstage/frontend-plugin-api": ">=1.40.0",
74
+ "@backstage/core-components": ">=0.18.0",
75
+ "@backstage/core-plugin-api": ">=1.12.0",
76
+ "@backstage/frontend-plugin-api": ">=0.14.0",
77
+ "@backstage/plugin-app-react": ">=0.2.0",
78
+ "@backstage/plugin-permission-react": ">=0.4.40",
77
79
  "react": "^18.0.0",
78
80
  "react-dom": "^18.0.0",
79
81
  "react-router-dom": "^6.0.0"
80
82
  },
83
+ "peerDependenciesMeta": {
84
+ "@backstage/frontend-plugin-api": {
85
+ "optional": true
86
+ },
87
+ "@backstage/plugin-app-react": {
88
+ "optional": true
89
+ }
90
+ },
81
91
  "typesVersions": {
82
92
  "*": {
83
93
  "package.json": [