semantics update

This commit is contained in:
2026-01-13 09:11:27 +03:00
parent 9a9c5879e6
commit ae1d630ad6
21 changed files with 4389 additions and 3471 deletions

5
.gitignore vendored
View File

@@ -29,7 +29,7 @@ env/
backend/backups/*
# Node.js
node_modules/
frontend/node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
@@ -39,6 +39,7 @@ build/
dist/
.env*
config.json
package-lock.json
# Logs
*.log
@@ -62,3 +63,5 @@ keyring passwords.py
*tech_spec*
dashboards
backend/mappings.db

15
.kilocode/mcp.json Executable file → Normal file
View File

@@ -1,14 +1 @@
{
"mcpServers": {
"tavily": {
"command": "npx",
"args": [
"-y",
"tavily-mcp@0.2.3"
],
"env": {
"TAVILY_API_KEY": "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"
}
}
}
}
{"mcpServers":{"tavily":{"command":"npx","args":["-y","tavily-mcp@0.2.3"],"env":{"TAVILY_API_KEY":"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"},"alwaysAllow":[]}}}

Binary file not shown.

View File

@@ -41,3 +41,5 @@ tzlocal==5.3.1
urllib3==2.6.2
uvicorn==0.38.0
websockets==15.0.1
pandas
psycopg2-binary

View File

@@ -6,7 +6,7 @@
# @CONSTRAINT: Must use belief_scope for logging.
# [SECTION: IMPORTS]
from typing import List
from typing import List, Optional
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm import Session
from ...core.database import get_db
@@ -19,6 +19,7 @@ from ...core.logger import logger, belief_scope
router = APIRouter()
# [DEF:ConnectionSchema:Class]
# @PURPOSE: Pydantic model for connection response.
class ConnectionSchema(BaseModel):
id: str
name: str
@@ -31,8 +32,10 @@ class ConnectionSchema(BaseModel):
class Config:
orm_mode = True
# [/DEF:ConnectionSchema:Class]
# [DEF:ConnectionCreate:Class]
# @PURPOSE: Pydantic model for creating a connection.
class ConnectionCreate(BaseModel):
name: str
type: str
@@ -41,17 +44,28 @@ class ConnectionCreate(BaseModel):
database: Optional[str] = None
username: Optional[str] = None
password: Optional[str] = None
from typing import Optional
# [/DEF:ConnectionCreate:Class]
# [DEF:list_connections:Function]
# @PURPOSE: Lists all saved connections.
# @PRE: Database session is active.
# @POST: Returns list of connection configs.
# @PARAM: db (Session) - Database session.
# @RETURN: List[ConnectionSchema] - List of connections.
@router.get("", response_model=List[ConnectionSchema])
async def list_connections(db: Session = Depends(get_db)):
with belief_scope("ConnectionsRouter.list_connections"):
connections = db.query(ConnectionConfig).all()
return connections
# [/DEF:list_connections:Function]
# [DEF:create_connection:Function]
# @PURPOSE: Creates a new connection configuration.
# @PRE: Connection name is unique.
# @POST: Connection is saved to DB.
# @PARAM: connection (ConnectionCreate) - Config data.
# @PARAM: db (Session) - Database session.
# @RETURN: ConnectionSchema - Created connection.
@router.post("", response_model=ConnectionSchema, status_code=status.HTTP_201_CREATED)
async def create_connection(connection: ConnectionCreate, db: Session = Depends(get_db)):
with belief_scope("ConnectionsRouter.create_connection", f"name={connection.name}"):
@@ -61,8 +75,15 @@ async def create_connection(connection: ConnectionCreate, db: Session = Depends(
db.refresh(db_connection)
logger.info(f"[ConnectionsRouter.create_connection][Success] Created connection {db_connection.id}")
return db_connection
# [/DEF:create_connection:Function]
# [DEF:delete_connection:Function]
# @PURPOSE: Deletes a connection configuration.
# @PRE: Connection ID exists.
# @POST: Connection is removed from DB.
# @PARAM: connection_id (str) - ID to delete.
# @PARAM: db (Session) - Database session.
# @RETURN: None.
@router.delete("/{connection_id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_connection(connection_id: str, db: Session = Depends(get_db)):
with belief_scope("ConnectionsRouter.delete_connection", f"id={connection_id}"):
@@ -74,5 +95,6 @@ async def delete_connection(connection_id: str, db: Session = Depends(get_db)):
db.commit()
logger.info(f"[ConnectionsRouter.delete_connection][Success] Deleted connection {connection_id}")
return
# [/DEF:delete_connection:Function]
# [/DEF:ConnectionsRouter:Module]

View File

@@ -11,7 +11,7 @@ from ...dependencies import get_plugin_loader
router = APIRouter()
@router.get("/", response_model=List[PluginConfig])
@router.get("", response_model=List[PluginConfig])
async def list_plugins(
plugin_loader = Depends(get_plugin_loader)
):

View File

@@ -11,7 +11,7 @@ from pathlib import Path
project_root = Path(__file__).resolve().parent.parent.parent
sys.path.append(str(project_root))
from fastapi import FastAPI, WebSocket, WebSocketDisconnect, Depends, Request
from fastapi import FastAPI, WebSocket, WebSocketDisconnect, Depends, Request, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse
@@ -138,6 +138,10 @@ if frontend_path.exists():
# Serve other static files from the root of build directory
@app.get("/{file_path:path}")
async def serve_spa(file_path: str):
# Don't serve SPA for API routes that fell through
if file_path.startswith("api/"):
raise HTTPException(status_code=404, detail="API endpoint not found")
full_path = frontend_path / file_path
if full_path.is_file():
return FileResponse(str(full_path))

View File

@@ -87,6 +87,11 @@ class DebugPlugin(PluginBase):
# [/DEF:DebugPlugin.execute:Function]
# [DEF:DebugPlugin._test_db_api:Function]
# @PURPOSE: Tests database API connectivity for source and target environments.
# @PRE: source_env and target_env params exist.
# @POST: Returns DB counts for both envs.
# @PARAM: params (Dict) - Plugin parameters.
# @RETURN: Dict - Comparison results.
async def _test_db_api(self, params: Dict[str, Any]) -> Dict[str, Any]:
source_env_name = params.get("source_env")
target_env_name = params.get("target_env")
@@ -112,8 +117,14 @@ class DebugPlugin(PluginBase):
}
return results
# [/DEF:DebugPlugin._test_db_api:Function]
# [DEF:DebugPlugin._get_dataset_structure:Function]
# @PURPOSE: Retrieves the structure of a dataset.
# @PRE: env and dataset_id params exist.
# @POST: Returns dataset JSON structure.
# @PARAM: params (Dict) - Plugin parameters.
# @RETURN: Dict - Dataset structure.
async def _get_dataset_structure(self, params: Dict[str, Any]) -> Dict[str, Any]:
env_name = params.get("env")
dataset_id = params.get("dataset_id")
@@ -132,6 +143,7 @@ class DebugPlugin(PluginBase):
dataset_response = client.get_dataset(dataset_id)
return dataset_response.get('result') or {}
# [/DEF:DebugPlugin._get_dataset_structure:Function]
# [/DEF:DebugPlugin:Class]
# [/DEF:DebugPluginModule:Module]

Binary file not shown.

View File

@@ -912,7 +912,6 @@
"integrity": "sha512-Vp3zX/qlwerQmHMP6x0Ry1oY7eKKRcOWGc2P59srOp4zcqyn+etJyQpELgOi4+ZSUgteX8Y387NuwruLgGXLUQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@standard-schema/spec": "^1.0.0",
"@sveltejs/acorn-typescript": "^1.0.5",
@@ -952,7 +951,6 @@
"integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@sveltejs/vite-plugin-svelte-inspector": "^5.0.0",
"debug": "^4.4.1",
@@ -1006,7 +1004,6 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -1155,7 +1152,6 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.9.0",
"caniuse-lite": "^1.0.30001759",
@@ -1613,7 +1609,6 @@
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"jiti": "bin/jiti.js"
}
@@ -1851,7 +1846,6 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -2224,7 +2218,6 @@
"integrity": "sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@jridgewell/remapping": "^2.3.4",
"@jridgewell/sourcemap-codec": "^1.5.0",
@@ -2348,7 +2341,6 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@@ -2430,7 +2422,6 @@
"integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"esbuild": "^0.27.0",
"fdir": "^6.5.0",
@@ -2524,7 +2515,6 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},

View File

@@ -45,6 +45,7 @@
isSubmitting = false;
}
}
// [/DEF:handleSubmit:Function]
function resetForm() {
name = '';

View File

@@ -29,6 +29,7 @@
isLoading = false;
}
}
// [/DEF:fetchConnections:Function]
// [DEF:handleDelete:Function]
// @PURPOSE: Deletes a connection configuration.
@@ -43,6 +44,7 @@
addToast(e.message, 'error');
}
}
// [/DEF:handleDelete:Function]
onMount(fetchConnections);

View File

@@ -23,6 +23,13 @@
let results = null;
let pollInterval;
// [DEF:fetchEnvironments:Function]
/**
* @purpose Fetches available environments.
* @pre API is available.
* @post envs variable is populated.
* @returns {Promise<void>}
*/
async function fetchEnvironments() {
try {
const res = await fetch('/api/environments');
@@ -31,7 +38,15 @@
addToast('Failed to fetch environments', 'error');
}
}
// [/DEF:fetchEnvironments:Function]
// [DEF:handleRunDebug:Function]
/**
* @purpose Triggers the debug task.
* @pre Required fields are selected.
* @post Task is started and polling begins.
* @returns {Promise<void>}
*/
async function handleRunDebug() {
isRunning = true;
results = null;
@@ -66,7 +81,16 @@
addToast(e.message, 'error');
}
}
// [/DEF:handleRunDebug:Function]
// [DEF:startPolling:Function]
/**
* @purpose Polls for task completion.
* @pre Task ID is valid.
* @post Polls until success/failure.
* @param {string} taskId - ID of the task.
* @returns {void}
*/
function startPolling(taskId) {
if (pollInterval) clearInterval(pollInterval);
pollInterval = setInterval(async () => {
@@ -89,6 +113,7 @@
}
}, 2000);
}
// [/DEF:startPolling:Function]
onMount(fetchEnvironments);
</script>
@@ -161,4 +186,5 @@
</div>
</div>
{/if}
</div>
</div>
<!-- [/DEF:DebugTool:Component] -->

