@julianpedro/plugin-dev-ai-hub 0.1.6 → 0.1.7
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.
|
@@ -51,6 +51,15 @@ const TOOL_CONFIGS = [
|
|
|
51
51
|
buildConfig: (url) => JSON.stringify({
|
|
52
52
|
mcpServers: { "dev-ai-hub": { url } }
|
|
53
53
|
}, null, 2)
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
tool: "cursor",
|
|
57
|
+
label: "Cursor",
|
|
58
|
+
file: ".cursor/mcp.json",
|
|
59
|
+
description: "Add to .cursor/mcp.json in your project root:",
|
|
60
|
+
buildConfig: (url) => JSON.stringify({
|
|
61
|
+
mcpServers: { "dev-ai-hub": { type: "http", url } }
|
|
62
|
+
}, null, 2)
|
|
54
63
|
}
|
|
55
64
|
];
|
|
56
65
|
function providerLabel(target) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpConfigDialog.esm.js","sources":["../../../src/components/McpConfigDialog/McpConfigDialog.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Chip from '@mui/material/Chip';\nimport Collapse from '@mui/material/Collapse';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport IconButton from '@mui/material/IconButton';\nimport Switch from '@mui/material/Switch';\nimport Tab from '@mui/material/Tab';\nimport Tabs from '@mui/material/Tabs';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\nimport CheckIcon from '@mui/icons-material/Check';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport StorageIcon from '@mui/icons-material/Storage';\nimport { useApi, discoveryApiRef } from '@backstage/core-plugin-api';\nimport { ToolIcon } from '../ToolIcon';\nimport { useCopyToClipboard, useProviders } from '../../hooks';\nimport type { AiTool } from '@julianpedro/plugin-dev-ai-hub-common';\n\ninterface ToolConfig {\n tool: AiTool;\n label: string;\n file: string;\n description: string;\n buildConfig: (mcpUrl: string) => string;\n}\n\nconst TOOL_CONFIGS: ToolConfig[] = [\n {\n tool: 'claude-code',\n label: 'Claude Code',\n file: '.mcp.json',\n description: 'Add to .mcp.json in your project root (or run via claude mcp add):',\n buildConfig: url => JSON.stringify({\n mcpServers: { 'dev-ai-hub': { type: 'http', url } },\n }, null, 2),\n },\n {\n tool: 'github-copilot',\n label: 'GitHub Copilot',\n file: '.vscode/settings.json',\n description: 'Add to your VS Code settings (.vscode/settings.json or user settings):',\n buildConfig: url => JSON.stringify({\n 'github.copilot.chat.mcp.servers': { 'dev-ai-hub': { type: 'http', url } },\n }, null, 2),\n },\n {\n tool: 'google-gemini',\n label: 'Google Gemini',\n file: 'gemini-config.json',\n description: 'Add to your Gemini CLI configuration:',\n buildConfig: url => JSON.stringify({\n mcpServers: { 'dev-ai-hub': { url } },\n }, null, 2),\n },\n];\n\nfunction providerLabel(target: string): string {\n return target.split('/').pop()?.replace(/\\.git$/, '') ?? target;\n}\n\ninterface McpConfigDialogProps {\n open: boolean;\n onClose: () => void;\n}\n\nexport function McpConfigDialog({ open, onClose }: McpConfigDialogProps) {\n const theme = useTheme();\n const discoveryApi = useApi(discoveryApiRef);\n const { copy: copyUrl, copied: copiedUrl } = useCopyToClipboard();\n const { copy: copySnippet, copied: copiedSnippet } = useCopyToClipboard();\n const [tab, setTab] = useState(0);\n const [baseUrl, setBaseUrl] = useState('');\n const [selectedProvider, setSelectedProvider] = useState<string>('');\n const [proactiveEnabled, setProactiveEnabled] = useState(false);\n const [manualExpanded, setManualExpanded] = useState(false);\n\n const { providers } = useProviders();\n const showProviderFilter = providers.length > 1;\n\n useEffect(() => {\n if (open) {\n discoveryApi.getBaseUrl('dev-ai-hub').then(url => setBaseUrl(url));\n }\n }, [open, discoveryApi]);\n\n const cfg = TOOL_CONFIGS[tab];\n\n const buildMcpUrl = () => {\n if (!baseUrl) return 'loading...';\n const params = new URLSearchParams();\n params.set('tool', cfg.tool);\n if (selectedProvider) params.set('provider', selectedProvider);\n if (proactiveEnabled) params.set('proactive', 'true');\n return `${baseUrl}/mcp?${params.toString()}`;\n };\n\n const mcpUrl = buildMcpUrl();\n const configSnippet = baseUrl ? cfg.buildConfig(mcpUrl) : '';\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"sm\" fullWidth>\n <DialogTitle sx={{ pb: 0 }}>\n <Typography variant=\"h6\" fontWeight={700}>Configure MCP Server</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mt: 0.5 }}>\n Connect your AI tool to the Dev AI Hub via Model Context Protocol.\n </Typography>\n </DialogTitle>\n\n <DialogContent sx={{ pt: 1 }}>\n <Tabs\n value={tab}\n onChange={(_, v) => setTab(v)}\n sx={{ mb: 2, borderBottom: 1, borderColor: 'divider' }}\n >\n {TOOL_CONFIGS.map((t, i) => (\n <Tab\n key={t.tool}\n value={i}\n label={\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <ToolIcon\n tool={t.tool}\n sx={{ fontSize: '1rem', color: theme.palette.mode === 'dark' ? '#fff' : undefined }}\n />\n <span>{t.label}</span>\n </Box>\n }\n />\n ))}\n </Tabs>\n\n {/* Provider filter — only shown when there are 2+ providers */}\n {showProviderFilter && (\n <Box sx={{ mb: 2 }}>\n <Typography variant=\"caption\" fontWeight={600} color=\"text.secondary\" sx={{ textTransform: 'uppercase', letterSpacing: 0.5, display: 'block', mb: 0.75 }}>\n Scope to Provider\n </Typography>\n <Box sx={{ display: 'flex', gap: 0.75, flexWrap: 'wrap' }}>\n <Chip\n label=\"All providers\"\n size=\"small\"\n clickable\n onClick={() => setSelectedProvider('')}\n sx={{\n fontWeight: 600,\n fontSize: '0.75rem',\n borderRadius: 2,\n border: '1.5px solid',\n borderColor: !selectedProvider ? 'text.primary' : 'divider',\n backgroundColor: !selectedProvider ? 'text.primary' : 'transparent',\n color: !selectedProvider ? 'background.paper' : 'text.secondary',\n transition: 'all 0.15s ease',\n }}\n />\n {providers.map(p => {\n const isSelected = selectedProvider === p.id;\n const label = providerLabel(p.target);\n return (\n <Chip\n key={p.id}\n icon={<StorageIcon sx={{ fontSize: '0.8rem !important', color: isSelected ? 'background.paper' : 'inherit' }} />}\n label={label}\n size=\"small\"\n clickable\n onClick={() => setSelectedProvider(isSelected ? '' : p.id)}\n sx={{\n fontWeight: 600,\n fontSize: '0.75rem',\n borderRadius: 2,\n border: '1.5px solid',\n borderColor: isSelected ? 'text.primary' : 'divider',\n backgroundColor: isSelected ? 'text.primary' : 'transparent',\n color: isSelected ? 'background.paper' : 'text.secondary',\n transition: 'all 0.15s ease',\n }}\n />\n );\n })}\n </Box>\n </Box>\n )}\n\n {/* Proactive suggestions toggle */}\n <Box sx={{ mb: 2 }}>\n <FormControlLabel\n control={\n <Switch\n size=\"small\"\n checked={proactiveEnabled}\n onChange={e => setProactiveEnabled(e.target.checked)}\n />\n }\n label={\n <Box>\n <Typography variant=\"body2\" fontWeight={600}>Proactive suggestions</Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n The AI will automatically suggest relevant assets based on your project context.\n Disable if you prefer to search manually.\n </Typography>\n </Box>\n }\n sx={{ alignItems: 'flex-start', ml: 0, gap: 1 }}\n />\n </Box>\n\n {/* MCP URL */}\n <Typography variant=\"caption\" fontWeight={600} color=\"text.secondary\" sx={{ textTransform: 'uppercase', letterSpacing: 0.5 }}>\n MCP Endpoint\n </Typography>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n mt: 0.5,\n mb: 2,\n px: 1.5,\n py: 1,\n borderRadius: 1.5,\n border: '1px solid',\n borderColor: 'divider',\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.05)' : 'rgba(0,0,0,0.03)',\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{ flex: 1, fontFamily: 'monospace', fontSize: '0.8rem', wordBreak: 'break-all' }}\n >\n {mcpUrl}\n </Typography>\n <Tooltip title={copiedUrl ? 'Copied!' : 'Copy URL'}>\n <IconButton size=\"small\" onClick={() => copyUrl(mcpUrl)}>\n {copiedUrl ? <CheckIcon fontSize=\"small\" color=\"success\" /> : <ContentCopyIcon fontSize=\"small\" />}\n </IconButton>\n </Tooltip>\n </Box>\n\n\n {/* Manual config snippet — collapsed by default */}\n <Box\n onClick={() => setManualExpanded(v => !v)}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n userSelect: 'none',\n py: 0.75,\n borderTop: '1px solid',\n borderColor: 'divider',\n }}\n >\n <Typography variant=\"caption\" fontWeight={600} color=\"text.secondary\" sx={{ textTransform: 'uppercase', letterSpacing: 0.5 }}>\n Manual config — {cfg.file}\n </Typography>\n <ExpandMoreIcon\n fontSize=\"small\"\n sx={{\n color: 'text.disabled',\n transition: 'transform 0.2s ease',\n transform: manualExpanded ? 'rotate(180deg)' : 'rotate(0deg)',\n }}\n />\n </Box>\n\n <Collapse in={manualExpanded}>\n <Typography variant=\"caption\" color=\"text.secondary\" sx={{ display: 'block', mb: 1, mt: 0.5 }}>\n {cfg.description}\n </Typography>\n <Box sx={{ position: 'relative' }}>\n <Box\n component=\"pre\"\n sx={{\n m: 0,\n p: 2,\n borderRadius: 2,\n border: '1px solid',\n borderColor: 'divider',\n backgroundColor: theme.palette.mode === 'dark' ? '#0d1117' : '#f6f8fa',\n color: theme.palette.mode === 'dark' ? '#e6edf3' : '#24292f',\n fontFamily: 'monospace',\n fontSize: '0.8rem',\n overflowX: 'auto',\n whiteSpace: 'pre',\n }}\n >\n {configSnippet}\n </Box>\n <Tooltip title={copiedSnippet ? 'Copied!' : 'Copy config'}>\n <IconButton\n size=\"small\"\n onClick={e => { e.stopPropagation(); copySnippet(configSnippet); }}\n sx={{\n position: 'absolute',\n top: 8,\n right: 8,\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.06)',\n '&:hover': {\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.2)' : 'rgba(0,0,0,0.12)',\n },\n }}\n >\n {copiedSnippet ? <CheckIcon fontSize=\"small\" color=\"success\" /> : <ContentCopyIcon fontSize=\"small\" />}\n </IconButton>\n </Tooltip>\n </Box>\n\n <Typography variant=\"caption\" color=\"text.disabled\" sx={{ display: 'block', mt: 1.5 }}>\n 💡 Omit <code>?tool=</code> from the URL to receive assets for all AI tools.\n {showProviderFilter && ' Omit ?provider= to receive assets from all repositories.'}\n {' '}Proactive suggestions add <code>?proactive=true</code> and register the{' '}\n <code>suggest_assets</code> tool and <code>check_for_assets</code> prompt.\n </Typography>\n </Collapse>\n </DialogContent>\n\n <DialogActions>\n <Button onClick={onClose}>Close</Button>\n </DialogActions>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"McpConfigDialog.esm.js","sources":["../../../src/components/McpConfigDialog/McpConfigDialog.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Chip from '@mui/material/Chip';\nimport Collapse from '@mui/material/Collapse';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport IconButton from '@mui/material/IconButton';\nimport Switch from '@mui/material/Switch';\nimport Tab from '@mui/material/Tab';\nimport Tabs from '@mui/material/Tabs';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\nimport CheckIcon from '@mui/icons-material/Check';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport StorageIcon from '@mui/icons-material/Storage';\nimport { useApi, discoveryApiRef } from '@backstage/core-plugin-api';\nimport { ToolIcon } from '../ToolIcon';\nimport { useCopyToClipboard, useProviders } from '../../hooks';\nimport type { AiTool } from '@julianpedro/plugin-dev-ai-hub-common';\n\ninterface ToolConfig {\n tool: AiTool;\n label: string;\n file: string;\n description: string;\n buildConfig: (mcpUrl: string) => string;\n}\n\nconst TOOL_CONFIGS: ToolConfig[] = [\n {\n tool: 'claude-code',\n label: 'Claude Code',\n file: '.mcp.json',\n description: 'Add to .mcp.json in your project root (or run via claude mcp add):',\n buildConfig: url => JSON.stringify({\n mcpServers: { 'dev-ai-hub': { type: 'http', url } },\n }, null, 2),\n },\n {\n tool: 'github-copilot',\n label: 'GitHub Copilot',\n file: '.vscode/settings.json',\n description: 'Add to your VS Code settings (.vscode/settings.json or user settings):',\n buildConfig: url => JSON.stringify({\n 'github.copilot.chat.mcp.servers': { 'dev-ai-hub': { type: 'http', url } },\n }, null, 2),\n },\n {\n tool: 'google-gemini',\n label: 'Google Gemini',\n file: 'gemini-config.json',\n description: 'Add to your Gemini CLI configuration:',\n buildConfig: url => JSON.stringify({\n mcpServers: { 'dev-ai-hub': { url } },\n }, null, 2),\n },\n {\n tool: 'cursor',\n label: 'Cursor',\n file: '.cursor/mcp.json',\n description: 'Add to .cursor/mcp.json in your project root:',\n buildConfig: url => JSON.stringify({\n mcpServers: { 'dev-ai-hub': { type: 'http', url } },\n }, null, 2),\n },\n];\n\nfunction providerLabel(target: string): string {\n return target.split('/').pop()?.replace(/\\.git$/, '') ?? target;\n}\n\ninterface McpConfigDialogProps {\n open: boolean;\n onClose: () => void;\n}\n\nexport function McpConfigDialog({ open, onClose }: McpConfigDialogProps) {\n const theme = useTheme();\n const discoveryApi = useApi(discoveryApiRef);\n const { copy: copyUrl, copied: copiedUrl } = useCopyToClipboard();\n const { copy: copySnippet, copied: copiedSnippet } = useCopyToClipboard();\n const [tab, setTab] = useState(0);\n const [baseUrl, setBaseUrl] = useState('');\n const [selectedProvider, setSelectedProvider] = useState<string>('');\n const [proactiveEnabled, setProactiveEnabled] = useState(false);\n const [manualExpanded, setManualExpanded] = useState(false);\n\n const { providers } = useProviders();\n const showProviderFilter = providers.length > 1;\n\n useEffect(() => {\n if (open) {\n discoveryApi.getBaseUrl('dev-ai-hub').then(url => setBaseUrl(url));\n }\n }, [open, discoveryApi]);\n\n const cfg = TOOL_CONFIGS[tab];\n\n const buildMcpUrl = () => {\n if (!baseUrl) return 'loading...';\n const params = new URLSearchParams();\n params.set('tool', cfg.tool);\n if (selectedProvider) params.set('provider', selectedProvider);\n if (proactiveEnabled) params.set('proactive', 'true');\n return `${baseUrl}/mcp?${params.toString()}`;\n };\n\n const mcpUrl = buildMcpUrl();\n const configSnippet = baseUrl ? cfg.buildConfig(mcpUrl) : '';\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"sm\" fullWidth>\n <DialogTitle sx={{ pb: 0 }}>\n <Typography variant=\"h6\" fontWeight={700}>Configure MCP Server</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mt: 0.5 }}>\n Connect your AI tool to the Dev AI Hub via Model Context Protocol.\n </Typography>\n </DialogTitle>\n\n <DialogContent sx={{ pt: 1 }}>\n <Tabs\n value={tab}\n onChange={(_, v) => setTab(v)}\n sx={{ mb: 2, borderBottom: 1, borderColor: 'divider' }}\n >\n {TOOL_CONFIGS.map((t, i) => (\n <Tab\n key={t.tool}\n value={i}\n label={\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <ToolIcon\n tool={t.tool}\n sx={{ fontSize: '1rem', color: theme.palette.mode === 'dark' ? '#fff' : undefined }}\n />\n <span>{t.label}</span>\n </Box>\n }\n />\n ))}\n </Tabs>\n\n {/* Provider filter — only shown when there are 2+ providers */}\n {showProviderFilter && (\n <Box sx={{ mb: 2 }}>\n <Typography variant=\"caption\" fontWeight={600} color=\"text.secondary\" sx={{ textTransform: 'uppercase', letterSpacing: 0.5, display: 'block', mb: 0.75 }}>\n Scope to Provider\n </Typography>\n <Box sx={{ display: 'flex', gap: 0.75, flexWrap: 'wrap' }}>\n <Chip\n label=\"All providers\"\n size=\"small\"\n clickable\n onClick={() => setSelectedProvider('')}\n sx={{\n fontWeight: 600,\n fontSize: '0.75rem',\n borderRadius: 2,\n border: '1.5px solid',\n borderColor: !selectedProvider ? 'text.primary' : 'divider',\n backgroundColor: !selectedProvider ? 'text.primary' : 'transparent',\n color: !selectedProvider ? 'background.paper' : 'text.secondary',\n transition: 'all 0.15s ease',\n }}\n />\n {providers.map(p => {\n const isSelected = selectedProvider === p.id;\n const label = providerLabel(p.target);\n return (\n <Chip\n key={p.id}\n icon={<StorageIcon sx={{ fontSize: '0.8rem !important', color: isSelected ? 'background.paper' : 'inherit' }} />}\n label={label}\n size=\"small\"\n clickable\n onClick={() => setSelectedProvider(isSelected ? '' : p.id)}\n sx={{\n fontWeight: 600,\n fontSize: '0.75rem',\n borderRadius: 2,\n border: '1.5px solid',\n borderColor: isSelected ? 'text.primary' : 'divider',\n backgroundColor: isSelected ? 'text.primary' : 'transparent',\n color: isSelected ? 'background.paper' : 'text.secondary',\n transition: 'all 0.15s ease',\n }}\n />\n );\n })}\n </Box>\n </Box>\n )}\n\n {/* Proactive suggestions toggle */}\n <Box sx={{ mb: 2 }}>\n <FormControlLabel\n control={\n <Switch\n size=\"small\"\n checked={proactiveEnabled}\n onChange={e => setProactiveEnabled(e.target.checked)}\n />\n }\n label={\n <Box>\n <Typography variant=\"body2\" fontWeight={600}>Proactive suggestions</Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n The AI will automatically suggest relevant assets based on your project context.\n Disable if you prefer to search manually.\n </Typography>\n </Box>\n }\n sx={{ alignItems: 'flex-start', ml: 0, gap: 1 }}\n />\n </Box>\n\n {/* MCP URL */}\n <Typography variant=\"caption\" fontWeight={600} color=\"text.secondary\" sx={{ textTransform: 'uppercase', letterSpacing: 0.5 }}>\n MCP Endpoint\n </Typography>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n mt: 0.5,\n mb: 2,\n px: 1.5,\n py: 1,\n borderRadius: 1.5,\n border: '1px solid',\n borderColor: 'divider',\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.05)' : 'rgba(0,0,0,0.03)',\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{ flex: 1, fontFamily: 'monospace', fontSize: '0.8rem', wordBreak: 'break-all' }}\n >\n {mcpUrl}\n </Typography>\n <Tooltip title={copiedUrl ? 'Copied!' : 'Copy URL'}>\n <IconButton size=\"small\" onClick={() => copyUrl(mcpUrl)}>\n {copiedUrl ? <CheckIcon fontSize=\"small\" color=\"success\" /> : <ContentCopyIcon fontSize=\"small\" />}\n </IconButton>\n </Tooltip>\n </Box>\n\n\n {/* Manual config snippet — collapsed by default */}\n <Box\n onClick={() => setManualExpanded(v => !v)}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n userSelect: 'none',\n py: 0.75,\n borderTop: '1px solid',\n borderColor: 'divider',\n }}\n >\n <Typography variant=\"caption\" fontWeight={600} color=\"text.secondary\" sx={{ textTransform: 'uppercase', letterSpacing: 0.5 }}>\n Manual config — {cfg.file}\n </Typography>\n <ExpandMoreIcon\n fontSize=\"small\"\n sx={{\n color: 'text.disabled',\n transition: 'transform 0.2s ease',\n transform: manualExpanded ? 'rotate(180deg)' : 'rotate(0deg)',\n }}\n />\n </Box>\n\n <Collapse in={manualExpanded}>\n <Typography variant=\"caption\" color=\"text.secondary\" sx={{ display: 'block', mb: 1, mt: 0.5 }}>\n {cfg.description}\n </Typography>\n <Box sx={{ position: 'relative' }}>\n <Box\n component=\"pre\"\n sx={{\n m: 0,\n p: 2,\n borderRadius: 2,\n border: '1px solid',\n borderColor: 'divider',\n backgroundColor: theme.palette.mode === 'dark' ? '#0d1117' : '#f6f8fa',\n color: theme.palette.mode === 'dark' ? '#e6edf3' : '#24292f',\n fontFamily: 'monospace',\n fontSize: '0.8rem',\n overflowX: 'auto',\n whiteSpace: 'pre',\n }}\n >\n {configSnippet}\n </Box>\n <Tooltip title={copiedSnippet ? 'Copied!' : 'Copy config'}>\n <IconButton\n size=\"small\"\n onClick={e => { e.stopPropagation(); copySnippet(configSnippet); }}\n sx={{\n position: 'absolute',\n top: 8,\n right: 8,\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.06)',\n '&:hover': {\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.2)' : 'rgba(0,0,0,0.12)',\n },\n }}\n >\n {copiedSnippet ? <CheckIcon fontSize=\"small\" color=\"success\" /> : <ContentCopyIcon fontSize=\"small\" />}\n </IconButton>\n </Tooltip>\n </Box>\n\n <Typography variant=\"caption\" color=\"text.disabled\" sx={{ display: 'block', mt: 1.5 }}>\n 💡 Omit <code>?tool=</code> from the URL to receive assets for all AI tools.\n {showProviderFilter && ' Omit ?provider= to receive assets from all repositories.'}\n {' '}Proactive suggestions add <code>?proactive=true</code> and register the{' '}\n <code>suggest_assets</code> tool and <code>check_for_assets</code> prompt.\n </Typography>\n </Collapse>\n </DialogContent>\n\n <DialogActions>\n <Button onClick={onClose}>Close</Button>\n </DialogActions>\n </Dialog>\n );\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.1.
|
|
3
|
+
"version": "0.1.7",
|
|
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.1.
|
|
50
|
+
"@julianpedro/plugin-dev-ai-hub-common": "^0.1.7",
|
|
51
51
|
"@mui/icons-material": "^5.15.0",
|
|
52
52
|
"@mui/material": "^5.15.0",
|
|
53
53
|
"react-markdown": "^9.0.0",
|