View File

@@ -37,6 +37,7 @@
addToast('Failed to fetch data', 'error');
}
}
// [/DEF:fetchData:Function]
// [DEF:handleRunMapper:Function]
// @PURPOSE: Triggers the MapperPlugin task.
@@ -77,6 +78,7 @@
isRunning = false;
}
}
// [/DEF:handleRunMapper:Function]
onMount(fetchData);
</script>

View File

@@ -30,6 +30,7 @@
addToast('Failed to fetch environments', 'error');
}
}
// [/DEF:fetchEnvironments:Function]
// [DEF:handleSearch:Function]
// @PURPOSE: Triggers the SearchPlugin task.
@@ -56,6 +57,7 @@
addToast(e.message, 'error');
}
}
// [/DEF:handleSearch:Function]
// [DEF:startPolling:Function]
// @PURPOSE: Polls for task completion and results.
@@ -84,6 +86,7 @@
}
}, 2000);
}
// [/DEF:startPolling:Function]
onMount(fetchEnvironments);
</script>

View File

@@ -0,0 +1,98 @@
# Semantic Compliance Report
**Generated At:** 2026-01-12T21:16:07.922245
**Global Compliance Score:** 90.4%
**Scanned Files:** 80
## Critical Parsing Errors
- 🔴 frontend/src/components/tools/ConnectionForm.svelte:99 Mismatched closing anchor. Expected [/DEF:handleSubmit:Function], found [/DEF:ConnectionForm:Component].
- 🔴 frontend/src/components/tools/ConnectionList.svelte:82 Mismatched closing anchor. Expected [/DEF:handleDelete:Function], found [/DEF:ConnectionList:Component].
- 🔴 frontend/src/components/tools/MapperTool.svelte:159 Mismatched closing anchor. Expected [/DEF:handleRunMapper:Function], found [/DEF:MapperTool:Component].
- 🔴 frontend/src/components/tools/SearchTool.svelte:177 Mismatched closing anchor. Expected [/DEF:startPolling:Function], found [/DEF:SearchTool:Component].
- 🔴 backend/src/api/routes/connections.py:76 Mismatched closing anchor. Expected [/DEF:delete_connection:Function], found [/DEF:ConnectionsRouter:Module].
- 🔴 backend/src/plugins/debug.py:136 Mismatched closing anchor. Expected [/DEF:DebugPlugin._get_dataset_structure:Function], found [/DEF:DebugPlugin:Class].
- 🔴 backend/src/plugins/debug.py:137 Mismatched closing anchor. Expected [/DEF:DebugPlugin._get_dataset_structure:Function], found [/DEF:DebugPluginModule:Module].
## File Compliance Status
| File | Score | Issues |
|------|-------|--------|
| frontend/.svelte-kit/output/server/entries/pages/migration/_page.svelte.js | 🔴 0% | [handleSort] Unclosed Anchor at end of file (started line 65)<br>[handleSort] Unclosed Anchor: [DEF:handleSort:Function] started at line 65<br>[handleSelectionChange] Unclosed Anchor at end of file (started line 68)<br>[handleSelectionChange] Unclosed Anchor: [DEF:handleSelectionChange:Function] started at line 68<br>[handleSelectionChange] Unclosed Anchor: [DEF:handleSelectionChange:Function] started at line 68<br>[handleSelectAll] Unclosed Anchor at end of file (started line 71)<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[goToPage] Unclosed Anchor at end of file (started line 74)<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74 |
| frontend/src/components/tools/ConnectionForm.svelte | 🔴 0% | [ConnectionForm] Unclosed Anchor at end of file (started line 1)<br>[ConnectionForm] Unclosed Anchor: [DEF:ConnectionForm:Component] started at line 1<br>[handleSubmit] Unclosed Anchor at end of file (started line 26)<br>[handleSubmit] Unclosed Anchor: [DEF:handleSubmit:Function] started at line 26<br>[handleSubmit] Unclosed Anchor: [DEF:handleSubmit:Function] started at line 26 |
| frontend/src/components/tools/ConnectionList.svelte | 🔴 0% | [ConnectionList] Unclosed Anchor at end of file (started line 1)<br>[ConnectionList] Unclosed Anchor: [DEF:ConnectionList:Component] started at line 1<br>[fetchConnections] Unclosed Anchor at end of file (started line 20)<br>[fetchConnections] Unclosed Anchor: [DEF:fetchConnections:Function] started at line 20<br>[fetchConnections] Unclosed Anchor: [DEF:fetchConnections:Function] started at line 20<br>[handleDelete] Unclosed Anchor at end of file (started line 33)<br>[handleDelete] Unclosed Anchor: [DEF:handleDelete:Function] started at line 33<br>[handleDelete] Unclosed Anchor: [DEF:handleDelete:Function] started at line 33<br>[handleDelete] Unclosed Anchor: [DEF:handleDelete:Function] started at line 33 |
| frontend/src/components/tools/MapperTool.svelte | 🔴 0% | [MapperTool] Unclosed Anchor at end of file (started line 1)<br>[MapperTool] Unclosed Anchor: [DEF:MapperTool:Component] started at line 1<br>[fetchData] Unclosed Anchor at end of file (started line 29)<br>[fetchData] Unclosed Anchor: [DEF:fetchData:Function] started at line 29<br>[fetchData] Unclosed Anchor: [DEF:fetchData:Function] started at line 29<br>[handleRunMapper] Unclosed Anchor at end of file (started line 41)<br>[handleRunMapper] Unclosed Anchor: [DEF:handleRunMapper:Function] started at line 41<br>[handleRunMapper] Unclosed Anchor: [DEF:handleRunMapper:Function] started at line 41<br>[handleRunMapper] Unclosed Anchor: [DEF:handleRunMapper:Function] started at line 41 |
| frontend/src/components/tools/DebugTool.svelte | 🔴 0% | [DebugTool] Unclosed Anchor at end of file (started line 1)<br>[DebugTool] Unclosed Anchor: [DEF:DebugTool:Component] started at line 1 |
| frontend/src/components/tools/SearchTool.svelte | 🔴 0% | [SearchTool] Unclosed Anchor at end of file (started line 1)<br>[SearchTool] Unclosed Anchor: [DEF:SearchTool:Component] started at line 1<br>[fetchEnvironments] Unclosed Anchor at end of file (started line 23)<br>[fetchEnvironments] Unclosed Anchor: [DEF:fetchEnvironments:Function] started at line 23<br>[fetchEnvironments] Unclosed Anchor: [DEF:fetchEnvironments:Function] started at line 23<br>[handleSearch] Unclosed Anchor at end of file (started line 34)<br>[handleSearch] Unclosed Anchor: [DEF:handleSearch:Function] started at line 34<br>[handleSearch] Unclosed Anchor: [DEF:handleSearch:Function] started at line 34<br>[handleSearch] Unclosed Anchor: [DEF:handleSearch:Function] started at line 34<br>[startPolling] Unclosed Anchor at end of file (started line 60)<br>[startPolling] Unclosed Anchor: [DEF:startPolling:Function] started at line 60<br>[startPolling] Unclosed Anchor: [DEF:startPolling:Function] started at line 60<br>[startPolling] Unclosed Anchor: [DEF:startPolling:Function] started at line 60<br>[startPolling] Unclosed Anchor: [DEF:startPolling:Function] started at line 60 |
| backend/src/api/routes/connections.py | 🔴 0% | [ConnectionsRouter] Unclosed Anchor at end of file (started line 1)<br>[ConnectionsRouter] Unclosed Anchor: [DEF:ConnectionsRouter:Module] started at line 1<br>[ConnectionSchema] Unclosed Anchor at end of file (started line 21)<br>[ConnectionSchema] Unclosed Anchor: [DEF:ConnectionSchema:Class] started at line 21<br>[ConnectionSchema] Missing Mandatory Tag: @PURPOSE<br>[ConnectionSchema] Unclosed Anchor: [DEF:ConnectionSchema:Class] started at line 21<br>[ConnectionSchema] Missing Mandatory Tag: @PURPOSE<br>[ConnectionCreate] Unclosed Anchor at end of file (started line 35)<br>[ConnectionCreate] Unclosed Anchor: [DEF:ConnectionCreate:Class] started at line 35<br>[ConnectionCreate] Missing Mandatory Tag: @PURPOSE<br>[ConnectionCreate] Unclosed Anchor: [DEF:ConnectionCreate:Class] started at line 35<br>[ConnectionCreate] Missing Mandatory Tag: @PURPOSE<br>[ConnectionCreate] Unclosed Anchor: [DEF:ConnectionCreate:Class] started at line 35<br>[ConnectionCreate] Missing Mandatory Tag: @PURPOSE<br>[list_connections] Unclosed Anchor at end of file (started line 45)<br>[list_connections] Unclosed Anchor: [DEF:list_connections:Function] started at line 45<br>[list_connections] Missing Mandatory Tag: @PURPOSE<br>[list_connections] Unclosed Anchor: [DEF:list_connections:Function] started at line 45<br>[list_connections] Missing Mandatory Tag: @PURPOSE<br>[list_connections] Unclosed Anchor: [DEF:list_connections:Function] started at line 45<br>[list_connections] Missing Mandatory Tag: @PURPOSE<br>[list_connections] Unclosed Anchor: [DEF:list_connections:Function] started at line 45<br>[list_connections] Missing Mandatory Tag: @PURPOSE<br>[create_connection] Unclosed Anchor at end of file (started line 52)<br>[create_connection] Unclosed Anchor: [DEF:create_connection:Function] started at line 52<br>[create_connection] Missing Mandatory Tag: @PURPOSE<br>[create_connection] Unclosed Anchor: [DEF:create_connection:Function] started at line 52<br>[create_connection] Missing Mandatory Tag: @PURPOSE<br>[create_connection] Unclosed Anchor: [DEF:create_connection:Function] started at line 52<br>[create_connection] Missing Mandatory Tag: @PURPOSE<br>[create_connection] Unclosed Anchor: [DEF:create_connection:Function] started at line 52<br>[create_connection] Missing Mandatory Tag: @PURPOSE<br>[create_connection] Unclosed Anchor: [DEF:create_connection:Function] started at line 52<br>[create_connection] Missing Mandatory Tag: @PURPOSE<br>[delete_connection] Unclosed Anchor at end of file (started line 63)<br>[delete_connection] Unclosed Anchor: [DEF:delete_connection:Function] started at line 63<br>[delete_connection] Missing Mandatory Tag: @PURPOSE<br>[delete_connection] Unclosed Anchor: [DEF:delete_connection:Function] started at line 63<br>[delete_connection] Missing Mandatory Tag: @PURPOSE<br>[delete_connection] Unclosed Anchor: [DEF:delete_connection:Function] started at line 63<br>[delete_connection] Missing Mandatory Tag: @PURPOSE<br>[delete_connection] Unclosed Anchor: [DEF:delete_connection:Function] started at line 63<br>[delete_connection] Missing Mandatory Tag: @PURPOSE<br>[delete_connection] Unclosed Anchor: [DEF:delete_connection:Function] started at line 63<br>[delete_connection] Missing Mandatory Tag: @PURPOSE<br>[delete_connection] Unclosed Anchor: [DEF:delete_connection:Function] started at line 63<br>[delete_connection] Missing Mandatory Tag: @PURPOSE |
| backend/src/plugins/debug.py | 🔴 33% | [DebugPluginModule] Unclosed Anchor at end of file (started line 1)<br>[DebugPluginModule] Unclosed Anchor: [DEF:DebugPluginModule:Module] started at line 1<br>[DebugPlugin] Unclosed Anchor at end of file (started line 15)<br>[DebugPlugin] Unclosed Anchor: [DEF:DebugPlugin:Class] started at line 15<br>[DebugPlugin] Unclosed Anchor: [DEF:DebugPlugin:Class] started at line 15<br>[DebugPlugin._test_db_api] Unclosed Anchor at end of file (started line 89)<br>[DebugPlugin._test_db_api] Unclosed Anchor: [DEF:DebugPlugin._test_db_api:Function] started at line 89<br>[DebugPlugin._test_db_api] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._test_db_api] Unclosed Anchor: [DEF:DebugPlugin._test_db_api:Function] started at line 89<br>[DebugPlugin._test_db_api] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._test_db_api] Unclosed Anchor: [DEF:DebugPlugin._test_db_api:Function] started at line 89<br>[DebugPlugin._test_db_api] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._get_dataset_structure] Unclosed Anchor at end of file (started line 116)<br>[DebugPlugin._get_dataset_structure] Unclosed Anchor: [DEF:DebugPlugin._get_dataset_structure:Function] started at line 116<br>[DebugPlugin._get_dataset_structure] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._get_dataset_structure] Unclosed Anchor: [DEF:DebugPlugin._get_dataset_structure:Function] started at line 116<br>[DebugPlugin._get_dataset_structure] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._get_dataset_structure] Unclosed Anchor: [DEF:DebugPlugin._get_dataset_structure:Function] started at line 116<br>[DebugPlugin._get_dataset_structure] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._get_dataset_structure] Unclosed Anchor: [DEF:DebugPlugin._get_dataset_structure:Function] started at line 116<br>[DebugPlugin._get_dataset_structure] Missing Mandatory Tag: @PURPOSE |
| generate_semantic_map.py | 🟢 100% | OK |
| migration_script.py | 🟢 100% | OK |
| superset_tool/exceptions.py | 🟢 100% | OK |
| superset_tool/models.py | 🟢 100% | OK |
| superset_tool/client.py | 🟢 100% | OK |
| superset_tool/__init__.py | 🟢 100% | OK |
| superset_tool/utils/init_clients.py | 🟢 100% | OK |
| superset_tool/utils/logger.py | 🟢 100% | OK |
| superset_tool/utils/fileio.py | 🟢 100% | OK |
| superset_tool/utils/network.py | 🟢 100% | OK |
| superset_tool/utils/whiptail_fallback.py | 🟢 100% | OK |
| superset_tool/utils/dataset_mapper.py | 🟢 100% | OK |
| superset_tool/utils/__init__.py | 🟢 100% | OK |
| frontend/src/main.js | 🟢 100% | OK |
| frontend/src/App.svelte | 🟢 100% | OK |
| frontend/src/lib/stores.js | 🟢 100% | OK |
| frontend/src/lib/toasts.js | 🟢 100% | OK |
| frontend/src/lib/api.js | 🟢 100% | OK |
| frontend/src/routes/migration/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/migration/mappings/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/search/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/mapper/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/debug/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/settings/connections/+page.svelte | 🟢 100% | OK |
| frontend/src/pages/Dashboard.svelte | 🟢 100% | OK |
| frontend/src/pages/Settings.svelte | 🟢 100% | OK |
| frontend/src/components/PasswordPrompt.svelte | 🟢 100% | OK |
| frontend/src/components/MappingTable.svelte | 🟢 100% | OK |
| frontend/src/components/TaskLogViewer.svelte | 🟢 100% | OK |
| frontend/src/components/Footer.svelte | 🟢 100% | OK |
| frontend/src/components/MissingMappingModal.svelte | 🟢 100% | OK |
| frontend/src/components/DashboardGrid.svelte | 🟢 100% | OK |
| frontend/src/components/Navbar.svelte | 🟢 100% | OK |
| frontend/src/components/TaskHistory.svelte | 🟢 100% | OK |
| frontend/src/components/Toast.svelte | 🟢 100% | OK |
| frontend/src/components/TaskRunner.svelte | 🟢 100% | OK |
| frontend/src/components/TaskList.svelte | 🟢 100% | OK |
| frontend/src/components/DynamicForm.svelte | 🟢 100% | OK |
| frontend/src/components/EnvSelector.svelte | 🟢 100% | OK |
| backend/src/app.py | 🟢 100% | OK |
| backend/src/dependencies.py | 🟢 100% | OK |
| backend/src/core/superset_client.py | 🟢 100% | OK |
| backend/src/core/config_manager.py | 🟢 100% | OK |
| backend/src/core/scheduler.py | 🟢 100% | OK |
| backend/src/core/config_models.py | 🟢 100% | OK |
| backend/src/core/database.py | 🟢 100% | OK |
| backend/src/core/logger.py | 🟢 100% | OK |
| backend/src/core/plugin_loader.py | 🟢 100% | OK |
| backend/src/core/migration_engine.py | 🟢 100% | OK |
| backend/src/core/plugin_base.py | 🟢 100% | OK |
| backend/src/core/utils/matching.py | 🟢 100% | OK |
| backend/src/core/task_manager/persistence.py | 🟢 100% | OK |
| backend/src/core/task_manager/manager.py | 🟢 100% | OK |
| backend/src/core/task_manager/models.py | 🟢 100% | OK |
| backend/src/core/task_manager/cleanup.py | 🟢 100% | OK |
| backend/src/core/task_manager/__init__.py | 🟢 100% | OK |
| backend/src/api/auth.py | 🟢 100% | OK |
| backend/src/api/routes/environments.py | 🟢 100% | OK |
| backend/src/api/routes/migration.py | 🟢 100% | OK |
| backend/src/api/routes/plugins.py | 🟢 100% | OK |
| backend/src/api/routes/mappings.py | 🟢 100% | OK |
| backend/src/api/routes/settings.py | 🟢 100% | OK |
| backend/src/api/routes/tasks.py | 🟢 100% | OK |
| backend/src/models/task.py | 🟢 100% | OK |
| backend/src/models/connection.py | 🟢 100% | OK |
| backend/src/models/mapping.py | 🟢 100% | OK |
| backend/src/models/dashboard.py | 🟢 100% | OK |
| backend/src/services/mapping_service.py | 🟢 100% | OK |
| backend/src/plugins/backup.py | 🟢 100% | OK |
| backend/src/plugins/search.py | 🟢 100% | OK |
| backend/src/plugins/mapper.py | 🟢 100% | OK |
| backend/src/plugins/migration.py | 🟢 100% | OK |

View File

@@ -0,0 +1,89 @@
# Semantic Compliance Report
**Generated At:** 2026-01-12T21:18:57.549358
**Global Compliance Score:** 96.8%
**Scanned Files:** 80
## File Compliance Status
| File | Score | Issues |
|------|-------|--------|
| frontend/.svelte-kit/output/server/entries/pages/migration/_page.svelte.js | 🔴 0% | [handleSort] Unclosed Anchor at end of file (started line 65)<br>[handleSort] Unclosed Anchor: [DEF:handleSort:Function] started at line 65<br>[handleSelectionChange] Unclosed Anchor at end of file (started line 68)<br>[handleSelectionChange] Unclosed Anchor: [DEF:handleSelectionChange:Function] started at line 68<br>[handleSelectionChange] Unclosed Anchor: [DEF:handleSelectionChange:Function] started at line 68<br>[handleSelectAll] Unclosed Anchor at end of file (started line 71)<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[goToPage] Unclosed Anchor at end of file (started line 74)<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74 |
| frontend/src/components/tools/DebugTool.svelte | 🔴 0% | [DebugTool] Unclosed Anchor at end of file (started line 1)<br>[DebugTool] Unclosed Anchor: [DEF:DebugTool:Component] started at line 1 |
| backend/src/api/routes/connections.py | 🟡 58% | [ConnectionSchema] Missing Mandatory Tag: @PURPOSE<br>[ConnectionSchema] Missing Mandatory Tag: @PURPOSE<br>[ConnectionCreate] Missing Mandatory Tag: @PURPOSE<br>[ConnectionCreate] Missing Mandatory Tag: @PURPOSE<br>[list_connections] Missing Mandatory Tag: @PURPOSE<br>[list_connections] Missing Mandatory Tag: @PURPOSE<br>[create_connection] Missing Mandatory Tag: @PURPOSE<br>[create_connection] Missing Mandatory Tag: @PURPOSE<br>[delete_connection] Missing Mandatory Tag: @PURPOSE<br>[delete_connection] Missing Mandatory Tag: @PURPOSE |
| backend/src/plugins/debug.py | 🟡 83% | [DebugPlugin._test_db_api] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._test_db_api] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._test_db_api] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._get_dataset_structure] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._get_dataset_structure] Missing Mandatory Tag: @PURPOSE<br>[DebugPlugin._get_dataset_structure] Missing Mandatory Tag: @PURPOSE |
| generate_semantic_map.py | 🟢 100% | OK |
| migration_script.py | 🟢 100% | OK |
| superset_tool/exceptions.py | 🟢 100% | OK |
| superset_tool/models.py | 🟢 100% | OK |
| superset_tool/client.py | 🟢 100% | OK |
| superset_tool/__init__.py | 🟢 100% | OK |
| superset_tool/utils/init_clients.py | 🟢 100% | OK |
| superset_tool/utils/logger.py | 🟢 100% | OK |
| superset_tool/utils/fileio.py | 🟢 100% | OK |
| superset_tool/utils/network.py | 🟢 100% | OK |
| superset_tool/utils/whiptail_fallback.py | 🟢 100% | OK |
| superset_tool/utils/dataset_mapper.py | 🟢 100% | OK |
| superset_tool/utils/__init__.py | 🟢 100% | OK |
| frontend/src/main.js | 🟢 100% | OK |
| frontend/src/App.svelte | 🟢 100% | OK |
| frontend/src/lib/stores.js | 🟢 100% | OK |
| frontend/src/lib/toasts.js | 🟢 100% | OK |
| frontend/src/lib/api.js | 🟢 100% | OK |
| frontend/src/routes/migration/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/migration/mappings/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/search/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/mapper/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/debug/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/settings/connections/+page.svelte | 🟢 100% | OK |
| frontend/src/pages/Dashboard.svelte | 🟢 100% | OK |
| frontend/src/pages/Settings.svelte | 🟢 100% | OK |
| frontend/src/components/PasswordPrompt.svelte | 🟢 100% | OK |
| frontend/src/components/MappingTable.svelte | 🟢 100% | OK |
| frontend/src/components/TaskLogViewer.svelte | 🟢 100% | OK |
| frontend/src/components/Footer.svelte | 🟢 100% | OK |
| frontend/src/components/MissingMappingModal.svelte | 🟢 100% | OK |
| frontend/src/components/DashboardGrid.svelte | 🟢 100% | OK |
| frontend/src/components/Navbar.svelte | 🟢 100% | OK |
| frontend/src/components/TaskHistory.svelte | 🟢 100% | OK |
| frontend/src/components/Toast.svelte | 🟢 100% | OK |
| frontend/src/components/TaskRunner.svelte | 🟢 100% | OK |
| frontend/src/components/TaskList.svelte | 🟢 100% | OK |
| frontend/src/components/DynamicForm.svelte | 🟢 100% | OK |
| frontend/src/components/EnvSelector.svelte | 🟢 100% | OK |
| frontend/src/components/tools/ConnectionForm.svelte | 🟢 100% | OK |
| frontend/src/components/tools/ConnectionList.svelte | 🟢 100% | OK |
| frontend/src/components/tools/MapperTool.svelte | 🟢 100% | OK |
| frontend/src/components/tools/SearchTool.svelte | 🟢 100% | OK |
| backend/src/app.py | 🟢 100% | OK |
| backend/src/dependencies.py | 🟢 100% | OK |
| backend/src/core/superset_client.py | 🟢 100% | OK |
| backend/src/core/config_manager.py | 🟢 100% | OK |
| backend/src/core/scheduler.py | 🟢 100% | OK |
| backend/src/core/config_models.py | 🟢 100% | OK |
| backend/src/core/database.py | 🟢 100% | OK |
| backend/src/core/logger.py | 🟢 100% | OK |
| backend/src/core/plugin_loader.py | 🟢 100% | OK |
| backend/src/core/migration_engine.py | 🟢 100% | OK |
| backend/src/core/plugin_base.py | 🟢 100% | OK |
| backend/src/core/utils/matching.py | 🟢 100% | OK |
| backend/src/core/task_manager/persistence.py | 🟢 100% | OK |
| backend/src/core/task_manager/manager.py | 🟢 100% | OK |
| backend/src/core/task_manager/models.py | 🟢 100% | OK |
| backend/src/core/task_manager/cleanup.py | 🟢 100% | OK |
| backend/src/core/task_manager/__init__.py | 🟢 100% | OK |
| backend/src/api/auth.py | 🟢 100% | OK |
| backend/src/api/routes/environments.py | 🟢 100% | OK |
| backend/src/api/routes/migration.py | 🟢 100% | OK |
| backend/src/api/routes/plugins.py | 🟢 100% | OK |
| backend/src/api/routes/mappings.py | 🟢 100% | OK |
| backend/src/api/routes/settings.py | 🟢 100% | OK |
| backend/src/api/routes/tasks.py | 🟢 100% | OK |
| backend/src/models/task.py | 🟢 100% | OK |
| backend/src/models/connection.py | 🟢 100% | OK |
| backend/src/models/mapping.py | 🟢 100% | OK |
| backend/src/models/dashboard.py | 🟢 100% | OK |
| backend/src/services/mapping_service.py | 🟢 100% | OK |
| backend/src/plugins/backup.py | 🟢 100% | OK |
| backend/src/plugins/search.py | 🟢 100% | OK |
| backend/src/plugins/mapper.py | 🟢 100% | OK |
| backend/src/plugins/migration.py | 🟢 100% | OK |

View File

@@ -0,0 +1,89 @@
# Semantic Compliance Report
**Generated At:** 2026-01-13T09:02:04.771961
**Global Compliance Score:** 98.8%
**Scanned Files:** 80
## File Compliance Status
| File | Score | Issues |
|------|-------|--------|
| frontend/.svelte-kit/output/server/entries/pages/migration/_page.svelte.js | 🔴 0% | [handleSort] Unclosed Anchor at end of file (started line 65)<br>[handleSort] Unclosed Anchor: [DEF:handleSort:Function] started at line 65<br>[handleSelectionChange] Unclosed Anchor at end of file (started line 68)<br>[handleSelectionChange] Unclosed Anchor: [DEF:handleSelectionChange:Function] started at line 68<br>[handleSelectionChange] Unclosed Anchor: [DEF:handleSelectionChange:Function] started at line 68<br>[handleSelectAll] Unclosed Anchor at end of file (started line 71)<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[goToPage] Unclosed Anchor at end of file (started line 74)<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74 |
| generate_semantic_map.py | 🟢 100% | OK |
| migration_script.py | 🟢 100% | OK |
| superset_tool/exceptions.py | 🟢 100% | OK |
| superset_tool/models.py | 🟢 100% | OK |
| superset_tool/client.py | 🟢 100% | OK |
| superset_tool/__init__.py | 🟢 100% | OK |
| superset_tool/utils/init_clients.py | 🟢 100% | OK |
| superset_tool/utils/logger.py | 🟢 100% | OK |
| superset_tool/utils/fileio.py | 🟢 100% | OK |
| superset_tool/utils/network.py | 🟢 100% | OK |
| superset_tool/utils/whiptail_fallback.py | 🟢 100% | OK |
| superset_tool/utils/dataset_mapper.py | 🟢 100% | OK |
| superset_tool/utils/__init__.py | 🟢 100% | OK |
| frontend/src/main.js | 🟢 100% | OK |
| frontend/src/App.svelte | 🟢 100% | OK |
| frontend/src/lib/stores.js | 🟢 100% | OK |
| frontend/src/lib/toasts.js | 🟢 100% | OK |
| frontend/src/lib/api.js | 🟢 100% | OK |
| frontend/src/routes/migration/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/migration/mappings/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/search/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/mapper/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/debug/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/settings/connections/+page.svelte | 🟢 100% | OK |
| frontend/src/pages/Dashboard.svelte | 🟢 100% | OK |
| frontend/src/pages/Settings.svelte | 🟢 100% | OK |
| frontend/src/components/PasswordPrompt.svelte | 🟢 100% | OK |
| frontend/src/components/MappingTable.svelte | 🟢 100% | OK |
| frontend/src/components/TaskLogViewer.svelte | 🟢 100% | OK |
| frontend/src/components/Footer.svelte | 🟢 100% | OK |
| frontend/src/components/MissingMappingModal.svelte | 🟢 100% | OK |
| frontend/src/components/DashboardGrid.svelte | 🟢 100% | OK |
| frontend/src/components/Navbar.svelte | 🟢 100% | OK |
| frontend/src/components/TaskHistory.svelte | 🟢 100% | OK |
| frontend/src/components/Toast.svelte | 🟢 100% | OK |
| frontend/src/components/TaskRunner.svelte | 🟢 100% | OK |
| frontend/src/components/TaskList.svelte | 🟢 100% | OK |
| frontend/src/components/DynamicForm.svelte | 🟢 100% | OK |
| frontend/src/components/EnvSelector.svelte | 🟢 100% | OK |
| frontend/src/components/tools/ConnectionForm.svelte | 🟢 100% | OK |
| frontend/src/components/tools/ConnectionList.svelte | 🟢 100% | OK |
| frontend/src/components/tools/MapperTool.svelte | 🟢 100% | OK |
| frontend/src/components/tools/DebugTool.svelte | 🟢 100% | OK |
| frontend/src/components/tools/SearchTool.svelte | 🟢 100% | OK |
| backend/src/app.py | 🟢 100% | OK |
| backend/src/dependencies.py | 🟢 100% | OK |
| backend/src/core/superset_client.py | 🟢 100% | OK |
| backend/src/core/config_manager.py | 🟢 100% | OK |
| backend/src/core/scheduler.py | 🟢 100% | OK |
| backend/src/core/config_models.py | 🟢 100% | OK |
| backend/src/core/database.py | 🟢 100% | OK |
| backend/src/core/logger.py | 🟢 100% | OK |
| backend/src/core/plugin_loader.py | 🟢 100% | OK |
| backend/src/core/migration_engine.py | 🟢 100% | OK |
| backend/src/core/plugin_base.py | 🟢 100% | OK |
| backend/src/core/utils/matching.py | 🟢 100% | OK |
| backend/src/core/task_manager/persistence.py | 🟢 100% | OK |
| backend/src/core/task_manager/manager.py | 🟢 100% | OK |
| backend/src/core/task_manager/models.py | 🟢 100% | OK |
| backend/src/core/task_manager/cleanup.py | 🟢 100% | OK |
| backend/src/core/task_manager/__init__.py | 🟢 100% | OK |
| backend/src/api/auth.py | 🟢 100% | OK |
| backend/src/api/routes/connections.py | 🟢 100% | OK |
| backend/src/api/routes/environments.py | 🟢 100% | OK |
| backend/src/api/routes/migration.py | 🟢 100% | OK |
| backend/src/api/routes/plugins.py | 🟢 100% | OK |
| backend/src/api/routes/mappings.py | 🟢 100% | OK |
| backend/src/api/routes/settings.py | 🟢 100% | OK |
| backend/src/api/routes/tasks.py | 🟢 100% | OK |
| backend/src/models/task.py | 🟢 100% | OK |
| backend/src/models/connection.py | 🟢 100% | OK |
| backend/src/models/mapping.py | 🟢 100% | OK |
| backend/src/models/dashboard.py | 🟢 100% | OK |
| backend/src/services/mapping_service.py | 🟢 100% | OK |
| backend/src/plugins/backup.py | 🟢 100% | OK |
| backend/src/plugins/debug.py | 🟢 100% | OK |
| backend/src/plugins/search.py | 🟢 100% | OK |
| backend/src/plugins/mapper.py | 🟢 100% | OK |
| backend/src/plugins/migration.py | 🟢 100% | OK |

View File

@@ -0,0 +1,89 @@
# Semantic Compliance Report
**Generated At:** 2026-01-13T09:08:58.209356
**Global Compliance Score:** 98.8%
**Scanned Files:** 80
## File Compliance Status
| File | Score | Issues |
|------|-------|--------|
| frontend/.svelte-kit/output/server/entries/pages/migration/_page.svelte.js | 🔴 0% | [handleSort] Unclosed Anchor at end of file (started line 65)<br>[handleSort] Unclosed Anchor: [DEF:handleSort:Function] started at line 65<br>[handleSelectionChange] Unclosed Anchor at end of file (started line 68)<br>[handleSelectionChange] Unclosed Anchor: [DEF:handleSelectionChange:Function] started at line 68<br>[handleSelectionChange] Unclosed Anchor: [DEF:handleSelectionChange:Function] started at line 68<br>[handleSelectAll] Unclosed Anchor at end of file (started line 71)<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[handleSelectAll] Unclosed Anchor: [DEF:handleSelectAll:Function] started at line 71<br>[goToPage] Unclosed Anchor at end of file (started line 74)<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74<br>[goToPage] Unclosed Anchor: [DEF:goToPage:Function] started at line 74 |
| generate_semantic_map.py | 🟢 100% | OK |
| migration_script.py | 🟢 100% | OK |
| superset_tool/exceptions.py | 🟢 100% | OK |
| superset_tool/models.py | 🟢 100% | OK |
| superset_tool/client.py | 🟢 100% | OK |
| superset_tool/__init__.py | 🟢 100% | OK |
| superset_tool/utils/init_clients.py | 🟢 100% | OK |
| superset_tool/utils/logger.py | 🟢 100% | OK |
| superset_tool/utils/fileio.py | 🟢 100% | OK |
| superset_tool/utils/network.py | 🟢 100% | OK |
| superset_tool/utils/whiptail_fallback.py | 🟢 100% | OK |
| superset_tool/utils/dataset_mapper.py | 🟢 100% | OK |
| superset_tool/utils/__init__.py | 🟢 100% | OK |
| frontend/src/main.js | 🟢 100% | OK |
| frontend/src/App.svelte | 🟢 100% | OK |
| frontend/src/lib/stores.js | 🟢 100% | OK |
| frontend/src/lib/toasts.js | 🟢 100% | OK |
| frontend/src/lib/api.js | 🟢 100% | OK |
| frontend/src/routes/migration/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/migration/mappings/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/search/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/mapper/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/tools/debug/+page.svelte | 🟢 100% | OK |
| frontend/src/routes/settings/connections/+page.svelte | 🟢 100% | OK |
| frontend/src/pages/Dashboard.svelte | 🟢 100% | OK |
| frontend/src/pages/Settings.svelte | 🟢 100% | OK |
| frontend/src/components/PasswordPrompt.svelte | 🟢 100% | OK |
| frontend/src/components/MappingTable.svelte | 🟢 100% | OK |
| frontend/src/components/TaskLogViewer.svelte | 🟢 100% | OK |
| frontend/src/components/Footer.svelte | 🟢 100% | OK |
| frontend/src/components/MissingMappingModal.svelte | 🟢 100% | OK |
| frontend/src/components/DashboardGrid.svelte | 🟢 100% | OK |
| frontend/src/components/Navbar.svelte | 🟢 100% | OK |
| frontend/src/components/TaskHistory.svelte | 🟢 100% | OK |
| frontend/src/components/Toast.svelte | 🟢 100% | OK |
| frontend/src/components/TaskRunner.svelte | 🟢 100% | OK |
| frontend/src/components/TaskList.svelte | 🟢 100% | OK |
| frontend/src/components/DynamicForm.svelte | 🟢 100% | OK |
| frontend/src/components/EnvSelector.svelte | 🟢 100% | OK |
| frontend/src/components/tools/ConnectionForm.svelte | 🟢 100% | OK |
| frontend/src/components/tools/ConnectionList.svelte | 🟢 100% | OK |
| frontend/src/components/tools/MapperTool.svelte | 🟢 100% | OK |
| frontend/src/components/tools/DebugTool.svelte | 🟢 100% | OK |
| frontend/src/components/tools/SearchTool.svelte | 🟢 100% | OK |
| backend/src/app.py | 🟢 100% | OK |
| backend/src/dependencies.py | 🟢 100% | OK |
| backend/src/core/superset_client.py | 🟢 100% | OK |
| backend/src/core/config_manager.py | 🟢 100% | OK |
| backend/src/core/scheduler.py | 🟢 100% | OK |
| backend/src/core/config_models.py | 🟢 100% | OK |
| backend/src/core/database.py | 🟢 100% | OK |
| backend/src/core/logger.py | 🟢 100% | OK |
| backend/src/core/plugin_loader.py | 🟢 100% | OK |
| backend/src/core/migration_engine.py | 🟢 100% | OK |
| backend/src/core/plugin_base.py | 🟢 100% | OK |
| backend/src/core/utils/matching.py | 🟢 100% | OK |
| backend/src/core/task_manager/persistence.py | 🟢 100% | OK |
| backend/src/core/task_manager/manager.py | 🟢 100% | OK |
| backend/src/core/task_manager/models.py | 🟢 100% | OK |
| backend/src/core/task_manager/cleanup.py | 🟢 100% | OK |
| backend/src/core/task_manager/__init__.py | 🟢 100% | OK |
| backend/src/api/auth.py | 🟢 100% | OK |
| backend/src/api/routes/connections.py | 🟢 100% | OK |
| backend/src/api/routes/environments.py | 🟢 100% | OK |
| backend/src/api/routes/migration.py | 🟢 100% | OK |
| backend/src/api/routes/plugins.py | 🟢 100% | OK |
| backend/src/api/routes/mappings.py | 🟢 100% | OK |
| backend/src/api/routes/settings.py | 🟢 100% | OK |
| backend/src/api/routes/tasks.py | 🟢 100% | OK |
| backend/src/models/task.py | 🟢 100% | OK |
| backend/src/models/connection.py | 🟢 100% | OK |
| backend/src/models/mapping.py | 🟢 100% | OK |
| backend/src/models/dashboard.py | 🟢 100% | OK |
| backend/src/services/mapping_service.py | 🟢 100% | OK |
| backend/src/plugins/backup.py | 🟢 100% | OK |
| backend/src/plugins/debug.py | 🟢 100% | OK |
| backend/src/plugins/search.py | 🟢 100% | OK |
| backend/src/plugins/mapper.py | 🟢 100% | OK |
| backend/src/plugins/migration.py | 🟢 100% | OK |

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff