diff --git a/.ai/MODULE_MAP.md b/.ai/MODULE_MAP.md
index 22c83ac4..5bcfe86a 100644
--- a/.ai/MODULE_MAP.md
+++ b/.ai/MODULE_MAP.md
@@ -2,12 +2,12 @@
> High-level module structure for AI Context. Generated automatically.
-**Generated:** 2026-03-16T22:51:06.491000
+**Generated:** 2026-03-21T16:00:19.285859
## Summary
-- **Total Modules:** 105
-- **Total Entities:** 3358
+- **Total Modules:** 316
+- **Total Entities:** 6940
## Module Hierarchy
@@ -31,9 +31,9 @@
### 📁 `src/`
- 🏗️ **Layers:** API, Core, UI (API)
- - 📊 **Tiers:** CRITICAL: 2, STANDARD: 6, TRIVIAL: 20
+ - 📊 **Tiers:** CRITICAL: 2, STANDARD: 7, TRIVIAL: 20
- 📄 **Files:** 3
- - 📦 **Entities:** 28
+ - 📦 **Entities:** 29
**Key Entities:**
@@ -46,8 +46,10 @@
**Dependencies:**
+ - 🔗 DEPENDS_ON -> ApiRoutesModule
- 🔗 DEPENDS_ON -> AppDependencies
- - 🔗 DEPENDS_ON -> backend.src.api.routes
+ - 🔗 DEPENDS_ON -> LoggerModule
+ - 🔗 DEPENDS_ON -> OAuth2PasswordBearer
### 📁 `api/`
@@ -63,86 +65,92 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> AuthRepository:Class
+ - 🔗 DEPENDS_ON -> AuthService
+ - 🔗 DEPENDS_ON -> fastapi.APIRouter
+ - 🔗 DEPENDS_ON -> get_auth_db
- 🔗 DEPENDS_ON -> get_current_user
+ - 🔗 DEPENDS_ON -> is_adfs_configured
### 📁 `routes/`
- 🏗️ **Layers:** API, Infra, UI (API), UI/API
- - 📊 **Tiers:** CRITICAL: 7, STANDARD: 191, TRIVIAL: 107
- - 📄 **Files:** 21
- - 📦 **Entities:** 305
+ - 📊 **Tiers:** CRITICAL: 10, STANDARD: 96, TRIVIAL: 271
+ - 📄 **Files:** 22
+ - 📦 **Entities:** 377
**Key Entities:**
- ℂ **ApprovalRequest** (Class) `[TRIVIAL]`
- Schema for approval request payload.
+ - ℂ **ApproveMappingRequest** (Class) `[TRIVIAL]`
+ - Optional request DTO for explicit mapping approval audit not...
- ℂ **AssistantAction** (Class) `[TRIVIAL]`
- UI action descriptor returned with assistant responses.
- ℂ **AssistantMessageRequest** (Class) `[TRIVIAL]`
- Input payload for assistant message endpoint.
- - ℂ **AssistantMessageResponse** (Class)
+ - ℂ **AssistantMessageResponse** (Class) `[TRIVIAL]`
- Output payload contract for assistant interaction endpoints.
+ - ℂ **BatchApproveMappingRequest** (Class) `[TRIVIAL]`
+ - Request DTO for explicit batch mapping approvals aligned wit...
+ - ℂ **BatchApproveSemanticItemRequest** (Class) `[TRIVIAL]`
+ - Request DTO for one batch semantic-approval item aligned wit...
+ - ℂ **BatchApproveSemanticRequest** (Class) `[TRIVIAL]`
+ - Request DTO for explicit batch semantic approvals inside one...
- ℂ **BranchCheckout** (Class) `[TRIVIAL]`
- Schema for branch checkout requests.
- ℂ **BranchCreate** (Class) `[TRIVIAL]`
- Schema for branch creation requests.
- - ℂ **BranchSchema** (Class) `[TRIVIAL]`
- - Schema for representing a Git branch metadata.
- - ℂ **BuildManifestRequest** (Class) `[TRIVIAL]`
- - Request schema for manifest build endpoint.
- - ℂ **CommitCreate** (Class) `[TRIVIAL]`
- - Schema for staging and committing changes.
- - ℂ **CommitSchema** (Class) `[TRIVIAL]`
- - Schema for representing Git commit details.
**Dependencies:**
+ - 🔗 DEPENDS_ON -> ADGroupMapping:Class
+ - 🔗 DEPENDS_ON -> ApiRoutesModule
+ - 🔗 DEPENDS_ON -> AppConfigRecord
- 🔗 DEPENDS_ON -> AppDependencies
- - 🔗 DEPENDS_ON -> backend.src.core.config_manager.ConfigManager
- - 🔗 DEPENDS_ON -> backend.src.core.config_models
- - 🔗 DEPENDS_ON -> backend.src.core.database
- - 🔗 DEPENDS_ON -> backend.src.core.database.get_db
+ - 🔗 DEPENDS_ON -> AssistantAuditRecord
### 📁 `__tests__/`
- - 🏗️ **Layers:** API, Domain, Domain (Tests), Tests, UI (API Tests), Unknown
- - 📊 **Tiers:** STANDARD: 16, TRIVIAL: 265
- - 📄 **Files:** 18
- - 📦 **Entities:** 281
+ - 🏗️ **Layers:** API, Domain, Domain (Tests), Tests, UI (API Tests)
+ - 📊 **Tiers:** STANDARD: 18, TRIVIAL: 312
+ - 📄 **Files:** 20
+ - 📦 **Entities:** 330
**Key Entities:**
+ - ℂ **DbMock** (Class) `[TRIVIAL]`
+ - In-memory session double for git route tests with minimal qu...
+ - ℂ **MockGitService** (Class) `[TRIVIAL]`
+ - ℂ **MockGitService** (Class) `[TRIVIAL]`
+ - ℂ **MockGitService** (Class) `[TRIVIAL]`
+ - ℂ **MockGitService** (Class) `[TRIVIAL]`
+ - ℂ **MockGitService** (Class) `[TRIVIAL]`
+ - ℂ **SingleConfigDbMock** (Class) `[TRIVIAL]`
+ - ℂ **SingleConfigDbMock** (Class) `[TRIVIAL]`
- ℂ **_FakeConfigManager** (Class) `[TRIVIAL]`
- Provide deterministic environment aliases required by intent...
- ℂ **_FakeConfigManager** (Class) `[TRIVIAL]`
- - ℂ **_FakeDb** (Class) `[TRIVIAL]`
- - In-memory session substitute for assistant route persistence...
- - ℂ **_FakeDb** (Class) `[TRIVIAL]`
- - ℂ **_FakeQuery** (Class) `[TRIVIAL]`
- - Minimal chainable query object for fake DB interactions.
- - ℂ **_FakeQuery** (Class) `[TRIVIAL]`
- - ℂ **_FakeTask** (Class) `[TRIVIAL]`
- - Lightweight task model used for assistant authz tests.
- - ℂ **_FakeTask** (Class) `[TRIVIAL]`
- - ℂ **_FakeTaskManager** (Class) `[TRIVIAL]`
- - Minimal task manager for deterministic operation creation an...
- - ℂ **_FakeTaskManager** (Class) `[TRIVIAL]`
+ - Deterministic config stub providing hardcoded dev/prod envir...
**Dependencies:**
+ - 🔗 DEPENDS_ON -> ConnectionsRouter
- 🔗 DEPENDS_ON -> backend.src.api.routes.assistant
- - 🔗 IMPLEMENTS -> clean_release_v2_release_api_contracts
+ - 🔗 DEPENDS_ON -> backend.src.api.routes.clean_release_v2
+ - 🔗 DEPENDS_ON -> backend.src.api.routes.dashboards
+ - 🔗 DEPENDS_ON -> src.api.routes.datasets:Module
### 📁 `core/`
- 🏗️ **Layers:** Core, Domain, Infra
- - 📊 **Tiers:** CRITICAL: 9, STANDARD: 49, TRIVIAL: 153
+ - 📊 **Tiers:** CRITICAL: 9, STANDARD: 61, TRIVIAL: 150
- 📄 **Files:** 14
- - 📦 **Entities:** 211
+ - 📦 **Entities:** 220
**Key Entities:**
+ - ℂ **AsyncSupersetClient** (Class)
+ - Async sibling of SupersetClient for dashboard read paths.
- ℂ **AuthSessionLocal** (Class) `[TRIVIAL]`
- A session factory for the authentication database.
- ℂ **BeliefFormatter** (Class) `[TRIVIAL]`
@@ -161,31 +169,39 @@
- A Pydantic model used to represent the validated configurati...
- ℂ **PluginLoader** (Class)
- Scans a specified directory for Python modules, dynamically ...
- - ℂ **SchedulerService** (Class)
- - Provides a service to manage scheduled backup tasks.
**Dependencies:**
+ - 🔗 DEPENDS_ON -> APIClient
+ - 🔗 DEPENDS_ON -> APIClient.__init__
- 🔗 DEPENDS_ON -> AppConfig
- 🔗 DEPENDS_ON -> AppConfigRecord
- - 🔗 DEPENDS_ON -> SessionLocal
- - 🔗 DEPENDS_ON -> backend.src.core.auth.config
- - 🔗 DEPENDS_ON -> backend.src.core.config_models.Environment
+ - 🔗 DEPENDS_ON -> AsyncAPIClient
### 📁 `__tests__/`
- 🏗️ **Layers:** Domain
- - 📊 **Tiers:** STANDARD: 3, TRIVIAL: 15
- - 📄 **Files:** 3
- - 📦 **Entities:** 18
+ - 📊 **Tiers:** STANDARD: 5, TRIVIAL: 60
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 65
**Key Entities:**
+ - ℂ **_FakeQuery** (Class) `[TRIVIAL]`
+ - Minimal query stub returning hardcoded existing environment ...
+ - ℂ **_FakeSession** (Class) `[TRIVIAL]`
+ - Minimal SQLAlchemy session stub that captures add/delete cal...
+ - ℂ **_FakeSession** (Class) `[TRIVIAL]`
+ - Minimal session stub tracking commit/close signals for confi...
- ℂ **_RecordingNetworkClient** (Class) `[TRIVIAL]`
- Records request payloads and returns scripted responses for ...
- - 📦 **backend.src.core.__tests__.test_config_manager_compat** (Module)
+ - 📦 **NativeFilterExtractionTests** (Module)
+ - Verify native filter extraction from permalinks and native_f...
+ - 📦 **SupersetPreviewPipelineTests** (Module)
+ - Verify explicit chart-data preview compilation and ensure no...
+ - 📦 **TestConfigManagerCompat** (Module)
- Verifies ConfigManager compatibility wrappers preserve legac...
- - 📦 **backend.src.core.__tests__.test_superset_profile_lookup** (Module)
+ - 📦 **TestSupersetProfileLookup** (Module)
- Verifies Superset profile lookup adapter payload normalizati...
- 📦 **test_throttled_scheduler** (Module)
- Unit tests for ThrottledSchedulerConfigurator distribution l...
@@ -193,7 +209,7 @@
### 📁 `auth/`
- 🏗️ **Layers:** Core, Domain
- - 📊 **Tiers:** CRITICAL: 6, STANDARD: 2, TRIVIAL: 20
+ - 📊 **Tiers:** CRITICAL: 3, STANDARD: 2, TRIVIAL: 23
- 📄 **Files:** 7
- 📦 **Entities:** 28
@@ -203,26 +219,26 @@
- Holds authentication-related settings.
- ℂ **AuthRepository** (Class) `[CRITICAL]`
- Initialize repository with database session.
- - 📦 **AuthRepository** (Module) `[CRITICAL]`
- - Data access layer for authentication and user preference ent...
- - 📦 **backend.src.core.auth.config** (Module) `[CRITICAL]`
+ - 📦 **AuthConfigModule** (Module) `[TRIVIAL]`
- Centralized configuration for authentication and authorizati...
- - 📦 **backend.src.core.auth.jwt** (Module)
+ - 📦 **AuthJwtModule** (Module)
- JWT token generation and validation logic.
- - 📦 **backend.src.core.auth.logger** (Module)
+ - 📦 **AuthLoggerModule** (Module)
- Audit logging for security-related events.
- - 📦 **backend.src.core.auth.oauth** (Module) `[CRITICAL]`
+ - 📦 **AuthOauthModule** (Module) `[TRIVIAL]`
- ADFS OIDC configuration and client using Authlib.
- - 📦 **backend.src.core.auth.security** (Module) `[CRITICAL]`
+ - 📦 **AuthRepositoryModule** (Module) `[CRITICAL]`
+ - Data access layer for authentication and user preference ent...
+ - 📦 **AuthSecurityModule** (Module) `[TRIVIAL]`
- Utility for password hashing and verification using Passlib.
**Dependencies:**
- - 🔗 DEPENDS_ON -> Permission:Class
- - 🔗 DEPENDS_ON -> Role:Class
- - 🔗 DEPENDS_ON -> User:Class
- - 🔗 DEPENDS_ON -> UserDashboardPreference:Class
- - 🔗 DEPENDS_ON -> authlib
+ - 🔗 DEPENDS_ON -> ADGroupMapping
+ - 🔗 DEPENDS_ON -> AuthConfig
+ - 🔗 DEPENDS_ON -> OAuth
+ - 🔗 DEPENDS_ON -> Permission
+ - 🔗 DEPENDS_ON -> Role
### 📁 `__tests__/`
@@ -261,37 +277,37 @@
- Extract normalized dashboards/charts/datasets metadata from ...
- ℂ **MigrationDryRunService** (Class) `[CRITICAL]`
- Build deterministic diff/risk payload for migration pre-flig...
- - 📦 **backend.src.core.migration.__init__** (Module) `[TRIVIAL]`
- - Namespace package for migration pre-flight orchestration com...
- - 📦 **backend.src.core.migration.archive_parser** (Module)
+ - 📦 **MigrationArchiveParserModule** (Module)
- Parse Superset export ZIP archives into normalized object ca...
- - 📦 **backend.src.core.migration.dry_run_orchestrator** (Module)
+ - 📦 **MigrationDryRunOrchestratorModule** (Module)
- Compute pre-flight migration diff and risk scoring without a...
- - 📦 **backend.src.core.migration.risk_assessor** (Module) `[CRITICAL]`
+ - 📦 **MigrationPackage** (Module) `[TRIVIAL]`
+ - Namespace package for migration pre-flight orchestration com...
+ - 📦 **RiskAssessorModule** (Module) `[CRITICAL]`
- Compute deterministic migration risk items and aggregate sco...
**Dependencies:**
- - 🔗 DEPENDS_ON -> backend.src.core.logger
- - 🔗 DEPENDS_ON -> backend.src.core.migration.archive_parser.MigrationArchiveParser
- - 🔗 DEPENDS_ON -> backend.src.core.migration.risk_assessor
- - 🔗 DEPENDS_ON -> backend.src.core.migration_engine.MigrationEngine
- - 🔗 DEPENDS_ON -> backend.src.core.superset_client.SupersetClient
+ - 🔗 DEPENDS_ON -> LoggerModule
+ - 🔗 DEPENDS_ON -> MigrationArchiveParser
+ - 🔗 DEPENDS_ON -> MigrationEngine
+ - 🔗 DEPENDS_ON -> RiskAssessorModule
+ - 🔗 DEPENDS_ON -> SupersetClient
### 📁 `task_manager/`
- 🏗️ **Layers:** Core
- - 📊 **Tiers:** CRITICAL: 11, STANDARD: 42, TRIVIAL: 27
+ - 📊 **Tiers:** CRITICAL: 8, STANDARD: 39, TRIVIAL: 33
- 📄 **Files:** 7
- 📦 **Entities:** 80
**Key Entities:**
- - ℂ **LogEntry** (Class) `[CRITICAL]`
+ - ℂ **LogEntry** (Class) `[TRIVIAL]`
- A Pydantic model representing a single, structured log entry...
- - ℂ **LogFilter** (Class)
+ - ℂ **LogFilter** (Class) `[TRIVIAL]`
- Filter parameters for querying task logs.
- - ℂ **LogStats** (Class)
+ - ℂ **LogStats** (Class) `[TRIVIAL]`
- Statistics about log entries for a task.
- ℂ **Task** (Class)
- A Pydantic model representing a single execution instance of...
@@ -303,7 +319,7 @@
- A Pydantic model representing a persisted log entry from the...
- ℂ **TaskLogPersistenceService** (Class) `[CRITICAL]`
- Provides methods to store, query, summarize, and delete task...
- - ℂ **TaskLogger** (Class) `[CRITICAL]`
+ - ℂ **TaskLogger** (Class) `[TRIVIAL]`
- A wrapper around TaskManager._add_log that carries task_id a...
- ℂ **TaskManager** (Class) `[CRITICAL]`
- Manages the lifecycle of tasks, including their creation, ex...
@@ -311,10 +327,10 @@
**Dependencies:**
- 🔗 DEPENDS_ON -> Environment
- - 🔗 DEPENDS_ON -> PluginLoader:Class
- - 🔗 DEPENDS_ON -> TaskLogPersistenceService:Class
- - 🔗 DEPENDS_ON -> TaskLogRecord
- - 🔗 DEPENDS_ON -> TaskLogger, USED_BY -> plugins
+ - 🔗 DEPENDS_ON -> LogFilter
+ - 🔗 DEPENDS_ON -> LogLevel
+ - 🔗 DEPENDS_ON -> LogStats
+ - 🔗 DEPENDS_ON -> PluginLoader
### 📁 `__tests__/`
@@ -325,7 +341,7 @@
**Key Entities:**
- - 📦 **backend.src.core.task_manager.__tests__.test_context** (Module)
+ - 📦 **TestContext** (Module)
- Verify TaskContext preserves optional background task schedu...
- 📦 **test_task_logger** (Module) `[TRIVIAL]`
- Auto-generated module for backend/src/core/task_manager/__te...
@@ -333,14 +349,16 @@
### 📁 `utils/`
- 🏗️ **Layers:** Core, Domain, Infra
- - 📊 **Tiers:** CRITICAL: 1, STANDARD: 11, TRIVIAL: 60
- - 📄 **Files:** 6
- - 📦 **Entities:** 72
+ - 📊 **Tiers:** CRITICAL: 1, STANDARD: 26, TRIVIAL: 127
+ - 📄 **Files:** 8
+ - 📦 **Entities:** 154
**Key Entities:**
- ℂ **APIClient** (Class)
- Synchronous Superset API client with process-local auth toke...
+ - ℂ **AsyncAPIClient** (Class)
+ - Async Superset API client backed by httpx.AsyncClient with s...
- ℂ **AuthenticationError** (Class) `[TRIVIAL]`
- Exception raised when authentication fails.
- ℂ **DashboardNotFoundError** (Class) `[TRIVIAL]`
@@ -353,58 +371,52 @@
- Exception raised when a network level error occurs.
- ℂ **PermissionDeniedError** (Class) `[TRIVIAL]`
- Exception raised when access is denied.
- - ℂ **SupersetAPIError** (Class) `[TRIVIAL]`
- - Base exception for all Superset API related errors.
- - ℂ **backend.src.core.utils.async_network.AsyncAPIClient** (Class)
- - Async Superset API client backed by httpx.AsyncClient with s...
- - ℂ **network.SupersetAuthCache** (Class) `[TRIVIAL]`
- - Process-local cache for Superset access/csrf tokens keyed by...
+ - ℂ **PreviewCompilationPayload** (Class) `[TRIVIAL]`
+ - Typed preview payload for Superset-side compilation.
+ - ℂ **SqlLabLaunchPayload** (Class) `[TRIVIAL]`
+ - Typed SQL Lab payload for audited launch handoff.
**Dependencies:**
- - 🔗 DEPENDS_ON -> backend.core.superset_client
- - 🔗 DEPENDS_ON -> backend.src.core.logger
- - 🔗 DEPENDS_ON -> backend.src.core.utils.network.SupersetAuthCache
- - 🔗 DEPENDS_ON -> logger
- - 🔗 DEPENDS_ON -> network.SupersetAuthCache
+ - 🔗 DEPENDS_ON -> AsyncAPIClient.__init__
+ - 🔗 DEPENDS_ON -> AuthenticationError
+ - 🔗 DEPENDS_ON -> CompiledPreview
+ - 🔗 DEPENDS_ON -> DashboardNotFoundError
+ - 🔗 DEPENDS_ON -> Environment
### 📁 `models/`
- - 🏗️ **Layers:** Domain, Model
- - 📊 **Tiers:** CRITICAL: 17, STANDARD: 13, TRIVIAL: 61
- - 📄 **Files:** 14
- - 📦 **Entities:** 91
+ - 🏗️ **Layers:** Domain, Model, Models
+ - 📊 **Tiers:** CRITICAL: 6, STANDARD: 25, TRIVIAL: 151
+ - 📄 **Files:** 16
+ - 📦 **Entities:** 182
**Key Entities:**
- ℂ **ADGroupMapping** (Class) `[CRITICAL]`
- Maps an Active Directory group to a local System Role.
+ - ℂ **AnswerKind** (Class) `[TRIVIAL]`
- ℂ **AppConfigRecord** (Class) `[CRITICAL]`
- Stores persisted application configuration as a single autho...
- ℂ **ApprovalDecision** (Class) `[TRIVIAL]`
- Approval or rejection bound to a candidate and report.
+ - ℂ **ApprovalState** (Class) `[TRIVIAL]`
+ - ℂ **ArtifactFormat** (Class) `[TRIVIAL]`
+ - ℂ **ArtifactType** (Class) `[TRIVIAL]`
- ℂ **AssistantAuditRecord** (Class)
- Store audit decisions and outcomes produced by assistant com...
- ℂ **AssistantConfirmationRecord** (Class)
- Persist risky operation confirmation tokens with lifecycle s...
- ℂ **AssistantMessageRecord** (Class)
- Persist chat history entries for assistant conversations.
- - ℂ **CandidateArtifact** (Class) `[TRIVIAL]`
- - Represents one artifact associated with a release candidate.
- - ℂ **CheckFinalStatus** (Class) `[TRIVIAL]`
- - Backward-compatible final status enum for legacy TUI/orchest...
- - ℂ **CheckStageName** (Class) `[TRIVIAL]`
- - Backward-compatible stage name enum for legacy TUI/orchestra...
- - ℂ **CheckStageResult** (Class) `[TRIVIAL]`
- - Backward-compatible stage result container for legacy TUI/or...
**Dependencies:**
- 🔗 DEPENDS_ON -> AuthModels
- - 🔗 DEPENDS_ON -> Role
- - 🔗 DEPENDS_ON -> TaskRecord
- - 🔗 DEPENDS_ON -> backend.src.core.task_manager.models
- - 🔗 DEPENDS_ON -> backend.src.models.mapping
+ - 🔗 DEPENDS_ON -> Base
+ - 🔗 DEPENDS_ON -> MappingModels
+ - 🔗 DEPENDS_ON -> MappingModels:Base
+ - 🔗 DEPENDS_ON -> Permission
### 📁 `__tests__/`
@@ -516,11 +528,11 @@
**Key Entities:**
- - 📦 **backend.src.plugins.llm_analysis.__tests__.test_client_headers** (Module)
+ - 📦 **TestClientHeaders** (Module)
- Verify OpenRouter client initialization includes provider-sp...
- - 📦 **backend.src.plugins.llm_analysis.__tests__.test_screenshot_service** (Module)
+ - 📦 **TestScreenshotService** (Module)
- Protect dashboard screenshot navigation from brittle network...
- - 📦 **backend.src.plugins.llm_analysis.__tests__.test_service** (Module)
+ - 📦 **TestService** (Module)
- Verify LLM analysis transport/provider failures do not masqu...
### 📁 `storage/`
@@ -545,9 +557,9 @@
### 📁 `schemas/`
- 🏗️ **Layers:** API, Domain
- - 📊 **Tiers:** CRITICAL: 9, STANDARD: 12, TRIVIAL: 11
- - 📄 **Files:** 5
- - 📦 **Entities:** 32
+ - 📊 **Tiers:** CRITICAL: 9, STANDARD: 13, TRIVIAL: 28
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 50
**Key Entities:**
@@ -555,25 +567,19 @@
- Schema for creating an AD Group mapping.
- ℂ **ADGroupMappingSchema** (Class) `[CRITICAL]`
- Represents an AD Group to Role mapping in API responses.
+ - ℂ **ClarificationAnswerDto** (Class) `[TRIVIAL]`
+ - ℂ **ClarificationOptionDto** (Class) `[TRIVIAL]`
+ - ℂ **ClarificationQuestionDto** (Class) `[TRIVIAL]`
+ - ℂ **ClarificationSessionDto** (Class) `[TRIVIAL]`
+ - ℂ **CompiledPreviewDto** (Class) `[TRIVIAL]`
- ℂ **DashboardHealthItem** (Class) `[TRIVIAL]`
- Represents the latest health status of a single dashboard.
- - ℂ **HealthSummaryResponse** (Class) `[TRIVIAL]`
- - Aggregated health summary for all dashboards.
- - ℂ **NotificationChannel** (Class) `[TRIVIAL]`
- - Structured notification channel definition for policy-level ...
- - ℂ **PermissionSchema** (Class) `[TRIVIAL]`
- - Represents a permission in API responses.
- - ℂ **ProfilePermissionState** (Class)
- - Represents one permission badge state for profile read-only ...
- - ℂ **ProfilePreference** (Class)
- - Represents persisted profile preference for a single authent...
- - ℂ **ProfilePreferenceResponse** (Class)
- - Response envelope for profile preference read/update endpoin...
- - ℂ **ProfilePreferenceUpdateRequest** (Class)
- - Request payload for updating current user's profile settings...
+ - ℂ **DatasetProfileDto** (Class) `[TRIVIAL]`
+ - ℂ **DatasetRunContextDto** (Class) `[TRIVIAL]`
**Dependencies:**
+ - 🔗 DEPENDS_ON -> DatasetReviewModels
- 🔗 DEPENDS_ON -> pydantic
### 📁 `__tests__/`
@@ -584,13 +590,13 @@
**Key Entities:**
- - 📦 **backend.src.schemas.__tests__.test_settings_and_health_schemas** (Module)
+ - 📦 **TestSettingsAndHealthSchemas** (Module)
- Regression tests for settings and health schema contracts up...
### 📁 `scripts/`
- - 🏗️ **Layers:** Scripts, UI, Unknown
- - 📊 **Tiers:** CRITICAL: 1, STANDARD: 6, TRIVIAL: 69
+ - 🏗️ **Layers:** Scripts, UI
+ - 📊 **Tiers:** STANDARD: 10, TRIVIAL: 66
- 📄 **Files:** 9
- 📦 **Entities:** 76
@@ -600,34 +606,37 @@
- Curses-based application for compliance monitoring.
- ℂ **TuiFacadeAdapter** (Class) `[TRIVIAL]`
- Thin TUI adapter that routes business mutations through appl...
+ - 📦 **InitAuthDbScript** (Module) `[TRIVIAL]`
+ - Initializes the auth database and creates the necessary tabl...
+ - 📦 **SeedPermissionsScript** (Module)
+ - Populates the auth database with initial system permissions.
- 📦 **backend.src.scripts.clean_release_cli** (Module)
- Provide headless CLI commands for candidate registration, ar...
- 📦 **backend.src.scripts.clean_release_tui** (Module)
- Interactive terminal interface for Enterprise Clean Release ...
- 📦 **backend.src.scripts.create_admin** (Module)
- CLI tool for creating the initial admin user.
- - 📦 **backend.src.scripts.init_auth_db** (Module) `[CRITICAL]`
- - Initializes the auth database and creates the necessary tabl...
- 📦 **backend.src.scripts.migrate_sqlite_to_postgres** (Module)
- Migrates legacy config and task history from SQLite/file sto...
- - 📦 **backend.src.scripts.seed_permissions** (Module) `[TRIVIAL]`
- - Populates the auth database with initial system permissions.
- 📦 **backend.src.scripts.seed_superset_load_test** (Module)
- Creates randomized load-test data in Superset by cloning cha...
- - 📦 **test_dataset_dashboard_relations** (Module) `[TRIVIAL]`
- - Auto-generated module for backend/src/scripts/test_dataset_d...
+ - 📦 **test_dataset_dashboard_relations_script** (Module) `[TRIVIAL]`
+ - Tests and inspects dataset-to-dashboard relationship respons...
**Dependencies:**
- - 🔗 DEPENDS_ON -> backend.src.services.clean_release.compliance_orchestrator
- - 🔗 DEPENDS_ON -> backend.src.services.clean_release.repository
+ - 🔗 DEPENDS_ON -> AuthRepository
+ - 🔗 DEPENDS_ON -> AuthSessionLocal
+ - 🔗 DEPENDS_ON -> INITIAL_PERMISSIONS
+ - 🔗 DEPENDS_ON -> Permission
+ - 🔗 DEPENDS_ON -> Role
### 📁 `services/`
- 🏗️ **Layers:** Core, Domain, Domain/Service, Service
- - 📊 **Tiers:** CRITICAL: 5, STANDARD: 47, TRIVIAL: 164
+ - 📊 **Tiers:** CRITICAL: 5, STANDARD: 43, TRIVIAL: 113
- 📄 **Files:** 10
- - 📦 **Entities:** 216
+ - 📦 **Entities:** 161
**Key Entities:**
@@ -635,37 +644,37 @@
- Provides high-level authentication services.
- ℂ **EncryptionManager** (Class) `[CRITICAL]`
- Handles encryption and decryption of sensitive data like API...
- - ℂ **EnvironmentNotFoundError** (Class)
+ - ℂ **EnvironmentNotFoundError** (Class) `[TRIVIAL]`
- Raised when environment_id from lookup request is unknown in...
+ - ℂ **GitService** (Class)
+ - Wrapper for GitPython operations with semantic logging and e...
- ℂ **HealthService** (Class)
- Aggregate latest dashboard validation state and manage persi...
- ℂ **LLMProviderService** (Class)
- Service to manage LLM provider lifecycle.
- - ℂ **MappingService** (Class) `[TRIVIAL]`
+ - ℂ **MappingService** (Class)
- Service for handling database mapping logic.
- - ℂ **ProfileAuthorizationError** (Class)
+ - ℂ **ProfileAuthorizationError** (Class) `[TRIVIAL]`
- Raised when caller attempts cross-user preference mutation.
- ℂ **ProfileService** (Class) `[CRITICAL]`
- Implements profile preference read/update flow and Superset ...
- - ℂ **ProfileValidationError** (Class)
+ - ℂ **ProfileValidationError** (Class) `[TRIVIAL]`
- Domain validation error for profile preference update reques...
- - ℂ **backend.src.services.git_service.GitService** (Class)
- - Wrapper for GitPython operations with semantic logging and e...
**Dependencies:**
- - 🔗 DEPENDS_ON -> TaskManagerModels
- - 🔗 DEPENDS_ON -> TaskManagerPackage
- - 🔗 DEPENDS_ON -> backend.src.core.auth.jwt.create_access_token
- - 🔗 DEPENDS_ON -> backend.src.core.auth.repository
- - 🔗 DEPENDS_ON -> backend.src.core.auth.repository.AuthRepository
+ - 🔗 DEPENDS_ON -> AuthRepository
+ - 🔗 DEPENDS_ON -> GitService
+ - 🔗 DEPENDS_ON -> MappingService
+ - 🔗 DEPENDS_ON -> Role
+ - 🔗 DEPENDS_ON -> SupersetClient
### 📁 `__tests__/`
- - 🏗️ **Layers:** Domain, Domain Tests, Service, Service Tests, Unknown
- - 📊 **Tiers:** STANDARD: 12, TRIVIAL: 74
+ - 🏗️ **Layers:** Domain, Domain Tests, Service, Service Tests
+ - 📊 **Tiers:** STANDARD: 10, TRIVIAL: 84
- 📄 **Files:** 7
- - 📦 **Entities:** 86
+ - 📦 **Entities:** 94
**Key Entities:**
@@ -673,33 +682,34 @@
- Validate EncryptionManager encrypt/decrypt roundtrip, unique...
- ℂ **_DummyLogger** (Class) `[TRIVIAL]`
- Minimal logger shim for TaskContext-like objects used in tes...
+ - ℂ **_FakeConfigManager** (Class) `[TRIVIAL]`
+ - Config manager stub providing storage root path and minimal ...
- ℂ **_FakeDBSession** (Class) `[TRIVIAL]`
- Captures persisted records for assertion and mimics SQLAlche...
- - 📦 **backend.src.services.__tests__.test_llm_plugin_persistence** (Module)
- - Regression test for ValidationRecord persistence fields popu...
- - 📦 **backend.src.services.__tests__.test_llm_prompt_templates** (Module)
- - Validate normalization and rendering behavior for configurab...
- - 📦 **backend.src.services.__tests__.test_rbac_permission_catalog** (Module)
- - Verifies RBAC permission catalog discovery and idempotent sy...
- - 📦 **backend.src.services.__tests__.test_resource_service** (Module)
+ - ℂ **_FakeLLMClient** (Class) `[TRIVIAL]`
+ - Deterministic LLM client double returning canonical analysis...
+ - ℂ **_FakeNotificationService** (Class) `[TRIVIAL]`
+ - Notification service stub that accepts plugin dispatch_repor...
+ - ℂ **_FakeProviderService** (Class) `[TRIVIAL]`
+ - LLM provider service stub returning deterministic provider a...
+ - ℂ **_FakeScreenshotService** (Class) `[TRIVIAL]`
+ - Screenshot service stub that accepts capture_dashboard calls...
+ - ℂ **_FakeSupersetClient** (Class) `[TRIVIAL]`
+ - Superset client stub exposing network.request as a lambda th...
+ - 📦 **TestResourceService** (Module)
- Unit tests for ResourceService
- - 📦 **test_encryption_manager** (Module)
- - Unit tests for EncryptionManager encrypt/decrypt functionali...
- - 📦 **test_health_service** (Module)
- - Unit tests for HealthService aggregation logic.
- - 📦 **test_llm_provider** (Module) `[TRIVIAL]`
- - Auto-generated module for backend/src/services/__tests__/tes...
**Dependencies:**
- - 🔗 DEPENDS_ON -> backend.src.services.llm_prompt_templates
+ - 🔗 DEPENDS_ON -> backend.src.services.llm_prompt_templates:Function
+ - 🔗 DEPENDS_ON -> pytest:Module
### 📁 `clean_release/`
- 🏗️ **Layers:** Application, Domain, Infra
- - 📊 **Tiers:** CRITICAL: 9, STANDARD: 13, TRIVIAL: 85
+ - 📊 **Tiers:** CRITICAL: 9, STANDARD: 13, TRIVIAL: 84
- 📄 **Files:** 22
- - 📦 **Entities:** 107
+ - 📦 **Entities:** 106
**Key Entities:**
@@ -712,16 +722,16 @@
- Return envelope for compliance execution with run/report and...
- ℂ **ComplianceExecutionService** (Class) `[TRIVIAL]`
- Execute clean-release compliance lifecycle over trusted snap...
- - 📦 **backend.src.services.clean_release.approval_service** (Module) `[CRITICAL]`
+ - 📦 **approval_service** (Module) `[CRITICAL]`
- Enforce approval/rejection gates over immutable compliance r...
- - 📦 **backend.src.services.clean_release.artifact_catalog_loader** (Module)
+ - 📦 **artifact_catalog_loader** (Module)
- Load bootstrap artifact catalogs for clean release real-mode...
- - 📦 **backend.src.services.clean_release.audit_service** (Module)
+ - 📦 **audit_service** (Module)
- Provide lightweight audit hooks for clean release preparatio...
- - 📦 **backend.src.services.clean_release.candidate_service** (Module) `[CRITICAL]`
+ - 📦 **candidate_service** (Module) `[CRITICAL]`
- Register release candidates with validated artifacts and adv...
- - 📦 **backend.src.services.clean_release.compliance_execution_service** (Module) `[CRITICAL]`
- - Create and execute compliance runs with trusted snapshots, d...
+ - 📦 **clean_release** (Module)
+ - Redesigned clean release compliance subsystem.
**Dependencies:**
@@ -734,25 +744,25 @@
### 📁 `__tests__/`
- 🏗️ **Layers:** Domain, Infra, Unknown
- - 📊 **Tiers:** STANDARD: 7, TRIVIAL: 43
+ - 📊 **Tiers:** STANDARD: 7, TRIVIAL: 36
- 📄 **Files:** 8
- - 📦 **Entities:** 50
+ - 📦 **Entities:** 43
**Key Entities:**
- - 📦 **backend.tests.services.clean_release.test_audit_service** (Module)
+ - 📦 **TestAuditService** (Module)
- Validate audit hooks emit expected log patterns for clean re...
- - 📦 **backend.tests.services.clean_release.test_compliance_orchestrator** (Module)
+ - 📦 **TestComplianceOrchestrator** (Module)
- Validate compliance orchestrator stage transitions and final...
- - 📦 **backend.tests.services.clean_release.test_manifest_builder** (Module)
+ - 📦 **TestManifestBuilder** (Module)
- Validate deterministic manifest generation behavior for US1.
- - 📦 **backend.tests.services.clean_release.test_preparation_service** (Module)
+ - 📦 **TestPreparationService** (Module)
- Validate release candidate preparation flow, including polic...
- - 📦 **backend.tests.services.clean_release.test_report_builder** (Module)
+ - 📦 **TestReportBuilder** (Module)
- Validate compliance report builder counter integrity and blo...
- - 📦 **backend.tests.services.clean_release.test_source_isolation** (Module)
+ - 📦 **TestSourceIsolation** (Module)
- Verify internal source registry validation behavior.
- - 📦 **backend.tests.services.clean_release.test_stages** (Module)
+ - 📦 **TestStages** (Module)
- Validate final status derivation logic from stage results.
- 📦 **test_policy_engine** (Module) `[TRIVIAL]`
- Auto-generated module for backend/src/services/clean_release...
@@ -814,12 +824,12 @@
- Validate endpoint references from manifest against trusted r...
- ℂ **StageExecutionResult** (Class) `[TRIVIAL]`
- Structured stage output containing decision, details and vio...
- - 📦 **backend.src.services.clean_release.stages** (Module)
- - Define compliance stage order and helper functions for deter...
- - 📦 **backend.src.services.clean_release.stages.base** (Module)
+ - 📦 **base** (Module)
- Define shared contracts and helpers for pluggable clean-rele...
- - 📦 **backend.src.services.clean_release.stages.data_purity** (Module)
+ - 📦 **data_purity** (Module)
- Evaluate manifest purity counters and emit blocking violatio...
+ - 📦 **internal_sources_only** (Module)
+ - Verify manifest-declared sources belong to trusted internal ...
**Dependencies:**
@@ -827,10 +837,81 @@
- 🔗 DEPENDS_ON -> backend.src.services.clean_release.stages.base
- 🔗 IMPLEMENTS -> backend.src.services.clean_release.stages.base.ComplianceStage
+ ### 📁 `dataset_review/`
+
+ - 🏗️ **Layers:** Domain, Services
+ - 📊 **Tiers:** CRITICAL: 4, STANDARD: 18, TRIVIAL: 48
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 70
+
+ **Key Entities:**
+
+ - ℂ **ClarificationAnswerCommand** (Class) `[TRIVIAL]`
+ - Typed answer command for clarification state mutation.
+ - ℂ **ClarificationEngine** (Class)
+ - Provide deterministic one-question-at-a-time clarification s...
+ - ℂ **ClarificationQuestionPayload** (Class) `[TRIVIAL]`
+ - Typed active-question payload returned to the API layer.
+ - ℂ **ClarificationStateResult** (Class) `[TRIVIAL]`
+ - Clarification state result carrying the current session, act...
+ - ℂ **DatasetReviewOrchestrator** (Class) `[CRITICAL]`
+ - Coordinate safe session startup while preserving cross-user ...
+ - ℂ **DictionaryResolutionResult** (Class) `[TRIVIAL]`
+ - Carries field-level dictionary resolution output with explic...
+ - ℂ **LaunchDatasetCommand** (Class) `[TRIVIAL]`
+ - Typed input contract for launching one dataset-review sessio...
+ - ℂ **LaunchDatasetResult** (Class) `[TRIVIAL]`
+ - Launch result carrying immutable run context and any gate bl...
+ - ℂ **PreparePreviewCommand** (Class) `[TRIVIAL]`
+ - Typed input contract for compiling one Superset-backed sessi...
+ - ℂ **PreparePreviewResult** (Class) `[TRIVIAL]`
+ - Result contract for one persisted compiled preview attempt.
+
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> ClarificationAnswer
+ - 🔗 DEPENDS_ON -> ClarificationOption
+ - 🔗 DEPENDS_ON -> ClarificationQuestion
+ - 🔗 DEPENDS_ON -> ClarificationSession
+ - 🔗 DEPENDS_ON -> CompiledPreview
+
+ ### 📁 `repositories/`
+
+ - 🏗️ **Layers:** Domain
+ - 📊 **Tiers:** CRITICAL: 1, STANDARD: 9, TRIVIAL: 9
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 19
+
+ **Key Entities:**
+
+ - ℂ **DatasetReviewSessionRepository** (Class)
+ - Enforce ownership-scoped persistence and retrieval for datas...
+ - 📦 **DatasetReviewSessionRepository** (Module) `[CRITICAL]`
+ - Persist and retrieve dataset review session aggregates, incl...
+
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> CompiledPreview
+ - 🔗 DEPENDS_ON -> DatasetProfile
+ - 🔗 DEPENDS_ON -> DatasetReviewSession
+ - 🔗 DEPENDS_ON -> DatasetRunContext
+ - 🔗 DEPENDS_ON -> ExecutionMapping
+
+ ### 📁 `__tests__/`
+
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **SessionRepositoryTests** (Module) `[TRIVIAL]`
+ - Unit tests for DatasetReviewSessionRepository.
+
### 📁 `notifications/`
- 🏗️ **Layers:** Domain, Infra
- - 📊 **Tiers:** CRITICAL: 2, TRIVIAL: 20
+ - 📊 **Tiers:** CRITICAL: 2, STANDARD: 3, TRIVIAL: 17
- 📄 **Files:** 3
- 📦 **Entities:** 22
@@ -840,120 +921,122 @@
- Abstract base class for all notification providers.
- ℂ **NotificationService** (Class) `[TRIVIAL]`
- Routes validation reports to appropriate users and channels.
- - ℂ **SMTPProvider** (Class) `[TRIVIAL]`
+ - ℂ **SMTPProvider** (Class)
- Delivers notifications via SMTP.
- - ℂ **SlackProvider** (Class) `[TRIVIAL]`
+ - ℂ **SlackProvider** (Class)
- Delivers notifications via Slack Webhooks or API.
- - ℂ **TelegramProvider** (Class) `[TRIVIAL]`
+ - ℂ **TelegramProvider** (Class)
- Delivers notifications via Telegram Bot API.
- - 📦 **backend.src.services.notifications.providers** (Module) `[CRITICAL]`
+ - 📦 **providers** (Module) `[CRITICAL]`
- Defines abstract base and concrete implementations for exter...
- - 📦 **backend.src.services.notifications.service** (Module) `[CRITICAL]`
+ - 📦 **service** (Module) `[CRITICAL]`
- Orchestrates notification routing based on user preferences ...
**Dependencies:**
+ - 🔗 DEPENDS_ON -> NotificationProvider
+ - 🔗 DEPENDS_ON -> SMTPProvider
+ - 🔗 DEPENDS_ON -> SlackProvider
+ - 🔗 DEPENDS_ON -> TelegramProvider
- 🔗 DEPENDS_ON -> backend.src.models.llm
- - 🔗 DEPENDS_ON -> backend.src.services.notifications.providers
- - 🔗 DEPENDS_ON -> backend.src.services.profile_service
### 📁 `__tests__/`
- - 📊 **Tiers:** STANDARD: 1, TRIVIAL: 9
+ - 📊 **Tiers:** TRIVIAL: 10
- 📄 **Files:** 1
- 📦 **Entities:** 10
**Key Entities:**
- - 📦 **backend.src.services.notifications.__tests__.test_notification_service** (Module)
+ - 📦 **test_notification_service** (Module) `[TRIVIAL]`
- Unit tests for NotificationService routing and dispatch logi...
### 📁 `reports/`
- 🏗️ **Layers:** Domain
- - 📊 **Tiers:** CRITICAL: 5, TRIVIAL: 16
+ - 📊 **Tiers:** CRITICAL: 4, TRIVIAL: 18
- 📄 **Files:** 4
- - 📦 **Entities:** 21
+ - 📦 **Entities:** 22
**Key Entities:**
- ℂ **ReportsService** (Class) `[CRITICAL]`
- Service layer for list/detail report retrieval and normaliza...
- - 📦 **backend.src.services.reports.normalizer** (Module) `[CRITICAL]`
+ - 📦 **normalizer** (Module) `[CRITICAL]`
- Convert task manager task objects into canonical unified Tas...
- - 📦 **backend.src.services.reports.report_service** (Module) `[CRITICAL]`
+ - 📦 **report_service** (Module) `[CRITICAL]`
- Aggregate, normalize, filter, and paginate task reports for ...
- - 📦 **backend.src.services.reports.type_profiles** (Module) `[CRITICAL]`
+ - 📦 **type_profiles** (Module) `[TRIVIAL]`
- Deterministic mapping of plugin/task identifiers to canonica...
**Dependencies:**
- - 🔗 DEPENDS_ON -> backend.src.core.task_manager.manager.TaskManager
- - 🔗 DEPENDS_ON -> backend.src.core.task_manager.models.Task
- - 🔗 DEPENDS_ON -> backend.src.models.report
- - 🔗 DEPENDS_ON -> backend.src.models.report.TaskType
- - 🔗 DEPENDS_ON -> backend.src.services.reports.normalizer
+ - 🔗 DEPENDS_ON -> TaskType
+ - 🔗 DEPENDS_ON -> backend.src.core.task_manager.manager.TaskManager:Function
+ - 🔗 DEPENDS_ON -> backend.src.core.task_manager.models.Task:Function
+ - 🔗 DEPENDS_ON -> backend.src.models.report:Function
+ - 🔗 DEPENDS_ON -> backend.src.services.reports.normalizer:Function
### 📁 `__tests__/`
- - 🏗️ **Layers:** Domain, Domain (Tests), Unknown
- - 📊 **Tiers:** STANDARD: 2, TRIVIAL: 25
+ - 🏗️ **Layers:** Domain, Domain (Tests)
+ - 📊 **Tiers:** TRIVIAL: 26
- 📄 **Files:** 3
- - 📦 **Entities:** 27
+ - 📦 **Entities:** 26
**Key Entities:**
- - 📦 **backend.tests.test_report_normalizer** (Module)
+ - 📦 **test_report_normalizer** (Module) `[TRIVIAL]`
- Validate unknown task type fallback and partial payload norm...
- - 📦 **test_report_service** (Module)
+ - 📦 **test_report_service** (Module) `[TRIVIAL]`
- Unit tests for ReportsService list/detail operations
- - 📦 **test_type_profiles** (Module) `[TRIVIAL]`
- - Auto-generated module for backend/src/services/reports/__tes...
### 📁 `tests/`
- 🏗️ **Layers:** Core, Domain (Tests), Logging (Tests), Test, Unknown
- - 📊 **Tiers:** STANDARD: 11, TRIVIAL: 167
- - 📄 **Files:** 10
- - 📦 **Entities:** 178
+ - 📊 **Tiers:** STANDARD: 10, TRIVIAL: 143
+ - 📄 **Files:** 9
+ - 📦 **Entities:** 153
**Key Entities:**
- ℂ **TestLogPersistence** (Class)
- Test suite for TaskLogPersistenceService.
- - ℂ **TestTaskContext** (Class)
- - Test suite for TaskContext.
- - ℂ **TestTaskLogger** (Class)
- - Test suite for TaskLogger.
- ℂ **TestTaskPersistenceHelpers** (Class)
- Test suite for TaskPersistenceService static helper methods.
- ℂ **TestTaskPersistenceService** (Class)
- Test suite for TaskPersistenceService CRUD operations.
- - 📦 **backend.tests.test_dashboards_api** (Module)
+ - 📦 **TestAuth** (Module)
+ - Covers authentication service/repository behavior and auth b...
+ - 📦 **TestDashboardsApi** (Module)
- Comprehensive contract-driven tests for Dashboard Hub API
- - 📦 **test_auth** (Module) `[TRIVIAL]`
- - Auto-generated module for backend/tests/test_auth.py
+ - 📦 **TestLogger** (Module)
+ - Unit tests for the custom logger formatters and configuratio...
+ - 📦 **TestResourceHubs** (Module)
+ - Contract tests for resource hub dashboards/datasets listing ...
- 📦 **test_log_persistence** (Module)
- Unit tests for TaskLogPersistenceService.
- - 📦 **test_resource_hubs** (Module) `[TRIVIAL]`
- - Auto-generated module for backend/tests/test_resource_hubs.p...
- 📦 **test_smoke_plugins** (Module) `[TRIVIAL]`
- Auto-generated module for backend/tests/test_smoke_plugins.p...
+ - 📦 **test_task_manager** (Module)
+ - Unit tests for TaskManager lifecycle, CRUD, log buffering, a...
### 📁 `core/`
- 🏗️ **Layers:** Domain, Unknown
- - 📊 **Tiers:** STANDARD: 3, TRIVIAL: 49
+ - 📊 **Tiers:** STANDARD: 3, TRIVIAL: 50
- 📄 **Files:** 4
- - 📦 **Entities:** 52
+ - 📦 **Entities:** 53
**Key Entities:**
- - 📦 **backend.tests.core.test_git_service_gitea_pr** (Module)
+ - ℂ **MockMappingService** (Class) `[TRIVIAL]`
+ - Deterministic mapping service double for native filter ID re...
+ - 📦 **TestGitServiceGiteaPr** (Module)
- Validate Gitea PR creation fallback behavior when configured...
- - 📦 **backend.tests.core.test_mapping_service** (Module)
+ - 📦 **TestMappingService** (Module)
- Unit tests for the IdMappingService matching UUIDs to intege...
- - 📦 **backend.tests.core.test_migration_engine** (Module)
+ - 📦 **TestMigrationEngine** (Module)
- Unit tests for MigrationEngine's cross-filter patching algor...
- 📦 **test_defensive_guards** (Module) `[TRIVIAL]`
- Auto-generated module for backend/tests/core/test_defensive_...
@@ -967,9 +1050,9 @@
**Key Entities:**
- - 📦 **backend.tests.core.migration.test_archive_parser** (Module)
+ - 📦 **TestArchiveParser** (Module)
- Unit tests for MigrationArchiveParser ZIP extraction contrac...
- - 📦 **backend.tests.core.migration.test_dry_run_orchestrator** (Module)
+ - 📦 **TestDryRunOrchestrator** (Module)
- Unit tests for MigrationDryRunService diff and risk computat...
### 📁 `scripts/`
@@ -981,7 +1064,7 @@
**Key Entities:**
- - 📦 **backend.tests.scripts.test_clean_release_tui** (Module)
+ - 📦 **TestCleanReleaseTui** (Module)
- Unit tests for the interactive curses TUI of the clean relea...
- 📦 **test_clean_release_cli** (Module)
- Smoke tests for the redesigned clean release CLI.
@@ -991,9 +1074,9 @@
### 📁 `clean_release/`
- 🏗️ **Layers:** Tests
- - 📊 **Tiers:** STANDARD: 8, TRIVIAL: 48
+ - 📊 **Tiers:** STANDARD: 8, TRIVIAL: 51
- 📄 **Files:** 8
- - 📦 **Entities:** 56
+ - 📦 **Entities:** 59
**Key Entities:**
@@ -1001,19 +1084,19 @@
- TaskManager plugin shim that executes clean release complian...
- ℂ **_PluginLoaderStub** (Class) `[TRIVIAL]`
- Provide minimal plugin loader contract used by TaskManager i...
- - 📦 **backend.tests.services.clean_release.test_approval_service** (Module)
+ - 📦 **TestApprovalService** (Module)
- Define approval gate contracts for approve/reject operations...
- - 📦 **backend.tests.services.clean_release.test_compliance_execution_service** (Module)
+ - 📦 **TestComplianceExecutionService** (Module)
- Validate stage pipeline and run finalization contracts for c...
- - 📦 **backend.tests.services.clean_release.test_compliance_task_integration** (Module)
+ - 📦 **TestComplianceTaskIntegration** (Module)
- Verify clean release compliance runs execute through TaskMan...
- - 📦 **backend.tests.services.clean_release.test_demo_mode_isolation** (Module)
+ - 📦 **TestDemoModeIsolation** (Module)
- Verify demo and real mode namespace isolation contracts befo...
- - 📦 **backend.tests.services.clean_release.test_policy_resolution_service** (Module)
+ - 📦 **TestPolicyResolutionService** (Module)
- Verify trusted policy snapshot resolution contract and error...
- - 📦 **backend.tests.services.clean_release.test_publication_service** (Module)
+ - 📦 **TestPublicationService** (Module)
- Define publication gate contracts over approved candidates a...
- - 📦 **backend.tests.services.clean_release.test_report_audit_immutability** (Module)
+ - 📦 **TestReportAuditImmutability** (Module)
- Validate report snapshot immutability expectations and appen...
- 📦 **test_candidate_manifest_services** (Module)
- Test lifecycle and manifest versioning for release candidate...
@@ -1021,9 +1104,26 @@
**Dependencies:**
- 🔗 DEPENDS_ON -> backend.src.services.clean_release.demo_data_service
- - 🔗 DEPENDS_ON -> backend.src.services.clean_release.exceptions
- - 🔗 DEPENDS_ON -> backend.src.services.clean_release.policy_resolution_service
- - 🔗 DEPENDS_ON -> backend.src.services.clean_release.repository
+ - 🔗 DEPENDS_ON -> clean_release_exceptions
+ - 🔗 DEPENDS_ON -> policy_resolution_service
+ - 🔗 DEPENDS_ON -> repository
+
+ ### 📁 `dataset_review/`
+
+ - 🏗️ **Layers:** Tests
+ - 📊 **Tiers:** STANDARD: 3, TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **SupersetCompatibilityMatrixTests** (Module)
+ - Verifies Superset preview and SQL Lab endpoint fallback stra...
+
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> SupersetCompilationAdapter
+ - 🔗 DEPENDS_ON -> backend.src.core.superset_client.SupersetClient
### 📁 `components/`
@@ -1057,7 +1157,7 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> frontend/src/lib/stores.js, frontend/src/components/tasks/TaskLogPanel.svelte
+ - 🔗 DEPENDS_ON -> TaskLogPanel
- 🔗 DEPENDS_ON -> frontend/src/lib/toasts.js
### 📁 `__tests__/`
@@ -1069,7 +1169,7 @@
**Key Entities:**
- - 📦 **frontend.src.components.__tests__.task_log_viewer** (Module)
+ - 📦 **TaskLogViewerTest** (Module)
- Unit tests for TaskLogViewer component by mounting it and ob...
### 📁 `auth/`
@@ -1083,12 +1183,12 @@
- 🧩 **ProtectedRoute** (Component) `[TRIVIAL]`
- Wraps protected slot content with session and permission ver...
- - 📦 **ProtectedRoute.svelte** (Module)
+ - 📦 **ProtectedRouteModule** (Module)
- Enforces authenticated and authorized access before protecte...
**Dependencies:**
- - 🔗 DEPENDS_ON -> $lib/auth/permissions.hasPermission
+ - 🔗 DEPENDS_ON -> Permissions
### 📁 `git/`
@@ -1123,7 +1223,7 @@
**Key Entities:**
- - 📦 **frontend.src.components.git.__tests__.git_manager_unfinished_merge_integration** (Module)
+ - 📦 **GitManagerUnfinishedMergeIntegrationTest** (Module)
- Protect unresolved-merge dialog contract in GitManager pull ...
### 📁 `llm/`
@@ -1148,8 +1248,8 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> backend/src/api/routes/llm.py
- 🔗 DEPENDS_ON -> backend/src/plugins/llm_analysis/plugin.py
+ - 🔗 DEPENDS_ON -> requestApi
### 📁 `__tests__/`
@@ -1160,7 +1260,7 @@
**Key Entities:**
- - 📦 **frontend.src.components.llm.__tests__.provider_config_integration** (Module)
+ - 📦 **ProviderConfigIntegrationTest** (Module)
- Protect edit and delete interaction contracts in LLM provide...
### 📁 `storage/`
@@ -1226,9 +1326,9 @@
### 📁 `lib/`
- 🏗️ **Layers:** Infra, Infra-API, UI, UI-State
- - 📊 **Tiers:** STANDARD: 2, TRIVIAL: 27
+ - 📊 **Tiers:** STANDARD: 2, TRIVIAL: 28
- 📄 **Files:** 5
- - 📦 **Entities:** 29
+ - 📦 **Entities:** 30
**Key Entities:**
@@ -1243,6 +1343,10 @@
- 📦 **toasts_module** (Module) `[TRIVIAL]`
- Manages toast notifications using a Svelte writable store.
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> toasts_module
+
### 📁 `api/`
- 🏗️ **Layers:** Infra, Infra-API
@@ -1252,15 +1356,15 @@
**Key Entities:**
- - 📦 **frontend.src.lib.api.assistant** (Module)
+ - 📦 **AssistantApi** (Module)
- API client wrapper for assistant chat, confirmation actions,...
- - 📦 **frontend.src.lib.api.reports** (Module) `[CRITICAL]`
+ - 📦 **ReportsApi** (Module) `[CRITICAL]`
- Wrapper-based reports API client for list/detail retrieval w...
**Dependencies:**
- 🔗 DEPENDS_ON -> DEF:api_module
- - 🔗 DEPENDS_ON -> frontend.src.lib.api.api_module
+ - 🔗 DEPENDS_ON -> api_module
### 📁 `__tests__/`
@@ -1277,7 +1381,7 @@
- Validate getReports and getReportDetail with mocked api.fetc...
- ℂ **TestNormalizeApiError** (Class) `[TRIVIAL]`
- Validate error normalization for UI-state mapping.
- - 📦 **frontend.src.lib.api.__tests__.reports_api** (Module)
+ - 📦 **ReportsApiTest** (Module)
- Unit tests for reports API client functions: query string bu...
### 📁 `auth/`
@@ -1289,7 +1393,7 @@
**Key Entities:**
- - 📦 **frontend.src.lib.auth.permissions** (Module)
+ - 📦 **Permissions** (Module)
- Shared frontend RBAC utilities for route guards and menu vis...
- 🗄️ **authStore** (Store)
- Manages the global authentication state on the frontend.
@@ -1303,7 +1407,7 @@
**Key Entities:**
- - 📦 **frontend.src.lib.auth.__tests__.permissions** (Module)
+ - 📦 **PermissionsTest** (Module)
- Verifies frontend RBAC permission parsing and access checks.
### 📁 `assistant/`
@@ -1329,11 +1433,59 @@
**Key Entities:**
- - 📦 **frontend.src.lib.components.assistant.__tests__.assistant_chat_integration** (Module)
+ - 📦 **AssistantChatIntegrationTest** (Module)
- Contract-level integration checks for assistant chat panel i...
- - 📦 **frontend.src.lib.components.assistant.__tests__.assistant_first_message_integration** (Module)
+ - 📦 **AssistantFirstMessageIntegrationTest** (Module)
- Verify first optimistic user message stays visible while a n...
+ ### 📁 `dataset-review/`
+
+ - 🏗️ **Layers:** UI -->, Unknown
+ - 📊 **Tiers:** TRIVIAL: 79
+ - 📄 **Files:** 7
+ - 📦 **Entities:** 79
+
+ **Key Entities:**
+
+ - 🧩 **ClarificationDialog** (Component) `[TRIVIAL]`
+ - Present one clarification question at a time with explicit w...
+ - 🧩 **CompiledSQLPreview** (Component) `[TRIVIAL]`
+ - Present the exact Superset-generated compiled SQL preview, e...
+ - 🧩 **ExecutionMappingReview** (Component) `[TRIVIAL]`
+ - Review imported-filter to template-variable mappings, surfac...
+ - 🧩 **LaunchConfirmationPanel** (Component) `[TRIVIAL]`
+ - Summarize final execution context, surface launch blockers e...
+ - 🧩 **SemanticLayerReview** (Component) `[TRIVIAL]`
+ - Surface field-level semantic decisions with provenance, conf...
+ - 🧩 **SourceIntakePanel** (Component) `[TRIVIAL]`
+ - Collect initial dataset source input through Superset link p...
+ - 🧩 **ValidationFindingsPanel** (Component) `[TRIVIAL]`
+ - Present validation findings grouped by severity with explici...
+ - 📦 **ClarificationDialog** (Module) `[TRIVIAL]`
+ - Auto-generated module for frontend/src/lib/components/datase...
+ - 📦 **CompiledSQLPreview** (Module) `[TRIVIAL]`
+ - Auto-generated module for frontend/src/lib/components/datase...
+ - 📦 **ExecutionMappingReview** (Module) `[TRIVIAL]`
+ - Auto-generated module for frontend/src/lib/components/datase...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** UI
+ - 📊 **Tiers:** STANDARD: 4
+ - 📄 **Files:** 4
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **DatasetReviewUs2UxTests** (Module)
+ - Verify US2 semantic field review and one-question clarificat...
+ - 📦 **DatasetReviewUs3UxTests** (Module)
+ - Verify US3 mapping review, Superset preview, and launch conf...
+ - 📦 **SourceIntakePanelUxTests** (Module)
+ - Verify source intake entry paths, validation feedback, and s...
+ - 📦 **ValidationFindingsPanelUxTests** (Module)
+ - Verify grouped findings visibility, empty state, and remedia...
+
### 📁 `health/`
- 🏗️ **Layers:** UI/Component, Unknown
@@ -1371,17 +1523,17 @@
- Auto-generated module for frontend/src/lib/components/layout...
- 📦 **Sidebar** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/layout...
+ - 📦 **SidebarNavigation** (Module)
+ - Build sidebar navigation categories filtered by current user...
- 📦 **TaskDrawer** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/layout...
- 📦 **TopNavbar** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/layout...
- - 📦 **frontend.src.lib.components.layout.sidebarNavigation** (Module)
- - Build sidebar navigation categories filtered by current user...
**Dependencies:**
- 🔗 DEPENDS_ON -> frontend.src.lib.auth.permissions.hasPermission
- - 🔗 DEPENDS_ON -> page store
+ - 🔗 DEPENDS_ON -> page
### 📁 `__tests__/`
@@ -1392,7 +1544,7 @@
**Key Entities:**
- - 📦 **frontend.src.lib.components.layout.__tests__.sidebarNavigation** (Module)
+ - 📦 **SidebarNavigationTest** (Module)
- Verifies RBAC-based sidebar category and subitem visibility.
- 📦 **test_breadcrumbs.svelte** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/layout...
@@ -1416,15 +1568,15 @@
- Auto-generated module for frontend/src/lib/components/report...
- 📦 **ReportDetailPanel** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/report...
+ - 📦 **ReportTypeProfiles** (Module) `[CRITICAL]`
+ - Deterministic mapping from report task_type to visual profil...
- 📦 **ReportsList** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/report...
- - 📦 **frontend.src.lib.components.reports.reportTypeProfiles** (Module) `[CRITICAL]`
- - Deterministic mapping from report task_type to visual profil...
**Dependencies:**
- - 🔗 DEPENDS_ON -> frontend/src/lib/components/reports/reportTypeProfiles.js
- - 🔗 DEPENDS_ON -> frontend/src/lib/i18n/index.ts
+ - 🔗 DEPENDS_ON -> i18n
+ - 🔗 DEPENDS_ON -> reportTypeProfiles
### 📁 `__tests__/`
@@ -1435,19 +1587,19 @@
**Key Entities:**
- - 📦 **frontend.src.lib.components.reports.__tests__.report_card.ux** (Module)
+ - 📦 **ReportCardTest** (Module)
- Test UX states and transitions for ReportCard component
- - 📦 **frontend.src.lib.components.reports.__tests__.report_detail.integration** (Module)
+ - 📦 **ReportDetailIntegrationTest** (Module)
- Validate detail-panel behavior for failed reports and recove...
- - 📦 **frontend.src.lib.components.reports.__tests__.report_detail.ux** (Module)
+ - 📦 **ReportDetailUxTest** (Module)
- Test UX states and recovery for ReportDetailPanel component
- - 📦 **frontend.src.lib.components.reports.__tests__.report_type_profiles** (Module)
+ - 📦 **ReportTypeProfilesTest** (Module)
- Validate report type profile mapping and unknown fallback be...
- - 📦 **frontend.src.lib.components.reports.__tests__.reports_filter_performance** (Module)
+ - 📦 **ReportsFilterPerformanceTest** (Module)
- Guard test for report filter responsiveness on moderate in-m...
- - 📦 **frontend.src.lib.components.reports.__tests__.reports_list.ux** (Module)
+ - 📦 **ReportsListTest** (Module)
- Test ReportsList component iteration and event forwarding.
- - 📦 **frontend.src.lib.components.reports.__tests__.reports_page.integration** (Module)
+ - 📦 **ReportsPageTest** (Module)
- Integration-style checks for unified mixed-type reports rend...
### 📁 `fixtures/`
@@ -1459,7 +1611,7 @@
**Key Entities:**
- - 📦 **reports.fixtures** (Module)
+ - 📦 **ReportsFixtures** (Module)
- Shared frontend fixtures for unified reports states.
### 📁 `i18n/`
@@ -1480,18 +1632,20 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> locales/en.json
- - 🔗 DEPENDS_ON -> locales/ru.json
+ - 🔗 DEPENDS_ON -> i18n_en_locale
+ - 🔗 DEPENDS_ON -> i18n_ru_locale
### 📁 `stores/`
- 🏗️ **Layers:** UI, UI-State, Unknown
- - 📊 **Tiers:** CRITICAL: 1, STANDARD: 5, TRIVIAL: 32
- - 📄 **Files:** 6
- - 📦 **Entities:** 38
+ - 📊 **Tiers:** CRITICAL: 1, STANDARD: 6, TRIVIAL: 40
+ - 📄 **Files:** 7
+ - 📦 **Entities:** 47
**Key Entities:**
+ - 📦 **datasetReviewSession** (Module) `[TRIVIAL]`
+ - Auto-generated module for frontend/src/lib/stores/datasetRev...
- 📦 **environmentContext** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/stores/environmen...
- 📦 **health** (Module) `[TRIVIAL]`
@@ -1504,38 +1658,38 @@
- Track active task count for navbar indicator
- 🗄️ **assistantChat** (Store)
- Control assistant chat panel visibility and active conversat...
+ - 🗄️ **datasetReviewSession** (Store)
+ - Manage active dataset review session state, including loadin...
- 🗄️ **environmentContext** (Store)
- Global selected environment context for navigation and safet...
- 🗄️ **health_store** (Store)
- Manage dashboard health summary state and failing counts for...
- - 🗄️ **sidebar** (Store)
- - Manage sidebar visibility and navigation state
- - 🗄️ **taskDrawer** (Store) `[CRITICAL]`
- - Manage Task Drawer visibility and resource-to-task mapping
**Dependencies:**
- - 🔗 DEPENDS_ON -> WebSocket connection, taskDrawer store
- - 🔗 DEPENDS_ON -> api.getHealthSummary
+ - 🔗 DEPENDS_ON -> api_module
+ - 🔗 DEPENDS_ON -> taskDrawer
### 📁 `__tests__/`
- 🏗️ **Layers:** Domain (Tests), UI, UI Tests
- - 📊 **Tiers:** STANDARD: 7, TRIVIAL: 4
- - 📄 **Files:** 6
- - 📦 **Entities:** 11
+ - 📊 **Tiers:** STANDARD: 8, TRIVIAL: 4
+ - 📄 **Files:** 7
+ - 📦 **Entities:** 12
**Key Entities:**
- - 📦 **frontend.src.lib.stores.__tests__.assistantChat** (Module)
- - Validate assistant chat store visibility and conversation bi...
- - 📦 **frontend.src.lib.stores.__tests__.sidebar** (Module)
- - Unit tests for sidebar store
- - 📦 **frontend.src.lib.stores.__tests__.test_activity** (Module)
+ - 📦 **ActivityTest** (Module)
- Unit tests for activity store
- - 📦 **frontend.src.lib.stores.__tests__.test_sidebar** (Module)
+ - 📦 **AssistantChatTest** (Module)
+ - Validate assistant chat store visibility and conversation bi...
+ - 📦 **DatasetReviewSessionStoreTests** (Module)
+ - Unit tests for dataset review session store.
+ - 📦 **SidebarIntegrationTest** (Module)
- Unit tests for sidebar store
- - 📦 **frontend.src.lib.stores.__tests__.test_taskDrawer** (Module)
+ - 📦 **SidebarTest** (Module)
+ - Unit tests for sidebar store
+ - 📦 **TaskDrawerTest** (Module)
- Unit tests for task drawer store
- 📦 **setupTests** (Module)
- Global test setup with mocks for SvelteKit modules
@@ -1547,15 +1701,22 @@
### 📁 `mocks/`
- - 🏗️ **Layers:** UI (Tests)
- - 📊 **Tiers:** STANDARD: 1, TRIVIAL: 3
- - 📄 **Files:** 4
- - 📦 **Entities:** 4
+ - 🏗️ **Layers:** UI (Tests), UI Tests
+ - 📊 **Tiers:** STANDARD: 1, TRIVIAL: 4
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 5
**Key Entities:**
- 📦 **mock_env_public** (Module)
- Mock for $env/static/public SvelteKit module in vitest
+ - 📦 **state_mock** (Module) `[TRIVIAL]`
+ - Mock for AppState in vitest route/component tests.
+
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> $app/navigation
+ - 🔗 DEPENDS_ON -> $app/stores
### 📁 `ui/`
@@ -1609,24 +1770,34 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> frontend/src/lib/stores.js
+ - 🔗 DEPENDS_ON -> stores
### 📁 `routes/`
- - 🏗️ **Layers:** Infra, UI, Unknown
- - 📊 **Tiers:** CRITICAL: 1, STANDARD: 2, TRIVIAL: 6
+ - 🏗️ **Layers:** Infra, UI, UI (Layout), Unknown
+ - 📊 **Tiers:** CRITICAL: 1, STANDARD: 3, TRIVIAL: 6
- 📄 **Files:** 5
- - 📦 **Entities:** 9
+ - 📦 **Entities:** 10
**Key Entities:**
- 📦 **+page** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/routes/+page.svelte
+ - 📦 **RootLayout** (Module)
+ - Root layout component that provides global UI structure (Sid...
- 📦 **RootLayoutConfig** (Module) `[TRIVIAL]`
- Root layout configuration (SPA mode)
- 📦 **layout** (Module)
- Bind global layout shell and conditional login/full-app rend...
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> Footer
+ - 🔗 DEPENDS_ON -> ProtectedRoute
+ - 🔗 DEPENDS_ON -> Sidebar
+ - 🔗 DEPENDS_ON -> TaskDrawer
+ - 🔗 DEPENDS_ON -> Toast
+
### 📁 `roles/`
- 🏗️ **Layers:** Domain
@@ -1641,8 +1812,8 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> frontend.src.components.auth.ProtectedRoute
- - 🔗 DEPENDS_ON -> frontend.src.services.adminService
+ - 🔗 DEPENDS_ON -> ProtectedRoute
+ - 🔗 DEPENDS_ON -> adminService
### 📁 `settings/`
@@ -1658,8 +1829,8 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> frontend.src.components.auth.ProtectedRoute
- - 🔗 DEPENDS_ON -> frontend.src.services.adminService
+ - 🔗 DEPENDS_ON -> ProtectedRoute
+ - 🔗 DEPENDS_ON -> adminService
### 📁 `llm/`
@@ -1716,6 +1887,10 @@
- 📦 **+page** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/routes/dashboards/[id...
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> api_module
+
### 📁 `__tests__/`
- 🏗️ **Layers:** UI (Tests)
@@ -1725,7 +1900,7 @@
**Key Entities:**
- - 📦 **frontend.src.routes.dashboards.__tests__.dashboard_profile_override_integration** (Module)
+ - 📦 **DashboardProfileOverrideIntegrationTest** (Module)
- Verifies temporary show-all override and restore-on-return b...
### 📁 `health/`
@@ -1742,7 +1917,7 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> frontend.src.lib.components.health.HealthMatrix
+ - 🔗 DEPENDS_ON -> HealthMatrix
### 📁 `__tests__/`
@@ -1753,7 +1928,7 @@
**Key Entities:**
- - 📦 **frontend.src.routes.dashboards.health.__tests__.health_page_integration** (Module)
+ - 📦 **HealthPageIntegrationTest** (Module)
- Lock dashboard health page contract for slug navigation and ...
### 📁 `datasets/`
@@ -1780,6 +1955,62 @@
- 📦 **+page** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/routes/datasets/[id]/...
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> api_module
+
+ ### 📁 `review/`
+
+ - 🏗️ **Layers:** UI -->, Unknown
+ - 📊 **Tiers:** TRIVIAL: 14
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 14
+
+ **Key Entities:**
+
+ - 📦 **+page** (Module) `[TRIVIAL]`
+ - Auto-generated module for frontend/src/routes/datasets/revie...
+
+ ### 📁 `[id]/`
+
+ - 🏗️ **Layers:** UI -->, Unknown
+ - 📊 **Tiers:** TRIVIAL: 29
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 29
+
+ **Key Entities:**
+
+ - 🧩 **DatasetReviewWorkspace** (Component) `[TRIVIAL]`
+ - Main dataset review workspace coordinating session state, pr...
+ - 📦 **+page** (Module) `[TRIVIAL]`
+ - Auto-generated module for frontend/src/routes/datasets/revie...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** UI
+ - 📊 **Tiers:** STANDARD: 1, TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **DatasetReviewWorkspaceUxTests** (Module)
+ - Verify US1-safe and US2-integrated dataset review workspace ...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** UI
+ - 📊 **Tiers:** STANDARD: 2, TRIVIAL: 2
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **DatasetReviewEntryUxTests** (Module)
+ - Verify dataset review entry route exposes resumable sessions...
+ - 📦 **DatasetReviewEntryUxTests** (Module)
+ - Verify dataset review entry route exposes resumable sessions...
+
### 📁 `git/`
- 🏗️ **Layers:** Page
@@ -1850,9 +2081,9 @@
**Key Entities:**
- - 📦 **frontend.src.routes.profile.__tests__.profile_preferences_integration** (Module)
+ - 📦 **ProfilePreferencesIntegrationTest** (Module)
- Verifies profile binding happy path and degraded lookup manu...
- - 📦 **frontend.src.routes.profile.__tests__.profile_settings_state_integration** (Module)
+ - 📦 **ProfileSettingsStateIntegrationTest** (Module)
- Verifies profile settings preload, cancel without persistenc...
### 📁 `fixtures/`
@@ -1863,8 +2094,13 @@
**Key Entities:**
- - 📦 **frontend.src.routes.profile.__tests__.fixtures.profile_fixtures** (Module) `[TRIVIAL]`
- - Shared fixture placeholders for profile page integration tes...
+ - 📦 **ProfileFixtures** (Module) `[TRIVIAL]`
+ - Shared deterministic fixture inputs for profile page integra...
+
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> frontend/src/lib/i18n/index.ts [key:profile.lookup_error
+ - 🔗 DEPENDS_ON -> i18n.profile.lookup_error
### 📁 `reports/`
@@ -1882,8 +2118,8 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> frontend/src/lib/api/reports.js
- - 🔗 DEPENDS_ON -> frontend/src/lib/components/reports/ReportsList.svelte
+ - 🔗 DEPENDS_ON -> ReportsApi
+ - 🔗 DEPENDS_ON -> ReportsList
### 📁 `[taskId]/`
@@ -1896,7 +2132,7 @@
- 📦 **+page** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/routes/reports/llm/[t...
- - 📦 **frontend.src.routes.reports.llm.taskid.report_page_contract_test** (Module)
+ - 📦 **ReportPageContractTest** (Module)
- Protect the LLM report page from self-triggering screenshot ...
### 📁 `settings/`
@@ -1911,6 +2147,10 @@
- 📦 **+page** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/routes/settings/+page...
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> sidebar
+
### 📁 `automation/`
- 🏗️ **Layers:** UI/Page, Unknown
@@ -1957,7 +2197,7 @@
**Key Entities:**
- - 📦 **frontend.src.routes.settings.git.__tests__.git_settings_page_ux_test** (Module) `[TRIVIAL]`
+ - 📦 **GitSettingsPageUxTest** (Module) `[TRIVIAL]`
- Test UX states and transitions for the Git Settings page
### 📁 `notifications/`
@@ -1983,9 +2223,20 @@
### 📁 `repos/`
- - 📊 **Tiers:** TRIVIAL: 4
+ - 🏗️ **Layers:** UI (Page)
+ - 📊 **Tiers:** STANDARD: 1, TRIVIAL: 4
- 📄 **Files:** 1
- - 📦 **Entities:** 4
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **StorageReposPage** (Module)
+ - Dashboard management page for Git integration (moved from /g...
+
+ **Dependencies:**
+
+ - 🔗 DEPENDS_ON -> RepositoryDashboardGrid
+ - 🔗 DEPENDS_ON -> api
### 📁 `debug/`
@@ -2045,7 +2296,7 @@
**Dependencies:**
- - 🔗 DEPENDS_ON -> frontend.src.lib.api
+ - 🔗 DEPENDS_ON -> api_module
- 🔗 DEPENDS_ON -> specs/011-git-integration-dashboard/contracts/api.md
### 📁 `__tests__/`
@@ -2056,7 +2307,7 @@
**Key Entities:**
- - 📦 **frontend.src.services.__tests__.gitService_test** (Module) `[TRIVIAL]`
+ - 📦 **gitServiceContractTests** (Module) `[TRIVIAL]`
- API client tests ensuring correct endpoints are called per c...
### 📁 `types/`
@@ -2071,12 +2322,3162 @@
- 📦 **DashboardTypes** (Module) `[TRIVIAL]`
- TypeScript interfaces for Dashboard entities
+ ### 📁 `scripts/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **canonicalize-node-modules** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/nix/scripts/cano...
+ - 📦 **normalize-bun-binaries** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/nix/scripts/norm...
+
+ ### 📁 `e2e/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 46
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 46
+
+ **Key Entities:**
+
+ - 📦 **actions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+ - 📦 **fixtures** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+ - 📦 **utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+
+ ### 📁 `projects/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **projects-switch.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+ - 📦 **workspace-new-session.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+ - 📦 **workspaces.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+
+ ### 📁 `prompt/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **context.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+ - 📦 **prompt-history.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+ - 📦 **prompt-slash-share.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+
+ ### 📁 `session/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **session-composer-dock.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+ - 📦 **session-undo-redo.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+ - 📦 **session.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+
+ ### 📁 `terminal/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **terminal-tabs.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/e2e...
+
+ ### 📁 `script/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **e2e-local** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/scr...
+
+ ### 📁 `addons/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **serialize** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **serialize.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `components/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **titlebar-history** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **titlebar-history.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `prompt-input/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 27
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 27
+
+ **Key Entities:**
+
+ - 📦 **attachments** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **build-request-parts** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **editor-dom** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **history** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **placeholder** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **submit** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `session/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **session-context-breakdown** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **session-context-format** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **session-context-metrics** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `context/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 26
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 26
+
+ **Key Entities:**
+
+ - 📦 **comments.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **layout-scroll** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **model-variant** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **notification-index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **permission-auto-respond** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `file/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 32
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 32
+
+ **Key Entities:**
+
+ - 📦 **content-cache** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **path** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **tree-store** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **types** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **view-cache** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **watcher** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `global-sync/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 37
+ - 📄 **Files:** 9
+ - 📦 **Entities:** 37
+
+ **Key Entities:**
+
+ - 📦 **bootstrap** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **child-store** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **event-reducer** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **eviction** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **queue** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **session-cache** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **session-load** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **session-trim** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `hooks/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **use-providers** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `layout/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **helpers** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `composer/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 7
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 7
+
+ **Key Entities:**
+
+ - 📦 **session-composer-state** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **session-request-tree** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `utils/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 85
+ - 📄 **Files:** 21
+ - 📦 **Entities:** 85
+
+ **Key Entities:**
+
+ - 📦 **agent** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **aim** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **base64** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **comment-note** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **dom** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **id** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **persist** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **prompt** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **same** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+ - 📦 **scoped-cache** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/app/src...
+
+ ### 📁 `desktop-electron/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **electron-builder.config** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+
+ ### 📁 `scripts/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **finalize-latest-yml** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+
+ ### 📁 `main/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 79
+ - 📄 **Files:** 11
+ - 📦 **Entities:** 79
+
+ **Key Entities:**
+
+ - 📦 **apps** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **cli** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **ipc** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **logging** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **markdown** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **menu** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **migrate** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **server** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **store** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+
+ ### 📁 `renderer/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **cli** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **updater** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+
+ ### 📁 `i18n/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+
+ ### 📁 `scripts/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 4
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **bindings** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **cli** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **menu** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+ - 📦 **updater** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+
+ ### 📁 `i18n/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/desktop...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **previous-docs-redirects.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-do...
+
+ ### 📁 `nodes/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **heading.markdoc** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-do...
+
+ ### 📁 `api/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 7
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 7
+
+ **Key Entities:**
+
+ - 📦 **llms.txt** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-do...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 16
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 16
+
+ **Key Entities:**
+
+ - 📦 **cloud-sessions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **headers** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **loader** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **provider** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **provider-debug** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+
+ ### 📁 `api/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 14
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 14
+
+ **Key Entities:**
+
+ - 📦 **models** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **notifications** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **profile** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+
+ ### 📁 `auth/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 18
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 18
+
+ **Key Entities:**
+
+ - 📦 **device-auth** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **device-auth-tui** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **legacy-migration** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **polling** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **token** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+
+ ### 📁 `server/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **routes** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+
+ ### 📁 `tui/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **context** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+ - 📦 **helpers** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+
+ ### 📁 `types/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **tui.d** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ga...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 48
+ - 📄 **Files:** 4
+ - 📦 **Entities:** 48
+
+ **Key Entities:**
+
+ - 📦 **client** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-te...
+ - 📦 **identity** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-te...
+ - 📦 **telemetry** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-te...
+ - 📦 **tracer** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-te...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **telemetry.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-te...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **file-path** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ui...
+
+ ### 📁 `components/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **tool-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ui...
+
+ ### 📁 `tests/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 7
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 7
+
+ **Key Entities:**
+
+ - 📦 **visual-regression.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-ui...
+
+ ### 📁 `kilo-vscode/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **esbuild** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `script/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 21
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 21
+
+ **Key Entities:**
+
+ - 📦 **launch** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **local-bin** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **watch-cli** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 61
+ - 📄 **Files:** 10
+ - 📦 **Entities:** 61
+
+ **Key Entities:**
+
+ - 📦 **extension** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **image-preview** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **kilo-provider-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **path-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **project-directory** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **provider-actions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **review-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **session-status** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **webview-html-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `agent-manager/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 52
+ - 📄 **Files:** 14
+ - 📦 **Entities:** 52
+
+ **Key Entities:**
+
+ - 📦 **SetupScriptRunner** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **WorktreeManager** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **WorktreeStateManager** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **base-branch** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **branch-name** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **constants** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **delete-worktree** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **fork-session** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **format-keybinding** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **git-import** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **AgentManagerProvider.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **SetupScriptService.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `commands/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **toggle-auto-approve** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `kilo-provider/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **slim-metadata** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `handlers/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 21
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 21
+
+ **Key Entities:**
+
+ - 📦 **auth** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **cloud-session** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **migration** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **permission-handler** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **question** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `legacy-migration/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 27
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 27
+
+ **Key Entities:**
+
+ - 📦 **migration-service** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `autocomplete/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **AutocompleteServiceManager** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **statusbar-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **types** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **AutocompleteModel.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **AutocompleteServiceManager.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **MockWorkspaceEdit** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `chat-autocomplete/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **chat-autocomplete-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **handleChatCompletionAccepted** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **handleChatCompletionRequest** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `classic-auto-complete/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 43
+ - 📄 **Files:** 9
+ - 📦 **Entities:** 43
+
+ **Key Entities:**
+
+ - 📦 **AutocompleteInlineCompletionProvider** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **AutocompleteTelemetry** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **HoleFiller** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **contextualSkip** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **getProcessedSnippets** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **hole-filler-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **inline-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **telemetry-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **uselessSuggestionFilter** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 4
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **AutocompleteContextProvider.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **AutocompleteInlineCompletionProvider.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **AutocompleteTelemetry.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **HoleFiller.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `language-filters/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **markdown** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `context/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **VisibleCodeTracker** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **visible-code-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `classification/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **shouldCompleteMultiline** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `constants/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **AutocompleteLanguageInfo** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `ranking/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `root-path-context/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **testUtils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `files/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 7
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 7
+
+ **Key Entities:**
+
+ - 📦 **base_module** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `python/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **functions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `typescript/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **functions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `static-context/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **StaticContextService** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **tree-sitter-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `filtering/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **BracketMatchingService.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `streamTransforms/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **charStream.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **lineStream** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **lineStream.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `test/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 15
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 15
+
+ **Key Entities:**
+
+ - 📦 **testCases** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **util** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `generation/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **GeneratorReuseManager.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **utils.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `postprocessing/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **removePrefixOverlap** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `prefiltering/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `snippets/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **getAllSnippets** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `templating/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 23
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 23
+
+ **Key Entities:**
+
+ - 📦 **AutocompleteTemplate** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **constructPrefixSuffix** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **filtering** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **formatOpenedFilesContext** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **getStopTokens** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **renderPrompt.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `util/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 12
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 12
+
+ **Key Entities:**
+
+ - 📦 **AutocompleteLruCacheInMem** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **ast** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **completionTestUtils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **processSingleLineCompletion** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **textSimilarity** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `diff/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 13
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 13
+
+ **Key Entities:**
+
+ - 📦 **myers** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **streamDiff.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **util** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `fetch/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **stream** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `indexing/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **ignore** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `llm/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 27
+ - 📄 **Files:** 4
+ - 📦 **Entities:** 27
+
+ **Key Entities:**
+
+ - 📦 **countTokens** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **llamaTokenizer** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **messages** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **openaiTypeConverters** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `model-info/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `test/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **testDir** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `util/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 41
+ - 📄 **Files:** 10
+ - 📦 **Entities:** 41
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **lcs** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **logger** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **merge** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **messageContent** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **pathToUri** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **paths** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **ranges** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **treeSitter** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **uri** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 5
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **VSCodeIde** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `autocomplete/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 13
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 13
+
+ **Key Entities:**
+
+ - 📦 **lsp** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `shims/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **FileIgnoreController** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **i18n** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `cli-backend/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 7
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 7
+
+ **Key Entities:**
+
+ - 📦 **connection-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **server-manager** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **server-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `i18n/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `code-actions/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 11
+ - 📄 **Files:** 4
+ - 📦 **Entities:** 11
+
+ **Key Entities:**
+
+ - 📦 **editor-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **register-code-actions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **register-terminal-actions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **support-prompt** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `commit-message/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `marketplace/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 15
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 15
+
+ **Key Entities:**
+
+ - 📦 **api** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **installer** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **paths** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `telemetry/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **errors** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **telemetry-proxy-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `shared/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **custom-provider** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **provider-model** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `tests/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 7
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 7
+
+ **Key Entities:**
+
+ - 📦 **permission-dock-dropdown.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **visual-regression.spec** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `unit/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 90
+ - 📄 **Files:** 27
+ - 📦 **Entities:** 90
+
+ **Key Entities:**
+
+ - 📦 **agent-manager-arch.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **agent-manager-diff-state.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **agent-manager-i18n-split.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **agent-manager-i18n.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **autocomplete-inline-utils.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **code-action-provider.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **connection-utils.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **date.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **extension-arch.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **file-ignore-controller.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `agent-manager/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 41
+ - 📄 **Files:** 9
+ - 📦 **Entities:** 41
+
+ **Key Entities:**
+
+ - 📦 **apply-conflicts** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **diff-open-policy** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **diff-state** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **file-tree-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **multi-model-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **navigate** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **review-annotations** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **review-comments** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **tab-order** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `chat/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 11
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 11
+
+ **Key Entities:**
+
+ - 📦 **permission-dock-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **prompt-input-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **question-dock-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `marketplace/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `settings/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **provider-catalog** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **provider-visibility** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `shared/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 7
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 7
+
+ **Key Entities:**
+
+ - 📦 **model-selector-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `context/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 20
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 20
+
+ **Key Entities:**
+
+ - 📦 **language-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **model-selection** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **permission-queue** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **provider-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **session-queue** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **session-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `hooks/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 25
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 25
+
+ **Key Entities:**
+
+ - 📦 **file-mention-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **image-attachments-utils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **useFileMention** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **useImageAttachments** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **usePromptHistory** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **useSlashCommand** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `types/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **messages** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `utils/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 23
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 23
+
+ **Key Entities:**
+
+ - 📦 **date** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **errorUtils** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **id** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **provider-action** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **qrcode** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+ - 📦 **review-comment-markdown** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/kilo-vs...
+
+ ### 📁 `script/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **schema** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `acp/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 15
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 15
+
+ **Key Entities:**
+
+ - 📦 **agent** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `agent/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **agent** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `auth/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 5
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `bun/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **registry** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `bus/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **bus-event** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `cli/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 18
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 18
+
+ **Key Entities:**
+
+ - 📦 **bootstrap** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **error** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **network** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **ui** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **upgrade** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `cmd/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 68
+ - 📄 **Files:** 10
+ - 📦 **Entities:** 68
+
+ **Key Entities:**
+
+ - 📦 **auth** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **cmd** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **import** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **mcp** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **models** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **run** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **session** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **stats** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **uninstall** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **web** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `debug/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 5
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **agent** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `tui/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 12
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 12
+
+ **Key Entities:**
+
+ - 📦 **thread** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **win32** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **worker** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `component/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **textarea-keybindings** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `context/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **directory** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `ui/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **spinner** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `util/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 27
+ - 📄 **Files:** 7
+ - 📦 **Entities:** 27
+
+ **Key Entities:**
+
+ - 📦 **clipboard** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **editor** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **markdown** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **selection** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **signal** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **terminal** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **transcript** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `command/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `commit-message/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 12
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 12
+
+ **Key Entities:**
+
+ - 📦 **generate** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **git-context** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `__tests__/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **git-context.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `config/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 54
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 54
+
+ **Key Entities:**
+
+ - 📦 **config** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **markdown** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **migrate-tui-config** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **paths** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **tui** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `control/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `control-plane/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **sse** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **workspace** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **workspace-router-middleware** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `adaptors/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `workspace-server/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 5
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **routes** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **server** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `env/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 5
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `file/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 28
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 28
+
+ **Key Entities:**
+
+ - 📦 **ignore** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **ripgrep** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **time** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **watcher** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `flag/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **flag** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `format/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 5
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `id/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **id** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `ide/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `installation/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `kilo-sessions/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 31
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 31
+
+ **Key Entities:**
+
+ - 📦 **inflight-cache** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **ingest-queue** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **kilo-sessions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `kilocode/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 90
+ - 📄 **Files:** 18
+ - 📦 **Entities:** 90
+
+ **Key Entities:**
+
+ - 📦 **bash-hierarchy** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **bell** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **cloud-session** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **config-injector** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **editor-context** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **enhance-prompt** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **ignore-migrator** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **kilo-errors** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **mcp-migrator** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **modes-migrator** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `permission/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **drain** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `review/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 31
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 31
+
+ **Key Entities:**
+
+ - 📦 **command** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **review** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **worktree-diff** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `lsp/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 26
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 26
+
+ **Key Entities:**
+
+ - 📦 **client** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **server** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `mcp/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 46
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 46
+
+ **Key Entities:**
+
+ - 📦 **auth** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **oauth-callback** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `patch/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 17
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 17
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `permission/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 17
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 17
+
+ **Key Entities:**
+
+ - 📦 **arity** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **next** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `plugin/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 23
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 23
+
+ **Key Entities:**
+
+ - 📦 **codex** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **copilot** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `project/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 27
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 27
+
+ **Key Entities:**
+
+ - 📦 **bootstrap** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **instance** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **project** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **state** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **vcs** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `provider/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 57
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 57
+
+ **Key Entities:**
+
+ - 📦 **auth** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **error** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **model-cache** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **models** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **provider** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **transform** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `copilot/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **copilot-provider** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `chat/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 4
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **convert-to-openai-compatible-chat-messages** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **get-response-metadata** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **map-openai-compatible-finish-reason** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **openai-compatible-prepare-tools** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `responses/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 26
+ - 📄 **Files:** 4
+ - 📦 **Entities:** 26
+
+ **Key Entities:**
+
+ - 📦 **convert-to-openai-responses-input** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **map-openai-responses-finish-reason** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **openai-responses-language-model** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **openai-responses-prepare-tools** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `pty/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `question/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 5
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `scheduler/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `server/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **error** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **mdns** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **server** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `routes/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **global** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **tui** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `session/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 75
+ - 📄 **Files:** 13
+ - 📦 **Entities:** 75
+
+ **Key Entities:**
+
+ - 📦 **compaction** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **instruction** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **llm** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **message-v2** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **processor** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **prompt** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **retry** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **revert** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **status** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `share/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **share-next** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `shell/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **shell** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `skill/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 9
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 9
+
+ **Key Entities:**
+
+ - 📦 **discovery** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **skill** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `snapshot/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 13
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 13
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `storage/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 19
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 19
+
+ **Key Entities:**
+
+ - 📦 **db** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **json-migration** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **storage** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `tool/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 37
+ - 📄 **Files:** 12
+ - 📦 **Entities:** 37
+
+ **Key Entities:**
+
+ - 📦 **diagnostics** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **edit** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **external-directory** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **ls** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **plan** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **question** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **read** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **registry** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **task** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **tool** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `util/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 109
+ - 📄 **Files:** 28
+ - 📦 **Entities:** 109
+
+ **Key Entities:**
+
+ - 📦 **abort** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **archive** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **color** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **context** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **defer** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **eventloop** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **filesystem** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **fn** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **format** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **git** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `worktree/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 18
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 18
+
+ **Key Entities:**
+
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `acp/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **event-subscription.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `agent/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **agent.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `cli/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **plugin-auth-picker.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `tui/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **thread.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `config/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **config.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `control-plane/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **session-proxy-middleware.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **sse.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `fixture/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 8
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 8
+
+ **Key Entities:**
+
+ - 📦 **db** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **fixture** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `lsp/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **fake-lsp-server** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `kilo-sessions/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **inflight-cache.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **ingest-queue.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `kilocode/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 33
+ - 📄 **Files:** 11
+ - 📦 **Entities:** 33
+
+ **Key Entities:**
+
+ - 📦 **bash-hierarchy.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **kilo-errors.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **local-model.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **patch-jsonc.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **paths.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **plan-exit-detection.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **plan-followup.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **rules-migrator.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **workflows-migrator.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **worktree-diff-summary.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `lsp/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **client.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `plugin/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **codex.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `project/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **project.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `copilot/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 4
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 4
+
+ **Key Entities:**
+
+ - 📦 **copilot-chat-model.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `session/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 20
+ - 📄 **Files:** 6
+ - 📦 **Entities:** 20
+
+ **Key Entities:**
+
+ - 📦 **compaction.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **llm.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **message-v2.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **prompt.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **retry.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **structured-output-integration.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `skill/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **skill.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `snapshot/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **snapshot.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `storage/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 5
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 5
+
+ **Key Entities:**
+
+ - 📦 **json-migration.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `tool/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **webfetch.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `util/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **lock.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **process.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+ - 📦 **which.test** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/opencod...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **tool** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/plugin/...
+
+ ### 📁 `script/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **publish** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/sdk/js/...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **client** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/sdk/js/...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/sdk/js/...
+ - 📦 **server** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/sdk/js/...
+
+ ### 📁 `v2/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **client** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/sdk/js/...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/sdk/js/...
+ - 📦 **server** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/sdk/js/...
+
+ ### 📁 `core/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **utils.gen** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/sdk/js/...
+
+ ### 📁 `.storybook/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **theme-tool** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+
+ ### 📁 `context/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 30
+ - 📄 **Files:** 12
+ - 📦 **Entities:** 30
+
+ **Key Entities:**
+
+ - 📦 **command** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **comments** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **file** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **global-sync** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **language** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **layout** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **local** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **permission** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **platform** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+ - 📦 **prompt** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+
+ ### 📁 `hooks/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **use-providers** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/storybo...
+
+ ### 📁 `ui/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **vite.config** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/vite...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 3
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 3
+
+ **Key Entities:**
+
+ - 📦 **file-path** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+
+ ### 📁 `components/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **line-comment-styles** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **session-review-search** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+
+ ### 📁 `pierre/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 67
+ - 📄 **Files:** 11
+ - 📦 **Entities:** 67
+
+ **Key Entities:**
+
+ - 📦 **comment-hover** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **commented-lines** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **diff-selection** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **file-find** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **file-runtime** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **file-selection** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **index** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **media** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **selection-bridge** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **virtualizer** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+
+ ### 📁 `storybook/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **fixtures** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+
+ ### 📁 `theme/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 37
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 37
+
+ **Key Entities:**
+
+ - 📦 **color** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **loader** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+ - 📦 **resolve** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/ui/src/...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 33
+ - 📄 **Files:** 10
+ - 📦 **Entities:** 33
+
+ **Key Entities:**
+
+ - 📦 **array** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **binary** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **encode** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **fn** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **identifier** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **iife** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **lazy** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **path** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **retry** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+ - 📦 **slug** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/packages/util/sr...
+
+ ### 📁 `script/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 25
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 25
+
+ **Key Entities:**
+
+ - 📦 **beta** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/beta.ts
+ - 📦 **changelog** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/changelog...
+ - 📦 **duplicate-pr** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/duplicate...
+ - 📦 **stats** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/stats.ts
+ - 📦 **sync-zed** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/sync-zed....
+
+ ### 📁 `upstream/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 10
+ - 📄 **Files:** 3
+ - 📦 **Entities:** 10
+
+ **Key Entities:**
+
+ - 📦 **analyze** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **list-versions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **merge** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+
+ ### 📁 `codemods/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 7
+ - 📄 **Files:** 2
+ - 📦 **Entities:** 7
+
+ **Key Entities:**
+
+ - 📦 **transform-imports** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **transform-strings** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+
+ ### 📁 `transforms/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 74
+ - 📄 **Files:** 12
+ - 📦 **Entities:** 74
+
+ **Key Entities:**
+
+ - 📦 **keep-ours** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **lock-files** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **package-names** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **preserve-versions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **skip-files** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **transform-extensions** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **transform-i18n** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **transform-package-json** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **transform-scripts** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **transform-take-theirs** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+
+ ### 📁 `utils/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 66
+ - 📄 **Files:** 5
+ - 📦 **Entities:** 66
+
+ **Key Entities:**
+
+ - 📦 **config** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **git** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **logger** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **report** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+ - 📦 **version** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/script/upstream/...
+
+ ### 📁 `vscode/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 2
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 2
+
+ **Key Entities:**
+
+ - 📦 **esbuild** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/sdks/vscode/esbu...
+
+ ### 📁 `src/`
+
+ - 🏗️ **Layers:** Unknown
+ - 📊 **Tiers:** TRIVIAL: 6
+ - 📄 **Files:** 1
+ - 📦 **Entities:** 6
+
+ **Key Entities:**
+
+ - 📦 **extension** (Module) `[TRIVIAL]`
+ - Auto-generated module for research/kilocode/sdks/vscode/src/...
+
### 📁 `root/`
-- 🏗️ **Layers:** DevOps/Tooling, Unknown
-- 📊 **Tiers:** CRITICAL: 11, STANDARD: 18, TRIVIAL: 13
+- 🏗️ **Layers:** DevOps/Tooling
+- 📊 **Tiers:** CRITICAL: 11, STANDARD: 18, TRIVIAL: 14
- 📄 **Files:** 2
-- 📦 **Entities:** 42
+- 📦 **Entities:** 43
**Key Entities:**
@@ -2092,16 +5493,17 @@
- Severity levels for compliance issues.
- ℂ **Tier** (Class) `[TRIVIAL]`
- Legacy tier buckets retained for backward-compatible reporti...
+ - 📦 **MergeSpec** (Module) `[TRIVIAL]`
+ - Utility to merge specs
- 📦 **generate_semantic_map** (Module)
- Scans the codebase to generate a Semantic Map, Module Map, a...
- 📦 **merge_spec** (Module) `[TRIVIAL]`
- - Auto-generated module for merge_spec.py
+ - Utility script for merge_spec
## Cross-Module Dependencies
```mermaid
graph TD
- src-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|CALLS|backend
@@ -2112,7 +5514,6 @@ graph TD
routes-->|CALLS|backend
routes-->|USES|backend
routes-->|USES|backend
- routes-->|USES|backend
routes-->|CALLS|backend
routes-->|CALLS|backend
routes-->|DEPENDS_ON|backend
@@ -2120,23 +5521,7 @@ graph TD
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|USES|backend
- routes-->|USES|backend
routes-->|CALLS|backend
- routes-->|CALLS|backend
- routes-->|CALLS|backend
- routes-->|CALLS|backend
- routes-->|CALLS|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|CALLS|backend
@@ -2150,70 +5535,17 @@ graph TD
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|DEPENDS_ON|backend
- routes-->|CALLS|backend
- __tests__-->|TESTS|backend
- __tests__-->|VERIFIES|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
__tests__-->|DEPENDS_ON|backend
- __tests__-->|VERIFIES|backend
+ __tests__-->|DEPENDS_ON|backend
+ __tests__-->|DEPENDS_ON|backend
+ __tests__-->|DEPENDS_ON|backend
__tests__-->|DEPENDS_ON|backend
__tests__-->|VERIFIES|backend
core-->|DEPENDS_ON|backend
core-->|DEPENDS_ON|backend
- core-->|USES|backend
- core-->|USES|backend
- core-->|DEPENDS_ON|backend
- core-->|DEPENDS_ON|backend
- core-->|DEPENDS_ON|backend
- core-->|DEPENDS_ON|backend
- core-->|DEPENDS_ON|backend
- core-->|DEPENDS_ON|backend
- core-->|DEPENDS_ON|backend
- core-->|INHERITS|backend
- core-->|DEPENDS_ON|backend
- core-->|CALLS|backend
- core-->|DEPENDS_ON|backend
- core-->|DEPENDS_ON|backend
- __tests__-->|TESTS|backend
- auth-->|USES|backend
- auth-->|USES|backend
- auth-->|USES|backend
- migration-->|DEPENDS_ON|backend
- migration-->|DEPENDS_ON|backend
- migration-->|DEPENDS_ON|backend
- migration-->|DEPENDS_ON|backend
- migration-->|DEPENDS_ON|backend
- migration-->|DEPENDS_ON|backend
- migration-->|DISPATCHES|backend
- task_manager-->|USED_BY|backend
- task_manager-->|USED_BY|backend
- task_manager-->|USED_BY|backend
task_manager-->|DEPENDS_ON|backend
utils-->|DEPENDS_ON|backend
utils-->|DEPENDS_ON|backend
- utils-->|CALLS|backend
- utils-->|CALLS|backend
- utils-->|DEPENDS_ON|backend
- utils-->|DEPENDS_ON|backend
- utils-->|DEPENDS_ON|backend
- models-->|DEPENDS_ON|backend
- models-->|INHERITS_FROM|backend
- models-->|DEPENDS_ON|backend
- models-->|DEPENDS_ON|backend
- models-->|USED_BY|backend
- __tests__-->|TESTS|backend
llm_analysis-->|IMPLEMENTS|backend
llm_analysis-->|IMPLEMENTS|backend
storage-->|DEPENDS_ON|backend
@@ -2225,9 +5557,6 @@ graph TD
scripts-->|READS_FROM|backend
scripts-->|USES|backend
scripts-->|USES|backend
- scripts-->|CALLS|backend
- scripts-->|USES|backend
- scripts-->|USES|backend
scripts-->|USES|backend
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
@@ -2236,8 +5565,8 @@ graph TD
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
- services-->|CALLS|backend
- services-->|CALLS|backend
+ services-->|DEPENDS_ON|backend
+ services-->|DEPENDS_ON|backend
services-->|CALLS|backend
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
@@ -2248,7 +5577,9 @@ graph TD
services-->|DEPENDS_ON|backend
services-->|CALLS|backend
services-->|CALLS|backend
- services-->|CALLS|backend
+ services-->|BINDS_TO|backend
+ services-->|DEPENDS_ON|backend
+ services-->|DEPENDS_ON|backend
services-->|CALLS|backend
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
@@ -2256,20 +5587,14 @@ graph TD
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
- services-->|DEPENDS_ON|backend
- services-->|DEPENDS_ON|backend
+ services-->|CALLS|backend
services-->|DEPENDS_ON|backend
services-->|USED_BY|backend
services-->|USED_BY|backend
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
- services-->|DEPENDS_ON|backend
- services-->|DEPENDS_ON|backend
- __tests__-->|TESTS|backend
__tests__-->|DEPENDS_ON|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
clean_release-->|DEPENDS_ON|backend
clean_release-->|DEPENDS_ON|backend
clean_release-->|DEPENDS_ON|backend
@@ -2305,12 +5630,7 @@ graph TD
clean_release-->|DEPENDS_ON|backend
clean_release-->|DEPENDS_ON|backend
clean_release-->|DEPENDS_ON|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
__tests__-->|VERIFIES|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
__tests__-->|DEPENDS_ON|backend
stages-->|IMPLEMENTS|backend
stages-->|DEPENDS_ON|backend
@@ -2332,69 +5652,31 @@ graph TD
reports-->|DEPENDS_ON|backend
reports-->|DEPENDS_ON|backend
reports-->|DEPENDS_ON|backend
- reports-->|DEPENDS_ON|backend
- __tests__-->|TESTS|backend
- __tests__-->|TESTS|backend
- tests-->|TESTS|backend
- core-->|TESTS|backend
- core-->|VERIFIES|backend
- core-->|VERIFIES|backend
migration-->|VERIFIES|backend
- migration-->|VERIFIES|backend
- scripts-->|TESTS|backend
- scripts-->|TESTS|backend
- clean_release-->|TESTS|backend
- clean_release-->|TESTS|backend
clean_release-->|DEPENDS_ON|backend
- clean_release-->|DEPENDS_ON|backend
- clean_release-->|DEPENDS_ON|backend
- clean_release-->|DEPENDS_ON|backend
- clean_release-->|TESTS|backend
- clean_release-->|TESTS|backend
+ dataset_review-->|DEPENDS_ON|backend
components-->|USED_BY|routes
components-->|USES|lib
- components-->|USES|services
- components-->|USES|tasks
components-->|USED_BY|routes
components-->|USES|lib
- components-->|USES|lib
- components-->|DEPENDS_ON|lib
components-->|DEPENDS_ON|lib
__tests__-->|VERIFIES|components
- git-->|CALLS|services
- __tests__-->|VERIFIES|components
llm-->|DEPENDS_ON|backend
- llm-->|DEPENDS_ON|backend
- __tests__-->|VERIFIES|components
- tasks-->|USES|components
- tasks-->|USES|components
tools-->|USES|services
tools-->|USES|services
tools-->|USES|services
tools-->|USES|services
tools-->|USES|services
__tests__-->|TESTS|lib
- __tests__-->|VERIFIES|lib
- __tests__-->|VERIFIES|lib
- __tests__-->|TESTS|lib
- reports-->|DEPENDS_ON|lib
- reports-->|DEPENDS_ON|lib
- reports-->|DEPENDS_ON|lib
- reports-->|DEPENDS_ON|lib
- reports-->|DEPENDS_ON|lib
__tests__-->|TESTS|routes
__tests__-->|TESTS|routes
__tests__-->|TESTS|lib
__tests__-->|TESTS|lib
- __tests__-->|TESTS|lib
__tests__-->|TESTS|routes
- pages-->|DEPENDS_ON|lib
- llm-->|CALLS|components
__tests__-->|TESTS|routes
__tests__-->|VERIFIES|routes
__tests__-->|TESTS|routes
__tests__-->|TESTS|routes
- reports-->|DEPENDS_ON|lib
- reports-->|DEPENDS_ON|lib
+ fixtures-->|DEPENDS_ON|lib
[taskId]-->|VERIFIES|routes
```
diff --git a/.ai/PROJECT_MAP БОЛЬШАЯ НЕ СМОТРИ В МЕНЯ.md b/.ai/PROJECT_MAP БОЛЬШАЯ НЕ СМОТРИ В МЕНЯ.md
deleted file mode 100644
index f3bd74b6..00000000
--- a/.ai/PROJECT_MAP БОЛЬШАЯ НЕ СМОТРИ В МЕНЯ.md
+++ /dev/null
@@ -1,7800 +0,0 @@
-# Project Semantic Map
-
-> Compressed view for AI Context. Generated automatically.
-
-- 📦 **merge_spec** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for merge_spec.py
- - 🏗️ Layer: Unknown
- - ƒ **merge_specs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **generate_semantic_map** (`Module`)
- - 📝 Scans the codebase to generate a Semantic Map, Module Map, and Compliance Report based on the System Standard.
- - 🏗️ Layer: DevOps/Tooling
- - 🔒 Invariant: All DEF anchors must have matching closing anchors; TIER determines validation strictness.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Mock init for self-containment.
- - ƒ **__enter__** (`Function`) `[TRIVIAL]`
- - 📝 Mock enter.
- - ƒ **__exit__** (`Function`) `[TRIVIAL]`
- - 📝 Mock exit.
- - ℂ **Tier** (`Class`) `[TRIVIAL]`
- - 📝 Legacy tier buckets retained for backward-compatible reporting.
- - ℂ **Complexity** (`Class`) `[TRIVIAL]`
- - 📝 Adaptive semantic complexity scale used for validation strictness.
- - ℂ **Severity** (`Class`) `[TRIVIAL]`
- - 📝 Severity levels for compliance issues.
- - ℂ **ComplianceIssue** (`Class`) `[TRIVIAL]`
- - 📝 Represents a single compliance issue with severity.
- - ℂ **SemanticEntity** (`Class`) `[CRITICAL]`
- - 📝 Represents a code entity (Module, Function, Component) found during parsing.
- - 🔒 Invariant: start_line is always set; end_line is set upon closure; complexity defaults to 1 unless explicitly raised.
- - ƒ **__init__** (`Function`)
- - 📝 Initializes a new SemanticEntity instance.
- - ƒ **has_explicit_complexity** (`Function`) `[TRIVIAL]`
- - 📝 Returns whether the entity explicitly declares complexity metadata.
- - ƒ **get_complexity** (`Function`) `[TRIVIAL]`
- - 📝 Returns effective complexity with backward compatibility for legacy tiers.
- - ƒ **to_dict** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **collect_recursive** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **DashboardTypes** (`Module`) `[TRIVIAL]`
- - 📝 TypeScript interfaces for Dashboard entities
- - 🏗️ Layer: Domain
-- 🧩 **Counter** (`Component`) `[TRIVIAL]`
- - 📝 Simple counter demo component
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `state`
-- 📦 **stores_module** (`Module`)
- - 📝 Global state management using Svelte stores.
- - 🏗️ Layer: UI-State
- - 📦 **plugins** (`Data`) `[TRIVIAL]`
- - 📝 Store for the list of available plugins.
- - 📦 **tasks** (`Data`) `[TRIVIAL]`
- - 📝 Store for the list of tasks.
- - 📦 **selectedPlugin** (`Data`) `[TRIVIAL]`
- - 📝 Store for the currently selected plugin.
- - 📦 **selectedTask** (`Data`) `[TRIVIAL]`
- - 📝 Store for the currently selected task.
- - 📦 **currentPage** (`Data`) `[TRIVIAL]`
- - 📝 Store for the current page.
- - 📦 **taskLogs** (`Data`) `[TRIVIAL]`
- - 📝 Store for the logs of the currently selected task.
- - ƒ **fetchPlugins** (`Function`) `[TRIVIAL]`
- - 📝 Fetches plugins from the API and updates the plugins store.
- - ƒ **fetchTasks** (`Function`) `[TRIVIAL]`
- - 📝 Fetches tasks from the API and updates the tasks store.
-- 📦 **toasts_module** (`Module`) `[TRIVIAL]`
- - 📝 Manages toast notifications using a Svelte writable store.
- - 🏗️ Layer: UI-State
- - 📦 **toasts** (`Data`) `[TRIVIAL]`
- - 📝 Writable store containing the list of active toasts.
- - ƒ **addToast** (`Function`) `[TRIVIAL]`
- - 📝 Adds a new toast message.
- - ƒ **removeToast** (`Function`) `[TRIVIAL]`
- - 📝 Removes a toast message by ID.
- - ƒ **buildToastKey** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **shouldSkipDuplicateToast** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **api_module** (`Module`)
- - 📝 Handles all communication with the backend API.
- - 🏗️ Layer: Infra-API
- - ƒ **buildApiError** (`Function`) `[TRIVIAL]`
- - 📝 Creates a normalized Error object for failed API responses.
- - ƒ **notifyApiError** (`Function`) `[TRIVIAL]`
- - 📝 Shows toast for API errors with explicit handling of critical statuses.
- - ƒ **shouldSuppressApiErrorToast** (`Function`) `[TRIVIAL]`
- - 📝 Avoid noisy toasts for expected non-critical API failures.
- - ƒ **getWsUrl** (`Function`) `[TRIVIAL]`
- - 📝 Returns the WebSocket URL for a specific task, with fallback logic.
- - ƒ **getAuthHeaders** (`Function`) `[TRIVIAL]`
- - 📝 Returns headers with Authorization if token exists.
- - ƒ **fetchApi** (`Function`) `[TRIVIAL]`
- - 📝 Generic GET request wrapper.
- - ƒ **fetchApiBlob** (`Function`) `[TRIVIAL]`
- - 📝 Generic GET wrapper for binary payloads.
- - ƒ **postApi** (`Function`) `[TRIVIAL]`
- - 📝 Generic POST request wrapper.
- - ƒ **requestApi** (`Function`) `[TRIVIAL]`
- - 📝 Generic request wrapper.
- - 📦 **api** (`Data`) `[TRIVIAL]`
- - 📝 API client object with specific methods.
-- 📦 **Utils** (`Module`) `[TRIVIAL]`
- - 📝 General utility functions (class merging)
- - 🏗️ Layer: Infra
- - ƒ **cn** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🗄️ **authStore** (`Store`)
- - 📝 Manages the global authentication state on the frontend.
- - 🏗️ Layer: Feature
- - 🔗 BINDS_TO -> `Navbar, ProtectedRoute`
- - 📦 **AuthState** (`Interface`) `[TRIVIAL]`
- - 📝 Defines the structure of the authentication state.
- - ƒ **createAuthStore** (`Function`) `[TRIVIAL]`
- - 📝 Creates and configures the auth store with helper methods.
- - ƒ **setToken** (`Function`) `[TRIVIAL]`
- - 📝 Updates the store with a new JWT token.
- - ƒ **setUser** (`Function`) `[TRIVIAL]`
- - 📝 Sets the current user profile data.
- - ƒ **logout** (`Function`) `[TRIVIAL]`
- - 📝 Clears authentication state and storage.
- - ƒ **setLoading** (`Function`) `[TRIVIAL]`
- - 📝 Updates the loading state.
-- 📦 **frontend.src.lib.auth.permissions** (`Module`)
- - 📝 Shared frontend RBAC utilities for route guards and menu visibility.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Admin role always bypasses explicit permission checks.
- - ƒ **normalizePermissionRequirement** (`Function`) `[TRIVIAL]`
- - 📝 Convert permission requirement string to canonical resource/action tuple.
- - ƒ **isAdminUser** (`Function`) `[TRIVIAL]`
- - 📝 Determine whether user has Admin role.
- - ƒ **hasPermission** (`Function`) `[TRIVIAL]`
- - 📝 Check if user has a required resource/action permission.
- - ƒ **normalizeAction** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.lib.auth.__tests__.permissions** (`Module`)
- - 📝 Verifies frontend RBAC permission parsing and access checks.
- - 🏗️ Layer: UI (Tests)
-- 📦 **Debounce** (`Module`) `[TRIVIAL]`
- - 📝 Debounce utility for limiting function execution rate
- - 🏗️ Layer: Infra
- - ƒ **debounce** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🗄️ **health_store** (`Store`)
- - 📝 Manage dashboard health summary state and failing counts for UI badges.
- - 🏗️ Layer: UI
- - 🔗 DEPENDS_ON -> `api.getHealthSummary`
-- 📦 **health** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/stores/health.js
- - 🏗️ Layer: Unknown
- - ƒ **createHealthStore** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refresh** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🗄️ **assistantChat** (`Store`)
- - 📝 Control assistant chat panel visibility and active conversation binding.
- - 🏗️ Layer: UI
- - 🔒 Invariant: conversationId persists while panel toggles unless explicitly reset.
- - 🔗 BINDS_TO -> `AssistantChatPanel`
- - ƒ **toggleAssistantChat** (`Function`) `[TRIVIAL]`
- - 📝 Toggle assistant panel visibility.
- - ƒ **openAssistantChat** (`Function`) `[TRIVIAL]`
- - 📝 Open assistant panel.
- - ƒ **closeAssistantChat** (`Function`) `[TRIVIAL]`
- - 📝 Close assistant panel.
- - ƒ **setAssistantConversationId** (`Function`) `[TRIVIAL]`
- - 📝 Bind current conversation id in UI state.
-- 🗄️ **taskDrawer** (`Store`) `[CRITICAL]`
- - 📝 Manage Task Drawer visibility and resource-to-task mapping
- - 🏗️ Layer: UI
- - 🔒 Invariant: resourceTaskMap always reflects current task associations
-- 📦 **taskDrawer** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/stores/taskDrawer.js
- - 🏗️ Layer: Unknown
- - ƒ **readAutoOpenTaskDrawerPreference** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openDrawerForTask** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **setTaskDrawerAutoOpenPreference** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getTaskDrawerAutoOpenPreference** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openDrawerForTaskIfPreferred** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openDrawer** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **closeDrawer** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **updateResourceTask** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getTaskForResource** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🗄️ **sidebar** (`Store`)
- - 📝 Manage sidebar visibility and navigation state
- - 🏗️ Layer: UI
- - 🔒 Invariant: isExpanded state is always synced with localStorage
-- 📦 **sidebar** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/stores/sidebar.js
- - 🏗️ Layer: Unknown
- - ƒ **toggleSidebar** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **setActiveItem** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **setMobileOpen** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **closeMobile** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toggleMobileSidebar** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🗄️ **environmentContext** (`Store`)
- - 📝 Global selected environment context for navigation and safety cues.
- - 🏗️ Layer: UI-State
-- 📦 **environmentContext** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/stores/environmentContext.js
- - 🏗️ Layer: Unknown
- - ƒ **getStoredSelectedEnvId** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **persistSelectedEnvId** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **hasAuthToken** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolveSelectedEnvId** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **applySelectedEnvId** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refreshEnvironmentContext** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **initializeEnvironmentContext** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **setSelectedEnvironment** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🗄️ **activity** (`Store`)
- - 📝 Track active task count for navbar indicator
- - 🏗️ Layer: UI
- - 🔗 DEPENDS_ON -> `WebSocket connection, taskDrawer store`
-- 📦 **frontend.src.lib.stores.__tests__.test_sidebar** (`Module`)
- - 📝 Unit tests for sidebar store
- - 🏗️ Layer: UI
-- 📦 **frontend.src.lib.stores.__tests__.sidebar** (`Module`)
- - 📝 Unit tests for sidebar store
- - 🏗️ Layer: Domain (Tests)
- - 🔒 Invariant: Sidebar store transitions must be deterministic across desktop/mobile toggles.
- - ƒ **test_sidebar_initial_state** (`Function`) `[TRIVIAL]`
- - 📝 Verify initial sidebar store values when no persisted state is available.
- - ƒ **test_toggleSidebar** (`Function`) `[TRIVIAL]`
- - 📝 Verify desktop sidebar expansion toggles deterministically.
- - ƒ **test_setActiveItem** (`Function`) `[TRIVIAL]`
- - ƒ **test_mobile_functions** (`Function`) `[TRIVIAL]`
-- 📦 **frontend.src.lib.stores.__tests__.test_activity** (`Module`)
- - 📝 Unit tests for activity store
- - 🏗️ Layer: UI
- - 🔗 DEPENDS_ON -> `frontend.src.lib.stores.taskDrawer`
-- 📦 **setupTests** (`Module`)
- - 📝 Global test setup with mocks for SvelteKit modules
- - 🏗️ Layer: UI
-- 📦 **frontend.src.lib.stores.__tests__.test_taskDrawer** (`Module`)
- - 📝 Unit tests for task drawer store
- - 🏗️ Layer: UI
- - 🔒 Invariant: Store state transitions remain deterministic for open/close and task-status mapping.
-- 📦 **frontend.src.lib.stores.__tests__.assistantChat** (`Module`)
- - 📝 Validate assistant chat store visibility and conversation binding transitions.
- - 🏗️ Layer: UI Tests
- - 🔒 Invariant: Each test starts from default closed state.
- - 🔗 DEPENDS_ON -> `assistantChatStore`
- - ƒ **assistantChatStore_tests** (`Function`)
- - 📝 Group store unit scenarios for assistant panel behavior.
-- 📦 **navigation** (`Mock`) `[TRIVIAL]`
- - 📝 Mock for $app/navigation in tests
-- 📦 **stores** (`Mock`) `[TRIVIAL]`
- - 📝 Mock for $app/stores in tests
-- 📦 **environment** (`Mock`) `[TRIVIAL]`
- - 📝 Mock for $app/environment in tests
-- 📦 **mock_env_public** (`Module`)
- - 📝 Mock for $env/static/public SvelteKit module in vitest
- - 🏗️ Layer: UI (Tests)
-- 📦 **frontend.src.lib.api.reports** (`Module`) `[CRITICAL]`
- - 📝 Wrapper-based reports API client for list/detail retrieval without direct native fetch usage.
- - 🏗️ Layer: Infra
- - 🔒 Invariant: Uses existing api wrapper methods and returns structured errors for UI-state mapping.
- - 🔗 DEPENDS_ON -> `DEF:api_module`
- - ƒ **buildReportQueryString** (`Function`) `[TRIVIAL]`
- - 📝 Build query string for reports list endpoint from filter options.
- - ƒ **normalizeApiError** (`Function`) `[TRIVIAL]`
- - 📝 Convert unknown API exceptions into deterministic UI-consumable error objects.
- - ƒ **getReports** (`Function`) `[TRIVIAL]`
- - 📝 Fetch unified report list using existing request wrapper.
- - ƒ **getReportDetail** (`Function`) `[TRIVIAL]`
- - 📝 Fetch one report detail by report_id.
-- 📦 **frontend.src.lib.api.assistant** (`Module`)
- - 📝 API client wrapper for assistant chat, confirmation actions, and history retrieval.
- - 🏗️ Layer: Infra-API
- - 🔒 Invariant: All assistant requests must use requestApi wrapper (no native fetch).
- - 🔗 DEPENDS_ON -> `frontend.src.lib.api.api_module`
- - ƒ **sendAssistantMessage** (`Function`) `[TRIVIAL]`
- - 📝 Send a user message to assistant orchestrator endpoint.
- - ƒ **confirmAssistantOperation** (`Function`) `[TRIVIAL]`
- - 📝 Confirm a pending risky assistant operation.
- - ƒ **cancelAssistantOperation** (`Function`) `[TRIVIAL]`
- - 📝 Cancel a pending risky assistant operation.
- - ƒ **getAssistantHistory** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve paginated assistant conversation history.
- - ƒ **getAssistantConversations** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve paginated conversation list for assistant sidebar/history switcher.
- - ƒ **deleteAssistantConversation** (`Function`) `[TRIVIAL]`
- - 📝 Soft-delete or hard-delete a conversation.
-- 📦 **frontend.src.lib.api.__tests__.reports_api** (`Module`)
- - 📝 Unit tests for reports API client functions: query string building, error normalization, and fetch wrappers.
- - 🏗️ Layer: Infra (Tests)
- - 🔒 Invariant: Pure functions produce deterministic output. Async wrappers propagate structured errors.
- - ℂ **TestBuildReportQueryString** (`Class`) `[TRIVIAL]`
- - 📝 Validate query string construction from filter options.
- - ℂ **TestNormalizeApiError** (`Class`) `[TRIVIAL]`
- - 📝 Validate error normalization for UI-state mapping.
- - ℂ **TestGetReportsAsync** (`Class`) `[TRIVIAL]`
- - 📝 Validate getReports and getReportDetail with mocked api.fetchApi.
-- 🧩 **Select** (`Component`) `[TRIVIAL]`
- - 📝 Standardized dropdown selection component.
- - 🏗️ Layer: Atom
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
-- 📦 **ui** (`Module`) `[TRIVIAL]`
- - 📝 Central export point for standardized UI components.
- - 🏗️ Layer: Atom
- - 🔒 Invariant: All components exported here must follow Semantic Protocol.
-- 🧩 **PageHeader** (`Component`) `[TRIVIAL]`
- - 📝 Standardized page header with title and action area.
- - 🏗️ Layer: Atom
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `props`
-- 🧩 **Card** (`Component`) `[TRIVIAL]`
- - 📝 Standardized container with padding and elevation.
- - 🏗️ Layer: Atom
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `props`
-- 🧩 **Button** (`Component`) `[TRIVIAL]`
- - 📝 Define component interface and default values (Svelte 5 Runes).
- - 🏗️ Layer: Atom
- - 🔒 Invariant: Supports accessible labels and keyboard navigation.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `props`
-- 🧩 **Input** (`Component`) `[TRIVIAL]`
- - 📝 Standardized text input component with label and error handling.
- - 🏗️ Layer: Atom
- - 🔒 Invariant: Consistent spacing and focus states.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
-- 🧩 **LanguageSwitcher** (`Component`) `[TRIVIAL]`
- - 📝 Dropdown component to switch between supported languages.
- - 🏗️ Layer: Atom
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `locale`
- - 🔗 BINDS_TO -> `i18n.locale`
-- 📦 **i18n** (`Module`)
- - 📝 Determines the starting locale.
- - 🏗️ Layer: Infra
- - 🔒 Invariant: Persistence is handled via LocalStorage.
- - 🔗 DEPENDS_ON -> `locales/ru.json`
- - 🔗 DEPENDS_ON -> `locales/en.json`
- - 🗄️ **locale** (`Store`) `[TRIVIAL]`
- - 📝 Holds the current active locale string.
- - 🗄️ **t** (`Store`) `[TRIVIAL]`
- - 📝 Derived store providing the translation dictionary.
- - ƒ **_** (`Function`) `[TRIVIAL]`
- - 📝 Get translation by key path.
-- 🧩 **AssistantChatPanel** (`Component`)
- - 📝 Slide-out assistant chat panel for natural language command execution and task tracking.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Risky operations are executed only through explicit confirm action.
- - ⬅️ READS_FROM `app`
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `state`
- - 🔗 BINDS_TO -> `assistantChatStore`
- - 🔗 CALLS -> `frontend.src.lib.api.assistant`
- - 🔗 DISPATCHES -> `taskDrawerStore`
- - ƒ **loadHistory** (`Function`) `[TRIVIAL]`
- - 📝 Load current conversation history when panel becomes visible.
- - ƒ **loadConversations** (`Function`) `[TRIVIAL]`
- - 📝 Load paginated conversation summaries for quick switching UI.
- - ƒ **removeConversation** (`Function`) `[TRIVIAL]`
- - 📝 Removes a conversation from the list and deletes it from the backend.
- - ƒ **loadOlderMessages** (`Function`) `[TRIVIAL]`
- - 📝 Lazy-load older messages for active conversation when user scrolls to top.
- - ƒ **appendLocalUserMessage** (`Function`) `[TRIVIAL]`
- - 📝 Add optimistic local user message before backend response.
- - ƒ **appendAssistantResponse** (`Function`) `[TRIVIAL]`
- - 📝 Normalize and append assistant response payload to chat list.
- - ƒ **handleSend** (`Function`) `[TRIVIAL]`
- - 📝 Submit user command to assistant orchestration API.
- - ƒ **selectConversation** (`Function`) `[TRIVIAL]`
- - 📝 Switch active chat context to selected conversation item.
- - ƒ **startNewConversation** (`Function`) `[TRIVIAL]`
- - 📝 Create local empty chat context that will be persisted on first message.
- - ƒ **handleAction** (`Function`) `[TRIVIAL]`
- - 📝 Execute assistant action button behavior (open task/reports, confirm, cancel).
- - ƒ **handleKeydown** (`Function`) `[TRIVIAL]`
- - 📝 Submit command by Enter while preserving multiline input with Shift+Enter.
- - ƒ **stateClass** (`Function`) `[TRIVIAL]`
- - 📝 Map assistant state to visual badge style class.
- - ƒ **handleHistoryScroll** (`Function`) `[TRIVIAL]`
- - 📝 Trigger lazy history fetch when user scroll reaches top boundary.
-- 📦 **AssistantChatPanel** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/assistant/AssistantChatPanel.svelte
- - 🏗️ Layer: Unknown
- - ƒ **buildConversationTitle** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **setConversationFilter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **formatConversationTime** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadLlmStatus** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.lib.components.assistant.__tests__.assistant_first_message_integration** (`Module`)
- - 📝 Verify first optimistic user message stays visible while a new conversation request is pending.
- - 🏗️ Layer: UI Tests
- - 🔒 Invariant: Starting a new conversation must not trigger history reload that overwrites the first local user message.
- - ƒ **assistant_first_message_tests** (`Function`)
- - 📝 Guard optimistic first-message UX against history reload race in new conversation flow.
-- 📦 **frontend.src.lib.components.assistant.__tests__.assistant_chat_integration** (`Module`)
- - 📝 Contract-level integration checks for assistant chat panel implementation and localization wiring.
- - 🏗️ Layer: UI Tests
- - 🔒 Invariant: Critical assistant UX states and action hooks remain present in component source.
- - ƒ **readJson** (`Function`) `[TRIVIAL]`
- - 📝 Read and parse JSON fixture file from disk.
- - ƒ **assistant_chat_contract_tests** (`Function`) `[TRIVIAL]`
- - 📝 Validate assistant chat component contract and locale integration without DOM runtime dependency.
-- 🧩 **HealthMatrix** (`Component`)
- - 📝 Visual grid/matrix representing the health status of dashboards.
- - 🏗️ Layer: UI/Component
- - ⬅️ READS_FROM `state`
- - ⬅️ READS_FROM `derived`
- - ⬅️ READS_FROM `lib`
-- 🧩 **PolicyForm** (`Component`)
- - 📝 Form for creating and editing validation policies.
- - 🏗️ Layer: UI/Component
- - ⬅️ READS_FROM `state`
- - ⬅️ READS_FROM `derived`
- - ➡️ WRITES_TO `props`
-- 📦 **PolicyForm** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/health/PolicyForm.svelte
- - 🏗️ Layer: Unknown
- - ƒ **getSafePolicy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getSafeEnvironments** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **buildFormData** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toggleDay** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **ReportCard** (`Component`)
- - 📝 Render one report with explicit textual type label and profile-driven visual variant.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Unknown task type always uses fallback profile.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `derived`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/components/reports/reportTypeProfiles.js`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/i18n/index.ts`
-- 📦 **ReportCard** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/reports/ReportCard.svelte
- - 🏗️ Layer: Unknown
- - ƒ **getStatusClass** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getStatusLabel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **formatDate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **onSelect** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **ReportsList** (`Component`)
- - 📝 Render unified list of normalized reports with canonical minimum fields.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Every rendered row shows task_type label, status, summary, and updated_at.
- - ➡️ WRITES_TO `props`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/i18n/index.ts`
-- 📦 **ReportsList** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/reports/ReportsList.svelte
- - 🏗️ Layer: Unknown
- - ƒ **handleSelect** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.lib.components.reports.reportTypeProfiles** (`Module`) `[CRITICAL]`
- - 📝 Deterministic mapping from report task_type to visual profile with one fallback.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Unknown type always resolves to fallback profile.
- - 🔗 DEPENDS_ON -> `frontend/src/lib/i18n/index.ts`
- - ƒ **getReportTypeProfile** (`Function`) `[TRIVIAL]`
- - 📝 Resolve visual profile by task type with guaranteed fallback.
-- 🧩 **ReportDetailPanel** (`Component`)
- - 📝 Display detailed report context with diagnostics and actionable recovery guidance.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Failed/partial reports surface actionable hints when available.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `props`
- - ⬅️ READS_FROM `t`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/i18n/index.ts`
-- 📦 **ReportDetailPanel** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/reports/ReportDetailPanel.svelte
- - 🏗️ Layer: Unknown
- - ƒ **notProvided** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **formatDate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.lib.components.reports.__tests__.reports_filter_performance** (`Module`)
- - 📝 Guard test for report filter responsiveness on moderate in-memory dataset.
- - 🏗️ Layer: UI (Tests)
- - ƒ **applyFilters** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **makeDataset** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.lib.components.reports.__tests__.reports_page.integration** (`Module`)
- - 📝 Integration-style checks for unified mixed-type reports rendering expectations.
- - 🏗️ Layer: UI (Tests)
- - 🔒 Invariant: Mixed fixture includes all supported report types in one list.
- - ƒ **collectVisibleTypeLabels** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.lib.components.reports.__tests__.report_type_profiles** (`Module`)
- - 📝 Validate report type profile mapping and unknown fallback behavior.
- - 🏗️ Layer: UI (Tests)
- - 🔒 Invariant: Unknown task_type always resolves to the fallback profile.
-- 📦 **frontend.src.lib.components.reports.__tests__.reports_list.ux** (`Module`)
- - 📝 Test ReportsList component iteration and event forwarding.
- - 🏗️ Layer: UI
-- 📦 **frontend.src.lib.components.reports.__tests__.report_card.ux** (`Module`)
- - 📝 Test UX states and transitions for ReportCard component
- - 🏗️ Layer: UI
- - 🔒 Invariant: Each test asserts at least one observable UX contract outcome.
-- 📦 **frontend.src.lib.components.reports.__tests__.report_detail.ux** (`Module`)
- - 📝 Test UX states and recovery for ReportDetailPanel component
- - 🏗️ Layer: UI
- - 🔒 Invariant: Detail UX tests keep placeholder-safe rendering and recovery visibility verifiable.
-- 📦 **frontend.src.lib.components.reports.__tests__.report_detail.integration** (`Module`)
- - 📝 Validate detail-panel behavior for failed reports and recovery guidance visibility.
- - 🏗️ Layer: UI (Tests)
- - 🔒 Invariant: Failed report detail exposes actionable next actions when available.
- - ƒ **buildFailedDetailFixture** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **reports.fixtures** (`Module`)
- - 📝 Shared frontend fixtures for unified reports states.
- - 🏗️ Layer: UI
-- 🧩 **Sidebar** (`Component`)
- - 📝 Persistent left sidebar with resource categories navigation
- - 🏗️ Layer: UI
- - 🔒 Invariant: Always shows active category and item
- - ⬅️ READS_FROM `app`
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `derived`
- - 🔗 BINDS_TO -> `sidebarStore`
-- 📦 **Sidebar** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/layout/Sidebar.svelte
- - 🏗️ Layer: Unknown
- - ƒ **withExpandedCategory** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toggleExpandedCategory** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleItemClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleCategoryToggle** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSubItemClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleToggleClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleOverlayClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **TopNavbar** (`Component`)
- - 📝 Unified top navigation bar with Logo, Search, Activity, and User menu
- - 🏗️ Layer: UI
- - 🔒 Invariant: Always visible on non-login pages
- - ⬅️ READS_FROM `app`
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `state`
- - 🔗 BINDS_TO -> `activityStore, authStore`
-- 📦 **TopNavbar** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/layout/TopNavbar.svelte
- - 🏗️ Layer: Unknown
- - ƒ **toggleUserMenu** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **closeUserMenu** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleLogout** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleActivityClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleAssistantClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **hydrateTaskDrawerPreference** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSearchFocus** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **clearSearchState** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleDocumentClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleHamburgerClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleGlobalEnvironmentChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **buildSearchResultSections** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **triggerSearch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSearchInput** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openSearchResult** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSearchKeydown** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **Breadcrumbs** (`Component`)
- - 📝 Display page hierarchy navigation
- - 🏗️ Layer: UI
- - 🔒 Invariant: Always shows current page path
- - ⬅️ READS_FROM `app`
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `props`
- - 🔗 DEPENDS_ON -> `page store`
-- 📦 **Breadcrumbs** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/layout/Breadcrumbs.svelte
- - 🏗️ Layer: Unknown
- - ƒ **getBreadcrumbs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **formatBreadcrumbLabel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getCrumbMeta** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **TaskDrawer** (`Component`)
- - 📝 Global task drawer for monitoring background operations
- - 🏗️ Layer: UI
- - 🔒 Invariant: Drawer shows logs for active task or remains closed
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `state`
- - ➡️ WRITES_TO `derived`
- - 🔗 BINDS_TO -> `taskDrawerStore, assistantChatStore, WebSocket`
- - ƒ **disconnectWebSocket** (`Function`)
- - 📝 Disconnects the active WebSocket connection
- - ƒ **loadRecentTasks** (`Function`) `[TRIVIAL]`
- - 📝 Load recent tasks for list mode display
- - ƒ **selectTask** (`Function`) `[TRIVIAL]`
- - 📝 Select a task from list to view details
- - ƒ **goBackToList** (`Function`)
- - 📝 Return to task list view from task details
-- 📦 **TaskDrawer** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/layout/TaskDrawer.svelte
- - 🏗️ Layer: Unknown
- - ƒ **handleClose** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **goToReportsPage** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleGlobalKeydown** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeTaskId** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **isTaskFinished** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolveLlmValidationStatus** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **llmValidationBadgeClass** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getStatusClass** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **stopTaskDetailsPolling** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadEnvironmentOptions** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolveEnvironmentName** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolveEnvironmentId** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeSupersetBaseUrl** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolveSupersetDashboardUrl** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadActiveTaskDetails** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **extractPrimaryDashboardId** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **buildTaskSummary** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleOpenDashboardDeepLink** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleShowDiff** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleOpenLlmReport** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **connectWebSocket** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.lib.components.layout.sidebarNavigation** (`Module`)
- - 📝 Build sidebar navigation categories filtered by current user permissions.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Admin role can access all categories and subitems through permission utility.
- - 🔗 DEPENDS_ON -> `frontend.src.lib.auth.permissions.hasPermission`
- - ƒ **isItemAllowed** (`Function`) `[TRIVIAL]`
- - 📝 Check whether a single menu node can be shown for a given user.
- - ƒ **buildSidebarCategories** (`Function`) `[TRIVIAL]`
- - 📝 Build translated sidebar categories and filter them by RBAC permissions.
-- 📦 **test_breadcrumbs.svelte** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/lib/components/layout/__tests__/test_breadcrumbs.svelte.js
- - 🏗️ Layer: Unknown
- - ƒ **getBreadcrumbs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **formatBreadcrumbLabel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.lib.components.layout.__tests__.sidebarNavigation** (`Module`)
- - 📝 Verifies RBAC-based sidebar category and subitem visibility.
- - 🏗️ Layer: UI (Tests)
- - ƒ **makeUser** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **ErrorPage** (`Page`)
- - 📝 Global error page displaying HTTP status and messages
- - 🏗️ Layer: UI
-- 📦 **RootLayoutConfig** (`Module`) `[TRIVIAL]`
- - 📝 Root layout configuration (SPA mode)
- - 🏗️ Layer: Infra
-- 📦 **HomePage** (`Page`) `[CRITICAL]`
- - 📝 Redirect to preferred start page from profile settings with safe dashboards fallback.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Redirect target resolves to one of /dashboards, /datasets, /reports.
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **normalizeStartPage** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolveStartPagePath** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **redirectToStartPage** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- ƒ **load** (`Function`) `[TRIVIAL]`
- - 📝 Loads initial plugin data for the dashboard.
-- 📦 **layout** (`Module`)
- - 📝 Bind global layout shell and conditional login/full-app rendering.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Login route bypasses shell; all other routes are wrapped by ProtectedRoute.
- - 🔗 BINDS_TO -> `frontend.src.lib.components.layout.Sidebar`
-- 📦 **DatasetHub** (`Page`)
- - 📝 Dataset Hub - Dedicated hub for datasets with mapping progress
- - 🏗️ Layer: UI
- - 🔒 Invariant: Always shows datasets for the active environment from context store
- - 🔗 BINDS_TO -> `sidebarStore, taskDrawerStore`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/datasets/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **loadDatasets** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSearch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handlePageChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handlePageSizeChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **updateSelectionState** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleCheckboxChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSelectAll** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSelectVisible** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleAction** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleBulkMapColumns** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleBulkGenerateDocs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleTaskStatusClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getTaskStatusIcon** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getMappingProgressClass** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **DatasetDetail** (`Page`)
- - 📝 Dataset Detail View - Shows detailed dataset information with columns, SQL, and linked dashboards
- - 🏗️ Layer: UI
- - 🔒 Invariant: Always shows dataset details when loaded
- - 🔗 BINDS_TO -> `sidebarStore`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/datasets/[id]/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **loadDatasetDetail** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **navigateToDashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **goBack** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getColumnTypeClass** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getMappingProgress** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **UnifiedReportsPage** (`Component`) `[CRITICAL]`
- - 📝 Unified reports page with filtering and resilient UX states for mixed task types.
- - 🏗️ Layer: UI
- - 🔒 Invariant: List state remains deterministic for active filter set.
- - ⬅️ READS_FROM `lib`
- - ⬅️ READS_FROM `t`
- - ➡️ WRITES_TO `t`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/api/reports.js`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/components/reports/ReportsList.svelte`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/reports/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **buildQuery** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadReports** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **hasActiveFilters** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **clearFilters** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **onFilterChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **onSelectReport** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/reports/llm/[taskId]/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **formatDate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **formatMs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getDashboardCheckResult** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getCheckResultClasses** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadReport** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **backToReports** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openTaskDetails** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **cleanupScreenshotBlobUrls** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadScreenshotBlobUrls** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openScreenshot** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.routes.reports.llm.taskid.report_page_contract_test** (`Module`)
- - 📝 Protect the LLM report page from self-triggering screenshot load effects.
- - 🏗️ Layer: UI Tests
- - ƒ **llm_report_screenshot_effect_contract** (`Function`)
- - 📝 Ensure screenshot loading stays untracked from blob-url mutation state.
-- 🧩 **LoginPage** (`Component`)
- - 📝 Provides the user interface for local and ADFS authentication.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Shows both local login form and ADFS SSO button.
- - ⬅️ READS_FROM `app`
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `t`
- - 🔗 CALLS -> `api.auth.login`
- - ƒ **handleLogin** (`Function`) `[TRIVIAL]`
- - 📝 Submits the local login form to the backend.
- - ƒ **handleADFSLogin** (`Function`) `[TRIVIAL]`
- - 📝 Redirects the user to the ADFS login endpoint.
-- 📦 **StorageIndexPage** (`Page`) `[TRIVIAL]`
- - 📝 Redirect to the backups page as the default storage view.
- - 🏗️ Layer: Page
- - 🔒 Invariant: Always redirects to /storage/backups.
-- 📦 **StorageReposPage** (`Page`) `[TRIVIAL]`
- - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
- - 📝 Fetches the list of available environments.
- - ƒ **fetchDashboards** (`Function`) `[TRIVIAL]`
- - 📝 Fetches dashboards for a specific environment.
- - ƒ **filterDashboardsWithRepositories** (`Function`) `[TRIVIAL]`
- - 📝 Keep only dashboards that already have initialized Git repositories.
-- 📦 **DashboardHub** (`Page`)
- - 📝 Dashboard Hub - Central hub for managing dashboards with Git status and task actions
- - 🏗️ Layer: UI
- - 🔒 Invariant: Always shows dashboards for the active environment from context store
- - 🔗 BINDS_TO -> `sidebarStore, taskDrawerStore`
- - ƒ **DashboardHub.normalizeTaskStatus** (`Function`) `[TRIVIAL]`
- - 📝 Normalize raw task status to stable lowercase token for UI.
- - ƒ **DashboardHub.normalizeValidationStatus** (`Function`) `[TRIVIAL]`
- - 📝 Normalize validation status to pass/fail/warn/unknown.
- - ƒ **DashboardHub.getValidationBadgeClass** (`Function`) `[TRIVIAL]`
- - 📝 Map validation level to badge class tuple.
- - ƒ **DashboardHub.getValidationLabel** (`Function`) `[TRIVIAL]`
- - 📝 Map normalized validation level to compact UI label.
- - ƒ **DashboardHub.normalizeOwners** (`Function`) `[TRIVIAL]`
- - 📝 Normalize owners payload to unique non-empty display labels.
- - ƒ **DashboardHub.loadDashboards** (`Function`) `[TRIVIAL]`
- - 📝 Load full dashboard dataset for current environment and hydrate grid projection.
- - ƒ **DashboardHub.handleTemporaryShowAll** (`Function`) `[TRIVIAL]`
- - 📝 Temporarily disable profile-default dashboard filter for current page context.
- - ƒ **DashboardHub.handleRestoreProfileFilter** (`Function`) `[TRIVIAL]`
- - 📝 Re-enable persisted profile-default filtering after temporary override.
- - ƒ **DashboardHub.formatDate** (`Function`) `[TRIVIAL]`
- - 📝 Convert ISO timestamp to locale date string.
- - ƒ **DashboardHub.getGitSummaryLabel** (`Function`) `[TRIVIAL]`
- - 📝 Compute stable text label for git state column.
- - ƒ **DashboardHub.getLlmSummaryLabel** (`Function`) `[TRIVIAL]`
- - 📝 Compute normalized LLM validation summary label.
- - ƒ **DashboardHub.getColumnCellValue** (`Function`) `[TRIVIAL]`
- - 📝 Resolve comparable/filterable display value for any grid column.
- - ƒ **DashboardHub.getFilterOptions** (`Function`) `[TRIVIAL]`
- - 📝 Build unique sorted value list for a column filter dropdown.
- - ƒ **DashboardHub.getVisibleFilterOptions** (`Function`) `[TRIVIAL]`
- - 📝 Apply in-dropdown search over full filter options.
- - ƒ **DashboardHub.toggleFilterDropdown** (`Function`) `[TRIVIAL]`
- - 📝 Toggle active column filter popover.
- - ƒ **DashboardHub.toggleFilterValue** (`Function`) `[TRIVIAL]`
- - 📝 Add/remove specific filter value and reapply projection.
- - ƒ **DashboardHub.clearColumnFilter** (`Function`) `[TRIVIAL]`
- - 📝 Reset selected values for one column.
- - ƒ **DashboardHub.selectAllColumnFilterValues** (`Function`) `[TRIVIAL]`
- - 📝 Select all currently visible values in filter popover.
- - ƒ **DashboardHub.updateColumnFilterSearch** (`Function`) `[TRIVIAL]`
- - 📝 Update local search token for one filter popover.
- - ƒ **DashboardHub.hasColumnFilter** (`Function`) `[TRIVIAL]`
- - 📝 Determine if column has active selected values.
- - ƒ **DashboardHub.doesDashboardPassColumnFilters** (`Function`) `[TRIVIAL]`
- - 📝 Evaluate dashboard row against all active column filters.
- - ƒ **DashboardHub.getSortValue** (`Function`) `[TRIVIAL]`
- - 📝 Compute stable comparable sort key for chosen column.
- - ƒ **DashboardHub.handleSort** (`Function`) `[TRIVIAL]`
- - 📝 Toggle or switch sort order and reapply grid projection.
- - ƒ **DashboardHub.getSortIndicator** (`Function`) `[TRIVIAL]`
- - 📝 Return visual indicator for active/inactive sort header.
- - ƒ **DashboardHub.applyGridTransforms** (`Function`) `[TRIVIAL]`
- - 📝 Apply search + column filters + sort + pagination to grid data.
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/dashboards/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **handleDocumentClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeTaskStatus** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeValidationStatus** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getValidationBadgeClass** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getValidationLabel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeOwners** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadDashboards** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSearch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handlePageChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handlePageSizeChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleTemporaryShowAll** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleRestoreProfileFilter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **updateSelectionState** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **replaceSelectedIds** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **clearSelectedIds** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleCheckboxChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSelectAll** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSelectVisible** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **formatDate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getGitSummaryLabel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getLlmSummaryLabel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getColumnCellValue** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getFilterOptions** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getVisibleFilterOptions** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toggleFilterDropdown** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toggleFilterValue** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **clearColumnFilter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **selectAllColumnFilterValues** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **updateColumnFilterSearch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **hasColumnFilter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **doesDashboardPassColumnFilters** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getSortValue** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSort** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getSortIndicator** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **applyGridTransforms** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toggleActionDropdown** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **closeActionDropdown** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleAction** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleValidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleTargetEnvChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadDatabases** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleMappingUpdate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadDbMappings** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **calculateDryRun** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleBulkMigrate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleBulkBackup** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleTaskStatusClick** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **navigateToDashboardDetail** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getStatusBadgeClass** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **isGitBusy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **setGitBusy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **ensureGitConfigs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **updateDashboardGitState** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeRepositoryStatusPayload** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **fetchDashboardGitStatusesBatch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refreshDashboardGitState** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **hydrateVisibleGitStatusesBatch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleGitInit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleGitSync** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleGitCommit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleGitPull** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleGitPush** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getTaskStatusIcon** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getPaginationRange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleEnvironmentCreated** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.routes.dashboards.__tests__.dashboard_profile_override_integration** (`Module`)
- - 📝 Verifies temporary show-all override and restore-on-return behavior for profile-default dashboard filtering.
- - 🏗️ Layer: UI (Tests)
- - ƒ **buildFilteredResponse** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **buildUnfilteredResponse** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **HealthCenterPage** (`Component`)
- - 📝 Main page for the Dashboard Health Center.
- - 🏗️ Layer: UI/Page
- - ⬅️ READS_FROM `state`
- - ⬅️ READS_FROM `derived`
- - ⬅️ READS_FROM `lib`
- - 🔗 DEPENDS_ON -> `frontend.src.lib.components.health.HealthMatrix`
- - 🔗 CALLS -> `frontend.src.lib.api.api_module`
- - ƒ **loadData** (`Function`) `[TRIVIAL]`
- - 📝 Load health summary rows and environment options for the current filter.
- - ƒ **handleEnvChange** (`Function`) `[TRIVIAL]`
- - 📝 Apply environment filter and trigger health summary reload.
- - ƒ **handleDeleteReport** (`Function`) `[TRIVIAL]`
- - 📝 Delete one health report row with confirmation and optimistic button lock.
-- 📦 **frontend.src.routes.dashboards.health.__tests__.health_page_integration** (`Module`)
- - 📝 Lock dashboard health page contract for slug navigation and report deletion.
- - 🏗️ Layer: UI Tests
-- 📦 **DashboardDetail** (`Page`)
- - 📝 Dashboard Detail View - Overview of charts and datasets linked to a dashboard
- - 🏗️ Layer: UI
- - 🔒 Invariant: Shows dashboard metadata, charts, and datasets for selected environment
- - 🔗 BINDS_TO -> `dashboard detail API`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/dashboards/[id]/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **loadDashboardPage** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadDashboardDetail** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadTaskHistory** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **releaseThumbnailUrl** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadThumbnail** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **runBackupTask** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **runLlmValidationTask** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openLlmReport** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toTaskTypeLabel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getTaskStatusClasses** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getValidationStatus** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getValidationStatusClasses** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **goBack** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openDataset** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **formatDate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadLlmStatus** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **hasGitRepository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolveGitSyncState** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **allChangedFiles** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **countChangedByAnyPath** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getGitStatusMeta** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadGitStatus** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadGitDiffPreview** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **runGitSyncAndOpenCommit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **runGitPull** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **runGitPush** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleBranchChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **AdminRolesPage** (`Component`)
- - 📝 UI for managing system roles and their permissions.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Only accessible by users with Admin role.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `t`
- - ⬅️ READS_FROM `t`
- - 🔗 DEPENDS_ON -> `frontend.src.services.adminService`
- - 🔗 DEPENDS_ON -> `frontend.src.components.auth.ProtectedRoute`
- - ƒ **loadData** (`Function`) `[TRIVIAL]`
- - 📝 Fetches roles and available permissions.
- - ƒ **openCreateModal** (`Function`) `[TRIVIAL]`
- - 📝 Initializes state for creating a new role.
- - ƒ **openEditModal** (`Function`) `[TRIVIAL]`
- - 📝 Initializes state for editing an existing role.
- - ƒ **handleSaveRole** (`Function`) `[TRIVIAL]`
- - 📝 Submits role data (create or update).
- - ƒ **handleDeleteRole** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a role after confirmation.
-- 🧩 **AdminUsersPage** (`Component`) `[TRIVIAL]`
- - 📝 UI for managing system users and their roles.
- - 🏗️ Layer: Feature
- - 🔒 Invariant: Only accessible by users with "admin:users" permission.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `t`
- - ⬅️ READS_FROM `t`
- - 🔗 DEPENDS_ON -> `frontend.src.services.adminService`
- - 🔗 DEPENDS_ON -> `frontend.src.components.auth.ProtectedRoute`
- - ƒ **loadData** (`Function`) `[TRIVIAL]`
- - 📝 Fetches users and roles from the backend.
- - ƒ **openCreateModal** (`Function`) `[TRIVIAL]`
- - 📝 Prepares the form for creating a new user.
- - ƒ **openEditModal** (`Function`) `[TRIVIAL]`
- - 📝 Prepares the form for editing an existing user.
- - ƒ **handleSaveUser** (`Function`) `[TRIVIAL]`
- - 📝 Submits user data to the backend (create or update).
- - ƒ **handleDeleteUser** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a user after confirmation.
-- 🧩 **AdminSettingsPage** (`Component`)
- - 📝 UI for configuring Active Directory Group to local Role mappings for ADFS SSO and logging settings.
- - 🏗️ Layer: Feature
- - 🔒 Invariant: Only accessible by users with "admin:settings" permission.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `t`
- - ⬅️ READS_FROM `t`
- - 🔗 DEPENDS_ON -> `frontend.src.services.adminService`
- - 🔗 DEPENDS_ON -> `frontend.src.components.auth.ProtectedRoute`
- - ƒ **loadData** (`Function`) `[TRIVIAL]`
- - 📝 Fetches AD mappings and roles from the backend to populate the UI.
- - ƒ **handleCreateMapping** (`Function`) `[TRIVIAL]`
- - 📝 Submits a new AD Group to Role mapping to the backend.
- - ƒ **loadLoggingConfig** (`Function`) `[TRIVIAL]`
- - 📝 Fetches current logging configuration from the backend.
- - ƒ **saveLoggingConfig** (`Function`) `[TRIVIAL]`
- - 📝 Saves logging configuration to the backend.
-- 🧩 **LLMSettingsPage** (`Component`)
- - 📝 Admin settings page for LLM provider configuration.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `t`
- - ➡️ WRITES_TO `t`
- - 🔗 CALLS -> `frontend/src/components/llm/ProviderConfig.svelte`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/admin/settings/llm/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **isMultimodalModel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getProviderById** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **fetchProviders** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **saveSettings** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **MigrationDashboard** (`Component`) `[TRIVIAL]`
- - 📝 Orchestrate migration UI workflow and route user actions to backend APIs and task store.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `effect`
- - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
- - 📝 Fetches the list of environments from the API.
- - ƒ **fetchDashboards** (`Function`) `[TRIVIAL]`
- - 📝 Fetches dashboards for the selected source environment.
- - ▦ **ReactiveDashboardFetch** (`Block`) `[TRIVIAL]`
- - 📝 Automatically fetch dashboards when the source environment is changed.
- - ƒ **fetchDatabases** (`Function`) `[TRIVIAL]`
- - 📝 Fetches databases from both environments and gets suggestions.
- - ƒ **handleMappingUpdate** (`Function`) `[TRIVIAL]`
- - 📝 Saves a mapping to the backend.
- - ƒ **handleViewLogs** (`Function`) `[TRIVIAL]`
- - 📝 Opens the log viewer for a specific task.
- - ƒ **handlePasswordPrompt** (`Function`) `[TRIVIAL]`
- - 📝 Reactive logic to show password prompt when a task is awaiting input.
- - ▦ **ReactivePasswordPrompt** (`Block`) `[TRIVIAL]`
- - 📝 Monitor selected task for input requests and trigger password prompt.
- - ƒ **handleResumeMigration** (`Function`) `[TRIVIAL]`
- - 📝 Resumes a migration task with provided passwords.
- - ƒ **startMigration** (`Function`) `[TRIVIAL]`
- - 📝 Initiates the migration process by sending the selection to the backend.
- - ƒ **startDryRun** (`Function`) `[TRIVIAL]`
- - 📝 Performs a dry-run migration to identify potential risks and changes.
-- ▦ **MigrationDashboardView** (`Block`) `[TRIVIAL]`
- - 📝 Render migration configuration controls, action CTAs, dry-run results, and modal entry points.
- - ▦ **MigrationHeader** (`Block`) `[TRIVIAL]`
- - ▦ **TaskHistorySection** (`Block`) `[TRIVIAL]`
- - ▦ **ActiveTaskSection** (`Block`) `[TRIVIAL]`
- - ▦ **EnvironmentSelectionSection** (`Block`) `[TRIVIAL]`
- - 🧩 **DashboardSelectionSection** (`Component`) `[TRIVIAL]`
- - ▦ **MigrationOptionsSection** (`Block`) `[TRIVIAL]`
- - ▦ **DryRunResultsSection** (`Block`) `[TRIVIAL]`
- - ▦ **MigrationModals** (`Block`) `[TRIVIAL]`
- - 📝 Render overlay components for log viewing and password entry.
-- ▦ **MappingsPageScript** (`Block`) `[TRIVIAL]`
- - 📝 Define imports, state, and handlers that drive migration mappings page FSM.
- - 🔗 CALLS -> `fetchEnvironments`
- - 🔗 CALLS -> `fetchDatabases`
- - 🔗 CALLS -> `handleUpdate`
- - ▦ **Imports** (`Block`) `[TRIVIAL]`
- - 🗄️ **UiState** (`Store`) `[CRITICAL]`
- - 📝 Maintain local page state for environments, fetched databases, mappings, suggestions, and UX messages.
- - ƒ **belief_scope** (`Function`) `[TRIVIAL]`
- - 📝 Frontend semantic scope wrapper for CRITICAL trace boundaries without changing business behavior.
- - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
- - 📝 Load environment options for source/target selectors on initial mount.
- - ƒ **fetchDatabases** (`Function`) `[TRIVIAL]`
- - 📝 Fetch both environment database catalogs, existing mappings, and suggested matches.
- - ƒ **handleUpdate** (`Function`) `[TRIVIAL]`
- - 📝 Persist a selected mapping pair and reconcile local mapping list by source database UUID.
-- ▦ **MappingsPageTemplate** (`Block`) `[TRIVIAL]`
-- 🧩 **ProfilePage** (`Component`) `[CRITICAL]`
- - 📝 Manage user profile sections for read-only security access, Git identity/token configuration, and UI preferences with resilient save/cancel UX.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Save operations mutate only current user's preference payload via profile API.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `state`
- - ➡️ WRITES_TO `derived`
- - 🔗 BINDS_TO -> `i18n`
- - 🔗 BINDS_TO -> `api_module`
- - 🔗 BINDS_TO -> `environmentContext`
- - 🔗 BINDS_TO -> `taskDrawer`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/profile/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **createSecuritySummaryDefault** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeStartPage** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeDensity** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **parseValidationErrorsFromError** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **setSavedSnapshot** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **syncLocalUiPreferenceCaches** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **applyPreferenceResponse** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadPreference** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadLookupCandidates** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSelectCandidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleGitTokenInput** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleClearGitToken** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleEnvironmentChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSave** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleCancel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.routes.profile.__tests__.profile_settings_state_integration** (`Module`)
- - 📝 Verifies profile settings preload, cancel without persistence, and saved-state reload behavior.
- - 🏗️ Layer: UI (Tests)
-- 📦 **frontend.src.routes.profile.__tests__.profile_preferences_integration** (`Module`)
- - 📝 Verifies profile binding happy path and degraded lookup manual fallback save flow.
- - 🏗️ Layer: UI (Tests)
-- 📦 **frontend.src.routes.profile.__tests__.fixtures.profile_fixtures** (`Module`) `[TRIVIAL]`
- - 📝 Shared fixture placeholders for profile page integration tests.
-- 🧩 **StoragePage** (`Component`)
- - 📝 Main page for unified file storage management.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Always displays a unified storage view without category tabs.
- - ⬅️ READS_FROM `app`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `t`
- - 🔗 DEPENDS_ON -> `storageService`
- - ƒ **loadFiles** (`Function`) `[TRIVIAL]`
- - 📝 Fetches the list of files from the server.
- - ƒ **resolveStorageQueryFromPath** (`Function`) `[TRIVIAL]`
- - 📝 Splits UI path into storage API category and category-local subpath.
- - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
- - 📝 Handles the file deletion process.
- - ƒ **handleNavigate** (`Function`) `[TRIVIAL]`
- - 📝 Updates the current path and reloads files when navigating into a directory.
- - ƒ **navigateUp** (`Function`) `[TRIVIAL]`
- - 📝 Navigates one level up in the directory structure.
- - ƒ **updateUploadCategory** (`Function`) `[TRIVIAL]`
- - 📝 Keeps upload category aligned with the currently viewed top-level folder.
-- 🧩 **MapperPage** (`Component`) `[TRIVIAL]`
- - 📝 Page for the dataset column mapper tool.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `t`
-- 🧩 **DebugPage** (`Component`) `[TRIVIAL]`
- - 📝 Page for system diagnostics and debugging.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `t`
-- 📦 **SettingsPage** (`Page`) `[CRITICAL]`
- - 📝 Consolidated Settings Page - All settings in one place with tabbed navigation
- - 🏗️ Layer: UI
- - 🔒 Invariant: Always shows tabbed interface with all settings categories
- - 🔗 BINDS_TO -> `sidebarStore`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/settings/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **createEmptyConnectionDraft** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeTab** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **readTabFromUrl** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **writeTabToUrl** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadSettings** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeLlmSettings** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **isMultimodalModel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getProviderById** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **isDashboardValidationBindingValid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleTabChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadConnections** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resetConnectionForm** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openConnectionForm** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **closeConnectionForm** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleCreateConnection** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleDeleteConnection** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadMigrationSettings** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadMappingsPage** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **onMappingsSearchInput** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **onMappingsFilterChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **goToMappingsPage** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **saveMigrationSettings** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **triggerSyncNow** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleRefresh** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSave** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleTestEnv** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **editEnv** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resetEnvForm** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleAddOrUpdateEnv** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleDeleteEnv** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolveEnvStage** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeSupersetBaseUrl** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- ƒ **load** (`Function`) `[TRIVIAL]`
- - 📝 Loads application settings and environment list.
-- 🧩 **NotificationSettingsPage** (`Component`)
- - 📝 Manage global notification provider configurations (SMTP, Telegram, Slack).
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `t`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/settings/notifications/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **loadConfig** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSave** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **ConnectionsSettingsPage** (`Component`) `[TRIVIAL]`
- - 📝 Page for managing database connection configurations.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `t`
- - ƒ **handleSuccess** (`Function`) `[TRIVIAL]`
- - 📝 Refreshes the connection list after a successful creation.
-- 🧩 **GitSettingsPage** (`Component`) `[TRIVIAL]`
- - 📝 Manage Git server configurations for dashboard versioning.
- - 🏗️ Layer: Page
- - 🔒 Invariant: All configurations must be validated via connection test.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `t`
- - ƒ **loadConfigs** (`Function`) `[TRIVIAL]`
- - 📝 Fetches existing git configurations.
- - ƒ **handleTest** (`Function`) `[TRIVIAL]`
- - 📝 Tests connection to a git server with current form data.
- - ƒ **handleSave** (`Function`) `[TRIVIAL]`
- - 📝 Saves a new git configuration.
- - ƒ **handleEdit** (`Function`) `[TRIVIAL]`
- - 📝 Populates the form with an existing config to edit.
- - ƒ **resetForm** (`Function`) `[TRIVIAL]`
- - 📝 Resets the configuration form.
- - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a git configuration by ID.
- - ƒ **loadGiteaRepos** (`Function`) `[TRIVIAL]`
- - 📝 Loads repositories from selected Gitea config.
- - ƒ **handleCreateGiteaRepo** (`Function`) `[TRIVIAL]`
- - 📝 Creates new repository on selected Gitea server.
- - ƒ **handleDeleteGiteaRepo** (`Function`) `[TRIVIAL]`
- - 📝 Deletes repository from selected Gitea server.
-- 📦 **frontend.src.routes.settings.git.__tests__.git_settings_page_ux_test** (`Module`) `[TRIVIAL]`
- - 📝 Test UX states and transitions for the Git Settings page
-- 🧩 **AutomationSettingsPage** (`Component`)
- - 📝 Settings page for managing validation policies.
- - 🏗️ Layer: UI/Page
- - ⬅️ READS_FROM `state`
- - ⬅️ READS_FROM `derived`
- - ⬅️ READS_FROM `lib`
-- 📦 **+page** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/routes/settings/automation/+page.svelte
- - 🏗️ Layer: Unknown
- - ƒ **loadData** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleAdd** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleEdit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSave** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getEnvName** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **GitDashboardPage** (`Component`) `[TRIVIAL]`
- - 📝 Dashboard management page for Git integration.
- - 🏗️ Layer: Page
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `state`
- - ➡️ WRITES_TO `derived`
- - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
- - 📝 Fetches the list of deployment environments from the API.
- - ƒ **fetchDashboards** (`Function`) `[TRIVIAL]`
- - 📝 Fetches dashboards for a specific environment.
-- 🧩 **Dashboard** (`Component`) `[TRIVIAL]`
- - 📝 Displays the list of available plugins and allows selecting one.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `plugins`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/stores.js`
- - ƒ **onMount** (`Function`) `[TRIVIAL]`
- - 📝 Fetch plugins when the component mounts.
- - ƒ **selectPlugin** (`Function`) `[TRIVIAL]`
- - 📝 Selects a plugin to display its form.
-- 🧩 **Settings** (`Component`) `[TRIVIAL]`
- - 📝 The main settings page for the application, allowing management of environments and global settings.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Settings changes must be saved to the backend.
- - ⬅️ READS_FROM `t`
- - ➡️ WRITES_TO `t`
- - 🔗 CALLS -> `api.js`
- - ƒ **loadSettings** (`Function`) `[TRIVIAL]`
- - 📝 Loads settings from the backend.
- - ƒ **handleSaveGlobal** (`Function`) `[TRIVIAL]`
- - 📝 Saves global settings to the backend.
- - ƒ **handleAddOrUpdateEnv** (`Function`) `[TRIVIAL]`
- - 📝 Adds or updates an environment.
- - ƒ **handleDeleteEnv** (`Function`) `[TRIVIAL]`
- - 📝 Deletes an environment.
- - ƒ **handleTestEnv** (`Function`) `[TRIVIAL]`
- - 📝 Tests the connection to an environment.
- - ƒ **editEnv** (`Function`) `[TRIVIAL]`
- - 📝 Sets the form to edit an existing environment.
- - ƒ **resetEnvForm** (`Function`) `[TRIVIAL]`
- - 📝 Resets the environment form.
-- ƒ **getConnections** (`Function`) `[TRIVIAL]`
- - 📝 Fetch a list of saved connections.
-- ƒ **createConnection** (`Function`) `[TRIVIAL]`
- - 📝 Create a new connection configuration.
-- ƒ **deleteConnection** (`Function`) `[TRIVIAL]`
- - 📝 Delete a connection configuration.
-- 📦 **GitServiceClient** (`Module`)
- - 📝 API client for Git operations, managing the communication between frontend and backend.
- - 🏗️ Layer: Service
- - 🔗 DEPENDS_ON -> `specs/011-git-integration-dashboard/contracts/api.md`
- - 📦 **gitService** (`Action`) `[TRIVIAL]`
- - 📝 Promotes changes between branches via MR or direct merge.
- - ƒ **buildDashboardRepoEndpoint** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- ƒ **runTask** (`Function`) `[TRIVIAL]`
- - 📝 Start a new task for a given plugin.
-- ƒ **getTaskStatus** (`Function`) `[TRIVIAL]`
- - 📝 Fetch details for a specific task (to poll status or get result).
-- 📦 **adminService** (`Module`)
- - 📝 Service for Admin-related API calls (User and Role management).
- - 🏗️ Layer: Service
- - 🔒 Invariant: All requests must include valid Admin JWT token (handled by api client).
- - 🔗 DEPENDS_ON -> `frontend.src.lib.api`
- - ƒ **getUsers** (`Function`) `[TRIVIAL]`
- - 📝 Fetches all registered users from the backend.
- - ƒ **createUser** (`Function`) `[TRIVIAL]`
- - 📝 Creates a new local user.
- - ƒ **getRoles** (`Function`) `[TRIVIAL]`
- - 📝 Fetches all available system roles.
- - ƒ **getADGroupMappings** (`Function`) `[TRIVIAL]`
- - 📝 Fetches mappings between AD groups and local roles.
- - ƒ **createADGroupMapping** (`Function`) `[TRIVIAL]`
- - 📝 Creates or updates an AD group to Role mapping.
- - ƒ **updateUser** (`Function`) `[TRIVIAL]`
- - 📝 Updates an existing user.
- - ƒ **deleteUser** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a user.
- - ƒ **createRole** (`Function`) `[TRIVIAL]`
- - 📝 Creates a new role.
- - ƒ **updateRole** (`Function`) `[TRIVIAL]`
- - 📝 Updates an existing role.
- - ƒ **deleteRole** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a role.
- - ƒ **getPermissions** (`Function`) `[TRIVIAL]`
- - 📝 Fetches all available permissions.
- - ƒ **getLoggingConfig** (`Function`) `[TRIVIAL]`
- - 📝 Fetches current logging configuration.
- - ƒ **updateLoggingConfig** (`Function`) `[TRIVIAL]`
- - 📝 Updates logging configuration.
-- ƒ **getTasks** (`Function`) `[TRIVIAL]`
- - 📝 Fetch a list of tasks with pagination and optional status filter.
-- ƒ **getTask** (`Function`) `[TRIVIAL]`
- - 📝 Fetch details for a specific task.
-- ƒ **getTaskLogs** (`Function`) `[TRIVIAL]`
- - 📝 Fetch logs for a specific task.
-- ƒ **resumeTask** (`Function`) `[TRIVIAL]`
- - 📝 Resume a task that is awaiting input (e.g., passwords).
-- ƒ **resolveTask** (`Function`) `[TRIVIAL]`
- - 📝 Resolve a task that is awaiting mapping.
-- ƒ **clearTasks** (`Function`) `[TRIVIAL]`
- - 📝 Clear tasks based on status.
-- 📦 **storageService** (`Module`)
- - 📝 Frontend API client for file storage management.
- - 🏗️ Layer: Service
- - ƒ **getStorageAuthHeaders** (`Function`) `[TRIVIAL]`
- - 📝 Returns headers with Authorization for storage API calls.
- - ƒ **encodeStoragePath** (`Function`) `[TRIVIAL]`
- - 📝 Encodes a storage-relative path preserving slash separators.
- - ƒ **listFiles** (`Function`) `[TRIVIAL]`
- - 📝 Fetches the list of files for a given category and subpath.
- - ƒ **uploadFile** (`Function`) `[TRIVIAL]`
- - 📝 Uploads a file to the storage system.
- - ƒ **deleteFile** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a file or directory from storage.
- - ƒ **downloadFileUrl** (`Function`) `[TRIVIAL]`
- - 📝 Returns the URL for downloading a file.
- - ƒ **downloadFile** (`Function`) `[TRIVIAL]`
- - 📝 Downloads a file using authenticated fetch and saves it in browser.
-- 📦 **frontend.src.services.__tests__.gitService_test** (`Module`) `[TRIVIAL]`
- - 📝 API client tests ensuring correct endpoints are called per contract
-- 🧩 **DashboardGrid** (`Component`)
- - 📝 Displays a grid of dashboards with selection and pagination.
- - 🏗️ Layer: Component
- - 🔒 Invariant: Selected IDs must be a subset of available dashboards.
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - ➡️ WRITES_TO `derived`
- - ƒ **handleSort** (`Function`) `[TRIVIAL]`
- - 📝 Toggles sort direction or changes sort column.
- - ƒ **handleSelectionChange** (`Function`) `[TRIVIAL]`
- - 📝 Handles individual checkbox changes.
- - ƒ **handleSelectAll** (`Function`) `[TRIVIAL]`
- - 📝 Handles select all checkbox.
- - ƒ **goToPage** (`Function`) `[TRIVIAL]`
- - 📝 Changes current page.
- - ƒ **getRepositoryStatusToken** (`Function`) `[TRIVIAL]`
- - 📝 Returns normalized repository status token for a dashboard.
- - ƒ **isRepositoryReady** (`Function`) `[TRIVIAL]`
- - 📝 Determines whether git actions can run for a dashboard.
- - ƒ **invalidateRepositoryStatuses** (`Function`) `[TRIVIAL]`
- - 📝 Marks dashboard statuses as loading so they are refetched.
- - ƒ **resolveRepositoryStatusToken** (`Function`) `[TRIVIAL]`
- - 📝 Converts git status payload into a stable UI status token.
- - ƒ **loadRepositoryStatuses** (`Function`) `[TRIVIAL]`
- - 📝 Hydrates repository status map for dashboards in repository mode.
- - ƒ **runBulkGitAction** (`Function`) `[TRIVIAL]`
- - 📝 Executes git action for selected dashboards with limited parallelism.
- - ƒ **handleBulkSync** (`Function`) `[TRIVIAL]`
- - ƒ **handleBulkCommit** (`Function`) `[TRIVIAL]`
- - ƒ **handleBulkPull** (`Function`) `[TRIVIAL]`
- - ƒ **handleBulkPush** (`Function`) `[TRIVIAL]`
- - ƒ **handleBulkDelete** (`Function`) `[TRIVIAL]`
- - 📝 Removes selected repositories from storage and binding table.
- - ƒ **handleManageSelected** (`Function`) `[TRIVIAL]`
- - 📝 Opens Git manager for exactly one selected dashboard.
- - ƒ **resolveDashboardRef** (`Function`) `[TRIVIAL]`
- - 📝 Resolves dashboard slug from payload fields.
- - ƒ **openGitManagerForDashboard** (`Function`) `[TRIVIAL]`
- - 📝 Opens Git manager for provided dashboard metadata.
- - ƒ **handleInitializeRepositories** (`Function`) `[TRIVIAL]`
- - 📝 Opens Git manager from bulk actions to initialize selected repository.
- - ƒ **getSortStatusValue** (`Function`) `[TRIVIAL]`
- - 📝 Returns sort value for status column based on mode.
- - ƒ **getStatusLabel** (`Function`) `[TRIVIAL]`
- - 📝 Returns localized label for status column.
- - ƒ **getStatusBadgeClass** (`Function`) `[TRIVIAL]`
- - 📝 Returns badge style for status column.
-- 🧩 **PasswordPrompt** (`Component`) `[TRIVIAL]`
- - 📝 A modal component to prompt the user for database passwords when a migration task is paused.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `effect`
- - 🔗 BINDS_TO -> `onresume`
- - 🔗 BINDS_TO -> `oncancel`
- - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
- - 📝 Validates and forwards passwords to resume the task.
- - ƒ **handleCancel** (`Function`) `[TRIVIAL]`
- - 📝 Cancels the password prompt.
-- 🧩 **MappingTable** (`Component`) `[TRIVIAL]`
- - 📝 Displays and allows editing of database mappings.
- - 🏗️ Layer: Feature
- - 🔒 Invariant: Each source database can be mapped to one target database.
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `t`
- - 🔗 BINDS_TO -> `mappings state`
- - ƒ **updateMapping** (`Function`) `[TRIVIAL]`
- - 📝 Updates a mapping for a specific source database.
- - ƒ **getSuggestion** (`Function`) `[TRIVIAL]`
- - 📝 Finds a suggestion for a source database.
-- 🧩 **TaskLogViewer** (`Component`)
- - 📝 Displays detailed logs for a specific task inline or in a modal using TaskLogPanel.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Real-time logs are always appended without duplicates.
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - 📦 **handleRealTimeLogs** (`Action`) `[TRIVIAL]`
- - 📝 Sync real-time logs to the current log list
- - ƒ **fetchLogs** (`Function`) `[TRIVIAL]`
- - 📝 Fetches logs for a given task ID
- - ƒ **handleFilterChange** (`Function`) `[TRIVIAL]`
- - 📝 Updates filter conditions for the log viewer
- - ƒ **handleRefresh** (`Function`) `[TRIVIAL]`
- - 📝 Refreshes the logs by polling the API
- - 🧩 **showInline** (`Component`) `[TRIVIAL]`
- - 📝 Shows inline logs -->
- - 🏗️ Layer: UI -->
- - 🧩 **showModal** (`Component`) `[TRIVIAL]`
- - 📝 Shows modal logs -->
- - 🏗️ Layer: UI -->
-- 🧩 **Footer** (`Component`) `[TRIVIAL]`
- - 📝 Displays the application footer with copyright information.
- - 🏗️ Layer: UI
-- 🧩 **MissingMappingModal** (`Component`) `[TRIVIAL]`
- - 📝 Prompts the user to provide a database mapping when one is missing during migration.
- - 🏗️ Layer: Feature
- - 🔒 Invariant: Modal blocks migration progress until resolved or cancelled.
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - 🔗 BINDS_TO -> `onresolve`
- - 🔗 BINDS_TO -> `oncancel`
- - ƒ **resolve** (`Function`) `[TRIVIAL]`
- - 📝 Resolves the missing mapping via callback prop.
- - ƒ **cancel** (`Function`) `[TRIVIAL]`
- - 📝 Cancels the mapping resolution modal.
-- 🧩 **DashboardGrid** (`Component`)
- - 📝 Displays a grid of dashboards with selection and pagination.
- - 🏗️ Layer: Component
- - 🔒 Invariant: Selected IDs must be a subset of available dashboards.
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - ➡️ WRITES_TO `derived`
- - ƒ **handleValidate** (`Function`) `[TRIVIAL]`
- - 📝 Triggers dashboard validation task.
- - ƒ **handleSort** (`Function`) `[TRIVIAL]`
- - 📝 Toggles sort direction or changes sort column.
- - ƒ **handleSelectionChange** (`Function`) `[TRIVIAL]`
- - 📝 Handles individual checkbox changes.
- - ƒ **handleSelectAll** (`Function`) `[TRIVIAL]`
- - 📝 Handles select all checkbox.
- - ƒ **goToPage** (`Function`) `[TRIVIAL]`
- - 📝 Changes current page.
- - ƒ **openGit** (`Function`) `[TRIVIAL]`
- - 📝 Opens the Git management modal for a dashboard.
-- 🧩 **Navbar** (`Component`)
- - 📝 Main navigation bar for the application.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `app`
- - ⬅️ READS_FROM `lib`
- - ⬅️ READS_FROM `t`
-- 📦 **Navbar** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/Navbar.svelte
- - 🏗️ Layer: Unknown
- - ƒ **handleLogout** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **TaskHistory** (`Component`) `[TRIVIAL]`
- - 📝 Displays a list of recent tasks with their status and allows selecting them for viewing logs.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `selectedTask`
- - ➡️ WRITES_TO `selectedTask`
- - ⬅️ READS_FROM `t`
- - ƒ **fetchTasks** (`Function`) `[TRIVIAL]`
- - 📝 Fetches the list of recent tasks from the API.
- - ƒ **clearTasks** (`Function`) `[TRIVIAL]`
- - 📝 Clears tasks from the history, optionally filtered by status.
- - ƒ **selectTask** (`Function`) `[TRIVIAL]`
- - 📝 Selects a task and fetches its full details.
- - ƒ **getStatusColor** (`Function`) `[TRIVIAL]`
- - 📝 Returns the CSS color class for a given task status.
- - ƒ **onMount** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the component by fetching tasks and starting polling.
- - ƒ **onDestroy** (`Function`) `[TRIVIAL]`
- - 📝 Cleans up the polling interval when the component is destroyed.
-- 🧩 **Toast** (`Component`) `[TRIVIAL]`
- - 📝 Displays transient notifications (toasts) in the bottom-right corner.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `toasts`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/toasts.js`
-- 🧩 **TaskRunner** (`Component`)
- - 📝 Connects to a WebSocket to display real-time logs for a running task with filtering support.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `t`
- - ⬅️ READS_FROM `selectedTask`
- - ➡️ WRITES_TO `t`
- - 🔗 DEPENDS_ON -> `frontend/src/lib/stores.js, frontend/src/components/tasks/TaskLogPanel.svelte`
- - ƒ **connect** (`Function`) `[TRIVIAL]`
- - 📝 Establishes WebSocket connection with exponential backoff and filter parameters.
- - ƒ **handleFilterChange** (`Function`) `[TRIVIAL]`
- - 📝 Handles filter changes and reconnects WebSocket with new parameters.
- - ƒ **fetchTargetDatabases** (`Function`) `[TRIVIAL]`
- - 📝 Fetches available databases from target environment for mapping.
- - ƒ **handleMappingResolve** (`Function`) `[TRIVIAL]`
- - 📝 Resolves missing database mapping and continues migration.
- - ƒ **handlePasswordResume** (`Function`) `[TRIVIAL]`
- - 📝 Submits passwords and resumes paused migration task.
- - ƒ **startDataTimeout** (`Function`) `[TRIVIAL]`
- - 📝 Starts timeout timer to detect idle connection.
- - ƒ **resetDataTimeout** (`Function`) `[TRIVIAL]`
- - 📝 Resets data timeout timer when new data arrives.
- - ƒ **onMount** (`Function`) `[TRIVIAL]`
- - 📝 Initializes WebSocket connection when component mounts.
- - ƒ **onDestroy** (`Function`) `[TRIVIAL]`
-- 🧩 **TaskList** (`Component`) `[TRIVIAL]`
- - 📝 Displays a list of tasks with their status and execution details.
- - 🏗️ Layer: Component
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `t`
- - ⬅️ READS_FROM `t`
- - ƒ **getStatusColor** (`Function`) `[TRIVIAL]`
- - 📝 Returns the CSS color class for a given task status.
- - ƒ **formatTime** (`Function`) `[TRIVIAL]`
- - 📝 Formats a date string using date-fns.
- - ƒ **handleTaskClick** (`Function`) `[TRIVIAL]`
- - 📝 Forwards the selected task through a callback prop.
-- 🧩 **DynamicForm** (`Component`) `[TRIVIAL]`
- - 📝 Generates a form dynamically based on a JSON schema.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `props`
- - 🔗 BINDS_TO -> `onsubmit callback`
- - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
- - 📝 Emits submitted form data via callback prop.
- - ƒ **initializeForm** (`Function`) `[TRIVIAL]`
- - 📝 Initialize form data with default values from the schema.
-- 🧩 **EnvSelector** (`Component`) `[TRIVIAL]`
- - 📝 Provides a UI component for selecting source and target environments.
- - 🏗️ Layer: Feature
- - 🔒 Invariant: Source and target environments must be selectable from the list of configured environments.
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `t`
- - 🔗 BINDS_TO -> `environments store`
- - ƒ **handleSelect** (`Function`) `[TRIVIAL]`
- - 📝 Propagates the selection change through a callback prop.
-- 🧩 **StartupEnvironmentWizard** (`Component`)
- - 📝 Blocking startup wizard for creating the first Superset environment from zero-state screens.
- - 🏗️ Layer: UI
- - 🔒 Invariant: When open, wizard keeps user on an actionable setup path until the first environment exists.
- - ⬅️ READS_FROM `app`
- - ⬅️ READS_FROM `lib`
- - ➡️ WRITES_TO `props`
- - 🔗 CALLS -> `api.addEnvironment`
- - 🔗 CALLS -> `environmentContext.refreshEnvironmentContext`
-- 📦 **StartupEnvironmentWizard** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/StartupEnvironmentWizard.svelte
- - 🏗️ Layer: Unknown
- - ƒ **createInitialForm** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **slugifyEnvironmentId** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **normalizeSupersetBaseUrl** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resetWizard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleNameInput** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleIdInput** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openAdvancedSettings** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleCreateEnvironment** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **ProtectedRoute.svelte** (`Module`)
- - 📝 Enforces authenticated and authorized access before protected route content is rendered.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Unauthenticated users are redirected to /login, unauthorized users are redirected to fallbackPath, and protected slot renders only when access is verified.
- - 🔗 BINDS_TO -> `frontend.src.lib.auth.store.auth`
- - 🔗 CALLS -> `$app/navigation.goto`
- - 🔗 DEPENDS_ON -> `$lib/auth/permissions.hasPermission`
- - 🔗 CALLS -> `frontend.src.lib.api.api.fetchApi`
- - 🧩 **ProtectedRoute** (`Component`) `[TRIVIAL]`
- - 📝 Wraps protected slot content with session and permission verification guards.
- - ƒ **verifySessionAndAccess** (`Function`) `[TRIVIAL]`
- - 📝 Validates session and optional permission gate before allowing protected content render.
-- 🧩 **TaskLogPanel** (`Component`)
- - 📝 Combines log filtering and display into a single cohesive dark-themed panel.
- - 🏗️ Layer: UI
- - 🔒 Invariant: Must always display logs in chronological order and respect auto-scroll preference.
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
-- 📦 **TaskLogPanel** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/tasks/TaskLogPanel.svelte
- - 🏗️ Layer: Unknown
- - ƒ **filterLogs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleFilterChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **scrollToBottom** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toggleAutoScroll** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **LogFilterBar** (`Component`)
- - 📝 Compact filter toolbar for logs — level, source, and text search in a single dense row.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `derived`
-- 📦 **LogFilterBar** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/tasks/LogFilterBar.svelte
- - 🏗️ Layer: Unknown
- - ƒ **handleLevelChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSourceChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSearchChange** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **clearFilters** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **LogEntryRow** (`Component`)
- - 📝 Renders a single log entry with stacked layout optimized for narrow drawer panels.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `derived`
- - ƒ **formatTime** (`Function`) `[TRIVIAL]`
- - 📝 Format ISO timestamp to HH:MM:SS */
-- 📦 **TaskResultPanel** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/tasks/TaskResultPanel.svelte
- - 🏗️ Layer: Unknown
- - ƒ **statusColor** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.components.__tests__.task_log_viewer** (`Module`)
- - 📝 Unit tests for TaskLogViewer component by mounting it and observing the DOM.
- - 🏗️ Layer: UI (Tests)
- - 🔒 Invariant: Duplicate logs are never appended. Polling only active for in-progress tasks.
-- 🧩 **FileList** (`Component`)
- - 📝 Displays a table of files with metadata and actions.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `t`
- - ⬅️ READS_FROM `t`
- - 🔗 DEPENDS_ON -> `storageService`
- - ƒ **isDirectory** (`Function`) `[TRIVIAL]`
- - 📝 Checks if a file object represents a directory.
- - ƒ **formatSize** (`Function`) `[TRIVIAL]`
- - 📝 Formats file size in bytes into a human-readable string.
- - ƒ **formatDate** (`Function`) `[TRIVIAL]`
- - 📝 Formats an ISO date string into a localized readable format.
- - ƒ **handleDownload** (`Function`) `[TRIVIAL]`
- - 📝 Downloads selected file through authenticated API request.
-- 🧩 **FileUpload** (`Component`)
- - 📝 Provides a form for uploading files to a specific category.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `t`
- - 🔗 DEPENDS_ON -> `storageService`
- - ƒ **handleUpload** (`Function`) `[TRIVIAL]`
- - 📝 Handles the file upload process.
- - ƒ **handleDrop** (`Function`) `[TRIVIAL]`
- - 📝 Handles the file drop event for drag-and-drop.
-- 🧩 **ConnectionForm** (`Component`) `[TRIVIAL]`
- - 📝 UI component for creating a new database connection configuration.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `t`
- - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
- - 📝 Submits the connection form to the backend.
- - ƒ **resetForm** (`Function`) `[TRIVIAL]`
- - 📝 Resets the connection form fields to their default values.
-- 🧩 **ConnectionList** (`Component`) `[TRIVIAL]`
- - 📝 UI component for listing and deleting saved database connection configurations.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `t`
- - ➡️ WRITES_TO `t`
- - ƒ **fetchConnections** (`Function`) `[TRIVIAL]`
- - 📝 Fetches the list of connections from the backend.
- - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a connection configuration.
-- 🧩 **MapperTool** (`Component`) `[TRIVIAL]`
- - 📝 UI component for mapping dataset column verbose names using the MapperPlugin.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `t`
- - ➡️ WRITES_TO `t`
- - ƒ **fetchData** (`Function`) `[TRIVIAL]`
- - 📝 Fetches environments and saved connections.
- - ƒ **handleRunMapper** (`Function`) `[TRIVIAL]`
- - 📝 Triggers the MapperPlugin task.
- - ƒ **handleGenerateDocs** (`Function`) `[TRIVIAL]`
- - 📝 Triggers the LLM Documentation task.
-- 📦 **MapperTool** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/tools/MapperTool.svelte
- - 🏗️ Layer: Unknown
- - ƒ **handleApplyDoc** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **DebugTool** (`Component`) `[TRIVIAL]`
- - 📝 UI component for system diagnostics and debugging API responses.
- - 🏗️ Layer: UI
- - ⬅️ READS_FROM `t`
- - ➡️ WRITES_TO `t`
- - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
- - 📝 Fetches available environments.
- - ƒ **handleRunDebug** (`Function`) `[TRIVIAL]`
- - 📝 Triggers the debug task.
- - ƒ **startPolling** (`Function`) `[TRIVIAL]`
- - 📝 Polls for task completion.
-- 🧩 **CommitHistory** (`Component`) `[TRIVIAL]`
- - 📝 Displays the commit history for a specific dashboard.
- - 🏗️ Layer: Component
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `t`
- - 🔗 CALLS -> `gitService.getHistory`
- - ƒ **onMount** (`Function`) `[TRIVIAL]`
- - 📝 Load history when component is mounted.
- - ƒ **loadHistory** (`Function`) `[TRIVIAL]`
- - 📝 Fetch commit history from the backend.
-- 🧩 **DeploymentModal** (`Component`) `[TRIVIAL]`
- - 📝 Modal for deploying a dashboard to a target environment.
- - 🏗️ Layer: Component
- - 🔒 Invariant: Cannot deploy without a selected environment.
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - 🔗 CALLS -> `frontend/src/services/gitService.js`
- - 🔗 DISPATCHES -> `deploy`
- - 📦 **loadStatus** (`Watcher`) `[TRIVIAL]`
- - ƒ **normalizeEnvStage** (`Function`) `[TRIVIAL]`
- - 📝 Normalize environment stage with legacy production fallback.
- - ƒ **resolveEnvUrl** (`Function`) `[TRIVIAL]`
- - 📝 Resolve environment URL from consolidated or git-specific payload shape.
- - ƒ **loadEnvironments** (`Function`) `[TRIVIAL]`
- - 📝 Fetch available environments from API.
- - ƒ **handleDeploy** (`Function`) `[TRIVIAL]`
- - 📝 Trigger deployment to selected environment.
-- 🧩 **ConflictResolver** (`Component`) `[TRIVIAL]`
- - 📝 UI for resolving merge conflicts (Keep Mine / Keep Theirs).
- - 🏗️ Layer: Component
- - 🔒 Invariant: User must resolve all conflicts before saving.
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - 🔗 BINDS_TO -> `onresolve`
- - ƒ **resolve** (`Function`) `[TRIVIAL]`
- - 📝 Set resolution strategy for a file.
- - ƒ **handleSave** (`Function`) `[TRIVIAL]`
- - 📝 Validate and submit resolutions.
-- 🧩 **CommitModal** (`Component`)
- - 📝 Модальное окно для создания коммита с просмотром изменений (diff).
- - 🏗️ Layer: Component
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - ⬅️ READS_FROM `t`
- - 🔗 CALLS -> `gitService.commit`
- - 🔗 CALLS -> `gitService.getStatus`
- - 🔗 CALLS -> `gitService.getDiff`
- - 🔗 DISPATCHES -> `commit`
- - ƒ **handleGenerateMessage** (`Function`) `[TRIVIAL]`
- - 📝 Generates a commit message using LLM.
- - ƒ **loadStatus** (`Function`) `[TRIVIAL]`
- - 📝 Загружает текущий статус репозитория и diff.
- - ƒ **handleCommit** (`Function`) `[TRIVIAL]`
- - 📝 Создает коммит с указанным сообщением.
-- 🧩 **BranchSelector** (`Component`) `[TRIVIAL]`
- - 📝 UI для выбора и создания веток Git.
- - 🏗️ Layer: Component
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - 🔗 CALLS -> `gitService.getBranches`
- - 🔗 CALLS -> `gitService.checkoutBranch`
- - 🔗 CALLS -> `gitService.createBranch`
- - 🔗 BINDS_TO -> `onchange`
- - ƒ **onMount** (`Function`) `[TRIVIAL]`
- - 📝 Load branches when component is mounted.
- - ƒ **loadBranches** (`Function`) `[TRIVIAL]`
- - 📝 Загружает список веток для дашборда.
- - ƒ **handleSelect** (`Function`) `[TRIVIAL]`
- - 📝 Handles branch selection from dropdown.
- - ƒ **handleCheckout** (`Function`) `[TRIVIAL]`
- - 📝 Переключает текущую ветку.
- - ƒ **handleCreate** (`Function`) `[TRIVIAL]`
- - 📝 Создает новую ветку.
-- 🧩 **GitManager** (`Component`) `[TRIVIAL]`
- - 📝 Центральный UI управления Git с фокусом на рабочий поток аналитика (commit -> promote -> deploy).
- - 🏗️ Layer: Component
- - ➡️ WRITES_TO `bindable`
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - 🔗 CALLS -> `gitService`
- - ƒ **normalizeEnvStage** (`Function`) `[TRIVIAL]`
- - 📝 Normalize environment stage with legacy fallback.
- - ƒ **stageBadgeClass** (`Function`) `[TRIVIAL]`
- - 📝 Return visual class for environment stage badges.
- - ƒ **resolveCurrentEnvironmentId** (`Function`) `[TRIVIAL]`
- - 📝 Resolve active environment id for current dashboard session.
- - ƒ **applyGitflowStageDefaults** (`Function`) `[TRIVIAL]`
- - 📝 Apply GitFlow defaults by current environment stage.
- - ƒ **loadCurrentEnvironmentStage** (`Function`) `[TRIVIAL]`
- - 📝 Detect current environment stage and bind GitFlow defaults.
- - ƒ **isNumericDashboardRef** (`Function`) `[TRIVIAL]`
- - 📝 Checks whether current dashboard reference is numeric ID.
- - ƒ **checkStatus** (`Function`) `[TRIVIAL]`
- - 📝 Verify repository initialization for dashboard slug.
- - ƒ **loadWorkspace** (`Function`) `[TRIVIAL]`
- - 📝 Load current git status and combined diff for workspace tab.
- - ƒ **handleSync** (`Function`) `[TRIVIAL]`
- - 📝 Sync latest dashboard config from Superset to git workspace.
- - ƒ **handleGenerateMessage** (`Function`) `[TRIVIAL]`
- - 📝 Generate commit message from diff using LLM.
- - ƒ **handleCommit** (`Function`) `[TRIVIAL]`
- - 📝 Commit current workspace changes with provided message.
- - ƒ **handlePull** (`Function`) `[TRIVIAL]`
- - 📝 Pull remote changes for current branch.
- - ƒ **handlePush** (`Function`) `[TRIVIAL]`
- - 📝 Push local commits to remote repository.
- - ƒ **handlePromote** (`Function`) `[TRIVIAL]`
- - 📝 Promote branch to the next stage via MR or unsafe direct mode.
- - ƒ **openDeployModal** (`Function`) `[TRIVIAL]`
- - 📝 Open deploy modal with extra confirmation for PROD context.
- - ƒ **getSelectedConfig** (`Function`) `[TRIVIAL]`
- - 📝 Return currently selected git server config.
- - ƒ **resolveDefaultConfig** (`Function`) `[TRIVIAL]`
- - 📝 Resolve default git config for current session.
- - ƒ **resolvePushProviderLabel** (`Function`) `[TRIVIAL]`
- - 📝 Resolve lower-case provider label for auto-push checkbox.
- - ƒ **extractHttpHost** (`Function`) `[TRIVIAL]`
- - 📝 Extract comparable host[:port] from URL string.
- - ƒ **buildSuggestedRepoName** (`Function`) `[TRIVIAL]`
- - 📝 Build deterministic repository name from dashboard title/id.
- - ƒ **handleCreateRemoteRepo** (`Function`) `[TRIVIAL]`
- - 📝 Create remote repository on selected Git provider.
- - ƒ **handleInit** (`Function`) `[TRIVIAL]`
- - 📝 Initialize git repository for dashboard.
- - ƒ **closeModal** (`Function`) `[TRIVIAL]`
- - 📝 Close git manager modal.
- - ƒ **handleBackdropClick** (`Function`) `[TRIVIAL]`
- - 📝 Close modal on backdrop click.
-- 📦 **GitManager** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/git/GitManager.svelte
- - 🏗️ Layer: Unknown
- - ƒ **tryParseJsonObject** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **extractUnfinishedMergeContext** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **openUnfinishedMergeDialogFromError** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loadMergeRecoveryState** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **closeUnfinishedMergeDialog** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleOpenConflictResolver** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleResolveConflicts** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleAbortUnfinishedMerge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleContinueUnfinishedMerge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **getUnfinishedMergeCommandsText** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleCopyUnfinishedMergeCommands** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.components.git.__tests__.git_manager_unfinished_merge_integration** (`Module`)
- - 📝 Protect unresolved-merge dialog contract in GitManager pull flow.
- - 🏗️ Layer: UI Tests
-- 🧩 **DocPreview** (`Component`)
- - 📝 UI component for previewing generated dataset documentation before saving.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `derived`
- - ➡️ WRITES_TO `state`
- - 🔗 DEPENDS_ON -> `backend/src/plugins/llm_analysis/plugin.py`
-- 📦 **DocPreview** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/llm/DocPreview.svelte
- - 🏗️ Layer: Unknown
- - ƒ **handleSave** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 🧩 **ProviderConfig** (`Component`)
- - 📝 UI form for managing LLM provider configurations.
- - 🏗️ Layer: UI
- - ➡️ WRITES_TO `props`
- - ➡️ WRITES_TO `state`
- - ➡️ WRITES_TO `t`
- - 🔗 DEPENDS_ON -> `backend/src/api/routes/llm.py`
-- 📦 **ProviderConfig** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/llm/ProviderConfig.svelte
- - 🏗️ Layer: Unknown
- - ƒ **isMultimodalModel** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resetForm** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleEdit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **testConnection** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **toggleActive** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **ValidationReport** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for frontend/src/components/llm/ValidationReport.svelte
- - 🏗️ Layer: Unknown
- - ƒ **getStatusColor** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **frontend.src.components.llm.__tests__.provider_config_integration** (`Module`)
- - 📝 Protect edit and delete interaction contracts in LLM provider settings UI.
- - 🏗️ Layer: UI Tests
- - 🔒 Invariant: Edit action keeps explicit click handler and opens normalized edit form.
- - ƒ **provider_config_edit_contract_tests** (`Function`)
- - 📝 Validate edit and delete handler wiring plus normalized edit form state mapping.
-- 📦 **DeleteRunningTasksUtil** (`Module`) `[TRIVIAL]`
- - 📝 Script to delete tasks with RUNNING status from the database.
- - 🏗️ Layer: Utility
- - 🔗 DEPENDS_ON -> `TasksSessionLocal`
- - 🔗 DEPENDS_ON -> `TaskRecord`
- - ƒ **delete_running_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Delete all tasks with RUNNING status from the database.
-- 📦 **AppModule** (`Module`) `[CRITICAL]`
- - 📝 The main entry point for the FastAPI application. It initializes the app, configures CORS, sets up dependencies, includes API routers, and defines the WebSocket endpoint for log streaming.
- - 🏗️ Layer: UI (API)
- - 🔒 Invariant: All WebSocket connections must be properly cleaned up on disconnect.
- - 🔗 DEPENDS_ON -> `AppDependencies`
- - 🔗 DEPENDS_ON -> `backend.src.api.routes`
- - 📦 **App** (`Global`) `[TRIVIAL]`
- - 📝 The global FastAPI application instance.
- - ƒ **startup_event** (`Function`)
- - 📝 Handles application startup tasks, such as starting the scheduler.
- - ƒ **shutdown_event** (`Function`)
- - 📝 Handles application shutdown tasks, such as stopping the scheduler.
- - ▦ **app_middleware** (`Block`) `[TRIVIAL]`
- - 📝 Configure application-wide middleware (Session, CORS).
- - ƒ **network_error_handler** (`Function`) `[TRIVIAL]`
- - 📝 Global exception handler for NetworkError.
- - ƒ **log_requests** (`Function`)
- - 📝 Middleware to log incoming HTTP requests and their response status.
- - ▦ **api_routes** (`Block`) `[TRIVIAL]`
- - 📝 Register all application API routers.
- - 📦 **api.include_routers** (`Action`) `[TRIVIAL]`
- - 📝 Registers all API routers with the FastAPI application.
- - 🏗️ Layer: API
- - ƒ **websocket_endpoint** (`Function`) `[CRITICAL]`
- - 📝 Provides a WebSocket endpoint for real-time log streaming of a task with server-side filtering.
- - 📦 **StaticFiles** (`Mount`) `[TRIVIAL]`
- - 📝 Mounts the frontend build directory to serve static assets.
- - ƒ **serve_spa** (`Function`) `[TRIVIAL]`
- - 📝 Serves the SPA frontend for any path not matched by API routes.
- - ƒ **read_root** (`Function`) `[TRIVIAL]`
- - 📝 A simple root endpoint to confirm that the API is running when frontend is missing.
- - ƒ **matches_filters** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **AppDependencies** (`Module`)
- - 📝 Manages creation and provision of shared application dependencies, such as PluginLoader and TaskManager, to avoid circular imports.
- - 🏗️ Layer: Core
- - 🔗 CALLS -> `CleanReleaseRepository`
- - 🔗 CALLS -> `ConfigManager`
- - 🔗 CALLS -> `PluginLoader`
- - 🔗 CALLS -> `SchedulerService`
- - 🔗 CALLS -> `TaskManager`
- - 🔗 CALLS -> `get_all_plugin_configs`
- - 🔗 CALLS -> `get_db`
- - 🔗 CALLS -> `info`
- - 🔗 CALLS -> `init_db`
- - ƒ **get_config_manager** (`Function`) `[TRIVIAL]`
- - 📝 Dependency injector for ConfigManager.
- - ƒ **get_plugin_loader** (`Function`) `[TRIVIAL]`
- - 📝 Dependency injector for PluginLoader.
- - ƒ **get_task_manager** (`Function`) `[TRIVIAL]`
- - 📝 Dependency injector for TaskManager.
- - ƒ **get_scheduler_service** (`Function`) `[TRIVIAL]`
- - 📝 Dependency injector for SchedulerService.
- - ƒ **get_resource_service** (`Function`) `[TRIVIAL]`
- - 📝 Dependency injector for ResourceService.
- - ƒ **get_mapping_service** (`Function`) `[TRIVIAL]`
- - 📝 Dependency injector for MappingService.
- - ƒ **get_clean_release_repository** (`Function`) `[TRIVIAL]`
- - 📝 Legacy compatibility shim for CleanReleaseRepository.
- - ƒ **get_clean_release_facade** (`Function`) `[TRIVIAL]`
- - 📝 Dependency injector for CleanReleaseFacade.
- - 📦 **oauth2_scheme** (`Variable`) `[TRIVIAL]`
- - 📝 OAuth2 password bearer scheme for token extraction.
- - ƒ **get_current_user** (`Function`)
- - 📝 Dependency for retrieving currently authenticated user from a JWT.
- - ƒ **has_permission** (`Function`)
- - 📝 Dependency for checking if the current user has a specific permission.
- - ƒ **permission_checker** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **SrcRoot** (`Module`) `[TRIVIAL]`
- - 📝 Canonical backend package root for application, scripts, and tests.
-- 📦 **backend.src.scripts.seed_superset_load_test** (`Module`)
- - 📝 Creates randomized load-test data in Superset by cloning chart configurations and creating dashboards in target environments.
- - 🏗️ Layer: Scripts
- - 🔒 Invariant: Created chart and dashboard names are globally unique for one script run.
- - ƒ **_parse_args** (`Function`) `[TRIVIAL]`
- - 📝 Parses CLI arguments for load-test data generation.
- - ƒ **_extract_result_payload** (`Function`) `[TRIVIAL]`
- - 📝 Normalizes Superset API payloads that may be wrapped in `result`.
- - ƒ **_extract_created_id** (`Function`) `[TRIVIAL]`
- - 📝 Extracts object ID from create/update API response.
- - ƒ **_generate_unique_name** (`Function`) `[TRIVIAL]`
- - 📝 Generates globally unique random names for charts/dashboards.
- - ƒ **_resolve_target_envs** (`Function`) `[TRIVIAL]`
- - 📝 Resolves requested environment IDs from configuration.
- - ƒ **_build_chart_template_pool** (`Function`) `[TRIVIAL]`
- - 📝 Builds a pool of source chart templates to clone in one environment.
- - ƒ **seed_superset_load_data** (`Function`) `[TRIVIAL]`
- - 📝 Creates dashboards and cloned charts for load testing across target environments.
- - ƒ **main** (`Function`) `[TRIVIAL]`
- - 📝 CLI entrypoint for Superset load-test data seeding.
-- 📦 **test_dataset_dashboard_relations** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/scripts/test_dataset_dashboard_relations.py
- - 🏗️ Layer: Unknown
- - ƒ **test_dashboard_dataset_relations** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.scripts.clean_release_tui** (`Module`)
- - 📝 Interactive terminal interface for Enterprise Clean Release compliance validation.
- - 🏗️ Layer: UI
- - 🔒 Invariant: TUI refuses startup in non-TTY environments; headless flow is CLI/API only.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.compliance_orchestrator`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - ℂ **TuiFacadeAdapter** (`Class`) `[TRIVIAL]`
- - 📝 Thin TUI adapter that routes business mutations through application services.
- - ℂ **CleanReleaseTUI** (`Class`) `[TRIVIAL]`
- - 📝 Curses-based application for compliance monitoring.
- - ƒ **run_checks** (`Function`) `[TRIVIAL]`
- - 📝 Execute compliance run via facade adapter and update UI state.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_build_config_manager** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **run_compliance** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **approve_latest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **publish_latest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **build_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_overview** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_build_repository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_bootstrap_demo_repository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_bootstrap_real_repository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_resolve_candidate_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **draw_header** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **draw_checks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **draw_sources** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **draw_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **draw_footer** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **build_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **clear_history** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **approve_latest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **publish_latest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refresh_overview** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refresh_overview** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refresh_screen** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **loop** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **tui_main** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **main** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.scripts.migrate_sqlite_to_postgres** (`Module`)
- - 📝 Migrates legacy config and task history from SQLite/file storage to PostgreSQL.
- - 🏗️ Layer: Scripts
- - 🔒 Invariant: Script is idempotent for task_records and app_configurations.
- - 📦 **Constants** (`Section`) `[TRIVIAL]`
- - ƒ **_json_load_if_needed** (`Function`)
- - 📝 Parses JSON-like values from SQLite TEXT/JSON columns to Python objects.
- - ƒ **_find_legacy_config_path** (`Function`) `[TRIVIAL]`
- - 📝 Resolves the existing legacy config.json path from candidates.
- - ƒ **_connect_sqlite** (`Function`) `[TRIVIAL]`
- - 📝 Opens a SQLite connection with row factory.
- - ƒ **_ensure_target_schema** (`Function`) `[TRIVIAL]`
- - 📝 Ensures required PostgreSQL tables exist before migration.
- - ƒ **_migrate_config** (`Function`) `[TRIVIAL]`
- - 📝 Migrates legacy config.json into app_configurations(global).
- - ƒ **_migrate_tasks_and_logs** (`Function`) `[TRIVIAL]`
- - 📝 Migrates task_records and task_logs from SQLite into PostgreSQL.
- - ƒ **run_migration** (`Function`) `[TRIVIAL]`
- - 📝 Orchestrates migration from SQLite/file to PostgreSQL.
- - ƒ **main** (`Function`) `[TRIVIAL]`
- - 📝 CLI entrypoint.
-- 📦 **backend.src.scripts.clean_release_cli** (`Module`)
- - 📝 Provide headless CLI commands for candidate registration, artifact import and manifest build.
- - 🏗️ Layer: Scripts
- - ƒ **build_parser** (`Function`) `[TRIVIAL]`
- - 📝 Build argparse parser for clean release CLI.
- - ƒ **run_candidate_register** (`Function`) `[TRIVIAL]`
- - 📝 Register candidate in repository via CLI command.
- - ƒ **run_artifact_import** (`Function`) `[TRIVIAL]`
- - 📝 Import single artifact for existing candidate.
- - ƒ **run_manifest_build** (`Function`) `[TRIVIAL]`
- - 📝 Build immutable manifest snapshot for candidate.
- - ƒ **run_compliance_run** (`Function`) `[TRIVIAL]`
- - 📝 Execute compliance run for candidate with optional manifest fallback.
- - ƒ **run_compliance_status** (`Function`) `[TRIVIAL]`
- - 📝 Read run status by run id.
- - ƒ **_to_payload** (`Function`) `[TRIVIAL]`
- - 📝 Serialize domain models for CLI JSON output across SQLAlchemy/Pydantic variants.
- - ƒ **run_compliance_report** (`Function`) `[TRIVIAL]`
- - 📝 Read immutable report by run id.
- - ƒ **run_compliance_violations** (`Function`) `[TRIVIAL]`
- - 📝 Read run violations by run id.
- - ƒ **run_approve** (`Function`) `[TRIVIAL]`
- - 📝 Approve candidate based on immutable PASSED report.
- - ƒ **run_reject** (`Function`) `[TRIVIAL]`
- - 📝 Reject candidate without mutating compliance evidence.
- - ƒ **run_publish** (`Function`) `[TRIVIAL]`
- - 📝 Publish approved candidate to target channel.
- - ƒ **run_revoke** (`Function`) `[TRIVIAL]`
- - 📝 Revoke active publication record.
- - ƒ **main** (`Function`) `[TRIVIAL]`
- - 📝 CLI entrypoint for clean release commands.
- - ƒ **_normalize** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.scripts.seed_permissions** (`Module`) `[TRIVIAL]`
- - 📝 Populates the auth database with initial system permissions.
- - 🏗️ Layer: Scripts
- - 🔒 Invariant: Safe to run multiple times (idempotent).
- - 📦 **INITIAL_PERMISSIONS** (`Constant`) `[TRIVIAL]`
- - ƒ **seed_permissions** (`Function`) `[TRIVIAL]`
- - 📝 Inserts missing permissions into the database.
-- 📦 **backend.src.scripts.init_auth_db** (`Module`) `[CRITICAL]`
- - 📝 Initializes the auth database and creates the necessary tables.
- - 🏗️ Layer: Scripts
- - 🔒 Invariant: Safe to run multiple times (idempotent).
- - 🔗 CALLS -> `backend.src.core.database.init_db`
- - ƒ **run_init** (`Function`) `[TRIVIAL]`
- - 📝 Main entry point for the initialization script.
-- 📦 **backend.src.scripts.create_admin** (`Module`)
- - 📝 CLI tool for creating the initial admin user.
- - 🏗️ Layer: Scripts
- - 🔒 Invariant: Admin user must have the "Admin" role.
- - ƒ **create_admin** (`Function`) `[TRIVIAL]`
- - 📝 Creates an admin user and necessary roles/permissions.
-- 📦 **src.scripts** (`Package`) `[TRIVIAL]`
- - 📝 Script entrypoint package root.
-- 📦 **backend.src.schemas.health** (`Module`)
- - 📝 Pydantic schemas for dashboard health summary.
- - 🏗️ Layer: Domain
- - ℂ **DashboardHealthItem** (`Class`) `[TRIVIAL]`
- - 📝 Represents the latest health status of a single dashboard.
- - ℂ **HealthSummaryResponse** (`Class`) `[TRIVIAL]`
- - 📝 Aggregated health summary for all dashboards.
-- 📦 **backend.src.schemas.settings** (`Module`)
- - 📝 Pydantic schemas for application settings and automation policies.
- - 🏗️ Layer: Domain
- - ℂ **NotificationChannel** (`Class`) `[TRIVIAL]`
- - 📝 Structured notification channel definition for policy-level custom routing.
- - ℂ **ValidationPolicyBase** (`Class`) `[TRIVIAL]`
- - 📝 Base schema for validation policy data.
- - ℂ **ValidationPolicyCreate** (`Class`) `[TRIVIAL]`
- - 📝 Schema for creating a new validation policy.
- - ℂ **ValidationPolicyUpdate** (`Class`) `[TRIVIAL]`
- - 📝 Schema for updating an existing validation policy.
- - ℂ **ValidationPolicyResponse** (`Class`) `[TRIVIAL]`
- - 📝 Schema for validation policy response data.
-- 📦 **backend.src.schemas.auth** (`Module`)
- - 📝 Pydantic schemas for authentication requests and responses.
- - 🏗️ Layer: API
- - 🔒 Invariant: Sensitive fields like password must not be included in response schemas.
- - 🔗 DEPENDS_ON -> `pydantic`
- - ℂ **Token** (`Class`) `[TRIVIAL]`
- - 📝 Represents a JWT access token response.
- - ℂ **TokenData** (`Class`) `[TRIVIAL]`
- - 📝 Represents the data encoded in a JWT token.
- - ℂ **PermissionSchema** (`Class`) `[TRIVIAL]`
- - 📝 Represents a permission in API responses.
- - ℂ **RoleSchema** (`Class`) `[CRITICAL]`
- - 📝 Represents a role in API responses.
- - ℂ **RoleCreate** (`Class`) `[CRITICAL]`
- - 📝 Schema for creating a new role.
- - ℂ **RoleUpdate** (`Class`) `[CRITICAL]`
- - 📝 Schema for updating an existing role.
- - ℂ **ADGroupMappingSchema** (`Class`) `[CRITICAL]`
- - 📝 Represents an AD Group to Role mapping in API responses.
- - ℂ **ADGroupMappingCreate** (`Class`) `[CRITICAL]`
- - 📝 Schema for creating an AD Group mapping.
- - ℂ **UserBase** (`Class`) `[CRITICAL]`
- - 📝 Base schema for user data.
- - ℂ **UserCreate** (`Class`) `[CRITICAL]`
- - 📝 Schema for creating a new user.
- - ℂ **UserUpdate** (`Class`) `[CRITICAL]`
- - 📝 Schema for updating an existing user.
- - ℂ **User** (`Class`) `[CRITICAL]`
- - 📝 Schema for user data in API responses.
-- 📦 **backend.src.schemas.profile** (`Module`)
- - 📝 Defines API schemas for profile preference persistence, security read-only snapshot, and Superset account lookup.
- - 🏗️ Layer: API
- - 🔒 Invariant: Schema shapes stay stable for profile UI states and backend preference contracts.
- - 🔗 DEPENDS_ON -> `pydantic`
- - ℂ **ProfilePermissionState** (`Class`)
- - 📝 Represents one permission badge state for profile read-only security view.
- - ℂ **ProfileSecuritySummary** (`Class`)
- - 📝 Read-only security and access snapshot for current user.
- - ℂ **ProfilePreference** (`Class`)
- - 📝 Represents persisted profile preference for a single authenticated user.
- - ℂ **ProfilePreferenceUpdateRequest** (`Class`)
- - 📝 Request payload for updating current user's profile settings.
- - ℂ **ProfilePreferenceResponse** (`Class`)
- - 📝 Response envelope for profile preference read/update endpoints.
- - ℂ **SupersetAccountLookupRequest** (`Class`)
- - 📝 Query contract for Superset account lookup by selected environment.
- - ℂ **SupersetAccountCandidate** (`Class`)
- - 📝 Canonical account candidate projected from Superset users payload.
- - ℂ **SupersetAccountLookupResponse** (`Class`)
- - 📝 Response envelope for Superset account lookup (success or degraded mode).
-- 📦 **src.schemas** (`Package`) `[TRIVIAL]`
- - 📝 API schema package root.
-- 📦 **backend.src.schemas.__tests__.test_settings_and_health_schemas** (`Module`)
- - 📝 Regression tests for settings and health schema contracts updated in 026 fix batch.
- - ƒ **test_validation_policy_create_accepts_structured_custom_channels** (`Function`) `[TRIVIAL]`
- - 📝 Ensure policy schema accepts structured custom channel objects with type/target fields.
- - ƒ **test_validation_policy_create_rejects_legacy_string_custom_channels** (`Function`) `[TRIVIAL]`
- - 📝 Ensure legacy list[str] custom channel payload is rejected by typed channel contract.
- - ƒ **test_dashboard_health_item_status_accepts_only_whitelisted_values** (`Function`) `[TRIVIAL]`
- - 📝 Verify strict grouped regex only accepts PASS/WARN/FAIL/UNKNOWN exact statuses.
-- 📦 **backend.src.core.superset_profile_lookup** (`Module`)
- - 📝 Provides environment-scoped Superset account lookup adapter with stable normalized output.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Adapter never leaks raw upstream payload shape to API consumers.
- - 🔗 DEPENDS_ON -> `backend.src.core.utils.network.APIClient`
- - 🔗 DEPENDS_ON -> `backend.src.core.logger`
- - ℂ **SupersetAccountLookupAdapter** (`Class`)
- - 📝 Lookup Superset users and normalize candidates for profile binding.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes lookup adapter with authenticated API client and environment context.
- - ƒ **get_users_page** (`Function`) `[TRIVIAL]`
- - 📝 Fetch one users page from Superset with passthrough search/sort parameters.
- - ƒ **_normalize_lookup_payload** (`Function`) `[TRIVIAL]`
- - 📝 Convert Superset users response variants into stable candidates payload.
- - ƒ **normalize_user_payload** (`Function`) `[TRIVIAL]`
- - 📝 Project raw Superset user object to canonical candidate shape.
-- 📦 **backend.src.core.superset_client** (`Module`)
- - 📝 Предоставляет высокоуровневый клиент для взаимодействия с Superset REST API, инкапсулируя логику запросов, обработку ошибок и пагинацию.
- - 🏗️ Layer: Core
- - 🔒 Invariant: All network operations must use the internal APIClient instance.
- - ℂ **backend.src.core.superset_client.SupersetClient** (`Class`)
- - 📝 Класс-обёртка над Superset REST API, предоставляющий методы для работы с дашбордами и датасетами.
- - 🔗 DEPENDS_ON -> `backend.src.core.utils.network.APIClient`
- - 🔗 DEPENDS_ON -> `backend.src.core.config_models.Environment`
- - ƒ **backend.src.core.superset_client.SupersetClient.__init__** (`Function`)
- - 📝 Инициализирует клиент, проверяет конфигурацию и создает сетевой клиент.
- - ƒ **backend.src.core.superset_client.SupersetClient.authenticate** (`Function`)
- - 📝 Authenticates the client using the configured credentials.
- - 🔗 CALLS -> `self.network.authenticate`
- - ƒ **backend.src.core.superset_client.SupersetClient.headers** (`Function`) `[TRIVIAL]`
- - 📝 Возвращает базовые HTTP-заголовки, используемые сетевым клиентом.
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dashboards** (`Function`)
- - 📝 Получает полный список дашбордов, автоматически обрабатывая пагинацию.
- - 🔗 CALLS -> `self._fetch_all_pages`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dashboards_page** (`Function`)
- - 📝 Fetches a single dashboards page from Superset without iterating all pages.
- - 🔗 CALLS -> `self.network.request`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dashboards_summary** (`Function`)
- - 📝 Fetches dashboard metadata optimized for the grid.
- - 🔗 CALLS -> `self.get_dashboards`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dashboards_summary_page** (`Function`)
- - 📝 Fetches one page of dashboard metadata optimized for the grid.
- - 🔗 CALLS -> `self.get_dashboards_page`
- - ƒ **backend.src.core.superset_client.SupersetClient._extract_owner_labels** (`Function`) `[TRIVIAL]`
- - 📝 Normalize dashboard owners payload to stable display labels.
- - ƒ **backend.src.core.superset_client.SupersetClient._extract_user_display** (`Function`) `[TRIVIAL]`
- - 📝 Normalize user payload to a stable display name.
- - ƒ **backend.src.core.superset_client.SupersetClient._sanitize_user_text** (`Function`) `[TRIVIAL]`
- - 📝 Convert scalar value to non-empty user-facing text.
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dashboard** (`Function`)
- - 📝 Fetches a single dashboard by ID.
- - 🔗 CALLS -> `self.network.request`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_chart** (`Function`)
- - 📝 Fetches a single chart by ID.
- - 🔗 CALLS -> `self.network.request`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dashboard_detail** (`Function`)
- - 📝 Fetches detailed dashboard information including related charts and datasets.
- - 🔗 CALLS -> `self.get_dashboard`
- - 🔗 CALLS -> `self.get_chart`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dashboard_detail.extract_dataset_id_from_form_data** (`Function`) `[TRIVIAL]`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_charts** (`Function`)
- - 📝 Fetches all charts with pagination support.
- - 🔗 CALLS -> `self._fetch_all_pages`
- - ƒ **backend.src.core.superset_client.SupersetClient._extract_chart_ids_from_layout** (`Function`) `[TRIVIAL]`
- - 📝 Traverses dashboard layout metadata and extracts chart IDs from common keys.
- - ƒ **backend.src.core.superset_client.SupersetClient.export_dashboard** (`Function`)
- - 📝 Экспортирует дашборд в виде ZIP-архива.
- - 🔗 CALLS -> `self.network.request`
- - ƒ **backend.src.core.superset_client.SupersetClient.import_dashboard** (`Function`)
- - 📝 Импортирует дашборд из ZIP-файла.
- - 🔗 CALLS -> `self._do_import`
- - 🔗 CALLS -> `self.delete_dashboard`
- - ƒ **backend.src.core.superset_client.SupersetClient.delete_dashboard** (`Function`)
- - 📝 Удаляет дашборд по его ID или slug.
- - 🔗 CALLS -> `self.network.request`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_datasets** (`Function`)
- - 📝 Получает полный список датасетов, автоматически обрабатывая пагинацию.
- - 🔗 CALLS -> `self._fetch_all_pages`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_datasets_summary** (`Function`)
- - 📝 Fetches dataset metadata optimized for the Dataset Hub grid.
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dataset_detail** (`Function`)
- - 📝 Fetches detailed dataset information including columns and linked dashboards
- - 🔗 CALLS -> `self.get_dataset`
- - 🔗 CALLS -> `self.network.request (for related_objects)`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_dataset** (`Function`)
- - 📝 Получает информацию о конкретном датасете по его ID.
- - 🔗 CALLS -> `self.network.request`
- - ƒ **backend.src.core.superset_client.SupersetClient.update_dataset** (`Function`)
- - 📝 Обновляет данные датасета по его ID.
- - 🔗 CALLS -> `self.network.request`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_databases** (`Function`)
- - 📝 Получает полный список баз данных.
- - 🔗 CALLS -> `self._fetch_all_pages`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_database** (`Function`)
- - 📝 Получает информацию о конкретной базе данных по её ID.
- - 🔗 CALLS -> `self.network.request`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_databases_summary** (`Function`)
- - 📝 Fetch a summary of databases including uuid, name, and engine.
- - 🔗 CALLS -> `self.get_databases`
- - ƒ **backend.src.core.superset_client.SupersetClient.get_database_by_uuid** (`Function`)
- - 📝 Find a database by its UUID.
- - 🔗 CALLS -> `self.get_databases`
- - ƒ **backend.src.core.superset_client.SupersetClient._resolve_target_id_for_delete** (`Function`) `[TRIVIAL]`
- - 📝 Resolves a dashboard ID from either an ID or a slug.
- - 🔗 CALLS -> `self.get_dashboards`
- - ƒ **backend.src.core.superset_client.SupersetClient._do_import** (`Function`) `[TRIVIAL]`
- - 📝 Performs the actual multipart upload for import.
- - 🔗 CALLS -> `self.network.upload_file`
- - ƒ **backend.src.core.superset_client.SupersetClient._validate_export_response** (`Function`) `[TRIVIAL]`
- - 📝 Validates that the export response is a non-empty ZIP archive.
- - ƒ **backend.src.core.superset_client.SupersetClient._resolve_export_filename** (`Function`) `[TRIVIAL]`
- - 📝 Determines the filename for an exported dashboard.
- - ƒ **backend.src.core.superset_client.SupersetClient._validate_query_params** (`Function`) `[TRIVIAL]`
- - 📝 Ensures query parameters have default page and page_size.
- - ƒ **backend.src.core.superset_client.SupersetClient._fetch_total_object_count** (`Function`) `[TRIVIAL]`
- - 📝 Fetches the total number of items for a given endpoint.
- - 🔗 CALLS -> `self.network.fetch_paginated_count`
- - ƒ **backend.src.core.superset_client.SupersetClient._fetch_all_pages** (`Function`) `[TRIVIAL]`
- - 📝 Iterates through all pages to collect all data items.
- - ƒ **backend.src.core.superset_client.SupersetClient._validate_import_file** (`Function`) `[TRIVIAL]`
- - 📝 Validates that the file to be imported is a valid ZIP with metadata.yaml.
- - ƒ **backend.src.core.superset_client.SupersetClient.get_all_resources** (`Function`)
- - 📝 Fetches all resources of a given type with id, uuid, and name columns.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **authenticate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **headers** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dashboards** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dashboards_page** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dashboards_summary** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dashboards_summary_page** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_extract_owner_labels** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_extract_user_display** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_sanitize_user_text** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_chart** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dashboard_detail** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **extract_dataset_id_from_form_data** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_charts** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_extract_chart_ids_from_layout** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **walk** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **export_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **import_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **delete_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_datasets** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_datasets_summary** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dataset_detail** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **as_bool** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dataset** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **update_dataset** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_databases** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_database** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_databases_summary** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_database_by_uuid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_resolve_target_id_for_delete** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_do_import** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_validate_export_response** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_resolve_export_filename** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_validate_query_params** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_fetch_total_object_count** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_fetch_all_pages** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_validate_import_file** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_all_resources** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.core.encryption_key** (`Module`) `[CRITICAL]`
- - 📝 Resolve and persist the Fernet encryption key required by runtime services.
- - 🏗️ Layer: Infra
- - 🔒 Invariant: Runtime key resolution never falls back to an ephemeral secret.
- - 🔗 DEPENDS_ON -> `backend.src.core.logger`
- - ƒ **ensure_encryption_key** (`Function`) `[TRIVIAL]`
- - 📝 Ensure backend runtime has a persistent valid Fernet key.
-- 📦 **ConfigManager** (`Module`) `[CRITICAL]`
- - 📝 Manages application configuration persistence in DB with one-time migration from legacy JSON.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Configuration must always be representable by AppConfig and persisted under global record id.
- - 🔗 DEPENDS_ON -> `AppConfig`
- - 🔗 DEPENDS_ON -> `SessionLocal`
- - 🔗 DEPENDS_ON -> `AppConfigRecord`
- - 🔗 CALLS -> `logger`
- - 🔗 CALLS -> `configure_logger`
- - ℂ **ConfigManager** (`Class`) `[CRITICAL]`
- - 📝 Handles application configuration load, validation, mutation, and persistence lifecycle.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initialize manager state from persisted or migrated configuration.
- - ƒ **_default_config** (`Function`) `[TRIVIAL]`
- - 📝 Build default application configuration fallback.
- - ƒ **_sync_raw_payload_from_config** (`Function`) `[TRIVIAL]`
- - 📝 Merge typed AppConfig state into raw payload while preserving unsupported legacy sections.
- - ƒ **_load_from_legacy_file** (`Function`) `[TRIVIAL]`
- - 📝 Load legacy JSON configuration for migration fallback path.
- - ƒ **_get_record** (`Function`) `[TRIVIAL]`
- - 📝 Resolve global configuration record from DB.
- - ƒ **_load_config** (`Function`) `[TRIVIAL]`
- - 📝 Load configuration from DB or perform one-time migration from legacy JSON.
- - ƒ **_save_config_to_db** (`Function`) `[TRIVIAL]`
- - 📝 Persist provided AppConfig into the global DB configuration record.
- - ƒ **save** (`Function`) `[TRIVIAL]`
- - 📝 Persist current in-memory configuration state.
- - ƒ **get_config** (`Function`) `[TRIVIAL]`
- - 📝 Return current in-memory configuration snapshot.
- - ƒ **get_payload** (`Function`) `[TRIVIAL]`
- - 📝 Return full persisted payload including sections outside typed AppConfig schema.
- - ƒ **save_config** (`Function`) `[TRIVIAL]`
- - 📝 Persist configuration provided either as typed AppConfig or raw payload dict.
- - ƒ **update_global_settings** (`Function`) `[TRIVIAL]`
- - 📝 Replace global settings and persist the resulting configuration.
- - ƒ **validate_path** (`Function`) `[TRIVIAL]`
- - 📝 Validate that path exists and is writable, creating it when absent.
- - ƒ **get_environments** (`Function`) `[TRIVIAL]`
- - 📝 Return all configured environments.
- - ƒ **has_environments** (`Function`) `[TRIVIAL]`
- - 📝 Check whether at least one environment exists in configuration.
- - ƒ **get_environment** (`Function`) `[TRIVIAL]`
- - 📝 Resolve a configured environment by identifier.
- - ƒ **add_environment** (`Function`) `[TRIVIAL]`
- - 📝 Upsert environment by id into configuration and persist.
- - ƒ **update_environment** (`Function`) `[TRIVIAL]`
- - 📝 Update existing environment by id and preserve masked password placeholder behavior.
- - ƒ **delete_environment** (`Function`) `[TRIVIAL]`
- - 📝 Delete environment by id and persist when deletion occurs.
-- 📦 **SchedulerModule** (`Module`)
- - 📝 Manages scheduled tasks using APScheduler.
- - 🏗️ Layer: Core
- - ℂ **SchedulerService** (`Class`)
- - 📝 Provides a service to manage scheduled backup tasks.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the scheduler service with task and config managers.
- - ƒ **start** (`Function`) `[TRIVIAL]`
- - 📝 Starts the background scheduler and loads initial schedules.
- - ƒ **stop** (`Function`) `[TRIVIAL]`
- - 📝 Stops the background scheduler.
- - ƒ **load_schedules** (`Function`) `[TRIVIAL]`
- - 📝 Loads backup schedules from configuration and registers them.
- - ƒ **add_backup_job** (`Function`) `[TRIVIAL]`
- - 📝 Adds a scheduled backup job for an environment.
- - ƒ **_trigger_backup** (`Function`) `[TRIVIAL]`
- - 📝 Triggered by the scheduler to start a backup task.
- - ℂ **ThrottledSchedulerConfigurator** (`Class`) `[CRITICAL]`
- - 📝 Distributes validation tasks evenly within an execution window.
- - ƒ **calculate_schedule** (`Function`) `[TRIVIAL]`
- - 📝 Calculates execution times for N tasks within a window.
- - 🔒 Invariant: Tasks are distributed with near-even spacing.
-- 📦 **backend.src.core.config_models** (`Module`)
- - 📝 Defines the data models for application configuration using Pydantic.
- - 🏗️ Layer: Core
- - 📦 **Schedule** (`DataClass`) `[TRIVIAL]`
- - 📝 Represents a backup schedule configuration.
- - 📦 **backend.src.core.config_models.Environment** (`DataClass`) `[TRIVIAL]`
- - 📝 Represents a Superset environment configuration.
- - 📦 **LoggingConfig** (`DataClass`) `[TRIVIAL]`
- - 📝 Defines the configuration for the application's logging system.
- - 📦 **CleanReleaseConfig** (`DataClass`) `[TRIVIAL]`
- - 📝 Configuration for clean release compliance subsystem.
- - 📦 **GlobalSettings** (`DataClass`) `[TRIVIAL]`
- - 📝 Represents global application settings.
- - 📦 **AppConfig** (`DataClass`) `[TRIVIAL]`
- - 📝 The root configuration model containing all application settings.
-- 📦 **backend.src.core.database** (`Module`)
- - 📝 Configures database connection and session management (PostgreSQL-first).
- - 🏗️ Layer: Core
- - 🔒 Invariant: A single engine instance is used for the entire application.
- - 🔗 DEPENDS_ON -> `sqlalchemy`
- - 🔗 DEPENDS_ON -> `backend.src.models.mapping`
- - 🔗 DEPENDS_ON -> `backend.src.core.auth.config`
- - 📦 **BASE_DIR** (`Variable`) `[TRIVIAL]`
- - 📝 Base directory for the backend.
- - 📦 **DATABASE_URL** (`Constant`) `[TRIVIAL]`
- - 📝 URL for the main application database.
- - 📦 **TASKS_DATABASE_URL** (`Constant`) `[TRIVIAL]`
- - 📝 URL for the tasks execution database.
- - 📦 **AUTH_DATABASE_URL** (`Constant`) `[TRIVIAL]`
- - 📝 URL for the authentication database.
- - 📦 **engine** (`Variable`) `[TRIVIAL]`
- - 📝 SQLAlchemy engine for mappings database.
- - 📦 **tasks_engine** (`Variable`) `[TRIVIAL]`
- - 📝 SQLAlchemy engine for tasks database.
- - 📦 **auth_engine** (`Variable`) `[TRIVIAL]`
- - 📝 SQLAlchemy engine for authentication database.
- - ℂ **SessionLocal** (`Class`) `[TRIVIAL]`
- - 📝 A session factory for the main mappings database.
- - ℂ **TasksSessionLocal** (`Class`) `[TRIVIAL]`
- - 📝 A session factory for the tasks execution database.
- - ℂ **AuthSessionLocal** (`Class`) `[TRIVIAL]`
- - 📝 A session factory for the authentication database.
- - ƒ **_ensure_user_dashboard_preferences_columns** (`Function`)
- - 📝 Applies additive schema upgrades for user_dashboard_preferences table.
- - ƒ **_ensure_user_dashboard_preferences_health_columns** (`Function`)
- - 📝 Applies additive schema upgrades for user_dashboard_preferences table (health fields).
- - ƒ **_ensure_llm_validation_results_columns** (`Function`)
- - 📝 Applies additive schema upgrades for llm_validation_results table.
- - ƒ **_ensure_git_server_configs_columns** (`Function`)
- - 📝 Applies additive schema upgrades for git_server_configs table.
- - ƒ **_ensure_auth_users_columns** (`Function`)
- - 📝 Applies additive schema upgrades for auth users table.
- - ƒ **ensure_connection_configs_table** (`Function`)
- - 📝 Ensures the external connection registry table exists in the main database.
- - ƒ **init_db** (`Function`)
- - 📝 Initializes the database by creating all tables.
- - ƒ **get_db** (`Function`)
- - 📝 Dependency for getting a database session.
- - ƒ **get_tasks_db** (`Function`)
- - 📝 Dependency for getting a tasks database session.
- - ƒ **get_auth_db** (`Function`)
- - 📝 Dependency for getting an authentication database session.
- - ƒ **_build_engine** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **LoggerModule** (`Module`) `[TRIVIAL]`
- - 📝 Configures the application's logging system, including a custom handler for buffering logs and streaming them over WebSockets.
- - 🏗️ Layer: Core
- - ℂ **BeliefFormatter** (`Class`) `[TRIVIAL]`
- - 📝 Custom logging formatter that adds belief state prefixes to log messages.
- - ƒ **format** (`Function`) `[TRIVIAL]`
- - 📝 Formats the log record, adding belief state context if available.
- - ℂ **LogEntry** (`Class`) `[TRIVIAL]`
- - 📝 A Pydantic model representing a single, structured log entry. This is a re-definition for consistency, as it's also defined in task_manager.py.
- - ƒ **belief_scope** (`Function`) `[TRIVIAL]`
- - 📝 Context manager for structured Belief State logging.
- - ƒ **configure_logger** (`Function`) `[TRIVIAL]`
- - 📝 Configures the logger with the provided logging settings.
- - ƒ **get_task_log_level** (`Function`) `[TRIVIAL]`
- - 📝 Returns the current task log level filter.
- - ƒ **should_log_task_level** (`Function`) `[TRIVIAL]`
- - 📝 Checks if a log level should be recorded based on task_log_level setting.
- - ℂ **WebSocketLogHandler** (`Class`) `[TRIVIAL]`
- - 📝 A custom logging handler that captures log records into a buffer. It is designed to be extended for real-time log streaming over WebSockets.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the handler with a fixed-capacity buffer.
- - ƒ **emit** (`Function`) `[TRIVIAL]`
- - 📝 Captures a log record, formats it, and stores it in the buffer.
- - ƒ **get_recent_logs** (`Function`) `[TRIVIAL]`
- - 📝 Returns a list of recent log entries from the buffer.
- - 📦 **Logger** (`Global`) `[TRIVIAL]`
- - 📝 The global logger instance for the application, configured with both a console handler and the custom WebSocket handler.
- - ƒ **believed** (`Function`) `[TRIVIAL]`
- - 📝 A decorator that wraps a function in a belief scope.
- - ƒ **decorator** (`Function`) `[TRIVIAL]`
- - 📝 Internal decorator for belief scope.
- - ƒ **explore** (`Function`) `[TRIVIAL]`
- - 📝 Logs an EXPLORE message (Van der Waals force) for searching, alternatives, and hypotheses.
- - ƒ **reason** (`Function`) `[TRIVIAL]`
- - 📝 Logs a REASON message (Covalent bond) for strict deduction and core logic.
- - ƒ **reflect** (`Function`) `[TRIVIAL]`
- - 📝 Logs a REFLECT message (Hydrogen bond) for self-check and structural validation.
-- ℂ **PluginLoader** (`Class`)
- - 📝 Scans a specified directory for Python modules, dynamically loads them, and registers any classes that are valid implementations of the PluginBase interface.
- - 🏗️ Layer: Core
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the PluginLoader with a directory to scan.
- - ƒ **_load_plugins** (`Function`) `[TRIVIAL]`
- - 📝 Scans the plugin directory and loads all valid plugins.
- - ƒ **_load_module** (`Function`) `[TRIVIAL]`
- - 📝 Loads a single Python module and discovers PluginBase implementations.
- - ƒ **_register_plugin** (`Function`) `[TRIVIAL]`
- - 📝 Registers a PluginBase instance and its configuration.
- - ƒ **get_plugin** (`Function`) `[TRIVIAL]`
- - 📝 Retrieves a loaded plugin instance by its ID.
- - ƒ **get_all_plugin_configs** (`Function`) `[TRIVIAL]`
- - 📝 Returns a list of all registered plugin configurations.
- - ƒ **has_plugin** (`Function`) `[TRIVIAL]`
- - 📝 Checks if a plugin with the given ID is registered.
-- 📦 **backend.src.core.migration_engine** (`Module`) `[CRITICAL]`
- - 📝 Transforms Superset export ZIP archives while preserving archive integrity and patching mapped identifiers.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: ZIP structure and non-targeted metadata must remain valid after transformation.
- - 🔗 DEPENDS_ON -> `src.core.logger`
- - 🔗 DEPENDS_ON -> `src.core.mapping_service.IdMappingService`
- - 🔗 DEPENDS_ON -> `src.models.mapping.ResourceType`
- - 🔗 DEPENDS_ON -> `yaml`
- - ℂ **MigrationEngine** (`Class`) `[CRITICAL]`
- - 📝 Engine for transforming Superset export ZIPs.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes migration orchestration dependencies for ZIP/YAML metadata transformations.
- - ƒ **transform_zip** (`Function`) `[TRIVIAL]`
- - 📝 Extracts ZIP, replaces database UUIDs in YAMLs, patches cross-filters, and re-packages.
- - ƒ **_transform_yaml** (`Function`) `[TRIVIAL]`
- - 📝 Replaces database_uuid in a single YAML file.
- - ƒ **_extract_chart_uuids_from_archive** (`Function`) `[TRIVIAL]`
- - 📝 Scans extracted chart YAML files and builds a source chart ID to UUID lookup map.
- - ƒ **_patch_dashboard_metadata** (`Function`) `[TRIVIAL]`
- - 📝 Rewrites dashboard json_metadata chart/dataset integer identifiers using target environment mappings.
-- 📦 **backend.src.core.async_superset_client** (`Module`) `[CRITICAL]`
- - 📝 Async Superset client for dashboard hot-path requests without blocking FastAPI event loop.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Async dashboard operations reuse shared auth cache and avoid sync requests in async routes.
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client`
- - 🔗 DEPENDS_ON -> `backend.src.core.utils.async_network.AsyncAPIClient`
- - ℂ **backend.src.core.async_superset_client.AsyncSupersetClient** (`Class`)
- - 📝 Async sibling of SupersetClient for dashboard read paths.
- - 🔗 INHERITS -> `backend.src.core.superset_client.SupersetClient`
- - 🔗 DEPENDS_ON -> `backend.src.core.utils.async_network.AsyncAPIClient`
- - 🔗 CALLS -> `backend.src.core.utils.async_network.AsyncAPIClient.request`
- - ƒ **backend.src.core.async_superset_client.AsyncSupersetClient.__init__** (`Function`)
- - 📝 Initialize async Superset client with AsyncAPIClient transport.
- - ƒ **backend.src.core.async_superset_client.AsyncSupersetClient.aclose** (`Function`)
- - 📝 Close async transport resources.
- - ƒ **backend.src.core.async_superset_client.AsyncSupersetClient.get_dashboards_page_async** (`Function`)
- - 📝 Fetch one dashboards page asynchronously.
- - ƒ **get_dashboard_async** (`Function`)
- - 📝 Fetch one dashboard payload asynchronously.
- - ƒ **get_chart_async** (`Function`)
- - 📝 Fetch one chart payload asynchronously.
- - ƒ **get_dashboard_detail_async** (`Function`)
- - 📝 Fetch dashboard detail asynchronously with concurrent charts/datasets requests.
- - 🔗 CALLS -> `self.get_dashboard_async`
- - 🔗 CALLS -> `self.get_chart_async`
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **aclose** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dashboards_page_async** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **extract_dataset_id_from_form_data** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- ℂ **PluginBase** (`Class`) `[TRIVIAL]`
- - 📝 Defines the abstract base class that all plugins must implement to be recognized by the system. It enforces a common structure for plugin metadata and execution.
- - 🏗️ Layer: Core
- - 🔒 Invariant: All plugins MUST inherit from this class.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Returns the unique identifier for the plugin.
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Returns the human-readable name of the plugin.
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Returns a brief description of the plugin.
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Returns the version of the plugin.
- - ƒ **required_permission** (`Function`) `[TRIVIAL]`
- - 📝 Returns the required permission string to execute this plugin.
- - ƒ **ui_route** (`Function`) `[TRIVIAL]`
- - 📝 Returns the frontend route for the plugin's UI, if applicable.
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Returns the JSON schema for the plugin's input parameters.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Executes the plugin's core logic.
-- ℂ **PluginConfig** (`Class`) `[TRIVIAL]`
- - 📝 A Pydantic model used to represent the validated configuration and metadata of a loaded plugin. This object is what gets exposed to the API layer.
- - 🏗️ Layer: Core
-- 📦 **src.core** (`Package`) `[TRIVIAL]`
- - 📝 Backend core services and infrastructure package root.
-- 📦 **backend.src.core.mapping_service** (`Module`) `[CRITICAL]`
- - 📝 Service for tracking and synchronizing Superset Resource IDs (UUID <-> Integer ID)
- - 🏗️ Layer: Core
- - 🔒 Invariant: sync_environment must handle remote API failures gracefully.
- - 🔗 DEPENDS_ON -> `backend.src.models.mapping (ResourceMapping, ResourceType)`
- - 🔗 DEPENDS_ON -> `backend.src.core.logger`
- - ℂ **IdMappingService** (`Class`) `[CRITICAL]`
- - 📝 Service handling the cataloging and retrieval of remote Superset Integer IDs.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the mapping service.
- - ƒ **start_scheduler** (`Function`) `[TRIVIAL]`
- - 📝 Starts the background scheduler with a given cron string.
- - ƒ **sync_environment** (`Function`) `[TRIVIAL]`
- - 📝 Fully synchronizes mapping for a specific environment.
- - ƒ **get_remote_id** (`Function`) `[TRIVIAL]`
- - 📝 Retrieves the remote integer ID for a given universal UUID.
- - ƒ **get_remote_ids_batch** (`Function`) `[TRIVIAL]`
- - 📝 Retrieves remote integer IDs for a list of universal UUIDs efficiently.
- - ƒ **sync_all** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.core.auth.config** (`Module`) `[CRITICAL]`
- - 📝 Centralized configuration for authentication and authorization.
- - 🏗️ Layer: Core
- - 🔒 Invariant: All sensitive configuration must have defaults or be loaded from environment.
- - 🔗 DEPENDS_ON -> `pydantic`
- - ℂ **AuthConfig** (`Class`) `[CRITICAL]`
- - 📝 Holds authentication-related settings.
- - 📦 **auth_config** (`Variable`) `[TRIVIAL]`
- - 📝 Singleton instance of AuthConfig.
-- 📦 **backend.src.core.auth.jwt** (`Module`)
- - 📝 JWT token generation and validation logic.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Tokens must include expiration time and user identifier.
- - 🔗 DEPENDS_ON -> `jose`
- - ƒ **create_access_token** (`Function`) `[TRIVIAL]`
- - 📝 Generates a new JWT access token.
- - ƒ **decode_token** (`Function`) `[TRIVIAL]`
- - 📝 Decodes and validates a JWT token.
-- 📦 **backend.src.core.auth.oauth** (`Module`) `[CRITICAL]`
- - 📝 ADFS OIDC configuration and client using Authlib.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Must use secure OIDC flows.
- - 🔗 DEPENDS_ON -> `authlib`
- - 📦 **oauth** (`Variable`) `[TRIVIAL]`
- - 📝 Global Authlib OAuth registry.
- - ƒ **register_adfs** (`Function`) `[TRIVIAL]`
- - 📝 Registers the ADFS OIDC client.
- - ƒ **is_adfs_configured** (`Function`) `[TRIVIAL]`
- - 📝 Checks if ADFS is properly configured.
-- 📦 **backend.src.core.auth.logger** (`Module`)
- - 📝 Audit logging for security-related events.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Must not log sensitive data like passwords or full tokens.
- - ƒ **log_security_event** (`Function`) `[TRIVIAL]`
- - 📝 Logs a security-related event for audit trails.
-- 📦 **backend.src.core.auth.security** (`Module`) `[CRITICAL]`
- - 📝 Utility for password hashing and verification using Passlib.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Uses bcrypt for hashing with standard work factor.
- - 🔗 DEPENDS_ON -> `passlib`
- - ƒ **verify_password** (`Function`) `[TRIVIAL]`
- - 📝 Verifies a plain password against a hashed password.
- - ƒ **get_password_hash** (`Function`) `[TRIVIAL]`
- - 📝 Generates a bcrypt hash for a plain password.
-- 📦 **AuthRepository** (`Module`) `[CRITICAL]`
- - 📝 Data access layer for authentication and user preference entities.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: All database read/write operations must execute via the injected SQLAlchemy session boundary.
- - 🔗 DEPENDS_ON -> `sqlalchemy.orm.Session`
- - 🔗 DEPENDS_ON -> `User:Class`
- - 🔗 DEPENDS_ON -> `Role:Class`
- - 🔗 DEPENDS_ON -> `Permission:Class`
- - 🔗 DEPENDS_ON -> `UserDashboardPreference:Class`
- - 🔗 DEPENDS_ON -> `belief_scope:Function`
- - ℂ **AuthRepository** (`Class`) `[CRITICAL]`
- - 📝 Initialize repository with database session.
- - ƒ **get_user_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve user by UUID.
- - ƒ **get_user_by_username** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve user by username.
- - ƒ **get_role_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve role by UUID with permissions preloaded.
- - ƒ **get_role_by_name** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve role by unique name.
- - ƒ **get_permission_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve permission by UUID.
- - ƒ **get_permission_by_resource_action** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve permission by resource and action tuple.
- - ƒ **list_permissions** (`Function`) `[TRIVIAL]`
- - 📝 List all system permissions.
- - ƒ **get_user_dashboard_preference** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve dashboard filters/preferences for a user.
- - ƒ **get_roles_by_ad_groups** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve roles that match a list of AD group names.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **src.core.auth** (`Package`) `[TRIVIAL]`
- - 📝 Authentication and authorization package root.
-- 📦 **test_auth** (`Module`)
- - 📝 Unit tests for authentication module
- - 🏗️ Layer: Domain
- - ƒ **db_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **auth_service** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **auth_repo** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_authenticate_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_role_permission_association** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_user_role_association** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_ad_group_mapping** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_authenticate_user_updates_last_login** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_authenticate_inactive_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_verify_password_empty_hash** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_provision_adfs_user_new** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_provision_adfs_user_existing** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.core.utils.async_network** (`Module`) `[CRITICAL]`
- - 📝 Provides async Superset API client with shared auth-token cache to avoid per-request re-login.
- - 🏗️ Layer: Infra
- - 🔒 Invariant: Async client reuses cached auth tokens per environment credentials and invalidates on 401.
- - 🔗 DEPENDS_ON -> `backend.src.core.utils.network.SupersetAuthCache`
- - ℂ **backend.src.core.utils.async_network.AsyncAPIClient** (`Class`)
- - 📝 Async Superset API client backed by httpx.AsyncClient with shared auth cache.
- - 🔗 DEPENDS_ON -> `backend.src.core.utils.network.SupersetAuthCache`
- - 🔗 CALLS -> `backend.src.core.utils.network.SupersetAuthCache.get`
- - 🔗 CALLS -> `backend.src.core.utils.network.SupersetAuthCache.set`
- - ƒ **backend.src.core.utils.async_network.AsyncAPIClient.__init__** (`Function`)
- - 📝 Initialize async API client for one environment.
- - ƒ **backend.src.core.utils.async_network.AsyncAPIClient._normalize_base_url** (`Function`) `[TRIVIAL]`
- - 📝 Normalize base URL for Superset API root construction.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_normalize_base_url** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **FileIO** (`Module`)
- - 📝 Предоставляет набор утилит для управления файловыми операциями, включая работу с временными файлами, архивами ZIP, файлами YAML и очистку директорий.
- - 🏗️ Layer: Infra
- - 🔗 DEPENDS_ON -> `backend.src.core.logger`
- - 🔗 DEPENDS_ON -> `pyyaml`
- - ℂ **InvalidZipFormatError** (`Class`) `[TRIVIAL]`
- - 📝 Exception raised when a file is not a valid ZIP archive.
- - ƒ **create_temp_file** (`Function`) `[TRIVIAL]`
- - 📝 Контекстный менеджер для создания временного файла или директории с гарантированным удалением.
- - ƒ **remove_empty_directories** (`Function`) `[TRIVIAL]`
- - 📝 Рекурсивно удаляет все пустые поддиректории, начиная с указанного пути.
- - ƒ **read_dashboard_from_disk** (`Function`) `[TRIVIAL]`
- - 📝 Читает бинарное содержимое файла с диска.
- - ƒ **calculate_crc32** (`Function`) `[TRIVIAL]`
- - 📝 Вычисляет контрольную сумму CRC32 для файла.
- - 📦 **RetentionPolicy** (`DataClass`) `[TRIVIAL]`
- - 📝 Определяет политику хранения для архивов (ежедневные, еженедельные, ежемесячные).
- - ƒ **archive_exports** (`Function`) `[TRIVIAL]`
- - 📝 Управляет архивом экспортированных файлов, применяя политику хранения и дедупликацию.
- - 🔗 CALLS -> `apply_retention_policy`
- - 🔗 CALLS -> `calculate_crc32`
- - ƒ **apply_retention_policy** (`Function`) `[TRIVIAL]`
- - 📝 (Helper) Применяет политику хранения к списку файлов, возвращая те, что нужно сохранить.
- - ƒ **save_and_unpack_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Сохраняет бинарное содержимое ZIP-архива на диск и опционально распаковывает его.
- - ƒ **update_yamls** (`Function`) `[TRIVIAL]`
- - 📝 Обновляет конфигурации в YAML-файлах, заменяя значения или применяя regex.
- - 🔗 CALLS -> `_update_yaml_file`
- - ƒ **_update_yaml_file** (`Function`) `[TRIVIAL]`
- - 📝 (Helper) Обновляет один YAML файл.
- - ƒ **replacer** (`Function`) `[TRIVIAL]`
- - 📝 Функция замены, сохраняющая кавычки если они были.
- - ƒ **create_dashboard_export** (`Function`) `[TRIVIAL]`
- - 📝 Создает ZIP-архив из указанных исходных путей.
- - ƒ **sanitize_filename** (`Function`) `[TRIVIAL]`
- - 📝 Очищает строку от символов, недопустимых в именах файлов.
- - ƒ **get_filename_from_headers** (`Function`) `[TRIVIAL]`
- - 📝 Извлекает имя файла из HTTP заголовка 'Content-Disposition'.
- - ƒ **consolidate_archive_folders** (`Function`) `[TRIVIAL]`
- - 📝 Консолидирует директории архивов на основе общего слага в имени.
-- 📦 **network** (`Module`)
- - 📝 Инкапсулирует низкоуровневую HTTP-логику для взаимодействия с Superset API, включая аутентификацию, управление сессией, retry-логику и обработку ошибок.
- - 🏗️ Layer: Infra
- - 🔗 DEPENDS_ON -> `backend.src.core.logger`
- - 🔗 DEPENDS_ON -> `requests`
- - ℂ **SupersetAPIError** (`Class`) `[TRIVIAL]`
- - 📝 Base exception for all Superset API related errors.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the exception with a message and context.
- - ℂ **AuthenticationError** (`Class`) `[TRIVIAL]`
- - 📝 Exception raised when authentication fails.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the authentication error.
- - ℂ **PermissionDeniedError** (`Class`) `[TRIVIAL]`
- - 📝 Exception raised when access is denied.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the permission denied error.
- - ℂ **DashboardNotFoundError** (`Class`) `[TRIVIAL]`
- - 📝 Exception raised when a dashboard cannot be found.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the not found error with resource ID.
- - ℂ **NetworkError** (`Class`) `[TRIVIAL]`
- - 📝 Exception raised when a network level error occurs.
- - ƒ **network.APIClient.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the network error.
- - ℂ **network.SupersetAuthCache** (`Class`) `[TRIVIAL]`
- - 📝 Process-local cache for Superset access/csrf tokens keyed by environment credentials.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **build_key** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **set** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **invalidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **init_poolmanager** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.core.utils.matching** (`Module`) `[TRIVIAL]`
- - 📝 Provides utility functions for fuzzy matching database names.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Confidence scores are returned as floats between 0.0 and 1.0.
- - 🔗 DEPENDS_ON -> `rapidfuzz`
- - ƒ **suggest_mappings** (`Function`) `[TRIVIAL]`
- - 📝 Suggests mappings between source and target databases using fuzzy matching.
-- 📦 **backend.core.utils.dataset_mapper** (`Module`) `[TRIVIAL]`
- - 📝 Этот модуль отвечает за обновление метаданных (verbose_map) в датасетах Superset, извлекая их из PostgreSQL или XLSX-файлов.
- - 🏗️ Layer: Domain
- - 🔗 DEPENDS_ON -> `backend.core.superset_client`
- - 🔗 DEPENDS_ON -> `pandas`
- - 🔗 DEPENDS_ON -> `psycopg2`
- - ℂ **DatasetMapper** (`Class`) `[TRIVIAL]`
- - 📝 Класс для меппинга и обновления verbose_map в датасетах Superset.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the mapper.
- - ƒ **get_postgres_comments** (`Function`) `[TRIVIAL]`
- - 📝 Извлекает комментарии к колонкам из системного каталога PostgreSQL.
- - ƒ **load_excel_mappings** (`Function`) `[TRIVIAL]`
- - 📝 Загружает меппинги 'column_name' -> 'column_comment' из XLSX файла.
- - ƒ **run_mapping** (`Function`) `[TRIVIAL]`
- - 📝 Основная функция для выполнения меппинга и обновления verbose_map датасета в Superset.
- - 🔗 CALLS -> `self.get_postgres_comments`
- - 🔗 CALLS -> `self.load_excel_mappings`
- - 🔗 CALLS -> `superset_client.get_dataset`
- - 🔗 CALLS -> `superset_client.update_dataset`
-- 📦 **src.core.utils** (`Package`) `[TRIVIAL]`
- - 📝 Shared utility package root.
-- 📦 **backend.src.core.__tests__.test_superset_profile_lookup** (`Module`)
- - 📝 Verifies Superset profile lookup adapter payload normalization and fallback error precedence.
- - 🏗️ Layer: Domain
- - ℂ **_RecordingNetworkClient** (`Class`) `[TRIVIAL]`
- - 📝 Records request payloads and returns scripted responses for deterministic adapter tests.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes scripted network responses.
- - ƒ **request** (`Function`) `[TRIVIAL]`
- - 📝 Mimics APIClient.request while capturing call arguments.
- - ƒ **test_get_users_page_sends_lowercase_order_direction** (`Function`) `[TRIVIAL]`
- - 📝 Ensures adapter sends lowercase order_direction compatible with Superset rison schema.
- - ƒ **test_get_users_page_preserves_primary_schema_error_over_fallback_auth_error** (`Function`) `[TRIVIAL]`
- - 📝 Ensures fallback auth error does not mask primary schema/query failure.
- - ƒ **test_get_users_page_uses_fallback_endpoint_when_primary_fails** (`Function`) `[TRIVIAL]`
- - 📝 Verifies adapter retries second users endpoint and succeeds when fallback is healthy.
-- 📦 **test_throttled_scheduler** (`Module`)
- - 📝 Unit tests for ThrottledSchedulerConfigurator distribution logic.
- - ƒ **test_calculate_schedule_even_distribution** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_calculate_schedule_midnight_crossing** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_calculate_schedule_single_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_calculate_schedule_empty_list** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_calculate_schedule_zero_window** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_calculate_schedule_very_small_window** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.core.__tests__.test_config_manager_compat** (`Module`)
- - 📝 Verifies ConfigManager compatibility wrappers preserve legacy payload sections.
- - 🏗️ Layer: Domain
- - ƒ **test_get_payload_preserves_legacy_sections** (`Function`) `[TRIVIAL]`
- - 📝 Ensure get_payload merges typed config into raw payload without dropping legacy sections.
- - ƒ **test_save_config_accepts_raw_payload_and_keeps_extras** (`Function`) `[TRIVIAL]`
- - 📝 Ensure save_config accepts raw dict payload, refreshes typed config, and preserves extra sections.
- - ƒ **_capture_save** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_logger** (`Module`)
- - 📝 Unit tests for logger module
- - 🏗️ Layer: Infra
- - ƒ **test_belief_scope_logs_entry_action_exit_at_debug** (`Function`) `[TRIVIAL]`
- - 📝 Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs at DEBUG level.
- - ƒ **test_belief_scope_error_handling** (`Function`) `[TRIVIAL]`
- - 📝 Test that belief_scope logs Coherence:Failed on exception.
- - ƒ **test_belief_scope_success_coherence** (`Function`) `[TRIVIAL]`
- - 📝 Test that belief_scope logs Coherence:OK on success.
- - ƒ **test_belief_scope_not_visible_at_info** (`Function`) `[TRIVIAL]`
- - 📝 Test that belief_scope Entry/Exit/Coherence logs are NOT visible at INFO level.
- - ƒ **test_task_log_level_default** (`Function`) `[TRIVIAL]`
- - 📝 Test that default task log level is INFO.
- - ƒ **test_should_log_task_level** (`Function`) `[TRIVIAL]`
- - 📝 Test that should_log_task_level correctly filters log levels.
- - ƒ **test_configure_logger_task_log_level** (`Function`) `[TRIVIAL]`
- - 📝 Test that configure_logger updates task_log_level.
- - ƒ **test_enable_belief_state_flag** (`Function`) `[TRIVIAL]`
- - 📝 Test that enable_belief_state flag controls belief_scope logging.
- - ƒ **test_belief_scope_missing_anchor** (`Function`) `[TRIVIAL]`
- - 📝 Test @PRE condition: anchor_id must be provided
- - ƒ **test_configure_logger_post_conditions** (`Function`) `[TRIVIAL]`
- - 📝 Test @POST condition: Logger level, handlers, belief state flag, and task log level are updated.
- - ƒ **reset_logger_state** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.core.migration.dry_run_orchestrator** (`Module`)
- - 📝 Compute pre-flight migration diff and risk scoring without apply.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Dry run is informative only and must not mutate target environment.
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
- - 🔗 DEPENDS_ON -> `backend.src.core.migration_engine.MigrationEngine`
- - 🔗 DEPENDS_ON -> `backend.src.core.migration.archive_parser.MigrationArchiveParser`
- - 🔗 DEPENDS_ON -> `backend.src.core.migration.risk_assessor`
- - ℂ **MigrationDryRunService** (`Class`) `[CRITICAL]`
- - 📝 Build deterministic diff/risk payload for migration pre-flight.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Wire parser dependency for archive object extraction.
- - ƒ **run** (`Function`) `[TRIVIAL]`
- - 📝 Execute full dry-run computation for selected dashboards.
- - ƒ **_load_db_mapping** (`Function`) `[TRIVIAL]`
- - 📝 Resolve UUID mapping for optional DB config replacement.
- - ƒ **_accumulate_objects** (`Function`) `[TRIVIAL]`
- - 📝 Merge extracted resources by UUID to avoid duplicates.
- - ƒ **_index_by_uuid** (`Function`) `[TRIVIAL]`
- - 📝 Build UUID-index map for normalized resources.
- - ƒ **_build_object_diff** (`Function`) `[TRIVIAL]`
- - 📝 Compute create/update/delete buckets by UUID+signature.
- - ƒ **_build_target_signatures** (`Function`) `[TRIVIAL]`
- - 📝 Pull target metadata and normalize it into comparable signatures.
- - ƒ **_build_risks** (`Function`) `[TRIVIAL]`
- - 📝 Build risk items for missing datasource, broken refs, overwrite, owner mismatch.
-- 📦 **backend.src.core.migration.archive_parser** (`Module`)
- - 📝 Parse Superset export ZIP archives into normalized object catalogs for diffing.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Parsing is read-only and never mutates archive files.
- - 🔗 DEPENDS_ON -> `backend.src.core.logger`
- - ℂ **MigrationArchiveParser** (`Class`) `[CRITICAL]`
- - 📝 Extract normalized dashboards/charts/datasets metadata from ZIP archives.
- - ƒ **extract_objects_from_zip** (`Function`) `[TRIVIAL]`
- - 📝 Extract object catalogs from Superset archive.
- - ƒ **_collect_yaml_objects** (`Function`) `[TRIVIAL]`
- - 📝 Read and normalize YAML manifests for one object type.
- - ƒ **_normalize_object_payload** (`Function`) `[TRIVIAL]`
- - 📝 Convert raw YAML payload to stable diff signature shape.
-- 📦 **backend.src.core.migration.risk_assessor** (`Module`) `[CRITICAL]`
- - 📝 Compute deterministic migration risk items and aggregate score for dry-run reporting.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Risk scoring must remain bounded to [0,100] and preserve severity-to-weight mapping.
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
- - 🔗 DISPATCHES -> `backend.src.core.migration.dry_run_orchestrator.MigrationDryRunService.run`
- - ƒ **index_by_uuid** (`Function`) `[TRIVIAL]`
- - 📝 Build UUID-index from normalized objects.
- - ƒ **extract_owner_identifiers** (`Function`) `[TRIVIAL]`
- - 📝 Normalize owner payloads for stable comparison.
- - ƒ **build_risks** (`Function`) `[TRIVIAL]`
- - 📝 Build risk list from computed diffs and target catalog state.
- - ƒ **score_risks** (`Function`) `[TRIVIAL]`
- - 📝 Aggregate risk list into score and level.
-- 📦 **backend.src.core.migration.__init__** (`Module`) `[TRIVIAL]`
- - 📝 Namespace package for migration pre-flight orchestration components.
- - 🏗️ Layer: Core
-- 📦 **TaskLoggerModule** (`Module`) `[CRITICAL]`
- - 📝 Provides a dedicated logger for tasks with automatic source attribution.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Each TaskLogger instance is bound to a specific task_id and default source.
- - 🔗 DEPENDS_ON -> `TaskManager, CALLS -> TaskManager._add_log`
- - ℂ **TaskLogger** (`Class`) `[CRITICAL]`
- - 📝 A wrapper around TaskManager._add_log that carries task_id and source context.
- - 🔒 Invariant: All log calls include the task_id and source.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initialize the TaskLogger with task context.
- - ƒ **with_source** (`Function`) `[TRIVIAL]`
- - 📝 Create a sub-logger with a different default source.
- - ƒ **_log** (`Function`) `[TRIVIAL]`
- - 📝 Internal method to log a message at a given level.
- - ƒ **debug** (`Function`) `[TRIVIAL]`
- - 📝 Log a DEBUG level message.
- - ƒ **info** (`Function`) `[TRIVIAL]`
- - 📝 Log an INFO level message.
- - ƒ **warning** (`Function`) `[TRIVIAL]`
- - 📝 Log a WARNING level message.
- - ƒ **error** (`Function`) `[TRIVIAL]`
- - 📝 Log an ERROR level message.
- - ƒ **progress** (`Function`) `[TRIVIAL]`
- - 📝 Log a progress update with percentage.
-- 📦 **TaskPersistenceModule** (`Module`) `[CRITICAL]`
- - 📝 Handles the persistence of tasks using SQLAlchemy and the tasks.db database.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Database schema must match the TaskRecord model structure.
- - 🔗 DEPENDS_ON -> `TasksSessionLocal`
- - ℂ **TaskPersistenceService** (`Class`) `[CRITICAL]`
- - 📝 Provides methods to save, load, and delete task records in tasks.db using SQLAlchemy models.
- - 🔒 Invariant: Persistence must handle potentially missing task fields natively.
- - 🔗 DEPENDS_ON -> `TasksSessionLocal`
- - 🔗 DEPENDS_ON -> `TaskRecord`
- - 🔗 DEPENDS_ON -> `Environment`
- - ƒ **_json_load_if_needed** (`Function`) `[TRIVIAL]`
- - 📝 Safely load JSON strings from DB if necessary
- - ƒ **_parse_datetime** (`Function`) `[TRIVIAL]`
- - 📝 Safely parse a datetime string from the database
- - ƒ **_resolve_environment_id** (`Function`)
- - 📝 Resolve environment id into existing environments.id value to satisfy FK constraints.
- - ƒ **__init__** (`Function`)
- - 📝 Initializes the persistence service.
- - ƒ **persist_task** (`Function`)
- - 📝 Persists or updates a single task in the database.
- - 🔗 CALLS -> `_resolve_environment_id`
- - ƒ **persist_tasks** (`Function`)
- - 📝 Persists multiple tasks.
- - 🔗 CALLS -> `persist_task`
- - ƒ **load_tasks** (`Function`)
- - 📝 Loads tasks from the database.
- - 🔗 CALLS -> `_json_load_if_needed`
- - 🔗 CALLS -> `_parse_datetime`
- - ƒ **delete_tasks** (`Function`)
- - 📝 Deletes specific tasks from the database.
- - ℂ **TaskLogPersistenceService** (`Class`) `[CRITICAL]`
- - 📝 Provides methods to store, query, summarize, and delete task log rows in the task_logs table.
- - 🔒 Invariant: Log entries are batch-inserted for performance.
- - 🔗 DEPENDS_ON -> `TaskLogRecord`
- - 🔗 DEPENDS_ON -> `TasksSessionLocal`
- - ƒ **__init__** (`Function`)
- - 📝 Initializes the TaskLogPersistenceService
- - ƒ **add_logs** (`Function`)
- - 📝 Batch insert log entries for a task.
- - ƒ **get_logs** (`Function`)
- - 📝 Query logs for a task with filtering and pagination.
- - ƒ **get_log_stats** (`Function`)
- - 📝 Get statistics about logs for a task.
- - ƒ **get_sources** (`Function`)
- - 📝 Get unique sources for a task's logs.
- - ƒ **delete_logs_for_task** (`Function`)
- - 📝 Delete all logs for a specific task.
- - ƒ **delete_logs_for_tasks** (`Function`)
- - 📝 Delete all logs for multiple tasks.
- - ƒ **normalize_token** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **json_serializable** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **TaskManager** (`Module`) `[CRITICAL]`
- - 📝 Manages the lifecycle of tasks, including their creation, execution, and state tracking. It uses a thread pool to run plugins asynchronously.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Task IDs are unique.
- - 🔗 DEPENDS_ON -> `PluginLoader:Class`
- - 🔗 DEPENDS_ON -> `TaskPersistenceModule:Module`
- - ℂ **TaskManager** (`Class`) `[CRITICAL]`
- - 📝 Manages the lifecycle of tasks, including their creation, execution, and state tracking.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Log entries are never deleted after being added to a task.
- - 🔗 DEPENDS_ON -> `TaskPersistenceService:Class`
- - 🔗 DEPENDS_ON -> `TaskLogPersistenceService:Class`
- - 🔗 DEPENDS_ON -> `PluginLoader:Class`
- - ƒ **__init__** (`Function`) `[CRITICAL]`
- - 📝 Initialize the TaskManager with dependencies.
- - ƒ **_flusher_loop** (`Function`)
- - 📝 Background thread that periodically flushes log buffer to database.
- - ƒ **_flush_logs** (`Function`)
- - 📝 Flush all buffered logs to the database.
- - ƒ **_flush_task_logs** (`Function`)
- - 📝 Flush logs for a specific task immediately.
- - ƒ **create_task** (`Function`)
- - 📝 Creates and queues a new task for execution.
- - ƒ **_run_task** (`Function`)
- - 📝 Internal method to execute a task with TaskContext support.
- - ƒ **resolve_task** (`Function`)
- - 📝 Resumes a task that is awaiting mapping.
- - ƒ **wait_for_resolution** (`Function`)
- - 📝 Pauses execution and waits for a resolution signal.
- - ƒ **wait_for_input** (`Function`)
- - 📝 Pauses execution and waits for user input.
- - ƒ **get_task** (`Function`)
- - 📝 Retrieves a task by its ID.
- - ƒ **get_all_tasks** (`Function`)
- - 📝 Retrieves all registered tasks.
- - ƒ **get_tasks** (`Function`)
- - 📝 Retrieves tasks with pagination and optional status filter.
- - ƒ **get_task_logs** (`Function`)
- - 📝 Retrieves logs for a specific task (from memory for running, persistence for completed).
- - ƒ **get_task_log_stats** (`Function`)
- - 📝 Get statistics about logs for a task.
- - ƒ **get_task_log_sources** (`Function`)
- - 📝 Get unique sources for a task's logs.
- - ƒ **_add_log** (`Function`)
- - 📝 Adds a log entry to a task buffer and notifies subscribers.
- - ƒ **subscribe_logs** (`Function`)
- - 📝 Subscribes to real-time logs for a task.
- - ƒ **unsubscribe_logs** (`Function`)
- - 📝 Unsubscribes from real-time logs for a task.
- - ƒ **load_persisted_tasks** (`Function`)
- - 📝 Load persisted tasks using persistence service.
- - ƒ **await_input** (`Function`)
- - 📝 Transition a task to AWAITING_INPUT state with input request.
- - ƒ **resume_task_with_password** (`Function`)
- - 📝 Resume a task that is awaiting input with provided passwords.
- - ƒ **clear_tasks** (`Function`)
- - 📝 Clears tasks based on status filter (also deletes associated logs).
- - ƒ **sort_key** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **TaskManagerModels** (`Module`)
- - 📝 Defines the data models and enumerations used by the Task Manager.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Task IDs are immutable once created.
- - 📦 **TaskStatus** (`Enum`) `[TRIVIAL]`
- - 📝 Defines the possible states a task can be in during its lifecycle.
- - 📦 **LogLevel** (`Enum`)
- - 📝 Defines the possible log levels for task logging.
- - ℂ **LogEntry** (`Class`) `[CRITICAL]`
- - 📝 A Pydantic model representing a single, structured log entry associated with a task.
- - 🔒 Invariant: Each log entry has a unique timestamp and source.
- - ℂ **TaskLog** (`Class`)
- - 📝 A Pydantic model representing a persisted log entry from the database.
- - ℂ **LogFilter** (`Class`)
- - 📝 Filter parameters for querying task logs.
- - ℂ **LogStats** (`Class`)
- - 📝 Statistics about log entries for a task.
- - ℂ **Task** (`Class`)
- - 📝 A Pydantic model representing a single execution instance of a plugin, including its status, parameters, and logs.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the Task model and validates input_request for AWAITING_INPUT status.
-- 📦 **TaskCleanupModule** (`Module`)
- - 📝 Implements task cleanup and retention policies, including associated logs.
- - 🏗️ Layer: Core
- - ℂ **TaskCleanupService** (`Class`)
- - 📝 Provides methods to clean up old task records and their associated logs.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the cleanup service with dependencies.
- - ƒ **run_cleanup** (`Function`) `[TRIVIAL]`
- - 📝 Deletes tasks older than the configured retention period and their logs.
- - ƒ **delete_task_with_logs** (`Function`) `[TRIVIAL]`
- - 📝 Delete a single task and all its associated logs.
-- 📦 **TaskManagerPackage** (`Module`) `[TRIVIAL]`
- - 📝 Exports the public API of the task manager package.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Package exports stay aligned with manager and models contracts.
- - 🔗 DEPENDS_ON -> `TaskManagerModels`
- - 🔗 DEPENDS_ON -> `TaskManagerModule`
- - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.manager.TaskManager`
-- 📦 **TaskContextModule** (`Module`) `[CRITICAL]`
- - 📝 Provides execution context passed to plugins during task execution.
- - 🏗️ Layer: Core
- - 🔒 Invariant: Each TaskContext is bound to a single task execution.
- - 🔗 DEPENDS_ON -> `TaskLogger, USED_BY -> plugins`
- - ℂ **TaskContext** (`Class`) `[CRITICAL]`
- - 📝 A container passed to plugin.execute() providing the logger and other task-specific utilities.
- - 🔒 Invariant: logger is always a valid TaskLogger instance.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initialize the TaskContext with task-specific resources.
- - ƒ **task_id** (`Function`) `[TRIVIAL]`
- - 📝 Get the task ID.
- - ƒ **logger** (`Function`) `[TRIVIAL]`
- - 📝 Get the TaskLogger instance for this context.
- - ƒ **params** (`Function`) `[TRIVIAL]`
- - 📝 Get the task parameters.
- - ƒ **background_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Expose optional background task scheduler for plugins that dispatch deferred side effects.
- - ƒ **get_param** (`Function`) `[TRIVIAL]`
- - 📝 Get a specific parameter value with optional default.
- - ƒ **create_sub_context** (`Function`) `[TRIVIAL]`
- - 📝 Create a sub-context with a different default source.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_task_logger** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/core/task_manager/__tests__/test_task_logger.py
- - 🏗️ Layer: Unknown
- - ƒ **mock_add_log** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **task_logger** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_task_logger_initialization** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_log_methods_delegation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_with_source** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_missing_task_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_invalid_add_log_fn** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_progress_log** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.core.task_manager.__tests__.test_context** (`Module`)
- - 📝 Verify TaskContext preserves optional background task scheduler across sub-context creation.
- - ƒ **test_task_context_preserves_background_tasks_across_sub_context** (`Function`) `[TRIVIAL]`
- - 📝 Plugins must be able to access background_tasks from both root and sub-context loggers.
-- 📦 **AuthApi** (`Module`)
- - 📝 Authentication API endpoints.
- - 🏗️ Layer: API
- - 🔒 Invariant: All auth endpoints must return consistent error codes.
- - 🔗 DEPENDS_ON -> `AuthRepository:Class`
- - 📦 **router** (`Variable`) `[TRIVIAL]`
- - 📝 APIRouter instance for authentication routes.
- - ƒ **login_for_access_token** (`Function`)
- - 📝 Authenticates a user and returns a JWT access token.
- - 🔗 CALLS -> `AuthService.authenticate_user`
- - 🔗 CALLS -> `AuthService.create_session`
- - ƒ **read_users_me** (`Function`)
- - 📝 Retrieves the profile of the currently authenticated user.
- - 🔗 DEPENDS_ON -> `get_current_user`
- - ƒ **logout** (`Function`)
- - 📝 Logs out the current user (placeholder for session revocation).
- - 🔗 DEPENDS_ON -> `get_current_user`
- - ƒ **login_adfs** (`Function`)
- - 📝 Initiates the ADFS OIDC login flow.
- - ƒ **auth_callback_adfs** (`Function`)
- - 📝 Handles the callback from ADFS after successful authentication.
- - 🔗 CALLS -> `AuthService.provision_adfs_user`
- - 🔗 CALLS -> `AuthService.create_session`
-- 📦 **src.api** (`Package`) `[TRIVIAL]`
- - 📝 Backend API package root.
-- 📦 **router** (`Global`) `[TRIVIAL]`
- - 📝 APIRouter instance for LLM routes.
-- ƒ **_is_valid_runtime_api_key** (`Function`) `[TRIVIAL]`
- - 📝 Validate decrypted runtime API key presence/shape.
-- ƒ **get_providers** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve all LLM provider configurations.
-- ƒ **get_llm_status** (`Function`) `[TRIVIAL]`
- - 📝 Returns whether LLM runtime is configured for dashboard validation.
-- ƒ **create_provider** (`Function`) `[TRIVIAL]`
- - 📝 Create a new LLM provider configuration.
-- ƒ **update_provider** (`Function`) `[TRIVIAL]`
- - 📝 Update an existing LLM provider configuration.
-- ƒ **delete_provider** (`Function`) `[TRIVIAL]`
- - 📝 Delete an LLM provider configuration.
-- ƒ **test_connection** (`Function`) `[TRIVIAL]`
- - 📝 Test connection to an LLM provider.
-- ƒ **test_provider_config** (`Function`) `[TRIVIAL]`
- - 📝 Test connection with a provided configuration (not yet saved).
-- 📦 **backend.src.api.routes.datasets** (`Module`)
- - 📝 API endpoints for the Dataset Hub - listing datasets with mapping progress
- - 🏗️ Layer: API
- - 🔒 Invariant: All dataset responses include last_task metadata
- - 🔗 DEPENDS_ON -> `AppDependencies`
- - 🔗 DEPENDS_ON -> `backend.src.services.resource_service.ResourceService`
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
- - 📦 **MappedFields** (`DataClass`) `[TRIVIAL]`
- - 📝 DTO for dataset mapping progress statistics
- - 📦 **LastTask** (`DataClass`) `[TRIVIAL]`
- - 📝 DTO for the most recent task associated with a dataset
- - 📦 **DatasetItem** (`DataClass`) `[TRIVIAL]`
- - 📝 Summary DTO for a dataset in the hub listing
- - 📦 **LinkedDashboard** (`DataClass`) `[TRIVIAL]`
- - 📝 DTO for a dashboard linked to a dataset
- - 📦 **DatasetColumn** (`DataClass`) `[TRIVIAL]`
- - 📝 DTO for a single dataset column's metadata
- - 📦 **DatasetDetailResponse** (`DataClass`) `[TRIVIAL]`
- - 📝 Detailed DTO for a dataset including columns and links
- - 📦 **DatasetsResponse** (`DataClass`) `[TRIVIAL]`
- - 📝 Paginated response DTO for dataset listings
- - 📦 **TaskResponse** (`DataClass`) `[TRIVIAL]`
- - 📝 Response DTO containing a task ID for tracking
- - ƒ **get_dataset_ids** (`Function`)
- - 📝 Fetch list of all dataset IDs from a specific environment (without pagination)
- - 🔗 CALLS -> `get_datasets_with_status`
- - ƒ **get_datasets** (`Function`)
- - 📝 Fetch list of datasets from a specific environment with mapping progress
- - 🔗 CALLS -> `backend.src.services.resource_service.ResourceService.get_datasets_with_status`
- - 📦 **MapColumnsRequest** (`DataClass`) `[TRIVIAL]`
- - 📝 Request DTO for initiating column mapping
- - ƒ **map_columns** (`Function`)
- - 📝 Trigger bulk column mapping for datasets
- - 🔗 DISPATCHES -> `backend.src.plugins.mapper.MapperPlugin`
- - 🔗 CALLS -> `backend.src.core.task_manager.manager.TaskManager:create_task`
- - 📦 **GenerateDocsRequest** (`DataClass`) `[TRIVIAL]`
- - 📝 Request DTO for initiating documentation generation
- - ƒ **generate_docs** (`Function`)
- - 📝 Trigger bulk documentation generation for datasets
- - 🔗 DISPATCHES -> `backend.src.plugins.llm_analysis.plugin.DocumentationPlugin`
- - 🔗 CALLS -> `backend.src.core.task_manager.manager.TaskManager:create_task`
- - ƒ **get_dataset_detail** (`Function`)
- - 📝 Get detailed dataset information including columns and linked dashboards
- - 🔗 CALLS -> `backend.src.core.superset_client.SupersetClient:get_dataset_detail`
-- 📦 **backend.src.api.routes.git** (`Module`)
- - 📝 Provides FastAPI endpoints for Git integration operations.
- - 🏗️ Layer: API
- - 🔒 Invariant: All Git operations must be routed through GitService.
- - ƒ **_build_no_repo_status_payload** (`Function`) `[TRIVIAL]`
- - 📝 Build a consistent status payload for dashboards without initialized repositories.
- - ƒ **_handle_unexpected_git_route_error** (`Function`) `[TRIVIAL]`
- - 📝 Convert unexpected route-level exceptions to stable 500 API responses.
- - ƒ **_resolve_repository_status** (`Function`)
- - 📝 Resolve repository status for one dashboard with graceful NO_REPO semantics.
- - ƒ **_get_git_config_or_404** (`Function`)
- - 📝 Resolve GitServerConfig by id or raise 404.
- - ƒ **_find_dashboard_id_by_slug** (`Function`)
- - 📝 Resolve dashboard numeric ID by slug in a specific environment.
- - ƒ **_resolve_dashboard_id_from_ref** (`Function`)
- - 📝 Resolve dashboard ID from slug-or-id reference for Git routes.
- - ƒ **_find_dashboard_id_by_slug_async** (`Function`)
- - 📝 Resolve dashboard numeric ID by slug asynchronously for hot-path Git routes.
- - ƒ **_resolve_dashboard_id_from_ref_async** (`Function`)
- - 📝 Resolve dashboard ID asynchronously from slug-or-id reference for hot Git routes.
- - ƒ **_resolve_repo_key_from_ref** (`Function`)
- - 📝 Resolve repository folder key with slug-first strategy and deterministic fallback.
- - ƒ **_sanitize_optional_identity_value** (`Function`) `[TRIVIAL]`
- - 📝 Normalize optional identity value into trimmed string or None.
- - ƒ **_resolve_current_user_git_identity** (`Function`)
- - 📝 Resolve configured Git username/email from current user's profile preferences.
- - ƒ **_apply_git_identity_from_profile** (`Function`)
- - 📝 Apply user-scoped Git identity to repository-local config before write/pull operations.
- - ƒ **get_git_configs** (`Function`)
- - 📝 List all configured Git servers.
- - ƒ **create_git_config** (`Function`)
- - 📝 Register a new Git server configuration.
- - ƒ **update_git_config** (`Function`)
- - 📝 Update an existing Git server configuration.
- - ƒ **delete_git_config** (`Function`)
- - 📝 Remove a Git server configuration.
- - ƒ **test_git_config** (`Function`)
- - 📝 Validate connection to a Git server using provided credentials.
- - ƒ **list_gitea_repositories** (`Function`)
- - 📝 List repositories in Gitea for a saved Gitea config.
- - ƒ **create_gitea_repository** (`Function`)
- - 📝 Create a repository in Gitea for a saved Gitea config.
- - ƒ **create_remote_repository** (`Function`)
- - 📝 Create repository on remote Git server using selected provider config.
- - ƒ **delete_gitea_repository** (`Function`)
- - 📝 Delete repository in Gitea for a saved Gitea config.
- - ƒ **init_repository** (`Function`)
- - 📝 Link a dashboard to a Git repository and perform initial clone/init.
- - ƒ **get_repository_binding** (`Function`)
- - 📝 Return repository binding with provider metadata for selected dashboard.
- - ƒ **delete_repository** (`Function`)
- - 📝 Delete local repository workspace and DB binding for selected dashboard.
- - ƒ **get_branches** (`Function`)
- - 📝 List all branches for a dashboard's repository.
- - ƒ **create_branch** (`Function`)
- - 📝 Create a new branch in the dashboard's repository.
- - ƒ **checkout_branch** (`Function`)
- - 📝 Switch the dashboard's repository to a specific branch.
- - ƒ **commit_changes** (`Function`)
- - 📝 Stage and commit changes in the dashboard's repository.
- - ƒ **push_changes** (`Function`)
- - 📝 Push local commits to the remote repository.
- - ƒ **pull_changes** (`Function`)
- - 📝 Pull changes from the remote repository.
- - ƒ **get_merge_status** (`Function`)
- - 📝 Return unfinished-merge status for repository (web-only recovery support).
- - ƒ **get_merge_conflicts** (`Function`)
- - 📝 Return conflicted files with mine/theirs previews for web conflict resolver.
- - ƒ **resolve_merge_conflicts** (`Function`)
- - 📝 Apply mine/theirs/manual conflict resolutions from WebUI and stage files.
- - ƒ **abort_merge** (`Function`)
- - 📝 Abort unfinished merge from WebUI flow.
- - ƒ **continue_merge** (`Function`)
- - 📝 Finalize unfinished merge from WebUI flow.
- - ƒ **sync_dashboard** (`Function`)
- - 📝 Sync dashboard state from Superset to Git using the GitPlugin.
- - ƒ **promote_dashboard** (`Function`)
- - 📝 Promote changes between branches via MR or direct merge.
- - ƒ **get_environments** (`Function`)
- - 📝 List all deployment environments.
- - ƒ **deploy_dashboard** (`Function`)
- - 📝 Deploy dashboard from Git to a target environment.
- - ƒ **get_history** (`Function`)
- - 📝 View commit history for a dashboard's repository.
- - ƒ **get_repository_status** (`Function`)
- - 📝 Get current Git status for a dashboard repository.
- - ƒ **get_repository_status_batch** (`Function`)
- - 📝 Get Git statuses for multiple dashboard repositories in one request.
- - ƒ **get_repository_diff** (`Function`)
- - 📝 Get Git diff for a dashboard repository.
- - ƒ **generate_commit_message** (`Function`)
- - 📝 Generate a suggested commit message using LLM.
-- 📦 **ConnectionsRouter** (`Module`) `[TRIVIAL]`
- - 📝 Defines the FastAPI router for managing external database connections.
- - 🏗️ Layer: UI (API)
- - ƒ **_ensure_connections_schema** (`Function`) `[TRIVIAL]`
- - 📝 Ensures the connection_configs table exists before CRUD access.
- - ℂ **ConnectionSchema** (`Class`) `[TRIVIAL]`
- - 📝 Pydantic model for connection response.
- - ℂ **ConnectionCreate** (`Class`) `[TRIVIAL]`
- - 📝 Pydantic model for creating a connection.
- - ƒ **list_connections** (`Function`) `[TRIVIAL]`
- - 📝 Lists all saved connections.
- - ƒ **create_connection** (`Function`) `[TRIVIAL]`
- - 📝 Creates a new connection configuration.
- - ƒ **delete_connection** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a connection configuration.
-- 📦 **health_router** (`Module`)
- - 📝 API endpoints for dashboard health monitoring and status aggregation.
- - 🏗️ Layer: UI/API
- - 🔗 DEPENDS_ON -> `health_service`
- - ƒ **get_health_summary** (`Function`) `[TRIVIAL]`
- - 📝 Get aggregated health status for all dashboards.
- - 🔗 CALLS -> `backend.src.services.health_service.HealthService`
- - ƒ **delete_health_report** (`Function`) `[TRIVIAL]`
- - 📝 Delete one persisted dashboard validation report from health summary.
- - 🔗 CALLS -> `backend.src.services.health_service.HealthService`
-- 📦 **backend.src.api.routes.environments** (`Module`)
- - 📝 API endpoints for listing environments and their databases.
- - 🏗️ Layer: API
- - 🔒 Invariant: Environment IDs must exist in the configuration.
- - 🔗 DEPENDS_ON -> `backend.src.dependencies`
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client`
- - ƒ **_normalize_superset_env_url** (`Function`) `[TRIVIAL]`
- - 📝 Canonicalize Superset environment URL to base host/path without trailing /api/v1.
- - 📦 **ScheduleSchema** (`DataClass`) `[TRIVIAL]`
- - 📦 **EnvironmentResponse** (`DataClass`) `[TRIVIAL]`
- - 📦 **DatabaseResponse** (`DataClass`) `[TRIVIAL]`
- - ƒ **get_environments** (`Function`) `[TRIVIAL]`
- - 📝 List all configured environments.
- - 🏗️ Layer: API
- - ƒ **update_environment_schedule** (`Function`) `[TRIVIAL]`
- - 📝 Update backup schedule for an environment.
- - 🏗️ Layer: API
- - ƒ **get_environment_databases** (`Function`) `[TRIVIAL]`
- - 📝 Fetch the list of databases from a specific environment.
- - 🏗️ Layer: API
-- 📦 **MigrationApi** (`Module`) `[CRITICAL]`
- - 📝 HTTP contract layer for migration orchestration, settings, dry-run, and mapping sync endpoints.
- - 🏗️ Layer: Infra
- - 🔒 Invariant: Migration endpoints never execute with invalid environment references and always return explicit HTTP errors on guard failures.
- - 🔗 DEPENDS_ON -> `AppDependencies`
- - 🔗 DEPENDS_ON -> `backend.src.core.database`
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
- - 🔗 DEPENDS_ON -> `backend.src.core.migration.dry_run_orchestrator.MigrationDryRunService`
- - 🔗 DEPENDS_ON -> `backend.src.core.mapping_service.IdMappingService`
- - 🔗 DEPENDS_ON -> `backend.src.models.dashboard`
- - 🔗 DEPENDS_ON -> `backend.src.models.mapping`
- - ƒ **get_dashboards** (`Function`)
- - 📝 Fetch dashboard metadata from a requested environment for migration selection UI.
- - ƒ **execute_migration** (`Function`) `[CRITICAL]`
- - 📝 Validate migration selection and enqueue asynchronous migration task execution.
- - ƒ **dry_run_migration** (`Function`) `[CRITICAL]`
- - 📝 Build pre-flight migration diff and risk summary without mutating target systems.
- - ƒ **get_migration_settings** (`Function`)
- - 📝 Read and return configured migration synchronization cron expression.
- - ƒ **update_migration_settings** (`Function`)
- - 📝 Validate and persist migration synchronization cron expression update.
- - ƒ **get_resource_mappings** (`Function`)
- - 📝 Fetch synchronized resource mappings with optional filters and pagination for migration mappings view.
- - ƒ **trigger_sync_now** (`Function`)
- - 📝 Trigger immediate ID synchronization for every configured environment.
-- 📦 **PluginsRouter** (`Module`)
- - 📝 Defines the FastAPI router for plugin-related endpoints, allowing clients to list available plugins.
- - 🏗️ Layer: UI (API)
- - ƒ **list_plugins** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve a list of all available plugins.
-- 📦 **backend.src.api.routes.clean_release_v2** (`Module`)
- - 📝 Redesigned clean release API for headless candidate lifecycle.
- - ℂ **ApprovalRequest** (`Class`) `[TRIVIAL]`
- - 📝 Schema for approval request payload.
- - ℂ **PublishRequest** (`Class`) `[TRIVIAL]`
- - 📝 Schema for publication request payload.
- - ℂ **RevokeRequest** (`Class`) `[TRIVIAL]`
- - 📝 Schema for revocation request payload.
- - ƒ **register_candidate** (`Function`)
- - 📝 Register a new release candidate.
- - 🔗 CALLS -> `CleanReleaseRepository.save_candidate`
- - ƒ **import_artifacts** (`Function`)
- - 📝 Associate artifacts with a release candidate.
- - 🔗 CALLS -> `CleanReleaseRepository.get_candidate`
- - ƒ **build_manifest** (`Function`)
- - 📝 Generate distribution manifest for a candidate.
- - 🔗 CALLS -> `CleanReleaseRepository.save_manifest`
- - 🔗 CALLS -> `CleanReleaseRepository.get_candidate`
- - ƒ **approve_candidate_endpoint** (`Function`)
- - 📝 Endpoint to record candidate approval.
- - 🔗 CALLS -> `approve_candidate`
- - ƒ **reject_candidate_endpoint** (`Function`)
- - 📝 Endpoint to record candidate rejection.
- - 🔗 CALLS -> `reject_candidate`
- - ƒ **publish_candidate_endpoint** (`Function`)
- - 📝 Endpoint to publish an approved candidate.
- - 🔗 CALLS -> `publish_candidate`
- - ƒ **revoke_publication_endpoint** (`Function`)
- - 📝 Endpoint to revoke a previous publication.
- - 🔗 CALLS -> `revoke_publication`
-- 📦 **backend.src.api.routes.mappings** (`Module`)
- - 📝 API endpoints for managing database mappings and getting suggestions.
- - 🏗️ Layer: API
- - 🔒 Invariant: Mappings are persisted in the SQLite database.
- - 🔗 DEPENDS_ON -> `backend.src.dependencies`
- - 🔗 DEPENDS_ON -> `backend.src.core.database`
- - 🔗 DEPENDS_ON -> `backend.src.services.mapping_service`
- - 📦 **MappingCreate** (`DataClass`) `[TRIVIAL]`
- - 📦 **MappingResponse** (`DataClass`) `[TRIVIAL]`
- - 📦 **SuggestRequest** (`DataClass`) `[TRIVIAL]`
- - ƒ **get_mappings** (`Function`) `[TRIVIAL]`
- - 📝 List all saved database mappings.
- - ƒ **create_mapping** (`Function`) `[TRIVIAL]`
- - 📝 Create or update a database mapping.
- - ƒ **suggest_mappings_api** (`Function`) `[TRIVIAL]`
- - 📝 Get suggested mappings based on fuzzy matching.
-- 📦 **SettingsRouter** (`Module`)
- - 📝 Provides API endpoints for managing application settings and Superset environments.
- - 🏗️ Layer: UI (API)
- - 🔒 Invariant: All settings changes must be persisted via ConfigManager.
- - 🔗 DEPENDS_ON -> `backend.src.core.config_manager.ConfigManager`
- - 🔗 DEPENDS_ON -> `backend.src.core.config_models`
- - ℂ **LoggingConfigResponse** (`Class`) `[TRIVIAL]`
- - 📝 Response model for logging configuration with current task log level.
- - ƒ **_normalize_superset_env_url** (`Function`) `[TRIVIAL]`
- - 📝 Canonicalize Superset environment URL to base host/path without trailing /api/v1.
- - ƒ **_validate_superset_connection_fast** (`Function`)
- - 📝 Run lightweight Superset connectivity validation without full pagination scan.
- - ƒ **get_settings** (`Function`)
- - 📝 Retrieves all application settings.
- - ƒ **update_global_settings** (`Function`)
- - 📝 Updates global application settings.
- - ƒ **get_storage_settings** (`Function`)
- - 📝 Retrieves storage-specific settings.
- - ƒ **update_storage_settings** (`Function`)
- - 📝 Updates storage-specific settings.
- - ƒ **get_environments** (`Function`)
- - 📝 Lists all configured Superset environments.
- - ƒ **add_environment** (`Function`)
- - 📝 Adds a new Superset environment.
- - ƒ **update_environment** (`Function`)
- - 📝 Updates an existing Superset environment.
- - ƒ **delete_environment** (`Function`)
- - 📝 Deletes a Superset environment.
- - ƒ **test_environment_connection** (`Function`)
- - 📝 Tests the connection to a Superset environment.
- - ƒ **get_logging_config** (`Function`)
- - 📝 Retrieves current logging configuration.
- - ƒ **update_logging_config** (`Function`)
- - 📝 Updates logging configuration.
- - ℂ **ConsolidatedSettingsResponse** (`Class`) `[TRIVIAL]`
- - 📝 Response model for consolidated application settings.
- - ƒ **get_consolidated_settings** (`Function`)
- - 📝 Retrieves all settings categories in a single call
- - ƒ **update_consolidated_settings** (`Function`)
- - 📝 Bulk update application settings from the consolidated view.
- - ƒ **get_validation_policies** (`Function`)
- - 📝 Lists all validation policies.
- - ƒ **create_validation_policy** (`Function`)
- - 📝 Creates a new validation policy.
- - ƒ **update_validation_policy** (`Function`)
- - 📝 Updates an existing validation policy.
- - ƒ **delete_validation_policy** (`Function`)
- - 📝 Deletes a validation policy.
-- 📦 **AdminApi** (`Module`)
- - 📝 Admin API endpoints for user and role management.
- - 🏗️ Layer: API
- - 🔒 Invariant: All endpoints in this module require 'Admin' role or 'admin' scope.
- - 📦 **router** (`Variable`) `[TRIVIAL]`
- - 📝 APIRouter instance for admin routes.
- - ƒ **list_users** (`Function`)
- - 📝 Lists all registered users.
- - ƒ **create_user** (`Function`)
- - 📝 Creates a new local user.
- - ƒ **update_user** (`Function`)
- - 📝 Updates an existing user.
- - ƒ **delete_user** (`Function`)
- - 📝 Deletes a user.
- - ƒ **list_roles** (`Function`)
- - 📝 Lists all available roles.
- - 🔗 CALLS -> `backend.src.models.auth.Role`
- - ƒ **create_role** (`Function`)
- - 📝 Creates a new system role with associated permissions.
- - 🔗 CALLS -> `backend.src.core.auth.repository.AuthRepository.get_permission_by_id`
- - ƒ **update_role** (`Function`)
- - 📝 Updates an existing role's metadata and permissions.
- - 🔗 CALLS -> `backend.src.core.auth.repository.AuthRepository.get_role_by_id`
- - ƒ **delete_role** (`Function`)
- - 📝 Removes a role from the system.
- - 🔗 CALLS -> `backend.src.core.auth.repository.AuthRepository.get_role_by_id`
- - ƒ **list_permissions** (`Function`)
- - 📝 Lists all available system permissions for assignment.
- - 🔗 CALLS -> `backend.src.core.auth.repository.AuthRepository.list_permissions`
- - ƒ **list_ad_mappings** (`Function`)
- - 📝 Lists all AD Group to Role mappings.
- - ƒ **create_ad_mapping** (`Function`)
- - 📝 Creates a new AD Group mapping.
-- 📦 **backend.src.api.routes.git_schemas** (`Module`)
- - 📝 Defines Pydantic models for the Git integration API layer.
- - 🏗️ Layer: API
- - 🔒 Invariant: All schemas must be compatible with the FastAPI router.
- - 🔗 DEPENDS_ON -> `backend.src.models.git`
- - ℂ **GitServerConfigBase** (`Class`) `[TRIVIAL]`
- - 📝 Base schema for Git server configuration attributes.
- - ℂ **GitServerConfigUpdate** (`Class`) `[TRIVIAL]`
- - 📝 Schema for updating an existing Git server configuration.
- - ℂ **GitServerConfigCreate** (`Class`) `[TRIVIAL]`
- - 📝 Schema for creating a new Git server configuration.
- - ℂ **GitServerConfigSchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema for representing a Git server configuration with metadata.
- - ℂ **GitRepositorySchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema for tracking a local Git repository linked to a dashboard.
- - ℂ **BranchSchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema for representing a Git branch metadata.
- - ℂ **CommitSchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema for representing Git commit details.
- - ℂ **BranchCreate** (`Class`) `[TRIVIAL]`
- - 📝 Schema for branch creation requests.
- - ℂ **BranchCheckout** (`Class`) `[TRIVIAL]`
- - 📝 Schema for branch checkout requests.
- - ℂ **CommitCreate** (`Class`) `[TRIVIAL]`
- - 📝 Schema for staging and committing changes.
- - ℂ **ConflictResolution** (`Class`) `[TRIVIAL]`
- - 📝 Schema for resolving merge conflicts.
- - ℂ **MergeStatusSchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema representing unfinished merge status for repository.
- - ℂ **MergeConflictFileSchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema describing one conflicted file with optional side snapshots.
- - ℂ **MergeResolveRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for resolving one or multiple merge conflicts.
- - ℂ **MergeContinueRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for finishing merge with optional explicit commit message.
- - ℂ **DeploymentEnvironmentSchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema for representing a target deployment environment.
- - ℂ **DeployRequest** (`Class`) `[TRIVIAL]`
- - 📝 Schema for dashboard deployment requests.
- - ℂ **RepoInitRequest** (`Class`) `[TRIVIAL]`
- - 📝 Schema for repository initialization requests.
- - ℂ **RepositoryBindingSchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema describing repository-to-config binding and provider metadata.
- - ℂ **RepoStatusBatchRequest** (`Class`) `[TRIVIAL]`
- - 📝 Schema for requesting repository statuses for multiple dashboards in a single call.
- - ℂ **RepoStatusBatchResponse** (`Class`) `[TRIVIAL]`
- - 📝 Schema for returning repository statuses keyed by dashboard ID.
- - ℂ **GiteaRepoSchema** (`Class`) `[TRIVIAL]`
- - 📝 Schema describing a Gitea repository.
- - ℂ **GiteaRepoCreateRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for creating a Gitea repository.
- - ℂ **RemoteRepoSchema** (`Class`) `[TRIVIAL]`
- - 📝 Provider-agnostic remote repository payload.
- - ℂ **RemoteRepoCreateRequest** (`Class`) `[TRIVIAL]`
- - 📝 Provider-agnostic repository creation request.
- - ℂ **PromoteRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for branch promotion workflow.
- - ℂ **PromoteResponse** (`Class`) `[TRIVIAL]`
- - 📝 Response schema for promotion operation result.
-- 📦 **backend.src.api.routes.assistant** (`Module`)
- - 📝 API routes for LLM assistant command parsing and safe execution orchestration.
- - 🏗️ Layer: API
- - 🔒 Invariant: Risky operations are never executed without valid confirmation token.
- - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.manager.TaskManager`
- - 🔗 DEPENDS_ON -> `backend.src.models.assistant`
- - ℂ **AssistantMessageRequest** (`Class`) `[TRIVIAL]`
- - 📝 Input payload for assistant message endpoint.
- - ℂ **AssistantAction** (`Class`) `[TRIVIAL]`
- - 📝 UI action descriptor returned with assistant responses.
- - ℂ **AssistantMessageResponse** (`Class`)
- - 📝 Output payload contract for assistant interaction endpoints.
- - ℂ **ConfirmationRecord** (`Class`)
- - 📝 In-memory confirmation token model for risky operation dispatch.
- - ƒ **_append_history** (`Function`)
- - 📝 Append conversation message to in-memory history buffer.
- - ƒ **_persist_message** (`Function`)
- - 📝 Persist assistant/user message record to database.
- - ƒ **_audit** (`Function`)
- - 📝 Append in-memory audit record for assistant decision trace.
- - ƒ **_persist_audit** (`Function`)
- - 📝 Persist structured assistant audit payload in database.
- - ƒ **_persist_confirmation** (`Function`)
- - 📝 Persist confirmation token record to database.
- - ƒ **_update_confirmation_state** (`Function`)
- - 📝 Update persistent confirmation token lifecycle state.
- - ƒ **_load_confirmation_from_db** (`Function`)
- - 📝 Load confirmation token from database into in-memory model.
- - ƒ **_ensure_conversation** (`Function`)
- - 📝 Resolve active conversation id in memory or create a new one.
- - ƒ **_resolve_or_create_conversation** (`Function`)
- - 📝 Resolve active conversation using explicit id, memory cache, or persisted history.
- - ƒ **_cleanup_history_ttl** (`Function`)
- - 📝 Enforce assistant message retention window by deleting expired rows and in-memory records.
- - ƒ **_is_conversation_archived** (`Function`)
- - 📝 Determine archived state for a conversation based on last update timestamp.
- - ƒ **_coerce_query_bool** (`Function`)
- - 📝 Normalize bool-like query values for compatibility in direct handler invocations/tests.
- - ƒ **_extract_id** (`Function`)
- - 📝 Extract first regex match group from text by ordered pattern list.
- - ƒ **_resolve_env_id** (`Function`)
- - 📝 Resolve environment identifier/name token to canonical environment id.
- - ƒ **_is_production_env** (`Function`)
- - 📝 Determine whether environment token resolves to production-like target.
- - ƒ **_resolve_provider_id** (`Function`)
- - 📝 Resolve provider token to provider id with active/default fallback.
- - ƒ **_get_default_environment_id** (`Function`)
- - 📝 Resolve default environment id from settings or first configured environment.
- - ƒ **_resolve_dashboard_id_by_ref** (`Function`)
- - 📝 Resolve dashboard id by title or slug reference in selected environment.
- - ƒ **_resolve_dashboard_id_entity** (`Function`)
- - 📝 Resolve dashboard id from intent entities using numeric id or dashboard_ref fallback.
- - ƒ **_get_environment_name_by_id** (`Function`)
- - 📝 Resolve human-readable environment name by id.
- - ƒ **_extract_result_deep_links** (`Function`)
- - 📝 Build deep-link actions to verify task result from assistant chat.
- - ƒ **_build_task_observability_summary** (`Function`)
- - 📝 Build compact textual summary for completed tasks to reduce "black box" effect.
- - ƒ **_parse_command** (`Function`)
- - 📝 Deterministically parse RU/EN command text into intent payload.
- - ƒ **_check_any_permission** (`Function`)
- - 📝 Validate user against alternative permission checks (logical OR).
- - ƒ **_has_any_permission** (`Function`)
- - 📝 Check whether user has at least one permission tuple from the provided list.
- - ƒ **_build_tool_catalog** (`Function`)
- - 📝 Build current-user tool catalog for LLM planner with operation contracts and defaults.
- - ƒ **_coerce_intent_entities** (`Function`)
- - 📝 Normalize intent entity value types from LLM output to route-compatible values.
- - ƒ **_confirmation_summary** (`Function`)
- - 📝 Build human-readable confirmation prompt for an intent before execution.
- - ƒ **_clarification_text_for_intent** (`Function`)
- - 📝 Convert technical missing-parameter errors into user-facing clarification prompts.
- - ƒ **_plan_intent_with_llm** (`Function`)
- - 📝 Use active LLM provider to select best tool/operation from dynamic catalog.
- - ƒ **_authorize_intent** (`Function`)
- - 📝 Validate user permissions for parsed intent before confirmation/dispatch.
- - ƒ **_dispatch_intent** (`Function`)
- - 📝 Execute parsed assistant intent via existing task/plugin/git services.
- - ƒ **send_message** (`Function`)
- - 📝 Parse assistant command, enforce safety gates, and dispatch executable intent.
- - ƒ **confirm_operation** (`Function`)
- - 📝 Execute previously requested risky operation after explicit user confirmation.
- - ƒ **cancel_operation** (`Function`)
- - 📝 Cancel pending risky operation and mark confirmation token as cancelled.
- - ƒ **list_conversations** (`Function`)
- - 📝 Return paginated conversation list for current user with archived flag and last message preview.
- - ƒ **delete_conversation** (`Function`)
- - 📝 Soft-delete or hard-delete a conversation and clear its in-memory trace.
- - ƒ **get_history** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve paginated assistant conversation history for current user.
- - ƒ **get_assistant_audit** (`Function`) `[TRIVIAL]`
- - 📝 Return assistant audit decisions for current user from persistent and in-memory stores.
- - ƒ **_async_confirmation_summary** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_label** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **storage_routes** (`Module`)
- - 📝 API endpoints for file storage management (backups and repositories).
- - 🏗️ Layer: API
- - 🔒 Invariant: All paths must be validated against path traversal.
- - 🔗 DEPENDS_ON -> `backend.src.models.storage`
- - ƒ **list_files** (`Function`)
- - 📝 List all files and directories in the storage system.
- - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.list_files`
- - ƒ **upload_file** (`Function`)
- - 📝 Upload a file to the storage system.
- - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.save_file`
- - ƒ **delete_file** (`Function`)
- - 📝 Delete a specific file or directory.
- - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.delete_file`
- - ƒ **download_file** (`Function`)
- - 📝 Retrieve a file for download.
- - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.get_file_path`
- - ƒ **get_file_by_path** (`Function`)
- - 📝 Retrieve a file by validated absolute/relative path under storage root.
- - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.get_storage_root`
- - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.validate_path`
-- 📦 **backend.src.api.routes.clean_release** (`Module`)
- - 📝 Expose clean release endpoints for candidate preparation and subsequent compliance flow.
- - 🏗️ Layer: API
- - 🔒 Invariant: API never reports prepared status if preparation errors are present.
- - 🔗 DEPENDS_ON -> `backend.src.dependencies.get_clean_release_repository`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.preparation_service`
- - ℂ **PrepareCandidateRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for candidate preparation endpoint.
- - ℂ **StartCheckRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for clean compliance check run startup.
- - ℂ **RegisterCandidateRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for candidate registration endpoint.
- - ℂ **ImportArtifactsRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for candidate artifact import endpoint.
- - ℂ **BuildManifestRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for manifest build endpoint.
- - ℂ **CreateComplianceRunRequest** (`Class`) `[TRIVIAL]`
- - 📝 Request schema for compliance run creation with optional manifest pinning.
- - ƒ **register_candidate_v2_endpoint** (`Function`) `[TRIVIAL]`
- - 📝 Register a clean-release candidate for headless lifecycle.
- - ƒ **import_candidate_artifacts_v2_endpoint** (`Function`) `[TRIVIAL]`
- - 📝 Import candidate artifacts in headless flow.
- - ƒ **build_candidate_manifest_v2_endpoint** (`Function`) `[TRIVIAL]`
- - 📝 Build immutable manifest snapshot for prepared candidate.
- - ƒ **get_candidate_overview_v2_endpoint** (`Function`) `[TRIVIAL]`
- - 📝 Return expanded candidate overview DTO for headless lifecycle visibility.
- - ƒ **prepare_candidate_endpoint** (`Function`) `[TRIVIAL]`
- - 📝 Prepare candidate with policy evaluation and deterministic manifest generation.
- - ƒ **start_check** (`Function`) `[TRIVIAL]`
- - 📝 Start and finalize a clean compliance check run and persist report artifacts.
- - ƒ **get_check_status** (`Function`) `[TRIVIAL]`
- - 📝 Return terminal/intermediate status payload for a check run.
- - ƒ **get_report** (`Function`) `[TRIVIAL]`
- - 📝 Return persisted compliance report by report_id.
-- 📦 **ReportsRouter** (`Module`) `[CRITICAL]`
- - 📝 FastAPI router for unified task report list and detail retrieval endpoints.
- - 🏗️ Layer: UI (API)
- - 🔒 Invariant: Endpoints are read-only and do not trigger long-running tasks.
- - 🔗 DEPENDS_ON -> `backend.src.services.reports.report_service.ReportsService`
- - 🔗 DEPENDS_ON -> `AppDependencies`
- - ƒ **_parse_csv_enum_list** (`Function`) `[TRIVIAL]`
- - 📝 Parse comma-separated query value into enum list.
- - ƒ **list_reports** (`Function`)
- - 📝 Return paginated unified reports list.
- - ƒ **get_report_detail** (`Function`)
- - 📝 Return one normalized report detail with diagnostics and next actions.
-- 📦 **backend.src.api.routes.profile** (`Module`) `[CRITICAL]`
- - 📝 Exposes self-scoped profile preference endpoints and environment-based Superset account lookup.
- - 🏗️ Layer: API
- - 🔒 Invariant: Endpoints are self-scoped and never mutate another user preference.
- - 🔗 DEPENDS_ON -> `backend.src.services.profile_service`
- - 🔗 DEPENDS_ON -> `backend.src.dependencies.get_current_user`
- - 🔗 DEPENDS_ON -> `backend.src.core.database.get_db`
- - ƒ **_get_profile_service** (`Function`) `[TRIVIAL]`
- - 📝 Build profile service for current request scope.
- - ƒ **get_preferences** (`Function`) `[TRIVIAL]`
- - 📝 Get authenticated user's dashboard filter preference.
- - ƒ **update_preferences** (`Function`) `[TRIVIAL]`
- - 📝 Update authenticated user's dashboard filter preference.
- - ƒ **lookup_superset_accounts** (`Function`) `[TRIVIAL]`
- - 📝 Lookup Superset account candidates in selected environment.
-- 📦 **backend.src.api.routes.__init__** (`Module`)
- - 📝 Provide lazy route module loading to avoid heavyweight imports during tests.
- - 🏗️ Layer: API
- - 🔒 Invariant: Only names listed in __all__ are importable via __getattr__.
- - 🔗 DEPENDS_ON -> `importlib`
- - ƒ **__getattr__** (`Function`) `[TRIVIAL]`
- - 📝 Lazily import route module by attribute name.
-- 📦 **TasksRouter** (`Module`)
- - 📝 Defines the FastAPI router for task-related endpoints, allowing clients to create, list, and get the status of tasks.
- - 🏗️ Layer: UI (API)
- - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.manager.TaskManager`
- - 🔗 DEPENDS_ON -> `backend.src.core.config_manager.ConfigManager`
- - 🔗 DEPENDS_ON -> `backend.src.services.llm_provider.LLMProviderService`
- - ƒ **create_task** (`Function`)
- - 📝 Create and start a new task for a given plugin.
- - ƒ **list_tasks** (`Function`)
- - 📝 Retrieve a list of tasks with pagination and optional status filter.
- - ƒ **get_task** (`Function`)
- - 📝 Retrieve the details of a specific task.
- - ƒ **get_task_logs** (`Function`) `[CRITICAL]`
- - 📝 Retrieve logs for a specific task with optional filtering.
- - ƒ **get_task_log_stats** (`Function`)
- - 📝 Get statistics about logs for a task (counts by level and source).
- - ƒ **get_task_log_sources** (`Function`)
- - 📝 Get unique sources for a task's logs.
- - ƒ **resolve_task** (`Function`)
- - 📝 Resolve a task that is awaiting mapping.
- - ƒ **resume_task** (`Function`)
- - 📝 Resume a task that is awaiting input (e.g., passwords).
- - ƒ **clear_tasks** (`Function`)
- - 📝 Clear tasks matching the status filter.
-- 📦 **backend.src.api.routes.dashboards** (`Module`) `[CRITICAL]`
- - 📝 API endpoints for the Dashboard Hub - listing dashboards with Git and task status
- - 🏗️ Layer: API
- - 🔒 Invariant: All dashboard responses include git_status and last_task metadata
- - 🔗 DEPENDS_ON -> `AppDependencies`
- - 🔗 DEPENDS_ON -> `backend.src.services.resource_service.ResourceService`
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
- - 📦 **GitStatus** (`DataClass`)
- - 📝 DTO for dashboard Git synchronization status.
- - 📦 **LastTask** (`DataClass`)
- - 📝 DTO for the most recent background task associated with a dashboard.
- - 📦 **DashboardItem** (`DataClass`)
- - 📝 DTO representing a single dashboard with projected metadata.
- - 📦 **EffectiveProfileFilter** (`DataClass`)
- - 📝 Metadata about applied profile filters for UI context.
- - 📦 **DashboardsResponse** (`DataClass`)
- - 📝 Envelope DTO for paginated dashboards list.
- - 📦 **DashboardChartItem** (`DataClass`)
- - 📝 DTO for a chart linked to a dashboard.
- - 📦 **DashboardDatasetItem** (`DataClass`)
- - 📝 DTO for a dataset associated with a dashboard.
- - 📦 **DashboardDetailResponse** (`DataClass`)
- - 📝 Detailed dashboard metadata including children.
- - 📦 **DashboardTaskHistoryItem** (`DataClass`)
- - 📝 Individual history record entry.
- - 📦 **DashboardTaskHistoryResponse** (`DataClass`)
- - 📝 Collection DTO for task history.
- - 📦 **DatabaseMapping** (`DataClass`)
- - 📝 DTO for cross-environment database ID mapping.
- - 📦 **DatabaseMappingsResponse** (`DataClass`)
- - 📝 Wrapper for database mappings.
- - ƒ **_find_dashboard_id_by_slug** (`Function`)
- - 📝 Resolve dashboard numeric ID by slug using Superset list endpoint.
- - ƒ **_resolve_dashboard_id_from_ref** (`Function`)
- - 📝 Resolve dashboard ID from slug-first reference with numeric fallback.
- - ƒ **_find_dashboard_id_by_slug_async** (`Function`)
- - 📝 Resolve dashboard numeric ID by slug using async Superset list endpoint.
- - ƒ **_resolve_dashboard_id_from_ref_async** (`Function`)
- - 📝 Resolve dashboard ID from slug-first reference using async Superset client.
- - ƒ **_normalize_filter_values** (`Function`)
- - 📝 Normalize query filter values to lower-cased non-empty tokens.
- - ƒ **_dashboard_git_filter_value** (`Function`)
- - 📝 Build comparable git status token for dashboards filtering.
- - ƒ **_normalize_actor_alias_token** (`Function`)
- - 📝 Normalize actor alias token to comparable trim+lower text.
- - ƒ **_normalize_owner_display_token** (`Function`)
- - 📝 Project owner payload value into stable display string for API response contracts.
- - ƒ **_normalize_dashboard_owner_values** (`Function`)
- - 📝 Normalize dashboard owners payload to optional list of display strings.
- - ƒ **_project_dashboard_response_items** (`Function`)
- - 📝 Project dashboard payloads to response-contract-safe shape.
- - ƒ **_resolve_profile_actor_aliases** (`Function`)
- - 📝 Resolve stable actor aliases for profile filtering without per-dashboard detail fan-out.
- - ƒ **_matches_dashboard_actor_aliases** (`Function`)
- - 📝 Apply profile actor matching against multiple aliases (username + optional display name).
- - ƒ **get_dashboards** (`Function`)
- - 📝 Fetch list of dashboards from a specific environment with Git status and last task status
- - 🔗 CALLS -> `get_dashboards_with_status`
- - ƒ **get_database_mappings** (`Function`)
- - 📝 Get database mapping suggestions between source and target environments
- - 🔗 CALLS -> `MappingService:get_suggestions`
- - ƒ **get_dashboard_detail** (`Function`)
- - 📝 Fetch detailed dashboard info with related charts and datasets
- - 🔗 CALLS -> `backend.src.core.async_superset_client.AsyncSupersetClient.get_dashboard_detail_async`
- - ƒ **_task_matches_dashboard** (`Function`)
- - 📝 Checks whether task params are tied to a specific dashboard and environment.
- - ƒ **get_dashboard_tasks_history** (`Function`)
- - 📝 Returns history of backup and LLM validation tasks for a dashboard.
- - ƒ **get_dashboard_thumbnail** (`Function`)
- - 📝 Proxies Superset dashboard thumbnail with cache support.
- - 📦 **MigrateRequest** (`DataClass`)
- - 📝 DTO for dashboard migration requests.
- - 📦 **TaskResponse** (`DataClass`)
- - 📝 DTO for async task ID return.
- - ƒ **migrate_dashboards** (`Function`)
- - 📝 Trigger bulk migration of dashboards from source to target environment
- - 🔗 DISPATCHES -> `MigrationPlugin:execute`
- - 🔗 CALLS -> `task_manager:create_task`
- - 📦 **BackupRequest** (`DataClass`)
- - 📝 DTO for dashboard backup requests.
- - ƒ **backup_dashboards** (`Function`)
- - 📝 Trigger bulk backup of dashboards with optional cron schedule
- - 🔗 DISPATCHES -> `BackupPlugin:execute`
- - 🔗 CALLS -> `task_manager:create_task`
- - ƒ **_matches_dashboard_filters** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_sort_key** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_dashboards** (`Module`)
- - 📝 Unit tests for Dashboards API endpoints
- - 🏗️ Layer: API
- - ƒ **test_get_dashboards_success** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_with_search** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_empty** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_superset_failure** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_invalid_pagination** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboard_detail_success** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboard_detail_env_not_found** (`Function`) `[TRIVIAL]`
- - ƒ **test_migrate_dashboards_success** (`Function`) `[TRIVIAL]`
- - ƒ **test_migrate_dashboards_no_ids** (`Function`) `[TRIVIAL]`
- - ƒ **test_migrate_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
- - ƒ **test_backup_dashboards_success** (`Function`) `[TRIVIAL]`
- - ƒ **test_backup_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_database_mappings_success** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_database_mappings_env_not_found** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboard_tasks_history_filters_success** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboard_thumbnail_success** (`Function`) `[TRIVIAL]`
- - ƒ **_build_profile_preference_stub** (`Function`) `[TRIVIAL]`
- - 📝 Creates profile preference payload stub for dashboards filter contract tests.
- - ƒ **_matches_actor_case_insensitive** (`Function`) `[TRIVIAL]`
- - 📝 Applies trim + case-insensitive owners OR modified_by matching used by route contract tests.
- - ƒ **test_get_dashboards_profile_filter_contract_owners_or_modified_by** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_override_show_all_contract** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_profile_filter_no_match_results_contract** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_page_context_other_disables_profile_default** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_profile_filter_matches_display_alias_without_detail_fanout** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_profile_filter_matches_owner_object_payload_contract** (`Function`) `[TRIVIAL]`
- - ƒ **mock_deps** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **mock_get_dashboards** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_network_request** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_git_status_route** (`Module`)
- - 📝 Validate status endpoint behavior for missing and error repository states.
- - 🏗️ Layer: Domain (Tests)
- - ƒ **test_get_repository_status_returns_no_repo_payload_for_missing_repo** (`Function`) `[TRIVIAL]`
- - 📝 Ensure missing local repository is represented as NO_REPO payload instead of an API error.
- - ƒ **test_get_repository_status_propagates_non_404_http_exception** (`Function`) `[TRIVIAL]`
- - 📝 Ensure HTTP exceptions other than 404 are not masked.
- - ƒ **test_get_repository_diff_propagates_http_exception** (`Function`) `[TRIVIAL]`
- - 📝 Ensure diff endpoint preserves domain HTTP errors from GitService.
- - ƒ **test_get_history_wraps_unexpected_error_as_500** (`Function`) `[TRIVIAL]`
- - 📝 Ensure non-HTTP exceptions in history endpoint become deterministic 500 errors.
- - ƒ **test_commit_changes_wraps_unexpected_error_as_500** (`Function`) `[TRIVIAL]`
- - 📝 Ensure commit endpoint does not leak unexpected errors as 400.
- - ƒ **test_get_repository_status_batch_returns_mixed_statuses** (`Function`) `[TRIVIAL]`
- - 📝 Ensure batch endpoint returns per-dashboard statuses in one response.
- - ƒ **test_get_repository_status_batch_marks_item_as_error_on_service_failure** (`Function`) `[TRIVIAL]`
- - 📝 Ensure batch endpoint marks failed items as ERROR without failing entire request.
- - ƒ **test_get_repository_status_batch_deduplicates_and_truncates_ids** (`Function`) `[TRIVIAL]`
- - 📝 Ensure batch endpoint protects server from oversized payloads.
- - ƒ **test_commit_changes_applies_profile_identity_before_commit** (`Function`) `[TRIVIAL]`
- - 📝 Ensure commit route configures repository identity from profile preferences before commit call.
- - ƒ **test_pull_changes_applies_profile_identity_before_pull** (`Function`) `[TRIVIAL]`
- - 📝 Ensure pull route configures repository identity from profile preferences before pull call.
- - ƒ **test_get_merge_status_returns_service_payload** (`Function`) `[TRIVIAL]`
- - 📝 Ensure merge status route returns service payload as-is.
- - ƒ **test_resolve_merge_conflicts_passes_resolution_items_to_service** (`Function`) `[TRIVIAL]`
- - 📝 Ensure merge resolve route forwards parsed resolutions to service.
- - ƒ **test_abort_merge_calls_service_and_returns_result** (`Function`) `[TRIVIAL]`
- - 📝 Ensure abort route delegates to service.
- - ƒ **test_continue_merge_passes_message_and_returns_commit** (`Function`) `[TRIVIAL]`
- - 📝 Ensure continue route passes commit message to service.
- - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_diff** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_commit_history** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit_changes** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **configure_identity** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit_changes** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **first** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **query** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **configure_identity** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **pull_changes** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **first** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **query** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_merge_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolve_merge_conflicts** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **dict** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **abort_merge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **continue_merge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.test_reports_openapi_conformance** (`Module`)
- - 📝 Validate implemented reports payload shape against OpenAPI-required top-level contract fields.
- - 🏗️ Layer: Domain (Tests)
- - 🔒 Invariant: List and detail payloads include required contract keys.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_reports_list_openapi_required_keys** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_reports_detail_openapi_required_keys** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.api.routes.test_clean_release_source_policy** (`Module`)
- - 📝 Validate API behavior for source isolation violations in clean release preparation.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: External endpoints must produce blocking violation entries.
- - ƒ **_repo_with_seed_data** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_prepare_candidate_blocks_external_source** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.api.routes.test_clean_release_api** (`Module`)
- - 📝 Contract tests for clean release checks and reports endpoints.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: API returns deterministic payload shapes for checks and reports.
- - ƒ **_repo_with_seed_data** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_start_check_and_get_status_contract** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_report_not_found_returns_404** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_report_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_prepare_candidate_api_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_tasks_logs** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/api/routes/__tests__/test_tasks_logs.py
- - 🏗️ Layer: Unknown
- - ƒ **client** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_task_logs_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_task_logs_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_task_logs_invalid_limit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_task_log_stats_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.test_reports_api** (`Module`)
- - 📝 Contract tests for GET /api/reports defaults, pagination, and filtering behavior.
- - 🏗️ Layer: Domain (Tests)
- - 🔒 Invariant: API response contract contains {items,total,page,page_size,has_next,applied_filters}.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_reports_default_pagination_contract** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_reports_filter_and_pagination** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_reports_handles_mixed_naive_and_aware_datetimes** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_reports_invalid_filter_returns_400** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_datasets** (`Module`)
- - 📝 Unit tests for Datasets API endpoints
- - 🏗️ Layer: API
- - 🔒 Invariant: Endpoint contracts remain stable for success and validation failure paths.
- - ƒ **test_get_datasets_success** (`Function`) `[TRIVIAL]`
- - 📝 Validate successful datasets listing contract for an existing environment.
- - ƒ **test_get_datasets_env_not_found** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_datasets_invalid_pagination** (`Function`) `[TRIVIAL]`
- - ƒ **test_map_columns_success** (`Function`) `[TRIVIAL]`
- - ƒ **test_map_columns_invalid_source_type** (`Function`) `[TRIVIAL]`
- - ƒ **test_generate_docs_success** (`Function`) `[TRIVIAL]`
- - ƒ **test_map_columns_empty_ids** (`Function`) `[TRIVIAL]`
- - ƒ **test_generate_docs_empty_ids** (`Function`) `[TRIVIAL]`
- - ƒ **test_generate_docs_env_not_found** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_datasets_superset_failure** (`Function`) `[TRIVIAL]`
- - ƒ **mock_deps** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_profile_api** (`Module`)
- - 📝 Verifies profile API route contracts for preference read/update and Superset account lookup.
- - 🏗️ Layer: API
- - ƒ **mock_profile_route_dependencies** (`Function`) `[TRIVIAL]`
- - 📝 Provides deterministic dependency overrides for profile route tests.
- - ƒ **profile_route_deps_fixture** (`Function`) `[TRIVIAL]`
- - 📝 Pytest fixture wrapper for profile route dependency overrides.
- - ƒ **_build_preference_response** (`Function`) `[TRIVIAL]`
- - 📝 Builds stable profile preference response payload for route tests.
- - ƒ **test_get_profile_preferences_returns_self_payload** (`Function`) `[TRIVIAL]`
- - 📝 Verifies GET /api/profile/preferences returns stable self-scoped payload.
- - ƒ **test_patch_profile_preferences_success** (`Function`) `[TRIVIAL]`
- - 📝 Verifies PATCH /api/profile/preferences persists valid payload through route mapping.
- - ƒ **test_patch_profile_preferences_validation_error** (`Function`) `[TRIVIAL]`
- - 📝 Verifies route maps domain validation failure to HTTP 422 with actionable details.
- - ƒ **test_patch_profile_preferences_cross_user_denied** (`Function`) `[TRIVIAL]`
- - 📝 Verifies route maps domain authorization guard failure to HTTP 403.
- - ƒ **test_lookup_superset_accounts_success** (`Function`) `[TRIVIAL]`
- - 📝 Verifies lookup route returns success payload with normalized candidates.
- - ƒ **test_lookup_superset_accounts_env_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Verifies lookup route maps missing environment to HTTP 404.
-- 📦 **backend.tests.test_reports_detail_api** (`Module`)
- - 📝 Contract tests for GET /api/reports/{report_id} detail endpoint behavior.
- - 🏗️ Layer: Domain (Tests)
- - 🔒 Invariant: Detail endpoint tests must keep deterministic assertions for success and not-found contracts.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_report_detail_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_report_detail_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_clean_release_legacy_compat** (`Module`)
- - 📝 Compatibility tests for legacy clean-release API paths retained during v2 migration.
- - 🏗️ Layer: Tests
- - ƒ **_seed_legacy_repo** (`Function`) `[TRIVIAL]`
- - 📝 Seed in-memory repository with minimum trusted data for legacy endpoint contracts.
- - ƒ **test_legacy_prepare_endpoint_still_available** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_legacy_checks_endpoints_still_available** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_clean_release_v2_api** (`Module`)
- - 📝 API contract tests for redesigned clean release endpoints.
- - 🏗️ Layer: Domain
- - ƒ **test_candidate_registration_contract** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_artifact_import_contract** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_manifest_build_contract** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_assistant_authz** (`Module`)
- - 📝 Verify assistant confirmation ownership, expiration, and deny behavior for restricted users.
- - 🏗️ Layer: UI (API Tests)
- - 🔒 Invariant: Security-sensitive flows fail closed for unauthorized actors.
- - 🔗 DEPENDS_ON -> `backend.src.api.routes.assistant`
- - ƒ **_run_async** (`Function`) `[TRIVIAL]`
- - 📝 Execute async endpoint handler in synchronous test context.
- - ℂ **_FakeTask** (`Class`) `[TRIVIAL]`
- - 📝 Lightweight task model used for assistant authz tests.
- - ℂ **_FakeTaskManager** (`Class`) `[TRIVIAL]`
- - 📝 Minimal task manager for deterministic operation creation and lookup.
- - ℂ **_FakeConfigManager** (`Class`) `[TRIVIAL]`
- - 📝 Provide deterministic environment aliases required by intent parsing.
- - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
- - 📝 Build admin principal fixture.
- - ƒ **_other_admin_user** (`Function`) `[TRIVIAL]`
- - 📝 Build second admin principal fixture for ownership tests.
- - ƒ **_limited_user** (`Function`) `[TRIVIAL]`
- - 📝 Build limited principal without required assistant execution privileges.
- - ℂ **_FakeQuery** (`Class`) `[TRIVIAL]`
- - 📝 Minimal chainable query object for fake DB interactions.
- - ℂ **_FakeDb** (`Class`) `[TRIVIAL]`
- - 📝 In-memory session substitute for assistant route persistence calls.
- - ƒ **_clear_assistant_state** (`Function`) `[TRIVIAL]`
- - 📝 Reset assistant process-local state between test cases.
- - ƒ **test_confirmation_owner_mismatch_returns_403** (`Function`) `[TRIVIAL]`
- - 📝 Confirm endpoint should reject requests from user that does not own the confirmation token.
- - ƒ **test_expired_confirmation_cannot_be_confirmed** (`Function`) `[TRIVIAL]`
- - 📝 Expired confirmation token should be rejected and not create task.
- - ƒ **test_limited_user_cannot_launch_restricted_operation** (`Function`) `[TRIVIAL]`
- - 📝 Limited user should receive denied state for privileged operation.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_environments** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **order_by** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **first** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **all** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **limit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **offset** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **count** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **add** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **merge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **query** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **rollback** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_clean_release_v2_release_api** (`Module`)
- - 📝 API contract test scaffolding for clean release approval and publication endpoints.
- - 🏗️ Layer: Domain
- - 🔗 IMPLEMENTS -> `clean_release_v2_release_api_contracts`
- - ƒ **_seed_candidate_and_passed_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_release_approve_and_publish_revoke_contract** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_release_reject_contract** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_connections_routes** (`Module`)
- - 📝 Verifies connection routes bootstrap their table before CRUD access.
- - 🏗️ Layer: API
- - ƒ **db_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_list_connections_bootstraps_missing_table** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_connection_bootstraps_missing_table** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_git_api** (`Module`) `[TRIVIAL]`
- - 📝 API tests for Git configurations and repository operations.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **query** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **first** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **all** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **add** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **delete** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refresh** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_git_configs_masks_pat** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_git_config_persists_config** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_update_git_config_modifies_record** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **query** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **first** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refresh** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_update_git_config_raises_404_if_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_delete_git_config_removes_record** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **query** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **first** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **delete** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_test_git_config_validates_connection_successfully** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_connection** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_test_git_config_fails_validation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_connection** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_list_gitea_repositories_returns_payload** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_gitea_repositories** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_list_gitea_repositories_rejects_non_gitea** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_remote_repository_creates_provider_repo** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_gitlab_repository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_init_repository_initializes_and_saves_binding** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **init_repo** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **AssistantApiTests** (`Module`)
- - 📝 Validate assistant API endpoint logic via direct async handler invocation.
- - 🔒 Invariant: Every test clears assistant in-memory state before execution.
- - 🔗 DEPENDS_ON -> `backend.src.api.routes.assistant`
- - ƒ **_run_async** (`Function`) `[TRIVIAL]`
- - ℂ **_FakeTask** (`Class`) `[TRIVIAL]`
- - 🔗 BINDS_TO -> `AssistantApiTests`
- - ℂ **_FakeTaskManager** (`Class`) `[TRIVIAL]`
- - 🔗 BINDS_TO -> `AssistantApiTests`
- - ℂ **_FakeConfigManager** (`Class`) `[TRIVIAL]`
- - 🔗 BINDS_TO -> `AssistantApiTests`
- - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
- - ƒ **_limited_user** (`Function`) `[TRIVIAL]`
- - ℂ **_FakeQuery** (`Class`) `[TRIVIAL]`
- - 🔗 BINDS_TO -> `AssistantApiTests`
- - ℂ **_FakeDb** (`Class`) `[TRIVIAL]`
- - 🔗 BINDS_TO -> `AssistantApiTests`
- - ƒ **_clear_assistant_state** (`Function`) `[TRIVIAL]`
- - ƒ **test_unknown_command_returns_needs_clarification** (`Function`) `[TRIVIAL]`
- - 📝 Unknown command should return clarification state and unknown intent.
- - ƒ **test_capabilities_question_returns_successful_help** (`Function`) `[TRIVIAL]`
- - 📝 Capability query should return deterministic help response.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_environments** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_config** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **order_by** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **limit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **offset** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **first** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **all** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **count** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **query** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **add** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **rollback** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **merge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **refresh** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.api.routes.__tests__.test_migration_routes** (`Module`)
- - 📝 Unit tests for migration API route handlers.
- - 🏗️ Layer: API
- - ƒ **db_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_config_manager** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_migration_settings_returns_default_cron** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_migration_settings_returns_fallback_when_no_cron** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_update_migration_settings_saves_cron** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_update_migration_settings_rejects_missing_cron** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_resource_mappings_returns_formatted_list** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_resource_mappings_respects_pagination** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_resource_mappings_search_by_name** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_resource_mappings_filter_by_env** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_resource_mappings_filter_by_type** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_mock_env** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_sync_config_manager** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_trigger_sync_now_creates_env_row_and_syncs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_trigger_sync_now_rejects_empty_environments** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_trigger_sync_now_handles_partial_failure** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_trigger_sync_now_idempotent_env_upsert** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_invalid_env_raises_404** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_execute_migration_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_execute_migration_invalid_env_raises_400** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_dry_run_migration_returns_diff_and_risk** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_dry_run_migration_rejects_same_environment** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.models.config** (`Module`) `[CRITICAL]`
- - 📝 Defines SQLAlchemy persistence models for application and notification configuration records.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Configuration payload and notification credentials must remain persisted as non-null JSON documents.
- - 🔗 DEPENDS_ON -> `sqlalchemy`
- - 🔗 DEPENDS_ON -> `backend.src.models.mapping:Base`
- - ℂ **AppConfigRecord** (`Class`) `[CRITICAL]`
- - 📝 Stores persisted application configuration as a single authoritative record model.
- - ℂ **NotificationConfig** (`Class`) `[CRITICAL]`
- - 📝 Stores persisted provider-level notification configuration and encrypted credentials metadata.
-- 📦 **backend.src.models.llm** (`Module`)
- - 📝 SQLAlchemy models for LLM provider configuration and validation results.
- - 🏗️ Layer: Domain
- - ℂ **ValidationPolicy** (`Class`) `[TRIVIAL]`
- - 📝 Defines a scheduled rule for validating a group of dashboards within an execution window.
- - ℂ **LLMProvider** (`Class`) `[TRIVIAL]`
- - 📝 SQLAlchemy model for LLM provider configuration.
- - ℂ **ValidationRecord** (`Class`) `[TRIVIAL]`
- - 📝 SQLAlchemy model for dashboard validation history.
- - ƒ **generate_uuid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **GitModels** (`Module`) `[TRIVIAL]`
- - 📝 Git-specific SQLAlchemy models for configuration and repository tracking.
- - 🏗️ Layer: Model
- - ℂ **GitServerConfig** (`Class`) `[TRIVIAL]`
- - 📝 Configuration for a Git server connection.
- - ℂ **GitRepository** (`Class`) `[TRIVIAL]`
- - 📝 Tracking for a local Git repository linked to a dashboard.
- - ℂ **DeploymentEnvironment** (`Class`) `[TRIVIAL]`
- - 📝 Target Superset environments for dashboard deployment.
-- 📦 **backend.src.models.task** (`Module`) `[TRIVIAL]`
- - 📝 Defines the database schema for task execution records.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: All primary keys are UUID strings.
- - 🔗 DEPENDS_ON -> `sqlalchemy`
- - ℂ **TaskRecord** (`Class`) `[TRIVIAL]`
- - 📝 Represents a persistent record of a task execution.
- - ℂ **TaskLogRecord** (`Class`) `[CRITICAL]`
- - 📝 Represents a single persistent log entry for a task.
- - 🔒 Invariant: Each log entry belongs to exactly one task.
- - 🔗 DEPENDS_ON -> `TaskRecord`
-- 📦 **backend.src.models.connection** (`Module`) `[TRIVIAL]`
- - 📝 Defines the database schema for external database connection configurations.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: All primary keys are UUID strings.
- - 🔗 DEPENDS_ON -> `sqlalchemy`
- - ℂ **ConnectionConfig** (`Class`) `[TRIVIAL]`
- - 📝 Stores credentials for external databases used for column mapping.
-- 📦 **MappingModels** (`Module`)
- - 📝 Defines the database schema for environment metadata and database mappings using SQLAlchemy.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: All primary keys are UUID strings.
- - 🔗 DEPENDS_ON -> `sqlalchemy`
- - ℂ **ResourceType** (`Class`) `[TRIVIAL]`
- - 📝 Enumeration of possible Superset resource types for ID mapping.
- - ℂ **MigrationStatus** (`Class`) `[TRIVIAL]`
- - 📝 Enumeration of possible migration job statuses.
- - ℂ **Environment** (`Class`)
- - 📝 Represents a Superset instance environment.
- - ℂ **DatabaseMapping** (`Class`)
- - 📝 Represents a mapping between source and target databases.
- - ℂ **MigrationJob** (`Class`) `[TRIVIAL]`
- - 📝 Represents a single migration execution job.
- - ℂ **ResourceMapping** (`Class`)
- - 📝 Maps a universal UUID for a resource to its actual ID on a specific environment.
-- 📦 **backend.src.models.report** (`Module`) `[CRITICAL]`
- - 📝 Canonical report schemas for unified task reporting across heterogeneous task types.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Canonical report fields are always present for every report item.
- - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.models`
- - ℂ **TaskType** (`Class`) `[CRITICAL]`
- - 📝 Supported normalized task report types.
- - 🔒 Invariant: Must contain valid generic task type mappings.
- - ℂ **ReportStatus** (`Class`) `[CRITICAL]`
- - 📝 Supported normalized report status values.
- - 🔒 Invariant: TaskStatus enum mapping logic holds.
- - ℂ **ErrorContext** (`Class`) `[CRITICAL]`
- - 📝 Error and recovery context for failed/partial reports.
- - 🔒 Invariant: The properties accurately describe error state.
- - ℂ **TaskReport** (`Class`) `[CRITICAL]`
- - 📝 Canonical normalized report envelope for one task execution.
- - 🔒 Invariant: Must represent canonical task record attributes.
- - ℂ **ReportQuery** (`Class`) `[CRITICAL]`
- - 📝 Query object for server-side report filtering, sorting, and pagination.
- - 🔒 Invariant: Time and pagination queries are mutually consistent.
- - ℂ **ReportCollection** (`Class`) `[CRITICAL]`
- - 📝 Paginated collection of normalized task reports.
- - 🔒 Invariant: Represents paginated data correctly.
- - ℂ **ReportDetailView** (`Class`) `[CRITICAL]`
- - 📝 Detailed report representation including diagnostics and recovery actions.
- - 🔒 Invariant: Incorporates a report and logs correctly.
- - ƒ **_non_empty_str** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_validate_sort_by** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_validate_sort_order** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_validate_time_range** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.models.assistant** (`Module`)
- - 📝 SQLAlchemy models for assistant audit trail and confirmation tokens.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Assistant records preserve immutable ids and creation timestamps.
- - 🔗 DEPENDS_ON -> `backend.src.models.mapping`
- - ℂ **AssistantAuditRecord** (`Class`)
- - 📝 Store audit decisions and outcomes produced by assistant command handling.
- - ℂ **AssistantMessageRecord** (`Class`)
- - 📝 Persist chat history entries for assistant conversations.
- - ℂ **AssistantConfirmationRecord** (`Class`)
- - 📝 Persist risky operation confirmation tokens with lifecycle state.
-- 📦 **backend.src.models.storage** (`Module`) `[TRIVIAL]`
- - 📝 Data models for the storage system.
- - 🏗️ Layer: Domain
- - ℂ **FileCategory** (`Class`) `[TRIVIAL]`
- - 📝 Enumeration of supported file categories in the storage system.
- - ℂ **StorageConfig** (`Class`) `[TRIVIAL]`
- - 📝 Configuration model for the storage system, defining paths and naming patterns.
- - ℂ **StoredFile** (`Class`) `[TRIVIAL]`
- - 📝 Data model representing metadata for a file stored in the system.
-- 📦 **backend.src.models.dashboard** (`Module`)
- - 📝 Defines data models for dashboard metadata and selection.
- - 🏗️ Layer: Model
- - ℂ **DashboardMetadata** (`Class`) `[TRIVIAL]`
- - 📝 Represents a dashboard available for migration.
- - ℂ **DashboardSelection** (`Class`) `[TRIVIAL]`
- - 📝 Represents the user's selection of dashboards to migrate.
-- 📦 **backend.src.models.clean_release** (`Module`) `[CRITICAL]`
- - 📝 Define canonical clean release domain entities and lifecycle guards.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Immutable snapshots are never mutated; forbidden lifecycle transitions are rejected.
- - ℂ **CheckFinalStatus** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible final status enum for legacy TUI/orchestrator tests.
- - ℂ **CheckStageName** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible stage name enum for legacy TUI/orchestrator tests.
- - ℂ **CheckStageStatus** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible stage status enum for legacy TUI/orchestrator tests.
- - ℂ **CheckStageResult** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible stage result container for legacy TUI/orchestrator tests.
- - ℂ **ProfileType** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible profile enum for legacy TUI bootstrap logic.
- - ℂ **RegistryStatus** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible registry status enum for legacy TUI bootstrap logic.
- - ℂ **ReleaseCandidateStatus** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible release candidate status enum for legacy TUI.
- - ℂ **ResourceSourceEntry** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible source entry model for legacy TUI bootstrap logic.
- - ℂ **ResourceSourceRegistry** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible source registry model for legacy TUI bootstrap logic.
- - ℂ **CleanProfilePolicy** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible policy model for legacy TUI bootstrap logic.
- - ℂ **ComplianceCheckRun** (`Class`) `[TRIVIAL]`
- - 📝 Backward-compatible run model for legacy TUI typing/import compatibility.
- - ℂ **ReleaseCandidate** (`Class`) `[TRIVIAL]`
- - 📝 Represents the release unit being prepared and governed.
- - ℂ **CandidateArtifact** (`Class`) `[TRIVIAL]`
- - 📝 Represents one artifact associated with a release candidate.
- - ℂ **ManifestItem** (`Class`) `[TRIVIAL]`
- - ℂ **ManifestSummary** (`Class`) `[TRIVIAL]`
- - ℂ **DistributionManifest** (`Class`) `[TRIVIAL]`
- - 📝 Immutable snapshot of the candidate payload.
- - 🔒 Invariant: Immutable after creation.
- - ℂ **SourceRegistrySnapshot** (`Class`) `[TRIVIAL]`
- - 📝 Immutable registry snapshot for allowed sources.
- - ℂ **CleanPolicySnapshot** (`Class`) `[TRIVIAL]`
- - 📝 Immutable policy snapshot used to evaluate a run.
- - ℂ **ComplianceRun** (`Class`) `[TRIVIAL]`
- - 📝 Operational record for one compliance execution.
- - ℂ **ComplianceStageRun** (`Class`) `[TRIVIAL]`
- - 📝 Stage-level execution record inside a run.
- - ℂ **ComplianceViolation** (`Class`) `[TRIVIAL]`
- - 📝 Violation produced by a stage.
- - ℂ **ComplianceReport** (`Class`) `[TRIVIAL]`
- - 📝 Immutable result derived from a completed run.
- - 🔒 Invariant: Immutable after creation.
- - ℂ **ApprovalDecision** (`Class`) `[TRIVIAL]`
- - 📝 Approval or rejection bound to a candidate and report.
- - ℂ **PublicationRecord** (`Class`) `[TRIVIAL]`
- - 📝 Publication or revocation record.
- - ℂ **CleanReleaseAuditLog** (`Class`) `[TRIVIAL]`
- - 📝 Represents a persistent audit log entry for clean release actions.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **registry_snapshot_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **candidate_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **transition_to** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **check_run_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **AuthModels** (`Module`)
- - 📝 SQLAlchemy models for multi-user authentication and authorization.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Usernames and emails must be unique.
- - ƒ **generate_uuid** (`Function`) `[TRIVIAL]`
- - 📝 Generates a unique UUID string.
- - 📦 **user_roles** (`Table`) `[TRIVIAL]`
- - 📝 Association table for many-to-many relationship between Users and Roles.
- - 📦 **role_permissions** (`Table`) `[TRIVIAL]`
- - 📝 Association table for many-to-many relationship between Roles and Permissions.
- - ℂ **User** (`Class`) `[CRITICAL]`
- - 📝 Represents an identity that can authenticate to the system.
- - ℂ **Role** (`Class`) `[CRITICAL]`
- - 📝 Represents a collection of permissions.
- - ℂ **Permission** (`Class`) `[CRITICAL]`
- - 📝 Represents a specific capability within the system.
- - ℂ **ADGroupMapping** (`Class`) `[CRITICAL]`
- - 📝 Maps an Active Directory group to a local System Role.
- - 🔗 DEPENDS_ON -> `Role`
-- 📦 **ProfileModels** (`Module`)
- - 📝 Defines persistent per-user profile settings for dashboard filter, Git identity/token, and UX preferences.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Sensitive Git token is stored encrypted and never returned in plaintext.
- - 🔗 DEPENDS_ON -> `AuthModels`
- - ℂ **UserDashboardPreference** (`Class`)
- - 📝 Stores Superset username binding and default "my dashboards" toggle for one authenticated user.
-- 📦 **src.models** (`Package`) `[TRIVIAL]`
- - 📝 Domain model package root.
-- 📦 **test_models** (`Module`) `[TRIVIAL]`
- - 📝 Unit tests for data models
- - 🏗️ Layer: Domain
- - ƒ **test_environment_model** (`Function`) `[TRIVIAL]`
- - 📝 Tests that Environment model correctly stores values.
-- 📦 **test_report_models** (`Module`)
- - 📝 Unit tests for report Pydantic models and their validators
- - 🏗️ Layer: Domain
- - ƒ **test_enum_values** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_enum_values** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_valid_creation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_minimal_creation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_valid_creation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_empty_report_id_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_whitespace_report_id_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_empty_task_id_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_empty_summary_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_summary_whitespace_trimmed** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_optional_fields** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_with_error_context** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_defaults** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_invalid_sort_by_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_valid_sort_by_values** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_invalid_sort_order_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_valid_sort_order_values** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_time_range_validation_valid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_time_range_validation_invalid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_page_ge_1** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_page_size_bounds** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_valid_creation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_with_items** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_valid_creation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_with_all_fields** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_clean_release** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/models/__tests__/test_clean_release.py
- - 🏗️ Layer: Unknown
- - ƒ **valid_candidate_data** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_release_candidate_valid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_release_candidate_empty_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **valid_policy_data** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_enterprise_policy_valid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_enterprise_policy_missing_prohibited** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_enterprise_policy_external_allowed** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_manifest_count_mismatch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_compliant_run_validation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_report_validation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.profile_service** (`Module`) `[CRITICAL]`
- - 📝 Orchestrates profile preference persistence, Superset account lookup, and deterministic actor matching.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Username normalization is trim+lower and shared by save and matching paths.
- - 🔗 DEPENDS_ON -> `backend.src.models.profile`
- - 🔗 DEPENDS_ON -> `backend.src.schemas.profile`
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client`
- - 🔗 DEPENDS_ON -> `backend.src.core.auth.repository`
- - 🔗 DEPENDS_ON -> `backend.src.models.auth`
- - 🔗 DEPENDS_ON -> `sqlalchemy.orm.Session`
- - ℂ **ProfileValidationError** (`Class`)
- - 📝 Domain validation error for profile preference update requests.
- - ℂ **EnvironmentNotFoundError** (`Class`)
- - 📝 Raised when environment_id from lookup request is unknown in app configuration.
- - ℂ **ProfileAuthorizationError** (`Class`)
- - 📝 Raised when caller attempts cross-user preference mutation.
- - ℂ **ProfileService** (`Class`) `[CRITICAL]`
- - 📝 Implements profile preference read/update flow and Superset account lookup degradation strategy.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initialize service with DB session and config manager.
- - ƒ **get_my_preference** (`Function`) `[TRIVIAL]`
- - 📝 Return current user's persisted preference or default non-configured view.
- - ƒ **get_dashboard_filter_binding** (`Function`) `[TRIVIAL]`
- - 📝 Return only dashboard-filter fields required by dashboards listing hot path.
- - ƒ **update_my_preference** (`Function`) `[TRIVIAL]`
- - 📝 Validate and persist current user's profile preference in self-scoped mode.
- - ƒ **lookup_superset_accounts** (`Function`) `[TRIVIAL]`
- - 📝 Query Superset users in selected environment and project canonical account candidates.
- - ƒ **matches_dashboard_actor** (`Function`) `[TRIVIAL]`
- - 📝 Apply trim+case-insensitive actor match across owners OR modified_by.
- - ƒ **_build_security_summary** (`Function`) `[TRIVIAL]`
- - 📝 Build read-only security snapshot with role and permission badges.
- - ƒ **_collect_user_permission_pairs** (`Function`) `[TRIVIAL]`
- - 📝 Collect effective permission tuples from current user's roles.
- - ƒ **_format_permission_key** (`Function`) `[TRIVIAL]`
- - 📝 Convert normalized permission pair to compact UI key.
- - ƒ **_to_preference_payload** (`Function`) `[TRIVIAL]`
- - 📝 Map ORM preference row to API DTO with token metadata.
- - ƒ **_mask_secret_value** (`Function`) `[TRIVIAL]`
- - 📝 Build a safe display value for sensitive secrets.
- - ƒ **_sanitize_text** (`Function`) `[TRIVIAL]`
- - 📝 Normalize optional text into trimmed form or None.
- - ƒ **_sanitize_secret** (`Function`) `[TRIVIAL]`
- - 📝 Normalize secret input into trimmed form or None.
- - ƒ **_normalize_start_page** (`Function`) `[TRIVIAL]`
- - 📝 Normalize supported start page aliases to canonical values.
- - ƒ **_normalize_density** (`Function`) `[TRIVIAL]`
- - 📝 Normalize supported density aliases to canonical values.
- - ƒ **_resolve_environment** (`Function`) `[TRIVIAL]`
- - 📝 Resolve environment model from configured environments by id.
- - ƒ **_get_preference_row** (`Function`) `[TRIVIAL]`
- - 📝 Return persisted preference row for user or None.
- - ƒ **_get_or_create_preference_row** (`Function`) `[TRIVIAL]`
- - 📝 Return existing preference row or create new unsaved row.
- - ƒ **_build_default_preference** (`Function`) `[TRIVIAL]`
- - 📝 Build non-persisted default preference DTO for unconfigured users.
- - ƒ **_validate_update_payload** (`Function`) `[TRIVIAL]`
- - 📝 Validate username/toggle constraints for preference mutation.
- - ƒ **_sanitize_username** (`Function`) `[TRIVIAL]`
- - 📝 Normalize raw username into trimmed form or None for empty input.
- - ƒ **_normalize_username** (`Function`) `[TRIVIAL]`
- - 📝 Apply deterministic trim+lower normalization for actor matching.
- - ƒ **_normalize_owner_tokens** (`Function`) `[TRIVIAL]`
- - 📝 Normalize owners payload into deduplicated lower-cased tokens.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.resource_service** (`Module`)
- - 📝 Shared service for fetching resource data with Git status and task status
- - 🏗️ Layer: Service
- - 🔒 Invariant: All resources include metadata about their current state
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
- - 🔗 DEPENDS_ON -> `TaskManagerPackage`
- - 🔗 DEPENDS_ON -> `TaskManagerModels`
- - 🔗 DEPENDS_ON -> `backend.src.services.git_service.GitService`
- - ℂ **backend.src.services.resource_service.ResourceService** (`Class`)
- - 📝 Provides centralized access to resource data with enhanced metadata
- - ƒ **backend.src.services.resource_service.ResourceService.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initialize the resource service with dependencies
- - ƒ **backend.src.services.resource_service.ResourceService.get_dashboards_with_status** (`Function`)
- - 📝 Fetch dashboards from environment with Git status and last task status
- - 🔗 CALLS -> `backend.src.core.superset_client.SupersetClient.get_dashboards_summary`
- - 🔗 CALLS -> `backend.src.services.resource_service.ResourceService._get_git_status_for_dashboard`
- - 🔗 CALLS -> `backend.src.services.resource_service.ResourceService._get_last_llm_task_for_dashboard`
- - ƒ **get_dashboards_page_with_status** (`Function`)
- - 📝 Fetch one dashboard page from environment and enrich only that page with status metadata.
- - ƒ **_get_last_llm_task_for_dashboard** (`Function`)
- - 📝 Get most recent LLM validation task for a dashboard in an environment
- - ƒ **_normalize_task_status** (`Function`)
- - 📝 Normalize task status to stable uppercase values for UI/API projections
- - ƒ **_normalize_validation_status** (`Function`)
- - 📝 Normalize LLM validation status to PASS/FAIL/WARN/UNKNOWN
- - ƒ **_normalize_datetime_for_compare** (`Function`)
- - 📝 Normalize datetime values to UTC-aware values for safe comparisons.
- - ƒ **get_datasets_with_status** (`Function`)
- - 📝 Fetch datasets from environment with mapping progress and last task status
- - 🔗 CALLS -> `SupersetClient:get_datasets_summary`
- - 🔗 CALLS -> `self:_get_last_task_for_resource`
- - ƒ **get_activity_summary** (`Function`)
- - 📝 Get summary of active and recent tasks for the activity indicator
- - ƒ **_get_git_status_for_dashboard** (`Function`)
- - 📝 Get Git sync status for a dashboard
- - 🔗 CALLS -> `GitService:get_repo`
- - ƒ **_get_last_task_for_resource** (`Function`)
- - 📝 Get the most recent task for a specific resource
- - ƒ **_extract_resource_name_from_task** (`Function`)
- - 📝 Extract resource name from task params
- - ƒ **_extract_resource_type_from_task** (`Function`)
- - 📝 Extract resource type from task params
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_dashboards_with_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_task_time** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.llm_prompt_templates** (`Module`)
- - 📝 Provide default LLM prompt templates and normalization helpers for runtime usage.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: All required prompt template keys are always present after normalization.
- - 🔗 DEPENDS_ON -> `backend.src.core.config_manager`
- - 📦 **DEFAULT_LLM_PROMPTS** (`Constant`)
- - 📝 Default prompt templates used by documentation, dashboard validation, and git commit generation.
- - 📦 **DEFAULT_LLM_PROVIDER_BINDINGS** (`Constant`)
- - 📝 Default provider binding per task domain.
- - 📦 **DEFAULT_LLM_ASSISTANT_SETTINGS** (`Constant`)
- - 📝 Default planner settings for assistant chat intent model/provider resolution.
- - ƒ **normalize_llm_settings** (`Function`)
- - 📝 Ensure llm settings contain stable schema with prompts section and default templates.
- - ƒ **is_multimodal_model** (`Function`)
- - 📝 Heuristically determine whether model supports image input required for dashboard validation.
- - ƒ **resolve_bound_provider_id** (`Function`)
- - 📝 Resolve provider id configured for a task binding with fallback to default provider.
- - ƒ **render_prompt** (`Function`)
- - 📝 Render prompt template using deterministic placeholder replacement with graceful fallback.
-- 📦 **health_service** (`Module`)
- - 📝 Business logic for aggregating dashboard health status from validation records.
- - 🏗️ Layer: Domain/Service
- - 🔗 DEPENDS_ON -> `backend.src.models.llm.ValidationRecord`
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
- - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.cleanup.TaskCleanupService`
- - ℂ **HealthService** (`Class`)
- - 📝 Aggregate latest dashboard validation state and manage persisted health report lifecycle.
- - 🔗 DEPENDS_ON -> `backend.src.models.llm.ValidationRecord`
- - 🔗 DEPENDS_ON -> `backend.src.schemas.health.DashboardHealthItem`
- - 🔗 DEPENDS_ON -> `backend.src.schemas.health.HealthSummaryResponse`
- - 🔗 CALLS -> `backend.src.core.superset_client.SupersetClient`
- - 🔗 CALLS -> `backend.src.core.task_manager.cleanup.TaskCleanupService`
- - ƒ **HealthService.__init__** (`Function`)
- - 📝 Initialize health service with DB session and optional config access for dashboard metadata resolution.
- - ƒ **HealthService._prime_dashboard_meta_cache** (`Function`)
- - 📝 Warm dashboard slug/title cache with one Superset list fetch per environment.
- - 🔗 CALLS -> `backend.src.core.superset_client.SupersetClient.get_dashboards_summary`
- - ƒ **HealthService._resolve_dashboard_meta** (`Function`) `[TRIVIAL]`
- - 📝 Resolve slug/title for a dashboard referenced by persisted validation record.
- - ƒ **HealthService.get_health_summary** (`Function`)
- - 📝 Aggregate latest validation status per dashboard and enrich rows with dashboard slug/title.
- - 🔗 CALLS -> `self._prime_dashboard_meta_cache`
- - 🔗 CALLS -> `self._resolve_dashboard_meta`
- - ƒ **HealthService.delete_validation_report** (`Function`)
- - 📝 Delete one persisted health report and optionally clean linked task/log artifacts.
- - 🔗 CALLS -> `backend.src.core.task_manager.cleanup.TaskCleanupService.delete_task_with_logs`
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_prime_dashboard_meta_cache** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_resolve_dashboard_meta** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_health_summary** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **delete_validation_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.llm_provider** (`Module`)
- - 📝 Service for managing LLM provider configurations with encrypted API keys.
- - 🏗️ Layer: Domain
- - 🔗 DEPENDS_ON -> `backend.src.core.database`
- - 🔗 DEPENDS_ON -> `backend.src.models.llm`
- - ƒ **_require_fernet_key** (`Function`) `[CRITICAL]`
- - 📝 Load and validate the Fernet key used for secret encryption.
- - ℂ **EncryptionManager** (`Class`) `[CRITICAL]`
- - 📝 Handles encryption and decryption of sensitive data like API keys.
- - 🔒 Invariant: Uses only a validated secret key from environment.
- - ƒ **EncryptionManager.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initialize the encryption manager with a Fernet key.
- - ƒ **EncryptionManager.encrypt** (`Function`) `[TRIVIAL]`
- - 📝 Encrypt a plaintext string.
- - ƒ **EncryptionManager.decrypt** (`Function`) `[TRIVIAL]`
- - 📝 Decrypt an encrypted string.
- - ℂ **LLMProviderService** (`Class`)
- - 📝 Service to manage LLM provider lifecycle.
- - ƒ **LLMProviderService.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initialize the service with database session.
- - ƒ **get_all_providers** (`Function`)
- - 📝 Returns all configured LLM providers.
- - ƒ **get_provider** (`Function`)
- - 📝 Returns a single LLM provider by ID.
- - ƒ **create_provider** (`Function`)
- - 📝 Creates a new LLM provider with encrypted API key.
- - ƒ **update_provider** (`Function`)
- - 📝 Updates an existing LLM provider.
- - ƒ **delete_provider** (`Function`)
- - 📝 Deletes an LLM provider.
- - ƒ **get_decrypted_api_key** (`Function`)
- - 📝 Returns the decrypted API key for a provider.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **encrypt** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **decrypt** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.rbac_permission_catalog** (`Module`)
- - 📝 Discovers declared RBAC permissions from API routes/plugins and synchronizes them into auth database.
- - 🏗️ Layer: Service
- - 🔒 Invariant: Synchronization is idempotent for existing (resource, action) permission pairs.
- - 🔗 CALLS -> `backend.src.core.plugin_loader.PluginLoader.get_all_plugin_configs`
- - 🔗 DEPENDS_ON -> `backend.src.models.auth.Permission`
- - 📦 **HAS_PERMISSION_PATTERN** (`Constant`) `[TRIVIAL]`
- - 📝 Regex pattern for extracting has_permission("resource", "ACTION") declarations.
- - 📦 **ROUTES_DIR** (`Constant`) `[TRIVIAL]`
- - 📝 Absolute directory path where API route RBAC declarations are defined.
- - ƒ **_iter_route_files** (`Function`) `[TRIVIAL]`
- - 📝 Iterates API route files that may contain RBAC declarations.
- - ƒ **_discover_route_permissions** (`Function`) `[TRIVIAL]`
- - 📝 Extracts explicit has_permission declarations from API route source code.
- - ƒ **_discover_route_permissions_cached** (`Function`) `[TRIVIAL]`
- - 📝 Cache route permission discovery because route source files are static during normal runtime.
- - ƒ **_discover_plugin_execute_permissions** (`Function`) `[TRIVIAL]`
- - 📝 Derives dynamic task permissions of form plugin:{plugin_id}:EXECUTE from plugin registry.
- - ƒ **_discover_plugin_execute_permissions_cached** (`Function`) `[TRIVIAL]`
- - 📝 Cache dynamic plugin EXECUTE permission pairs by normalized plugin id tuple.
- - ƒ **discover_declared_permissions** (`Function`) `[TRIVIAL]`
- - 📝 Builds canonical RBAC permission catalog from routes and plugin registry.
- - ƒ **sync_permission_catalog** (`Function`) `[TRIVIAL]`
- - 📝 Persists missing RBAC permission pairs into auth database.
-- 📦 **backend.src.services** (`Module`)
- - 📝 Package initialization for services module
- - 🏗️ Layer: Core
- - ƒ **__getattr__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.auth_service** (`Module`) `[CRITICAL]`
- - 📝 Orchestrates credential authentication and ADFS JIT user provisioning.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Authentication succeeds only for active users with valid credentials; issued sessions encode subject and scopes from assigned roles.
- - 🔗 DEPENDS_ON -> `backend.src.core.auth.repository.AuthRepository`
- - 🔗 DEPENDS_ON -> `backend.src.core.auth.security.verify_password`
- - 🔗 DEPENDS_ON -> `backend.src.core.auth.jwt.create_access_token`
- - 🔗 DEPENDS_ON -> `backend.src.models.auth.User`
- - 🔗 DEPENDS_ON -> `backend.src.models.auth.Role`
- - ℂ **AuthService** (`Class`)
- - 📝 Provides high-level authentication services.
- - ƒ **AuthService.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the authentication service with repository access over an active DB session.
- - ƒ **AuthService.authenticate_user** (`Function`)
- - 📝 Validates credentials and account state for local username/password authentication.
- - ƒ **AuthService.create_session** (`Function`)
- - 📝 Issues an access token payload for an already authenticated user.
- - ƒ **AuthService.provision_adfs_user** (`Function`)
- - 📝 Performs ADFS Just-In-Time provisioning and role synchronization from AD group mappings.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **authenticate_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **provision_adfs_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.git_service** (`Module`)
- - 📝 Core Git logic using GitPython to manage dashboard repositories.
- - 🏗️ Layer: Service
- - 🔒 Invariant: All Git operations must be performed on a valid local directory.
- - 🔗 DEPENDS_ON -> `backend.src.core.database.SessionLocal`
- - 🔗 DEPENDS_ON -> `backend.src.models.config.AppConfigRecord`
- - 🔗 DEPENDS_ON -> `backend.src.models.git.GitRepository`
- - ℂ **backend.src.services.git_service.GitService** (`Class`)
- - 📝 Wrapper for GitPython operations with semantic logging and error handling.
- - ƒ **backend.src.services.git_service.GitService.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the GitService with a base path for repositories.
- - 🔗 CALLS -> `GitService._resolve_base_path`
- - 🔗 CALLS -> `GitService._ensure_base_path_exists`
- - ƒ **backend.src.services.git_service.GitService._ensure_base_path_exists** (`Function`) `[TRIVIAL]`
- - 📝 Ensure the repositories root directory exists and is a directory.
- - ƒ **backend.src.services.git_service.GitService._resolve_base_path** (`Function`) `[TRIVIAL]`
- - 📝 Resolve base repository directory from explicit argument or global storage settings.
- - ƒ **backend.src.services.git_service.GitService._normalize_repo_key** (`Function`) `[TRIVIAL]`
- - 📝 Convert user/dashboard-provided key to safe filesystem directory name.
- - ƒ **backend.src.services.git_service.GitService._update_repo_local_path** (`Function`) `[TRIVIAL]`
- - 📝 Persist repository local_path in GitRepository table when record exists.
- - ƒ **backend.src.services.git_service.GitService._migrate_repo_directory** (`Function`) `[TRIVIAL]`
- - 📝 Move legacy repository directory to target path and sync DB metadata.
- - 🔗 CALLS -> `GitService._update_repo_local_path`
- - ƒ **backend.src.services.git_service.GitService._ensure_gitflow_branches** (`Function`) `[TRIVIAL]`
- - 📝 Ensure standard GitFlow branches (main/dev/preprod) exist locally and on origin.
- - ƒ **backend.src.services.git_service.GitService._get_repo_path** (`Function`) `[TRIVIAL]`
- - 📝 Resolves the local filesystem path for a dashboard's repository.
- - 🔗 CALLS -> `GitService._normalize_repo_key`
- - 🔗 CALLS -> `GitService._migrate_repo_directory`
- - 🔗 CALLS -> `GitService._update_repo_local_path`
- - ƒ **backend.src.services.git_service.GitService.init_repo** (`Function`) `[TRIVIAL]`
- - 📝 Initialize or clone a repository for a dashboard.
- - 🔗 CALLS -> `GitService._get_repo_path`
- - 🔗 CALLS -> `GitService._ensure_gitflow_branches`
- - ƒ **backend.src.services.git_service.GitService.delete_repo** (`Function`) `[TRIVIAL]`
- - 📝 Remove local repository and DB binding for a dashboard.
- - 🔗 CALLS -> `GitService._get_repo_path`
- - ƒ **backend.src.services.git_service.GitService.get_repo** (`Function`) `[TRIVIAL]`
- - 📝 Get Repo object for a dashboard.
- - 🔗 CALLS -> `GitService._get_repo_path`
- - ƒ **backend.src.services.git_service.GitService.configure_identity** (`Function`) `[TRIVIAL]`
- - 📝 Configure repository-local Git committer identity for user-scoped operations.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.list_branches** (`Function`) `[TRIVIAL]`
- - 📝 List all branches for a dashboard's repository.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.create_branch** (`Function`) `[TRIVIAL]`
- - 📝 Create a new branch from an existing one.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.checkout_branch** (`Function`) `[TRIVIAL]`
- - 📝 Switch to a specific branch.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.commit_changes** (`Function`) `[TRIVIAL]`
- - 📝 Stage and commit changes.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService._extract_http_host** (`Function`) `[TRIVIAL]`
- - 📝 Extract normalized host[:port] from HTTP(S) URL.
- - ƒ **backend.src.services.git_service.GitService._strip_url_credentials** (`Function`) `[TRIVIAL]`
- - 📝 Remove credentials from URL while preserving scheme/host/path.
- - ƒ **backend.src.services.git_service.GitService._replace_host_in_url** (`Function`) `[TRIVIAL]`
- - 📝 Replace source URL host with host from configured server URL.
- - ƒ **backend.src.services.git_service.GitService._align_origin_host_with_config** (`Function`) `[TRIVIAL]`
- - 📝 Auto-align local origin host to configured Git server host when they drift.
- - 🔗 CALLS -> `GitService._extract_http_host`
- - 🔗 CALLS -> `GitService._replace_host_in_url`
- - 🔗 CALLS -> `GitService._strip_url_credentials`
- - ƒ **backend.src.services.git_service.GitService.push_changes** (`Function`) `[TRIVIAL]`
- - 📝 Push local commits to remote.
- - 🔗 CALLS -> `GitService.get_repo`
- - 🔗 CALLS -> `GitService._align_origin_host_with_config`
- - ƒ **backend.src.services.git_service.GitService._read_blob_text** (`Function`) `[TRIVIAL]`
- - 📝 Read text from a Git blob.
- - ƒ **backend.src.services.git_service.GitService._get_unmerged_file_paths** (`Function`) `[TRIVIAL]`
- - 📝 List files with merge conflicts.
- - ƒ **backend.src.services.git_service.GitService._build_unfinished_merge_payload** (`Function`) `[TRIVIAL]`
- - 📝 Build payload for unfinished merge state.
- - 🔗 CALLS -> `GitService._get_unmerged_file_paths`
- - ƒ **backend.src.services.git_service.GitService.get_merge_status** (`Function`) `[TRIVIAL]`
- - 📝 Get current merge status for a dashboard repository.
- - 🔗 CALLS -> `GitService.get_repo`
- - 🔗 CALLS -> `GitService._build_unfinished_merge_payload`
- - ƒ **backend.src.services.git_service.GitService.get_merge_conflicts** (`Function`) `[TRIVIAL]`
- - 📝 List all files with conflicts and their contents.
- - 🔗 CALLS -> `GitService.get_repo`
- - 🔗 CALLS -> `GitService._read_blob_text`
- - ƒ **backend.src.services.git_service.GitService.resolve_merge_conflicts** (`Function`) `[TRIVIAL]`
- - 📝 Resolve conflicts using specified strategy.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.abort_merge** (`Function`) `[TRIVIAL]`
- - 📝 Abort ongoing merge.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.continue_merge** (`Function`) `[TRIVIAL]`
- - 📝 Finalize merge after conflict resolution.
- - 🔗 CALLS -> `GitService.get_repo`
- - 🔗 CALLS -> `GitService._get_unmerged_file_paths`
- - ƒ **backend.src.services.git_service.GitService.pull_changes** (`Function`) `[TRIVIAL]`
- - 📝 Pull changes from remote.
- - 🔗 CALLS -> `GitService.get_repo`
- - 🔗 CALLS -> `GitService._build_unfinished_merge_payload`
- - ƒ **backend.src.services.git_service.GitService.get_status** (`Function`) `[TRIVIAL]`
- - 📝 Get current repository status (dirty files, untracked, etc.)
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.get_diff** (`Function`) `[TRIVIAL]`
- - 📝 Generate diff for a file or the whole repository.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.get_commit_history** (`Function`) `[TRIVIAL]`
- - 📝 Retrieve commit history for a repository.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.test_connection** (`Function`) `[TRIVIAL]`
- - 📝 Test connection to Git provider using PAT.
- - ƒ **backend.src.services.git_service.GitService._normalize_git_server_url** (`Function`) `[TRIVIAL]`
- - 📝 Normalize Git server URL for provider API calls.
- - ƒ **backend.src.services.git_service.GitService._gitea_headers** (`Function`) `[TRIVIAL]`
- - 📝 Build Gitea API authorization headers.
- - ƒ **backend.src.services.git_service.GitService._gitea_request** (`Function`) `[TRIVIAL]`
- - 📝 Execute HTTP request against Gitea API with stable error mapping.
- - 🔗 CALLS -> `GitService._normalize_git_server_url`
- - 🔗 CALLS -> `GitService._gitea_headers`
- - ƒ **backend.src.services.git_service.GitService.get_gitea_current_user** (`Function`) `[TRIVIAL]`
- - 📝 Resolve current Gitea user for PAT.
- - 🔗 CALLS -> `GitService._gitea_request`
- - ƒ **backend.src.services.git_service.GitService.list_gitea_repositories** (`Function`) `[TRIVIAL]`
- - 📝 List repositories visible to authenticated Gitea user.
- - 🔗 CALLS -> `GitService._gitea_request`
- - ƒ **backend.src.services.git_service.GitService.create_gitea_repository** (`Function`) `[TRIVIAL]`
- - 📝 Create repository in Gitea for authenticated user.
- - 🔗 CALLS -> `GitService._gitea_request`
- - ƒ **backend.src.services.git_service.GitService.delete_gitea_repository** (`Function`) `[TRIVIAL]`
- - 📝 Delete repository in Gitea.
- - 🔗 CALLS -> `GitService._gitea_request`
- - ƒ **backend.src.services.git_service.GitService._gitea_branch_exists** (`Function`) `[TRIVIAL]`
- - 📝 Check whether a branch exists in Gitea repository.
- - 🔗 CALLS -> `GitService._gitea_request`
- - ƒ **backend.src.services.git_service.GitService._build_gitea_pr_404_detail** (`Function`) `[TRIVIAL]`
- - 📝 Build actionable error detail for Gitea PR 404 responses.
- - 🔗 CALLS -> `GitService._gitea_branch_exists`
- - ƒ **backend.src.services.git_service.GitService.create_github_repository** (`Function`) `[TRIVIAL]`
- - 📝 Create repository in GitHub or GitHub Enterprise.
- - 🔗 CALLS -> `GitService._normalize_git_server_url`
- - ƒ **backend.src.services.git_service.GitService.create_gitlab_repository** (`Function`) `[TRIVIAL]`
- - 📝 Create repository(project) in GitLab.
- - 🔗 CALLS -> `GitService._normalize_git_server_url`
- - ƒ **backend.src.services.git_service.GitService._parse_remote_repo_identity** (`Function`) `[TRIVIAL]`
- - 📝 Parse owner/repo from remote URL for Git server API operations.
- - ƒ **backend.src.services.git_service.GitService._derive_server_url_from_remote** (`Function`) `[TRIVIAL]`
- - 📝 Build API base URL from remote repository URL without credentials.
- - ƒ **backend.src.services.git_service.GitService.promote_direct_merge** (`Function`) `[TRIVIAL]`
- - 📝 Perform direct merge between branches in local repo and push target branch.
- - 🔗 CALLS -> `GitService.get_repo`
- - ƒ **backend.src.services.git_service.GitService.create_gitea_pull_request** (`Function`) `[TRIVIAL]`
- - 📝 Create pull request in Gitea.
- - 🔗 CALLS -> `GitService._parse_remote_repo_identity`
- - 🔗 CALLS -> `GitService._gitea_request`
- - 🔗 CALLS -> `GitService._derive_server_url_from_remote`
- - 🔗 CALLS -> `GitService._normalize_git_server_url`
- - 🔗 CALLS -> `GitService._build_gitea_pr_404_detail`
- - ƒ **backend.src.services.git_service.GitService.create_github_pull_request** (`Function`) `[TRIVIAL]`
- - 📝 Create pull request in GitHub or GitHub Enterprise.
- - 🔗 CALLS -> `GitService._parse_remote_repo_identity`
- - 🔗 CALLS -> `GitService._normalize_git_server_url`
- - ƒ **backend.src.services.git_service.GitService.create_gitlab_merge_request** (`Function`) `[TRIVIAL]`
- - 📝 Create merge request in GitLab.
- - 🔗 CALLS -> `GitService._parse_remote_repo_identity`
- - 🔗 CALLS -> `GitService._normalize_git_server_url`
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_ensure_base_path_exists** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_resolve_base_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_normalize_repo_key** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_update_repo_local_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_migrate_repo_directory** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_ensure_gitflow_branches** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **init_repo** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **delete_repo** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_repo** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **configure_identity** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_branches** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_branch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **checkout_branch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit_changes** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_extract_http_host** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_strip_url_credentials** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_replace_host_in_url** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_align_origin_host_with_config** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **push_changes** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_read_blob_text** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_get_unmerged_file_paths** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_build_unfinished_merge_payload** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_merge_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_merge_conflicts** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolve_merge_conflicts** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **abort_merge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **continue_merge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **pull_changes** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_diff** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_commit_history** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_connection** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_normalize_git_server_url** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_gitea_headers** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_gitea_request** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_gitea_current_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_gitea_repositories** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_gitea_repository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **delete_gitea_repository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_gitea_branch_exists** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_build_gitea_pr_404_detail** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_github_repository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_gitlab_repository** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_parse_remote_repo_identity** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_derive_server_url_from_remote** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **promote_direct_merge** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_gitea_pull_request** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_github_pull_request** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_gitlab_merge_request** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.mapping_service** (`Module`) `[TRIVIAL]`
- - 📝 Orchestrates database fetching and fuzzy matching suggestions.
- - 🏗️ Layer: Service
- - 🔒 Invariant: Suggestions are based on database names.
- - 🔗 DEPENDS_ON -> `backend.src.core.superset_client`
- - 🔗 DEPENDS_ON -> `backend.src.core.utils.matching`
- - ℂ **MappingService** (`Class`) `[TRIVIAL]`
- - 📝 Service for handling database mapping logic.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the mapping service with a config manager.
- - ƒ **_get_client** (`Function`) `[TRIVIAL]`
- - 📝 Helper to get an initialized SupersetClient for an environment.
- - ƒ **get_suggestions** (`Function`) `[TRIVIAL]`
- - 📝 Fetches databases from both environments and returns fuzzy matching suggestions.
-- 📦 **test_encryption_manager** (`Module`)
- - 📝 Unit tests for EncryptionManager encrypt/decrypt functionality.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Encrypt+decrypt roundtrip always returns original plaintext.
- - ℂ **TestEncryptionManager** (`Class`) `[TRIVIAL]`
- - 📝 Validate EncryptionManager encrypt/decrypt roundtrip, uniqueness, and error handling.
- - ƒ **test_encrypt_decrypt_roundtrip** (`Function`) `[TRIVIAL]`
- - 📝 Encrypt then decrypt returns original plaintext.
- - ƒ **test_encrypt_produces_different_output** (`Function`) `[TRIVIAL]`
- - 📝 Same plaintext produces different ciphertext (Fernet uses random IV).
- - ƒ **test_different_inputs_yield_different_ciphertext** (`Function`) `[TRIVIAL]`
- - 📝 Different inputs produce different ciphertexts.
- - ƒ **test_decrypt_invalid_data_raises** (`Function`) `[TRIVIAL]`
- - 📝 Decrypting invalid data raises InvalidToken.
- - ƒ **test_encrypt_empty_string** (`Function`) `[TRIVIAL]`
- - 📝 Encrypting and decrypting an empty string works.
- - ƒ **test_missing_key_fails_fast** (`Function`) `[TRIVIAL]`
- - 📝 Missing ENCRYPTION_KEY must abort initialization instead of using a fallback secret.
- - ƒ **test_custom_key_roundtrip** (`Function`) `[TRIVIAL]`
- - 📝 Custom Fernet key produces valid roundtrip.
- - ƒ **_make_manager** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **encrypt** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **decrypt** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **encrypt** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **decrypt** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_health_service** (`Module`)
- - 📝 Unit tests for HealthService aggregation logic.
- - ƒ **test_get_health_summary_aggregation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_health_summary_empty** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_health_summary_resolves_slug_and_title_from_superset** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_health_summary_reuses_dashboard_metadata_cache_across_service_instances** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_delete_validation_report_deletes_dashboard_scope_and_linked_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_delete_validation_report_returns_false_for_unknown_record** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_delete_validation_report_swallows_linked_task_cleanup_failure** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.__tests__.test_llm_plugin_persistence** (`Module`)
- - 📝 Regression test for ValidationRecord persistence fields populated from task context.
- - ℂ **_DummyLogger** (`Class`) `[TRIVIAL]`
- - 📝 Minimal logger shim for TaskContext-like objects used in tests.
- - ℂ **_FakeDBSession** (`Class`) `[TRIVIAL]`
- - 📝 Captures persisted records for assertion and mimics SQLAlchemy session methods used by plugin.
- - ƒ **test_dashboard_validation_plugin_persists_task_and_environment_ids** (`Function`) `[TRIVIAL]`
- - 📝 Ensure db ValidationRecord includes context.task_id and params.environment_id.
- - ƒ **with_source** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **info** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **debug** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **warning** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **error** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **add** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **commit** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **close** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_provider** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_decrypted_api_key** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **capture_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **analyze_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **dispatch_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_environment** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_config** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.__tests__.test_llm_prompt_templates** (`Module`)
- - 📝 Validate normalization and rendering behavior for configurable LLM prompt templates.
- - 🏗️ Layer: Domain Tests
- - 🔒 Invariant: All required prompt keys remain available after normalization.
- - 🔗 DEPENDS_ON -> `backend.src.services.llm_prompt_templates`
- - ƒ **test_normalize_llm_settings_adds_default_prompts** (`Function`)
- - 📝 Ensure legacy/partial llm settings are expanded with all prompt defaults.
- - ƒ **test_normalize_llm_settings_keeps_custom_prompt_values** (`Function`)
- - 📝 Ensure user-customized prompt values are preserved during normalization.
- - ƒ **test_render_prompt_replaces_known_placeholders** (`Function`)
- - 📝 Ensure template placeholders are deterministically replaced.
- - ƒ **test_is_multimodal_model_detects_known_vision_models** (`Function`)
- - 📝 Ensure multimodal model detection recognizes common vision-capable model names.
- - ƒ **test_resolve_bound_provider_id_prefers_binding_then_default** (`Function`)
- - 📝 Verify provider binding resolution priority.
- - ƒ **test_normalize_llm_settings_keeps_assistant_planner_settings** (`Function`)
- - 📝 Ensure assistant planner provider/model fields are preserved and normalized.
-- 📦 **_test_encryption_key_fixture** (`Global`) `[TRIVIAL]`
- - 📝 Ensure encryption-dependent provider tests run with a valid Fernet key.
-- 📦 **test_llm_provider** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/services/__tests__/test_llm_provider.py
- - 🏗️ Layer: Unknown
- - ƒ **test_encryption_cycle** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_empty_string_encryption** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_decrypt_invalid_data** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **mock_db** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **service** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_all_providers** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_provider** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_decrypted_api_key** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_decrypted_api_key_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_update_provider_ignores_masked_placeholder_api_key** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.__tests__.test_resource_service** (`Module`)
- - 📝 Unit tests for ResourceService
- - 🏗️ Layer: Service
- - 🔒 Invariant: Resource summaries preserve task linkage and status projection behavior.
- - ƒ **test_get_dashboards_with_status** (`Function`) `[TRIVIAL]`
- - 📝 Validate dashboard enrichment includes git/task status projections.
- - ƒ **test_get_datasets_with_status** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_activity_summary** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_git_status_for_dashboard_no_repo** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_last_task_for_resource** (`Function`) `[TRIVIAL]`
- - ƒ **test_extract_resource_name_from_task** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_last_task_for_resource_empty_tasks** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_last_task_for_resource_no_match** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_with_status_handles_mixed_naive_and_aware_task_datetimes** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_with_status_prefers_latest_decisive_validation_status_over_newer_unknown** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_dashboards_with_status_falls_back_to_latest_unknown_without_decisive_history** (`Function`) `[TRIVIAL]`
- - ƒ **test_get_last_task_for_resource_handles_mixed_naive_and_aware_created_at** (`Function`) `[TRIVIAL]`
-- 📦 **backend.src.services.__tests__.test_rbac_permission_catalog** (`Module`)
- - 📝 Verifies RBAC permission catalog discovery and idempotent synchronization behavior.
- - 🏗️ Layer: Service Tests
- - 🔒 Invariant: Synchronization adds only missing normalized permission pairs.
- - ƒ **test_discover_route_permissions_extracts_declared_pairs_and_ignores_tests** (`Function`) `[TRIVIAL]`
- - 📝 Ensures route-scanner extracts has_permission pairs from route files and skips __tests__.
- - ƒ **test_discover_declared_permissions_unions_route_and_plugin_permissions** (`Function`) `[TRIVIAL]`
- - 📝 Ensures full catalog includes route-level permissions plus dynamic plugin EXECUTE rights.
- - ƒ **test_sync_permission_catalog_inserts_only_missing_normalized_pairs** (`Function`) `[TRIVIAL]`
- - 📝 Ensures synchronization inserts only missing pairs and normalizes action/resource tokens.
- - ƒ **test_sync_permission_catalog_is_noop_when_all_permissions_exist** (`Function`) `[TRIVIAL]`
- - 📝 Ensures synchronization is idempotent when all declared pairs already exist.
-- 📦 **backend.src.services.notifications.providers** (`Module`) `[CRITICAL]`
- - 📝 Defines abstract base and concrete implementations for external notification delivery.
- - 🏗️ Layer: Infra
- - 🔒 Invariant: Sensitive credentials must be handled via encrypted config.
- - ℂ **NotificationProvider** (`Class`) `[TRIVIAL]`
- - 📝 Abstract base class for all notification providers.
- - ℂ **SMTPProvider** (`Class`) `[TRIVIAL]`
- - 📝 Delivers notifications via SMTP.
- - ℂ **TelegramProvider** (`Class`) `[TRIVIAL]`
- - 📝 Delivers notifications via Telegram Bot API.
- - ℂ **SlackProvider** (`Class`) `[TRIVIAL]`
- - 📝 Delivers notifications via Slack Webhooks or API.
- - ƒ **send** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **send** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **send** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **send** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.notifications.service** (`Module`) `[CRITICAL]`
- - 📝 Orchestrates notification routing based on user preferences and policy context.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Missing profile or provider config must not crash the pipeline.
- - 🔗 DEPENDS_ON -> `backend.src.services.notifications.providers`
- - 🔗 DEPENDS_ON -> `backend.src.services.profile_service`
- - 🔗 DEPENDS_ON -> `backend.src.models.llm`
- - ℂ **NotificationService** (`Class`) `[TRIVIAL]`
- - 📝 Routes validation reports to appropriate users and channels.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_initialize_providers** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **dispatch_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_should_notify** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_resolve_targets** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_find_dashboard_owners** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_build_body** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **src.services.notifications** (`Package`) `[TRIVIAL]`
- - 📝 Notification service package root.
-- 📦 **backend.src.services.notifications.__tests__.test_notification_service** (`Module`)
- - 📝 Unit tests for NotificationService routing and dispatch logic.
- - ƒ **mock_db** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **mock_config_manager** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **service** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_should_notify_fail_only** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_should_notify_warn_and_fail** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_resolve_targets_owner_routing** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_resolve_targets_custom_channels** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_dispatch_report_skips_if_no_notify** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_dispatch_report_calls_providers** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.compliance_orchestrator** (`Module`) `[CRITICAL]`
- - 📝 Execute mandatory clean compliance stages and produce final COMPLIANT/BLOCKED/FAILED outcome.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: COMPLIANT is impossible when any mandatory stage fails.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.report_builder`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - ℂ **CleanComplianceOrchestrator** (`Class`) `[TRIVIAL]`
- - 📝 Coordinate clean-release compliance verification stages.
- - ƒ **CleanComplianceOrchestrator.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Bind repository dependency used for orchestrator persistence and lookups.
- - ƒ **start_check_run** (`Function`) `[TRIVIAL]`
- - 📝 Initiate a new compliance run session.
- - ƒ **execute_stages** (`Function`) `[TRIVIAL]`
- - 📝 Execute or accept compliance stage outcomes and set intermediate/final check-run status fields.
- - ƒ **finalize_run** (`Function`) `[TRIVIAL]`
- - 📝 Finalize run status based on cumulative stage results.
- - ƒ **run_check_legacy** (`Function`) `[TRIVIAL]`
- - 📝 Legacy wrapper for compatibility with previous orchestrator call style.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.compliance_execution_service** (`Module`) `[CRITICAL]`
- - 📝 Create and execute compliance runs with trusted snapshots, deterministic stages, violations and immutable report persistence.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: A run binds to exactly one candidate/manifest/policy/registry snapshot set.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.policy_resolution_service`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.report_builder`
- - ℂ **ComplianceExecutionResult** (`Class`) `[TRIVIAL]`
- - 📝 Return envelope for compliance execution with run/report and persisted stage artifacts.
- - ℂ **ComplianceExecutionService** (`Class`) `[TRIVIAL]`
- - 📝 Execute clean-release compliance lifecycle over trusted snapshots and immutable evidence.
- - ƒ **_resolve_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Resolve explicit manifest or fallback to latest candidate manifest.
- - ƒ **_persist_stage_run** (`Function`) `[TRIVIAL]`
- - 📝 Persist stage run if repository supports stage records.
- - ƒ **_persist_violations** (`Function`) `[TRIVIAL]`
- - 📝 Persist stage violations via repository adapters.
- - ƒ **execute_run** (`Function`) `[TRIVIAL]`
- - 📝 Execute compliance run stages and finalize immutable report on terminal success.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.manifest_builder** (`Module`)
- - 📝 Build deterministic distribution manifest from classified artifact input.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Equal semantic artifact sets produce identical deterministic hash values.
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - ƒ **build_distribution_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Build DistributionManifest with deterministic hash and validated counters.
- - ƒ **build_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Legacy compatibility wrapper for old manifest builder import paths.
- - ƒ **_stable_hash_payload** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.policy_engine** (`Module`) `[CRITICAL]`
- - 📝 Evaluate artifact/source policies for enterprise clean profile with deterministic outcomes.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Enterprise-clean policy always treats non-registry sources as violations.
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release.CleanProfilePolicy`
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release.ResourceSourceRegistry`
- - ℂ **CleanPolicyEngine** (`Class`) `[TRIVIAL]`
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **validate_policy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **classify_artifact** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **validate_resource_source** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **evaluate_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **clean_release_exceptions** (`Module`)
- - 📝 Domain exceptions for clean release compliance subsystem.
- - 🏗️ Layer: Domain
-- 📦 **backend.src.services.clean_release.candidate_service** (`Module`) `[CRITICAL]`
- - 📝 Register release candidates with validated artifacts and advance lifecycle through legal transitions.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Candidate lifecycle transitions are delegated to domain guard logic.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - ƒ **_validate_artifacts** (`Function`) `[TRIVIAL]`
- - 📝 Validate raw artifact payload list for required fields and shape.
- - ƒ **register_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Register a candidate and persist its artifacts with legal lifecycle transition.
-- 📦 **clean_release_enums** (`Module`)
- - 📝 Canonical enums for clean release lifecycle and compliance.
- - 🏗️ Layer: Domain
-- 📦 **backend.src.services.clean_release.publication_service** (`Module`) `[CRITICAL]`
- - 📝 Enforce publication and revocation gates with append-only publication records.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Publication records are append-only snapshots; revoke mutates only publication status for targeted record.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.approval_service`
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.audit_service`
- - ƒ **_get_or_init_publications_store** (`Function`) `[TRIVIAL]`
- - 📝 Provide in-memory append-only publication storage.
- - ƒ **_latest_publication_for_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Resolve latest publication record for candidate.
- - ƒ **_latest_approval_for_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Resolve latest approval decision from repository decision store.
- - ƒ **publish_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Create immutable publication record for approved candidate.
- - ƒ **revoke_publication** (`Function`) `[TRIVIAL]`
- - 📝 Revoke existing publication record without deleting history.
-- 📦 **backend.src.services.clean_release.artifact_catalog_loader** (`Module`)
- - 📝 Load bootstrap artifact catalogs for clean release real-mode flows.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Artifact catalog must produce deterministic CandidateArtifact entries with required identity and checksum fields.
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release.CandidateArtifact`
- - ƒ **load_bootstrap_artifacts** (`Function`) `[TRIVIAL]`
- - 📝 Parse artifact catalog JSON into CandidateArtifact models for TUI/bootstrap flows.
-- 📦 **backend.src.services.clean_release.audit_service** (`Module`)
- - 📝 Provide lightweight audit hooks for clean release preparation/check/report lifecycle.
- - 🏗️ Layer: Infra
- - 🔒 Invariant: Audit hooks are append-only log actions.
- - 🔗 DEPENDS_ON -> `backend.src.core.logger`
- - ƒ **_append_event** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **audit_preparation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **audit_check_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **audit_violation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **audit_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.source_isolation** (`Module`)
- - 📝 Validate that all resource endpoints belong to the approved internal source registry.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Any endpoint outside enabled registry entries is treated as external-source violation.
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release.ResourceSourceRegistry`
- - ƒ **validate_internal_sources** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.report_builder** (`Module`) `[CRITICAL]`
- - 📝 Build and persist compliance reports with consistent counter invariants.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: blocking_violations_count never exceeds violations_count.
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **build_report_payload** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **persist_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.repository** (`Module`)
- - 📝 Provide repository adapter for clean release entities with deterministic access methods.
- - 🏗️ Layer: Infra
- - 🔒 Invariant: Repository operations are side-effect free outside explicit save/update calls.
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - ℂ **CleanReleaseRepository** (`Class`) `[TRIVIAL]`
- - 📝 Data access object for clean release lifecycle.
- - ƒ **save_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_policy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_policy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_active_policy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_registry** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_registry** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_artifact** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_artifacts_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_distribution_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_distribution_manifest** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_check_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_check_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_compliance_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_compliance_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_violation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_violations_by_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_manifests_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **clear_history** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.preparation_service** (`Module`)
- - 📝 Prepare release candidate by policy evaluation and deterministic manifest creation.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Candidate preparation always persists manifest and candidate status deterministically.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.policy_engine`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.manifest_builder`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - ƒ **prepare_candidate_legacy** (`Function`) `[TRIVIAL]`
- - 📝 Legacy compatibility wrapper kept for migration period.
- - ƒ **prepare_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **clean_release_facade** (`Module`)
- - 📝 Unified entry point for clean release operations.
- - 🏗️ Layer: Application
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolve_active_policy_snapshot** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **resolve_active_registry_snapshot** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_candidate_overview** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_candidates** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.policy_resolution_service** (`Module`) `[CRITICAL]`
- - 📝 Resolve trusted policy and registry snapshots from ConfigManager without runtime overrides.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Trusted snapshot resolution is based only on ConfigManager active identifiers.
- - 🔗 DEPENDS_ON -> `backend.src.core.config_manager`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.exceptions`
- - ƒ **resolve_trusted_policy_snapshots** (`Function`) `[TRIVIAL]`
- - 📝 Resolve immutable trusted policy and registry snapshots using active config IDs only.
-- 📦 **backend.src.services.clean_release.demo_data_service** (`Module`)
- - 📝 Provide deterministic namespace helpers and isolated in-memory repository creation for demo and real modes.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Demo and real namespaces must never collide for generated physical identifiers.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - ƒ **resolve_namespace** (`Function`) `[TRIVIAL]`
- - 📝 Resolve canonical clean-release namespace for requested mode.
- - ƒ **build_namespaced_id** (`Function`) `[TRIVIAL]`
- - 📝 Build storage-safe physical identifier under mode namespace.
- - ƒ **create_isolated_repository** (`Function`) `[TRIVIAL]`
- - 📝 Create isolated in-memory repository instance for selected mode namespace.
-- 📦 **clean_release_dto** (`Module`)
- - 📝 Data Transfer Objects for clean release compliance subsystem.
- - 🏗️ Layer: Application
-- 📦 **clean_release_mappers** (`Module`)
- - 📝 Map between domain entities (SQLAlchemy models) and DTOs.
- - 🏗️ Layer: Application
- - ƒ **map_candidate_to_dto** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **map_manifest_to_dto** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **map_run_to_dto** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **map_report_to_dto** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **clean_release** (`Module`)
- - 📝 Redesigned clean release compliance subsystem.
- - 🏗️ Layer: Domain
-- 📦 **backend.src.services.clean_release.manifest_service** (`Module`) `[CRITICAL]`
- - 📝 Build immutable distribution manifests with deterministic digest and version increment.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Existing manifests are never mutated.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.manifest_builder`
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - ƒ **build_manifest_snapshot** (`Function`) `[TRIVIAL]`
- - 📝 Create a new immutable manifest version for a candidate.
-- 📦 **backend.src.services.clean_release.approval_service** (`Module`) `[CRITICAL]`
- - 📝 Enforce approval/rejection gates over immutable compliance reports.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Approval is allowed only for PASSED report bound to candidate; decisions are append-only.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.audit_service`
- - ƒ **_get_or_init_decisions_store** (`Function`) `[TRIVIAL]`
- - 📝 Provide append-only in-memory storage for approval decisions.
- - ƒ **_latest_decision_for_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Resolve latest approval decision for candidate from append-only store.
- - ƒ **_resolve_candidate_and_report** (`Function`) `[TRIVIAL]`
- - 📝 Validate candidate/report existence and ownership prior to decision persistence.
- - ƒ **approve_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Persist immutable APPROVED decision and advance candidate lifecycle to APPROVED.
- - ƒ **reject_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Persist immutable REJECTED decision without promoting candidate lifecycle.
-- 📦 **backend.tests.services.clean_release.test_audit_service** (`Module`)
- - 📝 Validate audit hooks emit expected log patterns for clean release lifecycle.
- - 🏗️ Layer: Infra
- - ƒ **test_audit_preparation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_audit_check_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_audit_report** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_policy_engine** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/services/clean_release/__tests__/test_policy_engine.py
- - 🏗️ Layer: Unknown
- - ƒ **enterprise_clean_setup** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_policy_valid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_missing_registry_ref** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_conflicting_registry** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_classify_artifact** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_validate_resource_source** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_evaluate_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.services.clean_release.test_compliance_orchestrator** (`Module`)
- - 📝 Validate compliance orchestrator stage transitions and final status derivation.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Failed mandatory stage forces BLOCKED terminal status.
- - ƒ **test_orchestrator_stage_failure_blocks_release** (`Function`) `[TRIVIAL]`
- - 📝 Verify mandatory stage failure forces BLOCKED final status.
- - ƒ **test_orchestrator_compliant_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Verify happy path where all mandatory stages pass yields COMPLIANT.
- - ƒ **test_orchestrator_missing_stage_result** (`Function`) `[TRIVIAL]`
- - 📝 Verify incomplete mandatory stage set cannot end as COMPLIANT and results in FAILED.
- - ƒ **test_orchestrator_report_generation_error** (`Function`) `[TRIVIAL]`
- - 📝 Verify downstream report errors do not mutate orchestrator final status.
-- 📦 **backend.tests.services.clean_release.test_report_builder** (`Module`)
- - 📝 Validate compliance report builder counter integrity and blocked-run constraints.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: blocked run requires at least one blocking violation.
- - ƒ **_terminal_run** (`Function`) `[TRIVIAL]`
- - 📝 Build terminal/non-terminal run fixtures for report builder tests.
- - ƒ **_blocking_violation** (`Function`) `[TRIVIAL]`
- - 📝 Build a blocking violation fixture for blocked report scenarios.
- - ƒ **test_report_builder_blocked_requires_blocking_violations** (`Function`) `[TRIVIAL]`
- - 📝 Verify BLOCKED run requires at least one blocking violation.
- - ƒ **test_report_builder_blocked_with_two_violations** (`Function`) `[TRIVIAL]`
- - 📝 Verify report builder generates conformant payload for a BLOCKED run with violations.
- - ƒ **test_report_builder_counter_consistency** (`Function`) `[TRIVIAL]`
- - 📝 Verify violations counters remain consistent for blocking payload.
- - ƒ **test_missing_operator_summary** (`Function`) `[TRIVIAL]`
- - 📝 Validate non-terminal run prevents operator summary/report generation.
-- 📦 **backend.tests.services.clean_release.test_manifest_builder** (`Module`)
- - 📝 Validate deterministic manifest generation behavior for US1.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Same input artifacts produce identical deterministic hash.
- - ƒ **test_manifest_deterministic_hash_for_same_input** (`Function`) `[TRIVIAL]`
- - 📝 Ensure hash is stable for same candidate/policy/artifact input.
-- 📦 **backend.tests.services.clean_release.test_stages** (`Module`)
- - 📝 Validate final status derivation logic from stage results.
- - 🏗️ Layer: Domain
- - ƒ **test_derive_final_status_compliant** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_derive_final_status_blocked** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_derive_final_status_failed_missing** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_derive_final_status_failed_skipped** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.services.clean_release.test_source_isolation** (`Module`)
- - 📝 Verify internal source registry validation behavior.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: External endpoints always produce blocking violations.
- - ƒ **_registry** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_validate_internal_sources_all_internal_ok** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_validate_internal_sources_external_blocked** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.services.clean_release.test_preparation_service** (`Module`)
- - 📝 Validate release candidate preparation flow, including policy evaluation and manifest persisting.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Candidate preparation always persists manifest and candidate status deterministically.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.preparation_service:Module`
- - ƒ **backend.tests.services.clean_release.test_preparation_service._mock_policy** (`Function`) `[TRIVIAL]`
- - 📝 Build a valid clean profile policy fixture for preparation tests.
- - ƒ **backend.tests.services.clean_release.test_preparation_service._mock_registry** (`Function`) `[TRIVIAL]`
- - 📝 Build an internal-only source registry fixture for preparation tests.
- - ƒ **backend.tests.services.clean_release.test_preparation_service._mock_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Build a draft release candidate fixture with provided identifier.
- - ƒ **backend.tests.services.clean_release.test_preparation_service.test_prepare_candidate_success** (`Function`) `[TRIVIAL]`
- - 📝 Verify candidate transitions to PREPARED when evaluation returns no violations.
- - ƒ **backend.tests.services.clean_release.test_preparation_service.test_prepare_candidate_with_violations** (`Function`) `[TRIVIAL]`
- - 📝 Verify candidate transitions to BLOCKED when evaluation returns blocking violations.
- - ƒ **backend.tests.services.clean_release.test_preparation_service.test_prepare_candidate_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Verify preparation raises ValueError when candidate does not exist.
- - ƒ **backend.tests.services.clean_release.test_preparation_service.test_prepare_candidate_no_active_policy** (`Function`) `[TRIVIAL]`
- - 📝 Verify preparation raises ValueError when no active policy is available.
- - ƒ **_mock_policy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_mock_registry** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_mock_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_prepare_candidate_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_prepare_candidate_with_violations** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_prepare_candidate_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_prepare_candidate_no_active_policy** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.stages.no_external_endpoints** (`Module`)
- - 📝 Block manifest payloads that expose external endpoints outside trusted schemes and hosts.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Endpoint outside allowed scheme/host always yields BLOCKED stage decision.
- - 🔗 IMPLEMENTS -> `backend.src.services.clean_release.stages.base.ComplianceStage`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages.base`
- - ℂ **NoExternalEndpointsStage** (`Class`) `[TRIVIAL]`
- - 📝 Validate endpoint references from manifest against trusted registry.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.stages.internal_sources_only** (`Module`)
- - 📝 Verify manifest-declared sources belong to trusted internal registry allowlist.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Any source host outside allowed_hosts yields BLOCKED decision with at least one violation.
- - 🔗 IMPLEMENTS -> `backend.src.services.clean_release.stages.base.ComplianceStage`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages.base`
- - ℂ **InternalSourcesOnlyStage** (`Class`) `[TRIVIAL]`
- - 📝 Enforce internal-source-only policy from trusted registry snapshot.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.stages.data_purity** (`Module`)
- - 📝 Evaluate manifest purity counters and emit blocking violations for prohibited artifacts.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: prohibited_detected_count > 0 always yields BLOCKED stage decision.
- - 🔗 IMPLEMENTS -> `backend.src.services.clean_release.stages.base.ComplianceStage`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages.base`
- - ℂ **DataPurityStage** (`Class`) `[TRIVIAL]`
- - 📝 Validate manifest summary for prohibited artifacts.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.stages.base** (`Module`)
- - 📝 Define shared contracts and helpers for pluggable clean-release compliance stages.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Stage execution is deterministic for equal input context.
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - ℂ **ComplianceStageContext** (`Class`) `[TRIVIAL]`
- - 📝 Immutable input envelope passed to each compliance stage.
- - ℂ **StageExecutionResult** (`Class`) `[TRIVIAL]`
- - 📝 Structured stage output containing decision, details and violations.
- - ℂ **ComplianceStage** (`Class`) `[TRIVIAL]`
- - 📝 Protocol for pluggable stage implementations.
- - ƒ **build_stage_run_record** (`Function`) `[TRIVIAL]`
- - 📝 Build persisted stage run record from stage result.
- - ƒ **build_violation** (`Function`) `[TRIVIAL]`
- - 📝 Construct a compliance violation with normalized defaults.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.stages.manifest_consistency** (`Module`)
- - 📝 Ensure run is bound to the exact manifest snapshot and digest used at run creation time.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Digest mismatch between run and manifest yields ERROR with blocking violation evidence.
- - 🔗 IMPLEMENTS -> `backend.src.services.clean_release.stages.base.ComplianceStage`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages.base`
- - ℂ **ManifestConsistencyStage** (`Class`) `[TRIVIAL]`
- - 📝 Validate run/manifest linkage consistency.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.services.clean_release.stages** (`Module`)
- - 📝 Define compliance stage order and helper functions for deterministic run-state evaluation.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Stage order remains deterministic for all compliance runs.
- - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
- - ƒ **build_default_stages** (`Function`) `[TRIVIAL]`
- - 📝 Build default deterministic stage pipeline implementation order.
- - ƒ **stage_result_map** (`Function`) `[TRIVIAL]`
- - 📝 Convert stage result list to dictionary by stage name.
- - ƒ **missing_mandatory_stages** (`Function`) `[TRIVIAL]`
- - 📝 Identify mandatory stages that are absent from run results.
- - ƒ **derive_final_status** (`Function`) `[TRIVIAL]`
- - 📝 Derive final run status from stage results with deterministic blocking behavior.
-- 📦 **candidate_repository** (`Module`)
- - 📝 Persist and query release candidates.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_all** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **compliance_repository** (`Module`)
- - 📝 Persist and query compliance runs, stage runs, and violations.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_runs_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_stage_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_stages_by_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_violation** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_violations** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_violations_by_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **audit_repository** (`Module`)
- - 📝 Persist and query audit logs for clean release operations.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **log** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **manifest_repository** (`Module`)
- - 📝 Persist and query distribution manifests.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_latest_for_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **artifact_repository** (`Module`)
- - 📝 Persist and query candidate artifacts.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_all** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **policy_repository** (`Module`)
- - 📝 Persist and query policy and registry snapshots.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_policy_snapshot** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_policy_snapshot** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save_registry_snapshot** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_registry_snapshot** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **report_repository** (`Module`)
- - 📝 Persist and query compliance reports.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_by_run** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **approval_repository** (`Module`)
- - 📝 Persist and query approval decisions.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_latest_for_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **publication_repository** (`Module`)
- - 📝 Persist and query publication records.
- - 🏗️ Layer: Infra
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **save** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_latest_for_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **clean_release_repositories** (`Module`)
- - 📝 Export all clean release repositories.
-- 📦 **backend.src.services.reports.normalizer** (`Module`) `[CRITICAL]`
- - 📝 Convert task manager task objects into canonical unified TaskReport entities with deterministic fallback behavior.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Unknown task types and partial payloads remain visible via fallback mapping.
- - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.models.Task`
- - 🔗 DEPENDS_ON -> `backend.src.models.report`
- - 🔗 DEPENDS_ON -> `backend.src.services.reports.type_profiles`
- - ƒ **status_to_report_status** (`Function`) `[TRIVIAL]`
- - 📝 Normalize internal task status to canonical report status.
- - ƒ **build_summary** (`Function`) `[TRIVIAL]`
- - 📝 Build deterministic user-facing summary from task payload and status.
- - ƒ **extract_error_context** (`Function`) `[TRIVIAL]`
- - 📝 Extract normalized error context and next actions for failed/partial reports.
- - ƒ **normalize_task_report** (`Function`) `[TRIVIAL]`
- - 📝 Convert one Task to canonical TaskReport envelope.
-- 📦 **backend.src.services.reports.type_profiles** (`Module`) `[CRITICAL]`
- - 📝 Deterministic mapping of plugin/task identifiers to canonical report task types and fallback profile metadata.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: Unknown input always resolves to TaskType.UNKNOWN with a single fallback profile.
- - 🔗 DEPENDS_ON -> `backend.src.models.report.TaskType`
- - 📦 **PLUGIN_TO_TASK_TYPE** (`Data`) `[TRIVIAL]`
- - 📝 Maps plugin identifiers to normalized report task types.
- - 📦 **TASK_TYPE_PROFILES** (`Data`) `[TRIVIAL]`
- - 📝 Profile metadata registry for each normalized task type.
- - ƒ **resolve_task_type** (`Function`) `[TRIVIAL]`
- - 📝 Resolve canonical task type from plugin/task identifier with guaranteed fallback.
- - ƒ **get_type_profile** (`Function`) `[TRIVIAL]`
- - 📝 Return deterministic profile metadata for a task type.
-- 📦 **backend.src.services.reports.report_service** (`Module`) `[CRITICAL]`
- - 📝 Aggregate, normalize, filter, and paginate task reports for unified list/detail API use cases.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: List responses are deterministic and include applied filter echo metadata.
- - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.manager.TaskManager`
- - 🔗 DEPENDS_ON -> `backend.src.models.report`
- - 🔗 DEPENDS_ON -> `backend.src.services.reports.normalizer`
- - ℂ **ReportsService** (`Class`) `[CRITICAL]`
- - 📝 Service layer for list/detail report retrieval and normalization.
- - 🔒 Invariant: Service methods are read-only over task history source.
- - ƒ **__init__** (`Function`) `[CRITICAL]`
- - 📝 Initialize service with TaskManager dependency.
- - 🔒 Invariant: Constructor performs no task mutations.
- - ƒ **_load_normalized_reports** (`Function`) `[TRIVIAL]`
- - 📝 Build normalized reports from all available tasks.
- - 🔒 Invariant: Every returned item is a TaskReport.
- - ƒ **_to_utc_datetime** (`Function`) `[TRIVIAL]`
- - 📝 Normalize naive/aware datetime values to UTC-aware datetime for safe comparisons.
- - 🔒 Invariant: Naive datetimes are interpreted as UTC to preserve deterministic ordering/filtering.
- - ƒ **_datetime_sort_key** (`Function`) `[TRIVIAL]`
- - 📝 Produce stable numeric sort key for report timestamps.
- - 🔒 Invariant: Mixed naive/aware datetimes never raise TypeError.
- - ƒ **_matches_query** (`Function`) `[TRIVIAL]`
- - 📝 Apply query filtering to a report.
- - 🔒 Invariant: Filter evaluation is side-effect free.
- - ƒ **_sort_reports** (`Function`) `[TRIVIAL]`
- - 📝 Sort reports deterministically according to query settings.
- - 🔒 Invariant: Sorting criteria are deterministic for equal input.
- - ƒ **list_reports** (`Function`) `[TRIVIAL]`
- - 📝 Return filtered, sorted, paginated report collection.
- - ƒ **get_report_detail** (`Function`) `[TRIVIAL]`
- - 📝 Return one normalized report with timeline/diagnostics/next actions.
-- 📦 **src.services.reports** (`Package`) `[TRIVIAL]`
- - 📝 Report service package root.
-- 📦 **test_type_profiles** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/services/reports/__tests__/test_type_profiles.py
- - 🏗️ Layer: Unknown
- - ƒ **test_resolve_task_type_fallbacks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_resolve_task_type_valid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_type_profile_valid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_type_profile_fallback** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_report_service** (`Module`)
- - 📝 Unit tests for ReportsService list/detail operations
- - 🏗️ Layer: Domain
- - ƒ **_make_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_service** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_empty_tasks_returns_empty_collection** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_single_task_normalized** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_pagination_first_page** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_pagination_last_page** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_filter_by_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_filter_by_task_type** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_search_filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_sort_by_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_applied_filters_echoed** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_service** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_detail_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_detail_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_detail_includes_timeline** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_detail_failed_task_has_next_actions** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_detail_success_task_no_error_next_actions** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.test_report_normalizer** (`Module`)
- - 📝 Validate unknown task type fallback and partial payload normalization behavior.
- - 🏗️ Layer: Domain (Tests)
- - 🔒 Invariant: Unknown plugin types are mapped to canonical unknown task type.
- - ƒ **test_unknown_type_maps_to_unknown_profile** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_partial_payload_keeps_report_visible_with_placeholders** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_clean_release_plugin_maps_to_clean_release_task_type** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **BackupPlugin** (`Module`) `[TRIVIAL]`
- - 📝 A plugin that provides functionality to back up Superset dashboards.
- - 🏗️ Layer: App
- - 🔗 IMPLEMENTS -> `PluginBase`
- - 🔗 DEPENDS_ON -> `superset_tool.client`
- - 🔗 DEPENDS_ON -> `superset_tool.utils`
- - ℂ **BackupPlugin** (`Class`) `[TRIVIAL]`
- - 📝 Implementation of the backup plugin logic.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Returns the unique identifier for the backup plugin.
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Returns the human-readable name of the backup plugin.
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Returns a description of the backup plugin.
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Returns the version of the backup plugin.
- - ƒ **ui_route** (`Function`) `[TRIVIAL]`
- - 📝 Returns the frontend route for the backup plugin.
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Returns the JSON schema for backup plugin parameters.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Executes the dashboard backup logic with TaskContext support.
-- 📦 **DebugPluginModule** (`Module`) `[TRIVIAL]`
- - 📝 Implements a plugin for system diagnostics and debugging Superset API responses.
- - 🏗️ Layer: Plugins
- - ℂ **DebugPlugin** (`Class`) `[TRIVIAL]`
- - 📝 Plugin for system diagnostics and debugging.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Returns the unique identifier for the debug plugin.
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Returns the human-readable name of the debug plugin.
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Returns a description of the debug plugin.
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Returns the version of the debug plugin.
- - ƒ **ui_route** (`Function`) `[TRIVIAL]`
- - 📝 Returns the frontend route for the debug plugin.
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Returns the JSON schema for the debug plugin parameters.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Executes the debug logic with TaskContext support.
- - ƒ **_test_db_api** (`Function`) `[TRIVIAL]`
- - 📝 Tests database API connectivity for source and target environments.
- - ƒ **_get_dataset_structure** (`Function`) `[TRIVIAL]`
- - 📝 Retrieves the structure of a dataset.
-- 📦 **SearchPluginModule** (`Module`) `[TRIVIAL]`
- - 📝 Implements a plugin for searching text patterns across all datasets in a specific Superset environment.
- - 🏗️ Layer: Plugins
- - ℂ **SearchPlugin** (`Class`) `[TRIVIAL]`
- - 📝 Plugin for searching text patterns in Superset datasets.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Returns the unique identifier for the search plugin.
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Returns the human-readable name of the search plugin.
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Returns a description of the search plugin.
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Returns the version of the search plugin.
- - ƒ **ui_route** (`Function`) `[TRIVIAL]`
- - 📝 Returns the frontend route for the search plugin.
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Returns the JSON schema for the search plugin parameters.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Executes the dataset search logic with TaskContext support.
- - ƒ **_get_context** (`Function`) `[TRIVIAL]`
- - 📝 Extracts a small context around the match for display.
-- 📦 **MapperPluginModule** (`Module`) `[TRIVIAL]`
- - 📝 Implements a plugin for mapping dataset columns using external database connections or Excel files.
- - 🏗️ Layer: Plugins
- - ℂ **MapperPlugin** (`Class`) `[TRIVIAL]`
- - 📝 Plugin for mapping dataset columns verbose names.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Returns the unique identifier for the mapper plugin.
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Returns the human-readable name of the mapper plugin.
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Returns a description of the mapper plugin.
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Returns the version of the mapper plugin.
- - ƒ **ui_route** (`Function`) `[TRIVIAL]`
- - 📝 Returns the frontend route for the mapper plugin.
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Returns the JSON schema for the mapper plugin parameters.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Executes the dataset mapping logic with TaskContext support.
-- 📦 **backend.src.plugins.git_plugin** (`Module`) `[TRIVIAL]`
- - 📝 Предоставляет плагин для версионирования и развертывания дашбордов Superset.
- - 🏗️ Layer: Plugin
- - 🔒 Invariant: Все операции с Git должны выполняться через GitService.
- - ℂ **GitPlugin** (`Class`) `[TRIVIAL]`
- - 📝 Реализация плагина Git Integration для управления версиями дашбордов.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Инициализирует плагин и его зависимости.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Returns the plugin identifier.
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Returns the plugin name.
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Returns the plugin description.
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Returns the plugin version.
- - ƒ **ui_route** (`Function`) `[TRIVIAL]`
- - 📝 Returns the frontend route for the git plugin.
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Возвращает JSON-схему параметров для выполнения задач плагина.
- - ƒ **initialize** (`Function`) `[TRIVIAL]`
- - 📝 Выполняет начальную настройку плагина.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Основной метод выполнения задач плагина с поддержкой TaskContext.
- - 🔗 CALLS -> `self._handle_sync`
- - 🔗 CALLS -> `self._handle_deploy`
- - ƒ **_handle_sync** (`Function`) `[TRIVIAL]`
- - 📝 Экспортирует дашборд из Superset и распаковывает в Git-репозиторий.
- - 🔗 CALLS -> `src.services.git_service.GitService.get_repo`
- - 🔗 CALLS -> `src.core.superset_client.SupersetClient.export_dashboard`
- - ƒ **_handle_deploy** (`Function`) `[TRIVIAL]`
- - 📝 Упаковывает репозиторий в ZIP и импортирует в целевое окружение Superset.
- - 🔗 CALLS -> `src.core.superset_client.SupersetClient.import_dashboard`
- - ƒ **_get_env** (`Function`) `[TRIVIAL]`
- - 📝 Вспомогательный метод для получения конфигурации окружения.
-- 📦 **MigrationPlugin** (`Module`) `[CRITICAL]`
- - 📝 Orchestrates export, DB-mapping transformation, and import of Superset dashboards across environments.
- - 🏗️ Layer: App
- - 🔒 Invariant: Dashboards must never be imported with unmapped/source DB connections to prevent data leaks or cross-environment pollution.
- - 🔗 IMPLEMENTS -> `PluginBase`
- - 🔗 DEPENDS_ON -> `SupersetClient`
- - 🔗 DEPENDS_ON -> `MigrationEngine`
- - 🔗 DEPENDS_ON -> `IdMappingService`
- - ℂ **MigrationPlugin** (`Class`) `[CRITICAL]`
- - 📝 Implementation of the migration plugin workflow and transformation orchestration.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Returns the unique identifier for the migration plugin.
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Returns the human-readable name of the plugin.
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Returns the semantic description of the plugin.
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Returns the semantic version of the migration plugin.
- - ƒ **ui_route** (`Function`) `[TRIVIAL]`
- - 📝 Returns the frontend routing anchor for the plugin.
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Generates the JSON Schema for the plugin execution form dynamically.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Orchestrates the dashboard migration pipeline including extraction, AST mutation, and ingestion.
-- 📦 **src.plugins** (`Package`) `[TRIVIAL]`
- - 📝 Plugin package root for dynamic discovery and runtime imports.
-- ƒ **schedule_dashboard_validation** (`Function`) `[TRIVIAL]`
- - 📝 Schedules a recurring dashboard validation task.
-- ƒ **_parse_cron** (`Function`) `[TRIVIAL]`
- - 📝 Basic cron parser placeholder.
-- 📦 **scheduler** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/plugins/llm_analysis/scheduler.py
- - 🏗️ Layer: Unknown
- - ƒ **job_func** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- ℂ **LLMProviderType** (`Class`) `[TRIVIAL]`
- - 📝 Enum for supported LLM providers.
-- ℂ **LLMProviderConfig** (`Class`) `[TRIVIAL]`
- - 📝 Configuration for an LLM provider.
-- ℂ **ValidationStatus** (`Class`) `[TRIVIAL]`
- - 📝 Enum for dashboard validation status.
-- ℂ **DetectedIssue** (`Class`) `[TRIVIAL]`
- - 📝 Model for a single issue detected during validation.
-- ℂ **ValidationResult** (`Class`) `[TRIVIAL]`
- - 📝 Model for dashboard validation result.
-- ƒ **_is_masked_or_invalid_api_key** (`Function`) `[TRIVIAL]`
- - 📝 Guards against placeholder or malformed API keys in runtime.
-- ƒ **_json_safe_value** (`Function`) `[TRIVIAL]`
- - 📝 Recursively normalize payload values for JSON serialization.
-- ℂ **DashboardValidationPlugin** (`Class`) `[TRIVIAL]`
- - 📝 Plugin for automated dashboard health analysis using LLMs.
- - 🔗 IMPLEMENTS -> `backend.src.core.plugin_base.PluginBase`
- - ƒ **DashboardValidationPlugin.execute** (`Function`) `[TRIVIAL]`
- - 📝 Executes the dashboard validation task with TaskContext support.
-- ℂ **DocumentationPlugin** (`Class`) `[TRIVIAL]`
- - 📝 Plugin for automated dataset documentation using LLMs.
- - 🔗 IMPLEMENTS -> `backend.src.core.plugin_base.PluginBase`
- - ƒ **DocumentationPlugin.execute** (`Function`) `[TRIVIAL]`
- - 📝 Executes the dataset documentation task with TaskContext support.
-- 📦 **plugin** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/plugins/llm_analysis/plugin.py
- - 🏗️ Layer: Unknown
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- ℂ **ScreenshotService** (`Class`) `[TRIVIAL]`
- - 📝 Handles capturing screenshots of Superset dashboards.
- - ƒ **ScreenshotService.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the ScreenshotService with environment configuration.
- - ƒ **ScreenshotService._find_first_visible_locator** (`Function`) `[TRIVIAL]`
- - 📝 Resolve the first visible locator from multiple Playwright locator strategies.
- - ƒ **ScreenshotService._iter_login_roots** (`Function`) `[TRIVIAL]`
- - 📝 Enumerate page and child frames where login controls may be rendered.
- - ƒ **ScreenshotService._extract_hidden_login_fields** (`Function`) `[TRIVIAL]`
- - 📝 Collect hidden form fields required for direct login POST fallback.
- - ƒ **ScreenshotService._extract_csrf_token** (`Function`) `[TRIVIAL]`
- - 📝 Resolve CSRF token value from main page or embedded login frame.
- - ƒ **ScreenshotService._response_looks_like_login_page** (`Function`) `[TRIVIAL]`
- - 📝 Detect when fallback login POST returned the login form again instead of an authenticated page.
- - ƒ **ScreenshotService._redirect_looks_authenticated** (`Function`) `[TRIVIAL]`
- - 📝 Treat non-login redirects after form POST as successful authentication without waiting for redirect target.
- - ƒ **ScreenshotService._submit_login_via_form_post** (`Function`) `[TRIVIAL]`
- - 📝 Fallback login path that submits credentials directly with csrf token.
- - ƒ **ScreenshotService._find_login_field_locator** (`Function`) `[TRIVIAL]`
- - 📝 Resolve login form input using semantic label text plus generic visible-input fallbacks.
- - ƒ **ScreenshotService._find_submit_locator** (`Function`) `[TRIVIAL]`
- - 📝 Resolve login submit button from main page or embedded auth frame.
- - ƒ **ScreenshotService._goto_resilient** (`Function`) `[TRIVIAL]`
- - 📝 Navigate without relying on networkidle for pages with long-polling or persistent requests.
- - ƒ **ScreenshotService.capture_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Captures a full-page screenshot of a dashboard using Playwright and CDP.
-- ℂ **LLMClient** (`Class`) `[TRIVIAL]`
- - 📝 Wrapper for LLM provider APIs.
- - ƒ **LLMClient.__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the LLMClient with provider settings.
- - ƒ **LLMClient._supports_json_response_format** (`Function`) `[TRIVIAL]`
- - 📝 Detect whether provider/model is likely compatible with response_format=json_object.
- - ƒ **LLMClient.get_json_completion** (`Function`) `[TRIVIAL]`
- - 📝 Helper to handle LLM calls with JSON mode and fallback parsing.
- - ƒ **LLMClient.test_runtime_connection** (`Function`) `[TRIVIAL]`
- - 📝 Validate provider credentials using the same chat completions transport as runtime analysis.
- - ƒ **LLMClient.analyze_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Sends dashboard data (screenshot + logs) to LLM for health analysis.
-- 📦 **service** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/plugins/llm_analysis/service.py
- - 🏗️ Layer: Unknown
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_find_first_visible_locator** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_iter_login_roots** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_extract_hidden_login_fields** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_extract_csrf_token** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_response_looks_like_login_page** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_redirect_looks_authenticated** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_submit_login_via_form_post** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_find_login_field_locator** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_find_submit_locator** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_goto_resilient** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **capture_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **switch_tabs** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_supports_json_response_format** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_should_retry** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_json_completion** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_runtime_connection** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **analyze_dashboard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.plugins.llm_analysis.__tests__.test_service** (`Module`)
- - 📝 Verify LLM analysis transport/provider failures do not masquerade as dashboard FAIL results.
- - ƒ **test_test_runtime_connection_uses_json_completion_transport** (`Function`) `[TRIVIAL]`
- - 📝 Provider self-test must exercise the same chat completion transport as runtime analysis.
- - ƒ **test_analyze_dashboard_provider_error_maps_to_unknown** (`Function`) `[TRIVIAL]`
- - 📝 Infrastructure/provider failures must produce UNKNOWN analysis status rather than FAIL.
- - ƒ **_fake_get_json_completion** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_raise_provider_error** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.src.plugins.llm_analysis.__tests__.test_client_headers** (`Module`)
- - 📝 Verify OpenRouter client initialization includes provider-specific headers.
- - ƒ **test_openrouter_client_includes_referer_and_title_headers** (`Function`) `[TRIVIAL]`
- - 📝 OpenRouter requests should carry site/app attribution headers for compatibility.
-- 📦 **backend.src.plugins.llm_analysis.__tests__.test_screenshot_service** (`Module`)
- - 📝 Protect dashboard screenshot navigation from brittle networkidle waits.
- - ƒ **test_iter_login_roots_includes_child_frames** (`Function`) `[TRIVIAL]`
- - 📝 Login discovery must search embedded auth frames, not only the main page.
- - ƒ **test_response_looks_like_login_page_detects_login_markup** (`Function`) `[TRIVIAL]`
- - 📝 Direct login fallback must reject responses that render the login screen again.
- - ƒ **test_find_first_visible_locator_skips_hidden_first_match** (`Function`) `[TRIVIAL]`
- - 📝 Locator helper must not reject a selector collection just because its first element is hidden.
- - ƒ **test_submit_login_via_form_post_uses_browser_context_request** (`Function`) `[TRIVIAL]`
- - 📝 Fallback login must submit hidden fields and credentials through the context request cookie jar.
- - ƒ **test_submit_login_via_form_post_accepts_authenticated_redirect** (`Function`) `[TRIVIAL]`
- - 📝 Fallback login must treat non-login 302 redirect as success without waiting for redirect target.
- - ƒ **test_submit_login_via_form_post_rejects_login_markup_response** (`Function`) `[TRIVIAL]`
- - 📝 Fallback login must fail when POST response still contains login form content.
- - ƒ **test_goto_resilient_falls_back_from_domcontentloaded_to_load** (`Function`) `[TRIVIAL]`
- - 📝 Pages with unstable primary wait must retry with fallback wait strategy.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **is_visible** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **count** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **nth** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_attribute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **input_value** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **count** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **nth** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **text** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **post** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **locator** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_attribute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **input_value** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **count** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **nth** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **text** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **post** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **locator** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_attribute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **input_value** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **count** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **nth** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **text** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **post** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **locator** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **goto** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **StoragePlugin** (`Module`) `[TRIVIAL]`
- - 📝 Provides core filesystem operations for managing backups and repositories.
- - 🏗️ Layer: App
- - 🔒 Invariant: All file operations must be restricted to the configured storage root.
- - 🔗 IMPLEMENTS -> `PluginBase`
- - 🔗 DEPENDS_ON -> `backend.src.models.storage`
- - ℂ **StoragePlugin** (`Class`) `[TRIVIAL]`
- - 📝 Implementation of the storage management plugin.
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Initializes the StoragePlugin and ensures required directories exist.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Returns the unique identifier for the storage plugin.
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Returns the human-readable name of the storage plugin.
- - ƒ **description** (`Function`) `[TRIVIAL]`
- - 📝 Returns a description of the storage plugin.
- - ƒ **version** (`Function`) `[TRIVIAL]`
- - 📝 Returns the version of the storage plugin.
- - ƒ **ui_route** (`Function`) `[TRIVIAL]`
- - 📝 Returns the frontend route for the storage plugin.
- - ƒ **get_schema** (`Function`) `[TRIVIAL]`
- - 📝 Returns the JSON schema for storage plugin parameters.
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Executes storage-related tasks with TaskContext support.
- - ƒ **get_storage_root** (`Function`) `[TRIVIAL]`
- - 📝 Resolves the absolute path to the storage root.
- - ƒ **resolve_path** (`Function`) `[TRIVIAL]`
- - 📝 Resolves a dynamic path pattern using provided variables.
- - ƒ **ensure_directories** (`Function`) `[TRIVIAL]`
- - 📝 Creates the storage root and category subdirectories if they don't exist.
- - ƒ **validate_path** (`Function`) `[TRIVIAL]`
- - 📝 Prevents path traversal attacks by ensuring the path is within the storage root.
- - ƒ **list_files** (`Function`) `[TRIVIAL]`
- - 📝 Lists all files and directories in a specific category and subpath.
- - ƒ **save_file** (`Function`) `[TRIVIAL]`
- - 📝 Saves an uploaded file to the specified category and optional subpath.
- - ƒ **delete_file** (`Function`) `[TRIVIAL]`
- - 📝 Deletes a file or directory from the specified category and path.
- - ƒ **get_file_path** (`Function`) `[TRIVIAL]`
- - 📝 Returns the absolute path of a file for download.
-- ℂ **GitLLMExtension** (`Class`) `[TRIVIAL]`
- - 📝 Provides LLM capabilities to the Git plugin.
- - ƒ **suggest_commit_message** (`Function`) `[TRIVIAL]`
- - 📝 Generates a suggested commit message based on a diff and history.
-- 📦 **llm_extension** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/src/plugins/git/llm_extension.py
- - 🏗️ Layer: Unknown
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **src.plugins.git** (`Package`) `[TRIVIAL]`
- - 📝 Git plugin extension package root.
-- 📦 **test_task_persistence** (`Module`)
- - 📝 Unit tests for TaskPersistenceService.
- - 🏗️ Layer: Test
- - ℂ **TestTaskPersistenceHelpers** (`Class`)
- - 📝 Test suite for TaskPersistenceService static helper methods.
- - ƒ **test_json_load_if_needed_none** (`Function`) `[TRIVIAL]`
- - 📝 Test _json_load_if_needed with None input.
- - ƒ **test_json_load_if_needed_dict** (`Function`) `[TRIVIAL]`
- - 📝 Test _json_load_if_needed with dict input.
- - ƒ **test_json_load_if_needed_list** (`Function`) `[TRIVIAL]`
- - 📝 Test _json_load_if_needed with list input.
- - ƒ **test_json_load_if_needed_json_string** (`Function`) `[TRIVIAL]`
- - 📝 Test _json_load_if_needed with JSON string.
- - ƒ **test_json_load_if_needed_empty_string** (`Function`) `[TRIVIAL]`
- - 📝 Test _json_load_if_needed with empty/null strings.
- - ƒ **test_json_load_if_needed_plain_string** (`Function`) `[TRIVIAL]`
- - 📝 Test _json_load_if_needed with non-JSON string.
- - ƒ **test_json_load_if_needed_integer** (`Function`) `[TRIVIAL]`
- - 📝 Test _json_load_if_needed with integer.
- - ƒ **test_parse_datetime_none** (`Function`) `[TRIVIAL]`
- - 📝 Test _parse_datetime with None.
- - ƒ **test_parse_datetime_datetime_object** (`Function`) `[TRIVIAL]`
- - 📝 Test _parse_datetime with datetime object.
- - ƒ **test_parse_datetime_iso_string** (`Function`) `[TRIVIAL]`
- - 📝 Test _parse_datetime with ISO string.
- - ƒ **test_parse_datetime_invalid_string** (`Function`) `[TRIVIAL]`
- - 📝 Test _parse_datetime with invalid string.
- - ƒ **test_parse_datetime_integer** (`Function`) `[TRIVIAL]`
- - 📝 Test _parse_datetime with non-string, non-datetime.
- - ℂ **TestTaskPersistenceService** (`Class`)
- - 📝 Test suite for TaskPersistenceService CRUD operations.
- - ƒ **setup_class** (`Function`) `[TRIVIAL]`
- - 📝 Setup in-memory test database.
- - ƒ **teardown_class** (`Function`) `[TRIVIAL]`
- - 📝 Dispose of test database.
- - ƒ **setup_method** (`Function`) `[TRIVIAL]`
- - 📝 Clean task_records table before each test.
- - ƒ **test_persist_task_new** (`Function`) `[TRIVIAL]`
- - 📝 Test persisting a new task creates a record.
- - ƒ **test_persist_task_update** (`Function`) `[TRIVIAL]`
- - 📝 Test updating an existing task.
- - ƒ **test_persist_task_with_logs** (`Function`) `[TRIVIAL]`
- - 📝 Test persisting a task with log entries.
- - ƒ **test_persist_task_failed_extracts_error** (`Function`) `[TRIVIAL]`
- - 📝 Test that FAILED task extracts last error message.
- - ƒ **test_persist_tasks_batch** (`Function`) `[TRIVIAL]`
- - 📝 Test persisting multiple tasks.
- - ƒ **test_load_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Test loading tasks from database.
- - ƒ **test_load_tasks_with_status_filter** (`Function`) `[TRIVIAL]`
- - 📝 Test loading tasks filtered by status.
- - ƒ **test_load_tasks_with_limit** (`Function`) `[TRIVIAL]`
- - 📝 Test loading tasks with limit.
- - ƒ **test_delete_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Test deleting tasks by ID list.
- - ƒ **test_delete_tasks_empty_list** (`Function`) `[TRIVIAL]`
- - 📝 Test deleting with empty list (no-op).
- - ƒ **test_persist_task_with_datetime_in_params** (`Function`) `[TRIVIAL]`
- - 📝 Test json_serializable handles datetime in params.
- - ƒ **test_persist_task_resolves_environment_slug_to_existing_id** (`Function`) `[TRIVIAL]`
- - 📝 Ensure slug-like environment token resolves to environments.id before persisting task.
- - ƒ **_patched** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- ƒ **test_environment_model** (`Function`) `[TRIVIAL]`
- - 📝 Tests that Environment model correctly stores values.
-- 📦 **test_task_manager** (`Module`)
- - 📝 Unit tests for TaskManager lifecycle, CRUD, log buffering, and filtering.
- - 🏗️ Layer: Core
- - 🔒 Invariant: TaskManager state changes are deterministic and testable with mocked dependencies.
- - ƒ **_make_manager** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_cleanup_manager** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_init_creates_empty_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_init_loads_persisted_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_init_starts_flusher_thread** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_task_returns_none_for_missing** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_task_returns_existing** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_all_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_tasks_with_status_filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_tasks_with_plugin_filter** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_tasks_with_pagination** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_tasks_completed_only** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_task_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_task_unknown_plugin_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_task_invalid_params_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_add_log_appends_to_task_and_buffer** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_add_log_skips_nonexistent_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_flush_logs_writes_to_persistence** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_flush_task_logs_writes_single_task** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_flush_logs_requeues_on_failure** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_clear_all_non_active** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_clear_by_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_clear_preserves_awaiting_input** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_subscribe_creates_queue** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_unsubscribe_removes_queue** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_multiple_subscribers** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_await_input_sets_status** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_await_input_not_running_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_await_input_nonexistent_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_resume_with_password** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_resume_not_awaiting_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_resume_empty_passwords_raises** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.test_dashboards_api** (`Module`)
- - 📝 Comprehensive contract-driven tests for Dashboard Hub API
- - 🏗️ Layer: Domain (Tests)
- - ƒ **mock_deps** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_with_search** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_empty** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_superset_failure** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_invalid_pagination** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_database_mappings_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_database_mappings_env_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboard_detail_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboard_detail_env_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboard_tasks_history_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboard_tasks_history_sorting** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboard_thumbnail_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboard_thumbnail_env_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboard_thumbnail_202** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_migrate_dashboards_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_migrate_dashboards_pre_checks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_migrate_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_backup_dashboards_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_backup_dashboards_pre_checks** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_backup_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_backup_dashboards_with_schedule** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_task_matches_dashboard_logic** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_dashboards_api** (`Test`) `[TRIVIAL]`
- - 📝 Verify GET /api/dashboards contract compliance
-- 📦 **test_datasets_api** (`Test`) `[TRIVIAL]`
- - 📝 Verify GET /api/datasets contract compliance
-- 📦 **test_pagination_boundaries** (`Test`) `[TRIVIAL]`
- - 📝 Verify pagination validation for GET endpoints
-- 📦 **test_resource_hubs** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/tests/test_resource_hubs.py
- - 🏗️ Layer: Unknown
- - ƒ **mock_deps** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_search** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_datasets_success** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_datasets_not_found** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_datasets_search** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_datasets_service_failure** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_pagination_zero_page** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_dashboards_pagination_oversize** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_datasets_pagination_zero_page** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_datasets_pagination_oversize** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_task_logger** (`Module`)
- - 📝 Unit tests for TaskLogger and TaskContext.
- - 🏗️ Layer: Test
- - ℂ **TestTaskLogger** (`Class`)
- - 📝 Test suite for TaskLogger.
- - ƒ **setup_method** (`Function`) `[TRIVIAL]`
- - 📝 Setup for each test method.
- - ƒ **test_init** (`Function`) `[TRIVIAL]`
- - 📝 Test TaskLogger initialization.
- - ƒ **test_with_source** (`Function`) `[TRIVIAL]`
- - 📝 Test creating a sub-logger with different source.
- - ƒ **test_debug** (`Function`) `[TRIVIAL]`
- - 📝 Test debug log level.
- - ƒ **test_info** (`Function`) `[TRIVIAL]`
- - 📝 Test info log level.
- - ƒ **test_warning** (`Function`) `[TRIVIAL]`
- - 📝 Test warning log level.
- - ƒ **test_error** (`Function`) `[TRIVIAL]`
- - 📝 Test error log level.
- - ƒ **test_error_with_metadata** (`Function`) `[TRIVIAL]`
- - 📝 Test error logging with metadata.
- - ƒ **test_progress** (`Function`) `[TRIVIAL]`
- - 📝 Test progress logging.
- - ƒ **test_progress_clamping** (`Function`) `[TRIVIAL]`
- - 📝 Test progress value clamping (0-100).
- - ƒ **test_source_override** (`Function`) `[TRIVIAL]`
- - 📝 Test overriding the default source.
- - ƒ **test_sub_logger_source_independence** (`Function`) `[TRIVIAL]`
- - 📝 Test sub-logger independence from parent.
- - ℂ **TestTaskContext** (`Class`)
- - 📝 Test suite for TaskContext.
- - ƒ **setup_method** (`Function`) `[TRIVIAL]`
- - 📝 Setup for each test method.
- - ƒ **test_init** (`Function`) `[TRIVIAL]`
- - 📝 Test TaskContext initialization.
- - ƒ **test_task_id_property** (`Function`) `[TRIVIAL]`
- - 📝 Test task_id property.
- - ƒ **test_logger_property** (`Function`) `[TRIVIAL]`
- - 📝 Test logger property.
- - ƒ **test_params_property** (`Function`) `[TRIVIAL]`
- - 📝 Test params property.
- - ƒ **test_get_param** (`Function`) `[TRIVIAL]`
- - 📝 Test getting a specific parameter.
- - ƒ **test_create_sub_context** (`Function`) `[TRIVIAL]`
- - 📝 Test creating a sub-context with different source.
- - ƒ **test_context_logger_delegates_to_task_logger** (`Function`) `[TRIVIAL]`
- - 📝 Test context logger delegates to TaskLogger.
- - ƒ **test_sub_context_with_source** (`Function`) `[TRIVIAL]`
- - 📝 Test sub-context logger uses new source.
- - ƒ **test_multiple_sub_contexts** (`Function`) `[TRIVIAL]`
- - 📝 Test creating multiple sub-contexts.
-- 📦 **test_smoke_plugins** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/tests/test_smoke_plugins.py
- - 🏗️ Layer: Unknown
- - ƒ **test_plugins_load_successfully** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_task_manager_initializes_with_plugins** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **tests.test_logger** (`Module`)
- - 📝 Unit tests for the custom logger formatters and configuration context manager.
- - 🏗️ Layer: Logging (Tests)
- - 🔒 Invariant: All required log statements must correctly check the threshold.
- - ƒ **test_belief_scope_logs_entry_action_exit_at_debug** (`Function`) `[TRIVIAL]`
- - 📝 Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs at DEBUG level.
- - ƒ **test_belief_scope_error_handling** (`Function`) `[TRIVIAL]`
- - 📝 Test that belief_scope logs Coherence:Failed on exception.
- - ƒ **test_belief_scope_success_coherence** (`Function`) `[TRIVIAL]`
- - 📝 Test that belief_scope logs Coherence:OK on success.
- - ƒ **test_belief_scope_not_visible_at_info** (`Function`) `[TRIVIAL]`
- - 📝 Test that belief_scope Entry/Exit/Coherence logs are NOT visible at INFO level.
- - ƒ **test_task_log_level_default** (`Function`) `[TRIVIAL]`
- - 📝 Test that default task log level is INFO.
- - ƒ **test_should_log_task_level** (`Function`) `[TRIVIAL]`
- - 📝 Test that should_log_task_level correctly filters log levels.
- - ƒ **test_configure_logger_task_log_level** (`Function`) `[TRIVIAL]`
- - 📝 Test that configure_logger updates task_log_level.
- - ƒ **test_enable_belief_state_flag** (`Function`) `[TRIVIAL]`
- - 📝 Test that enable_belief_state flag controls belief_scope logging.
-- 📦 **test_auth** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/tests/test_auth.py
- - 🏗️ Layer: Unknown
- - ƒ **db_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **auth_service** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **auth_repo** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_authenticate_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_role_permission_association** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_user_role_association** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_ad_group_mapping** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_admin_creates_user_with_optional_email** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_create_admin_is_idempotent_for_existing_user** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_ensure_encryption_key_generates_backend_env_file** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_ensure_encryption_key_reuses_existing_env_file_value** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_ensure_encryption_key_prefers_process_environment** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **verify_fernet_key** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_log_persistence** (`Module`)
- - 📝 Unit tests for TaskLogPersistenceService.
- - 🏗️ Layer: Test
- - ℂ **TestLogPersistence** (`Class`)
- - 📝 Test suite for TaskLogPersistenceService.
- - ƒ **setup_class** (`Function`) `[TRIVIAL]`
- - 📝 Setup test database and service instance.
- - ƒ **teardown_class** (`Function`) `[TRIVIAL]`
- - 📝 Clean up test database.
- - ƒ **setup_method** (`Function`) `[TRIVIAL]`
- - 📝 Setup for each test method — clean task_logs table.
- - ƒ **test_add_logs_single** (`Function`) `[TRIVIAL]`
- - 📝 Test adding a single log entry.
- - ƒ **test_add_logs_batch** (`Function`) `[TRIVIAL]`
- - 📝 Test adding multiple log entries in batch.
- - ƒ **test_add_logs_empty** (`Function`) `[TRIVIAL]`
- - 📝 Test adding empty log list (should be no-op).
- - ƒ **test_get_logs_by_task_id** (`Function`) `[TRIVIAL]`
- - 📝 Test retrieving logs by task ID.
- - ƒ **test_get_logs_with_filters** (`Function`) `[TRIVIAL]`
- - 📝 Test retrieving logs with level and source filters.
- - ƒ **test_get_logs_with_pagination** (`Function`) `[TRIVIAL]`
- - 📝 Test retrieving logs with pagination.
- - ƒ **test_get_logs_with_search** (`Function`) `[TRIVIAL]`
- - 📝 Test retrieving logs with search query.
- - ƒ **test_get_log_stats** (`Function`) `[TRIVIAL]`
- - 📝 Test retrieving log statistics.
- - ƒ **test_get_sources** (`Function`) `[TRIVIAL]`
- - 📝 Test retrieving unique log sources.
- - ƒ **test_delete_logs_for_task** (`Function`) `[TRIVIAL]`
- - 📝 Test deleting logs by task ID.
- - ƒ **test_delete_logs_for_tasks** (`Function`) `[TRIVIAL]`
- - 📝 Test deleting logs for multiple tasks.
- - ƒ **test_delete_logs_for_tasks_empty** (`Function`) `[TRIVIAL]`
- - 📝 Test deleting with empty list (no-op).
- - ƒ **_patched** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_clean_release_cli** (`Module`)
- - 📝 Smoke tests for the redesigned clean release CLI.
- - 🏗️ Layer: Domain
- - ƒ **test_cli_candidate_register_scaffold** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_cli_manifest_build_scaffold** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_cli_compliance_run_scaffold** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_cli_release_gate_commands_scaffold** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.scripts.test_clean_release_tui** (`Module`)
- - 📝 Unit tests for the interactive curses TUI of the clean release process.
- - 🏗️ Layer: Scripts
- - 🔒 Invariant: TUI initializes, handles hotkeys (F5, F10) and safely falls back without TTY.
- - ƒ **mock_stdscr** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_headless_fallback** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_initial_render** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_run_checks_f5** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **side_effect** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_exit_f10** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_clear_history_f7** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_real_mode_bootstrap_imports_artifacts_catalog** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_clean_release_tui_v2** (`Module`)
- - 📝 Smoke tests for thin-client TUI action dispatch and blocked transition behavior.
- - 🏗️ Layer: Domain
- - ƒ **_build_mock_stdscr** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_f5_dispatches_run_action** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_f5_run_smoke_reports_blocked_state** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_set_blocked_state** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_non_tty_refuses_startup** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_tui_f8_blocked_without_facade_binding** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.core.test_git_service_gitea_pr** (`Module`)
- - 📝 Validate Gitea PR creation fallback behavior when configured server URL is stale.
- - 🏗️ Layer: Domain
- - 🔒 Invariant: A 404 from primary Gitea URL retries once against remote-url host when different.
- - ƒ **test_derive_server_url_from_remote_strips_credentials** (`Function`) `[TRIVIAL]`
- - 📝 Ensure helper returns host base URL and removes embedded credentials.
- - ƒ **test_create_gitea_pull_request_retries_with_remote_host_on_404** (`Function`) `[TRIVIAL]`
- - 📝 Verify create_gitea_pull_request retries with remote URL host after primary 404.
- - ƒ **test_create_gitea_pull_request_returns_branch_error_when_target_missing** (`Function`) `[TRIVIAL]`
- - 📝 Ensure Gitea 404 on PR creation is mapped to actionable target-branch validation error.
- - ƒ **fake_gitea_request** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **fake_gitea_request** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.core.test_mapping_service** (`Module`)
- - 📝 Unit tests for the IdMappingService matching UUIDs to integer IDs.
- - 🏗️ Layer: Domain
- - ƒ **db_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_all_resources** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_sync_environment_upserts_correctly** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_remote_id_returns_integer** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_remote_ids_batch_returns_dict** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_sync_environment_updates_existing_mapping** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_sync_environment_skips_resources_without_uuid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_sync_environment_handles_api_error_gracefully** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_all_resources** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_remote_id_returns_none_for_missing** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_get_remote_ids_batch_returns_empty_for_empty_input** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_mapping_service_alignment_with_test_data** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_sync_environment_requires_existing_env** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_sync_environment_deletes_stale_mappings** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **test_defensive_guards** (`Module`) `[TRIVIAL]`
- - 📝 Auto-generated module for backend/tests/core/test_defensive_guards.py
- - 🏗️ Layer: Unknown
- - ƒ **test_git_service_get_repo_path_guard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_git_service_get_repo_path_recreates_base_dir** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_superset_client_import_dashboard_guard** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_git_service_init_repo_reclones_when_path_is_not_a_git_repo** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_git_service_ensure_gitflow_branches_creates_and_pushes_missing_defaults** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **fetch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **push** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **create_head** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **remote** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_git_service_configure_identity_updates_repo_local_config** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.core.test_migration_engine** (`Module`)
- - 📝 Unit tests for MigrationEngine's cross-filter patching algorithms.
- - 🏗️ Layer: Domain
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_remote_ids_batch** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_write_dashboard_yaml** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_patch_dashboard_metadata_replaces_chart_ids** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_patch_dashboard_metadata_replaces_dataset_ids** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_patch_dashboard_metadata_skips_when_no_metadata** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_patch_dashboard_metadata_handles_missing_targets** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_extract_chart_uuids_from_archive** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_transform_yaml_replaces_database_uuid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_transform_yaml_ignores_unmapped_uuid** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_transform_zip_end_to_end** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_transform_zip_invalid_path** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_transform_yaml_nonexistent_file** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.core.migration.test_dry_run_orchestrator** (`Module`)
- - 📝 Unit tests for MigrationDryRunService diff and risk computation contracts.
- - 🏗️ Layer: Domain
- - ƒ **_load_fixture** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_make_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_migration_dry_run_service_builds_diff_and_risk** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.core.migration.test_archive_parser** (`Module`)
- - 📝 Unit tests for MigrationArchiveParser ZIP extraction contract.
- - 🏗️ Layer: Domain
- - ƒ **test_extract_objects_from_zip_collects_all_types** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.services.clean_release.test_publication_service** (`Module`)
- - 📝 Define publication gate contracts over approved candidates and immutable publication records.
- - 🏗️ Layer: Tests
- - 🔒 Invariant: Publish requires approval; revoke requires existing publication; republish after revoke is allowed as a new record.
- - ƒ **_seed_candidate_with_passed_report** (`Function`) `[TRIVIAL]`
- - 📝 Seed candidate/report fixtures for publication gate scenarios.
- - ƒ **test_publish_without_approval_rejected** (`Function`) `[TRIVIAL]`
- - 📝 Ensure publish action is blocked until candidate is approved.
- - ƒ **test_revoke_unknown_publication_rejected** (`Function`) `[TRIVIAL]`
- - 📝 Ensure revocation is rejected for unknown publication id.
- - ƒ **test_republish_after_revoke_creates_new_active_record** (`Function`) `[TRIVIAL]`
- - 📝 Ensure republish after revoke is allowed and creates a new ACTIVE record.
-- 📦 **backend.tests.services.clean_release.test_compliance_task_integration** (`Module`)
- - 📝 Verify clean release compliance runs execute through TaskManager lifecycle with observable success/failure outcomes.
- - 🏗️ Layer: Tests
- - 🔒 Invariant: Compliance execution triggered as task produces terminal task status and persists run evidence.
- - ƒ **_seed_repository** (`Function`) `[TRIVIAL]`
- - 📝 Prepare deterministic candidate/policy/registry/manifest fixtures for task integration tests.
- - ℂ **CleanReleaseCompliancePlugin** (`Class`) `[TRIVIAL]`
- - 📝 TaskManager plugin shim that executes clean release compliance orchestration.
- - ℂ **_PluginLoaderStub** (`Class`) `[TRIVIAL]`
- - 📝 Provide minimal plugin loader contract used by TaskManager in integration tests.
- - ƒ **_make_task_manager** (`Function`) `[TRIVIAL]`
- - 📝 Build TaskManager with mocked persistence services for isolated integration tests.
- - ƒ **_wait_for_terminal_task** (`Function`) `[TRIVIAL]`
- - 📝 Poll task registry until target task reaches terminal status.
- - ƒ **test_compliance_run_executes_as_task_manager_task** (`Function`) `[TRIVIAL]`
- - 📝 Verify successful compliance execution is observable as TaskManager SUCCESS task.
- - ƒ **test_compliance_run_missing_manifest_marks_task_failed** (`Function`) `[TRIVIAL]`
- - 📝 Verify missing manifest startup failure is surfaced as TaskManager FAILED task.
- - ƒ **id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **name** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **execute** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **__init__** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **has_plugin** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **get_plugin** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.services.clean_release.test_demo_mode_isolation** (`Module`)
- - 📝 Verify demo and real mode namespace isolation contracts before TUI integration.
- - 🏗️ Layer: Tests
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.demo_data_service`
- - ƒ **test_resolve_namespace_separates_demo_and_real** (`Function`) `[TRIVIAL]`
- - 📝 Ensure namespace resolver returns deterministic and distinct namespaces.
- - ƒ **test_build_namespaced_id_prevents_cross_mode_collisions** (`Function`) `[TRIVIAL]`
- - 📝 Ensure ID generation prevents demo/real collisions for identical logical IDs.
- - ƒ **test_create_isolated_repository_keeps_mode_data_separate** (`Function`) `[TRIVIAL]`
- - 📝 Verify demo and real repositories do not leak state across mode boundaries.
-- 📦 **backend.tests.services.clean_release.test_report_audit_immutability** (`Module`)
- - 📝 Validate report snapshot immutability expectations and append-only audit hook behavior for US2.
- - 🏗️ Layer: Tests
- - 🔒 Invariant: Built reports are immutable snapshots; audit hooks produce append-only event traces.
- - ƒ **_terminal_run** (`Function`) `[TRIVIAL]`
- - 📝 Build deterministic terminal run fixture for report snapshot tests.
- - ƒ **test_report_builder_sets_immutable_snapshot_flag** (`Function`) `[TRIVIAL]`
- - 📝 Ensure generated report payload is marked immutable and persisted as snapshot.
- - ƒ **test_repository_rejects_report_overwrite_for_same_report_id** (`Function`) `[TRIVIAL]`
- - 📝 Define immutability contract that report snapshots cannot be overwritten by same identifier.
- - ƒ **test_audit_hooks_emit_append_only_event_stream** (`Function`) `[TRIVIAL]`
- - 📝 Verify audit hooks emit one event per action call and preserve call order.
-- 📦 **test_candidate_manifest_services** (`Module`)
- - 📝 Test lifecycle and manifest versioning for release candidates.
- - 🏗️ Layer: Tests
- - ƒ **db_session** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_candidate_lifecycle_transitions** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_manifest_versioning_and_immutability** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **_valid_artifacts** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_register_candidate_rejects_duplicate_candidate_id** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_register_candidate_rejects_malformed_artifact_input** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_register_candidate_rejects_empty_artifact_set** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_manifest_service_rebuild_creates_new_version** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_manifest_service_existing_manifest_cannot_be_mutated** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
- - ƒ **test_manifest_service_rejects_missing_candidate** (`Function`) `[TRIVIAL]`
- - 📝 Auto-detected function (orphan)
-- 📦 **backend.tests.services.clean_release.test_policy_resolution_service** (`Module`)
- - 📝 Verify trusted policy snapshot resolution contract and error guards.
- - 🏗️ Layer: Tests
- - 🔒 Invariant: Resolution uses only ConfigManager active IDs and rejects runtime override attempts.
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.policy_resolution_service`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
- - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.exceptions`
- - ƒ **_config_manager** (`Function`) `[TRIVIAL]`
- - 📝 Build deterministic ConfigManager-like stub for tests.
- - ƒ **test_resolve_trusted_policy_snapshots_missing_profile** (`Function`) `[TRIVIAL]`
- - 📝 Ensure resolution fails when trusted profile is not configured.
- - ƒ **test_resolve_trusted_policy_snapshots_missing_registry** (`Function`) `[TRIVIAL]`
- - 📝 Ensure resolution fails when trusted registry is not configured.
- - ƒ **test_resolve_trusted_policy_snapshots_rejects_override_attempt** (`Function`) `[TRIVIAL]`
- - 📝 Ensure runtime override attempt is rejected even if snapshots exist.
-- 📦 **backend.tests.services.clean_release.test_approval_service** (`Module`)
- - 📝 Define approval gate contracts for approve/reject operations over immutable compliance evidence.
- - 🏗️ Layer: Tests
- - 🔒 Invariant: Approval is allowed only for PASSED report bound to candidate; duplicate approve and foreign report must be rejected.
- - ƒ **_seed_candidate_with_report** (`Function`) `[TRIVIAL]`
- - 📝 Seed candidate and report fixtures for approval gate tests.
- - ƒ **test_approve_rejects_blocked_report** (`Function`) `[TRIVIAL]`
- - 📝 Ensure approve is rejected when latest report final status is not PASSED.
- - ƒ **test_approve_rejects_foreign_report** (`Function`) `[TRIVIAL]`
- - 📝 Ensure approve is rejected when report belongs to another candidate.
- - ƒ **test_approve_rejects_duplicate_approve** (`Function`) `[TRIVIAL]`
- - 📝 Ensure repeated approve decision for same candidate is blocked.
- - ƒ **test_reject_persists_decision_without_promoting_candidate_state** (`Function`) `[TRIVIAL]`
- - 📝 Ensure reject decision is immutable and does not promote candidate to APPROVED.
- - ƒ **test_reject_then_publish_is_blocked** (`Function`) `[TRIVIAL]`
- - 📝 Ensure latest REJECTED decision blocks publication gate.
-- 📦 **backend.tests.services.clean_release.test_compliance_execution_service** (`Module`)
- - 📝 Validate stage pipeline and run finalization contracts for compliance execution.
- - 🏗️ Layer: Tests
- - 🔒 Invariant: Missing manifest prevents run startup; failed execution cannot finalize as PASSED.
- - ƒ **_seed_with_candidate_policy_registry** (`Function`) `[TRIVIAL]`
- - 📝 Build deterministic repository state for run startup tests.
- - ƒ **test_run_without_manifest_rejected** (`Function`) `[TRIVIAL]`
- - 📝 Ensure compliance run cannot start when manifest is unresolved.
- - ƒ **test_task_crash_mid_run_marks_failed** (`Function`) `[TRIVIAL]`
- - 📝 Ensure execution crash conditions force FAILED run status.
- - ƒ **test_blocked_run_finalization_blocks_report_builder** (`Function`) `[TRIVIAL]`
- - 📝 Ensure blocked runs require blocking violations before report creation.
diff --git a/.ai/PROJECT_MAP.md b/.ai/PROJECT_MAP.md
new file mode 100644
index 00000000..993b20e5
--- /dev/null
+++ b/.ai/PROJECT_MAP.md
@@ -0,0 +1,16580 @@
+# Project Semantic Map
+
+> Compressed view for AI Context. Generated automatically.
+
+- 📦 **MergeSpec** (`Module`) `[TRIVIAL]`
+ - 📝 Utility to merge specs
+ - 📦 **merge_spec** (`Module`) `[TRIVIAL]`
+ - 📝 Utility script for merge_spec
+ - ƒ **merge_specs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **generate_semantic_map** (`Module`)
+ - 📝 Scans the codebase to generate a Semantic Map, Module Map, and Compliance Report based on the System Standard.
+ - 🏗️ Layer: DevOps/Tooling
+ - 🔒 Invariant: All DEF anchors must have matching closing anchors; TIER determines validation strictness.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Mock init for self-containment.
+ - ƒ **__enter__** (`Function`) `[TRIVIAL]`
+ - 📝 Mock enter.
+ - ƒ **__exit__** (`Function`) `[TRIVIAL]`
+ - 📝 Mock exit.
+ - ℂ **Tier** (`Class`) `[TRIVIAL]`
+ - 📝 Legacy tier buckets retained for backward-compatible reporting.
+ - ℂ **Complexity** (`Class`) `[TRIVIAL]`
+ - 📝 Adaptive semantic complexity scale used for validation strictness.
+ - ℂ **Severity** (`Class`) `[TRIVIAL]`
+ - 📝 Severity levels for compliance issues.
+ - ℂ **ComplianceIssue** (`Class`) `[TRIVIAL]`
+ - 📝 Represents a single compliance issue with severity.
+ - ℂ **SemanticEntity** (`Class`) `[CRITICAL]`
+ - 📝 Represents a code entity (Module, Function, Component) found during parsing.
+ - 🔒 Invariant: start_line is always set; end_line is set upon closure; complexity defaults to 1 unless explicitly raised.
+ - ƒ **__init__** (`Function`)
+ - 📝 Initializes a new SemanticEntity instance.
+ - ƒ **has_explicit_complexity** (`Function`) `[TRIVIAL]`
+ - 📝 Returns whether the entity explicitly declares complexity metadata.
+ - ƒ **get_complexity** (`Function`) `[TRIVIAL]`
+ - 📝 Returns effective complexity with backward compatibility for legacy tiers.
+ - ƒ **to_dict** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **collect_recursive** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **normalize-bun-binaries** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/nix/scripts/normalize-bun-binaries.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **collectPackages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readManifest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **linkBinary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **exists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeBinName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **canonicalize-node-modules** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/nix/scripts/canonicalize-node-modules.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseEntry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **sync-zed** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/sync-zed.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **duplicate-pr** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/duplicate-pr.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **changelog** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/changelog.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getLatestRelease** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCommits** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filterRevertedCommits** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **summarizeCommit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateChangelog** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getContributors** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildNotes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **stats** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/stats.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sendToPostHog** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchNpmDownloads** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchReleases** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **calculate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **beta** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/beta.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **commentOnPR** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **conflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **list-versions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/list-versions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **analyze** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/analyze.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseArgs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **merge** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/merge.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseArgs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAuthor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createBackupBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **config** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/utils/config.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **loadConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **logger** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/utils/logger.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setVerbose** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **log** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **debug** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **info** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **warn** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **error** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **success** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **header** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **step** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **divider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **git** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/utils/git.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getCurrentBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **branchExists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remoteBranchExists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getRemotes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasUpstreamRemote** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchUpstream** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkout** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deleteBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **backupAndDeleteBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **push** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pull** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **merge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getConflictedFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasUncommittedChanges** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stageAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stageFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCommitMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCommitHash** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTagsForCommit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAllTags** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUpstreamTags** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **abortMerge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkoutOurs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkoutTheirs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanDirectories** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **oursHasKilocodeChanges** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ensureRerere** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trainRerere** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getRerereResolved** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **version** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/utils/version.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseVersion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **compareVersions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getLatestUpstreamVersion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getVersionForCommit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAvailableUpstreamVersions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCurrentKiloVersion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **report** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/utils/report.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isI18nFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isTauriFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isScriptFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isExtensionFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isWebFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldTakeTheirsTransform** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **classifyFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldSkipFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getRecommendation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **analyzeConflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateMarkdownReport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **saveReport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-imports** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/codemods/transform-imports.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getTransformedModule** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformImports** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllImports** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-strings** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/codemods/transform-strings.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **transformStrings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllStrings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-package-json** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/transform-package-json.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **extractVersion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseSemver** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **compareVersions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mergeWithNewestVersions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isPackageJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformDependencies** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformPackageJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformConflictedPackageJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getKiloPackageJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllPackageJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-i18n** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/transform-i18n.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **shouldPreserveLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformI18nContent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformI18nFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isI18nFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllI18n** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformConflictedI18n** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **skip-files** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/skip-files.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **shouldSkip** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUpstreamFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUnmergedFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fileExistsInRef** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **skipFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **skipSpecificFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **keep-ours** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/keep-ours.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **shouldKeepOurs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **keepOursFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetToOurs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lock-files** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/lock-files.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isLockFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveLockFileConflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **regenerateLockFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-scripts** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/transform-scripts.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isScriptFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyScriptTransforms** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformScriptFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformConflictedScripts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllScripts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-take-theirs** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/transform-take-theirs.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **matchesPattern** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyBrandingTransforms** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformTakeTheirs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformConflictedTakeTheirs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldTakeTheirs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllTakeTheirs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-extensions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/transform-extensions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isExtensionFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getExtension** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyExtensionTransforms** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformExtensionFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformConflictedExtensions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllExtensions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **package-names** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/package-names.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **transformFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **preserve-versions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/preserve-versions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getCurrentVersion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **preserveVersion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **preserveAllVersions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-tauri** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/transform-tauri.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isTauriFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getExtension** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyTauriTransforms** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformTauriFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformConflictedTauri** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllTauri** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform-web** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/script/upstream/transforms/transform-web.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isWebFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyWebTransforms** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformWebFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformConflictedWeb** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformAllWeb** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **esbuild** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/sdks/vscode/esbuild.js
+ - 🏗️ Layer: Unknown
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **extension** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/sdks/vscode/src/extension.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **deactivate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **activate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openTerminal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **appendPrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getActiveFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-debug** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/provider-debug.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createKiloDebug** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/provider.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createKilo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **loader** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/loader.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **kiloCustomLoader** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkAuthentication** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **headers** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/headers.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getFeatureHeader** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getEditorNameHeader** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildKiloHeaders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **cloud-sessions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/cloud-sessions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **exportUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchCloudSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchCloudSessionForImport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **importSessionToDb** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **device-auth** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/device-auth.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **initiateDeviceAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pollDeviceAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authenticateWithDeviceAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **token** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/token.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getKiloUrlFromToken** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isValidKilocodeToken** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getApiKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **polling** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/polling.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **poll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatTimeRemaining** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **device-auth-tui** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/device-auth-tui.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **initiateDeviceAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pollDeviceAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authenticateWithDeviceAuthTUI** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **legacy-migration** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/legacy-migration.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **extractKiloAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateLegacyKiloAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tui.d** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/types/tui.d.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useCommandDialog** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useSync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useDialog** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useToast** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useKeyboard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **context** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/tui/context.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **initializeTUIDependencies** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTUIDependencies** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **areTUIDependenciesInitialized** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **helpers** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/tui/helpers.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **formatProfileInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getOrganizationOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDefaultOrganizationSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **routes** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/server/routes.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createKiloRoutes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **models** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/api/models.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseApiPrice** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchKiloModels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformToModelDevFormat** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractFamily** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mapModalities** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **notifications** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/api/notifications.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fetchKilocodeNotifications** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **profile** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-gateway/src/api/profile.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fetchProfile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchBalance** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchDefaultModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchProfileWithBalance** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **promptOrganizationSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **e2e-local** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/script/e2e-local.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **freePort** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForHealth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **actions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/actions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **defocus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openPalette** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closeDialog** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isSidebarClosed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleSidebar** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openSidebar** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closeSidebar** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seedProjects** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createTestProject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanupTestProject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **slugFromUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitSlug** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sessionIDFromUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hoverSessionItem** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openSessionMoreMenu** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clickMenuItem** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **confirmDialog** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openSharePopover** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clickPopoverButton** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clickListItem** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitSessionIdle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanupSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **withSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seedSessionQuestion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seedSessionPermission** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seedSessionTask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seedSessionTodos** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearSessionDockSeed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openStatusPopover** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openProjectMenu** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setWorkspacesEnabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openWorkspaceMenu** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **fixtures** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/fixtures.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **seedStorage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createSdk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getWorktree** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dirSlug** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dirPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sessionPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **workspacePersistKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-undo-redo.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/session/session-undo-redo.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **seedConversation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/session/session.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **seedMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-composer-dock.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/session/session-composer-dock.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withDockSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **withDockSeed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearPermissionDock** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setAutoAccept** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **withMockPermission** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **terminal-tabs.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/terminal/terminal-tabs.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **open** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **store** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **prompt-history.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/prompt/prompt-history.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **edge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **wait** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **reply** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shell** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **context.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/prompt/context.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **contextButton** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seedContextSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **prompt-slash-share.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/prompt/prompt-slash-share.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **seed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **workspaces.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/projects/workspaces.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setupWorkspaceTest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **projects-switch.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/projects/projects-switch.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **workspaces** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **workspace-new-session.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/e2e/projects/workspace-new-session.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **waitWorkspaceReady** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createWorkspace** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openWorkspaceNewSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createSessionFromWorkspace** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sessionDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/agent.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **agentColor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server-health** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/server-health.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **timeoutSignal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **wait** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **retryable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkServerHealth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **same** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/same.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **same** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **comment-note** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/comment-note.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **selection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createCommentMetadata** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readCommentMetadata** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatCommentNote** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseCommentNote** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **worktree** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/worktree.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **deferred** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **prompt** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/prompt.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **selectionFromFileUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **textPartValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractPromptFromParts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **time** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/time.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getRelativeTime** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server-health.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/server-health.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **abortFromInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **base64** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/base64.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **decode64** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **id** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/id.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **schema** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ascending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **descending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateID** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **bytesToHex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **randomBase62** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getRandomBytes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **sound** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/sound.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **soundSrc** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **playSound** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server-errors** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/server-errors.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **tr** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatServerError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isConfigInvalidErrorLike** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isProviderModelNotFoundErrorLike** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseReadableConfigInvalidError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseReadableProviderModelNotFoundError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **terminal-writer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/terminal-writer.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **terminalWriter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/server.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createSdkForServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **scoped-cache** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/scoped-cache.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createScopedCache** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **speech** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/speech.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createSpeechRecognition** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server-errors.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/server-errors.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fill** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useLanguageMock** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **dom** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/dom.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getCharacterOffsetInLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getNodeOffsetInLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSelectionInContainer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **uuid** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/uuid.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **uuid** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **persist** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/persist.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **cacheDelete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cachePrune** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cacheSet** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cacheGet** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fallbackDisabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fallbackSet** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **quota** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **evict** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **write** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **snapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isRecord** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **merge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **workspaceStorage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **localStorageWithPrefix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **localStorageDirect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removePersisted** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **persisted** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **aim** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/utils/aim.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createAim** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **serialize.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/addons/serialize.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createTerminal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeAndWait** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **serialize** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/addons/serialize.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **constrain** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **equalFg** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **equalBg** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **equalFlags** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-composer-state** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/pages/session/composer/session-composer-state.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createSessionComposerBlocked** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createSessionComposerState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-request-tree** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/pages/session/composer/session-request-tree.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sessionTreeRequest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sessionPermissionRequest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sessionQuestionRequest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **helpers** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/pages/layout/helpers.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sortSessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasProjectPermissions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDraggableId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **use-providers** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/hooks/use-providers.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useProviders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **titlebar-history.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/titlebar-history.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **history** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **titlebar-history** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/titlebar-history.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **applyPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pushPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trimHistory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **backPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **forwardPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-context-format** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/session/session-context-format.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createSessionContextFormatter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-context-breakdown** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/session/session-context-breakdown.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **estimateSessionContextBreakdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-context-metrics** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/session/session-context-metrics.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getSessionContextMetrics** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **build-request-parts** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/build-request-parts.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **buildRequestParts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **editor-dom** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/editor-dom.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createTextFragment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getNodeLength** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTextLength** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCursorPosition** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setCursorPosition** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setRangeEdge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **attachments** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/attachments.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **largePaste** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createPromptAttachments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **submit** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/submit.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createPromptSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **placeholder** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/placeholder.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **promptPlaceholder** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **history** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/history.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **canNavigateHistoryAtCursor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clonePromptParts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cloneSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clonePromptHistoryComments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizePromptHistoryEntry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **promptLength** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **prependHistoryEntry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isCommentEqual** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isPromptEqual** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **navigatePromptHistory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **permission-auto-respond** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/permission-auto-respond.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **acceptKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **directoryAcceptKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **accepted** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isDirectoryAutoAccepting** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sessionLineage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **autoRespondsPermission** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **layout-scroll** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/layout-scroll.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createScrollPersistence** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clone** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scroll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **schedule** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setScroll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **flush** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **flushAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **drop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dispose** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **notification-index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/notification-index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **buildNotificationIndex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **comments.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/comments.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **line** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **model-variant** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/model-variant.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getConfiguredAgentVariant** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveModelVariant** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cycleModelVariant** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **queue** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/queue.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createRefreshQueue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **drain** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **eviction** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/eviction.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **pickDirectoriesToEvict** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **canDisposeDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **bootstrap** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/bootstrap.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **bootstrapGlobal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **groupBySession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **bootstrapDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **child-store** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/child-store.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createChildStoreManager** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **disposeDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runEviction** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ensureChild** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **child** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **projectMeta** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **projectIcon** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-trim** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/session-trim.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sessionUpdatedAt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **compareSessionRecent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **takeRecentSessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trimSessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **event-reducer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/event-reducer.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **applyGlobalEvent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanupSessionCaches** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanupDroppedSessionCaches** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyDirectoryEvent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-cache** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/session-cache.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **dropSessionCaches** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pickSessionCacheEvictions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeProviderList** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sanitizeProject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-load** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/global-sync/session-load.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **loadRootSessionsWithFallback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **estimateRootSessionTotal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **path** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/file/path.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **stripFileProtocol** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stripQueryAndHash** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **unquoteGitPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **decodeFilePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **encodeFilePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createPathHelpers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **view-cache** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/file/view-cache.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeSelectedLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **equalSelectedLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createViewSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createFileViewCache** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **types** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/file/types.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **selectionFromLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **watcher** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/file/watcher.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **invalidateFromWatcher** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tree-store** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/file/tree-store.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createFileTreeStore** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **content-cache** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/app/src/context/file/content-cache.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **approxBytes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setBytes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **touch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **reset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **evictContentLru** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetFileContentLru** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setFileContentBytes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeFileContentBytes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **touchFileContent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFileContentBytesTotal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFileContentEntryCount** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasFileContent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **previous-docs-redirects.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-docs/__tests__/previous-docs-redirects.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **detectCycle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **llms.txt** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-docs/pages/api/llms.txt.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findMarkdownFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filePathToUrlPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractFrontmatterTitle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildTitleMap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **addNavLink** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **addNavSection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **heading.markdoc** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-docs/markdoc/nodes/heading.markdoc.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **generateID** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tool** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/plugin/src/tool.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **tool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-path** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-ui/src/file-path.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseFilePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractFilePathFromHref** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tool-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-ui/src/components/tool-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createThrottledValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **busy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hold** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateScrollMask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useCollapsible** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useContextToolPending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useRowWipe** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useToolFade** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **visual-regression.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-ui/tests/visual-regression.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fetchStories** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **disableAnimations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForSettled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForImages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForFonts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForStable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop/scripts/utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getCurrentSidecar** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **copyBinaryToSidecarFolder** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **windowsify** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **cli** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop/src/cli.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **installError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **installCli** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **menu** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop/src/menu.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createMenu** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **updater** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop/src/updater.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **runUpdater** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **bindings** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop/src/bindings.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **makeEvent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop/src/i18n/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **detectLocale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseLocale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseRecord** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseStored** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pickLocale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **t** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **initI18n** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **schema** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/script/schema.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **generate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **project-id** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/project-id.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeProjectId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getProjectIdFromConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getProjectIdFromGit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveProjectId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getKiloProjectId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **rules-migrator** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/rules-migrator.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **exists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findMarkdownFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **discoverRules** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **plan-followup** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/plan-followup.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **toText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatTodos** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateHandover** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolvePlan** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **inject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **prompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **startNew** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ts-client** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/ts-client.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **check** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **bash-hierarchy** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/bash-hierarchy.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **addAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ignore-migrator** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/ignore-migrator.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fileExists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseIgnoreContent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertToGlob** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadIgnoreFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildPermissionRules** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadIgnoreConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **bell** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/bell.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **bell** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **paste-summary** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/paste-summary.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldSummarize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ts-check** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/ts-check.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolve** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **local_tsc** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **native_tsgo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scan_bun** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **exists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **modes-migrator** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/modes-migrator.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isDefaultMode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertPermissions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertMode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readModesFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **editor-context** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/editor-context.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **staticEnvLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **timestamp** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **environmentDetails** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **workflows-migrator** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/workflows-migrator.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findWorkflowFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractNameFromFilename** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractDescription** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadWorkflowsFromDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **discoverWorkflows** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertToCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **enhance-prompt** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/enhance-prompt.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **clean** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **enhancePrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **mcp-migrator** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/mcp-migrator.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isRemote** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readMcpSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadMcpConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **paths** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/paths.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **vscodeGlobalStorage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **globalDirs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **skillDirectories** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **config-injector** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/config-injector.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **buildConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mergePermissions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getEnvVars** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **cloud-session** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/cloud-session.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **validateCloudFork** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **importCloudSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **kilo-errors** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/kilo-errors.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isKiloError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **kiloErrorTitle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **kiloErrorDescription** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **showKiloErrorToast** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseKiloErrorCode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **worktree-diff** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/review/worktree-diff.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **generatedLike** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ancestor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stats** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **detailMeta** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **lines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **lineCount** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **statStamp** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readBefore** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readAfter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **load** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **summarize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **summary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **detail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **full** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **command** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/review/command.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **localReviewUncommittedCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **localReviewCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **review** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/review/review.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **countChanges** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatFileList** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildToolsSection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseFileDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildReviewPromptUncommitted** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildReviewPromptBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCurrentBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getBaseBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUncommittedChanges** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getBranchChanges** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **drain** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilocode/permission/drain.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **drainCovered** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **todo** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/todo.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **update** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **prompt** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/prompt.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **shouldAskPlanFollowup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **assertNotBusy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolvePromptParts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **start** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resume** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cancel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **lastModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveTools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createStructuredOutputTool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createUserMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **insertReminders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shell** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **command** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ensureTitle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createDefaultTitle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isDefaultTitle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromRow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toRow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getForkedTitle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getPlatformOverride** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createNext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **plan** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **status** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/status.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **set** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **llm** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/llm.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **stream** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveTools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasToolCalls** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **system** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/system.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **instructions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **soul** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **provider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **environment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **instruction** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/instruction.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **globalFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveRelative** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isClaimed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **claim** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clear** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **systemPaths** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **system** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loaded** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **find** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolve** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **summary** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/summary.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **unquoteGitPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **summarizeSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **summarizeMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **computeDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **compaction** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/compaction.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isOverflow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **prune** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **process** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **processor** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/processor.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **retry** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/retry.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sleep** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **delay** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **retryable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **revert** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/revert.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **revert** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **unrevert** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **message-v2** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/session/message-v2.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isMedia** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toModelMessages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filterCompacted** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/auth/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **set** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/provider.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isGpt5OrLater** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldUseCopilotResponsesApi** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **googleVertexVars** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadBaseURL** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromModelsDevModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromModelsDevProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isProviderAllowed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mergeProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSDK** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getLanguage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSmallModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sort** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **defaultModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **error** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/error.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isOpenAiErrorRetryable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isOverflow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **error** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **message** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **json** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseStreamError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseAPICallError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **model-cache** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/model-cache.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clear** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchModels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAuthOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **models** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/models.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **url** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transform** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/transform.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mimeToModality** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sdkKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeMessages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyCaching** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **unsupportedParts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fixDuplicateReasoning** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **message** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **temperature** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **topP** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **topK** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **variants** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **options** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **smallOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **providerOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **maxOutputTokens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **schema** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **auth** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/auth.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **methods** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **copilot-provider** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/copilot-provider.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createOpenaiCompatible** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **openai-responses-language-model** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **addInclude** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasOpenAITool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isTextDeltaChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseOutputItemDoneChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseOutputItemDoneReasoningChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseFinishedChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseCreatedChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseFunctionCallArgumentsDeltaChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseImageGenerationCallPartialImageChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseCodeInterpreterCallCodeDeltaChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseCodeInterpreterCallCodeDoneChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseOutputItemAddedChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseOutputItemAddedReasoningChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseAnnotationAddedChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseReasoningSummaryPartAddedChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isResponseReasoningSummaryTextDeltaChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isErrorChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getResponsesModelConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **map-openai-responses-finish-reason** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mapOpenAIResponseFinishReason** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **openai-responses-prepare-tools** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **prepareResponsesTools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **convert-to-openai-responses-input** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isFileId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertToOpenAIResponsesInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **openai-compatible-prepare-tools** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **prepareTools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **convert-to-openai-compatible-chat-messages** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getOpenAIMetadata** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertToOpenAICompatibleChatMessages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **map-openai-compatible-finish-reason** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mapOpenAICompatibleFinishReason** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **get-response-metadata** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/chat/get-response-metadata.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getResponseMetadata** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **shell** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/shell/shell.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **killTree** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fallback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/acp/agent.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getContextLimit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sendUsageUpdate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toToolKind** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toLocations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **defaultModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseUri** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getNewContent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sortProvidersByName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **modelVariantsFromProviders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildAvailableModels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatModelIdWithVariant** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildVariantMeta** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseModelSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/pty/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **update** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **write** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **connect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/plugin/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **trigger** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **codex** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/plugin/codex.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **generatePKCE** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateRandomString** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **base64UrlEncode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseJwtClaims** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractAccountIdFromClaims** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractAccountId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildAuthorizeUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **exchangeCodeForTokens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refreshAccessToken** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **startOAuthServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stopOAuthServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForOAuthCallback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **CodexAuthPlugin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **copilot** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/plugin/copilot.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeDomain** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUrls** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **CopilotAuthPlugin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **inflight-cache** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilo-sessions/inflight-cache.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withInFlightCache** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearInFlightCache** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ingest-queue** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilo-sessions/ingest-queue.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **retryable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **backoff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **schedule** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **enqueue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **flush** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **kilo-sessions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/kilo-sessions/kilo-sessions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **clearCache** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authValid** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **kilocodeToken** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **bootstrap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **share** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **unshare** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fullSync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeGitUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getGitUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **meta** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getOrgId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isUuid** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **git-context** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/commit-message/git-context.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isLockFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **git** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseNameStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parsePorcelain** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mapStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isUntracked** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getGitContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **generate** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/commit-message/generate.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **buildUserMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clean** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateCommitMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **git-context.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/commit-message/__tests__/git-context.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setGitOutput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearGitOutputs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **git** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isLockFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseNameStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parsePorcelain** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mapStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isUntracked** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getGitContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/ide/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **ide** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **alreadyInstalled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **install** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/format/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isEnabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFormatter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **mdns** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/server/mdns.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **publish** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **unpublish** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **error** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/server/error.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **errors** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/server/server.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **url** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openapi** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **listen** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tui** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/server/routes/tui.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **callTui** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **global** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/server/routes/global.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **handler** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tui** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/config/tui.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mergeInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **customPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **load** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **migrate-tui-config** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/config/migrate-tui-config.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **migrateTuiConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeTui** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **backupAndStripLegacy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **opencodeFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **config** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/config/config.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **systemManagedConfigDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **managedConfigDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mergeConfigConcatArrays** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForDependencies** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **installDependencies** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isWritable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **needsInstall** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **rel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trim** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadAgent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadMode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadPlugin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getPluginName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deduplicatePlugins** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **load** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getGlobal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **update** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **globalConfigFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isRecord** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stripNulls** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mergeConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **patchJsonc** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateGlobal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **directories** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **markdown** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/config/markdown.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **files** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shell** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fallbackSanitization** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **paths** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/config/paths.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **projectFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **directories** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fileInDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **source** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **substitute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **share-next** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/share/share-next.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **url** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fullSync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **webfetch** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/webfetch.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **extractTextFromHTML** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertHTMLToMarkdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **diagnostics** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/diagnostics.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **filterDiagnostics** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **plan** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/plan.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getLastModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **edit** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/edit.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeLineEndings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **detectLineEnding** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertToLineEnding** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **levenshtein** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trimDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **replace** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **question** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/question.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **format** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **external-directory** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/external-directory.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **assertExternalDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **task** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/task.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **cancel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **registry** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/registry.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fromPlugin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **register** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ids** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **read** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/read.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isBinaryFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ls** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/ls.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **renderDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tool** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/tool.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **define** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **truncation** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/tool/truncation.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasTaskTool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **output** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **json-migration** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/storage/json-migration.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **read** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **insert** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **db** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/storage/db.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **time** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **close** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **use** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **effect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transaction** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **storage** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/storage/storage.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **read** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **update** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **write** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **withErrorHandling** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **sse** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/control-plane/sse.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseSSE** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **workspace** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/control-plane/workspace.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fromRow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **workspaceEventLoop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **startSyncing** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **workspace-router-middleware** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/control-plane/workspace-router-middleware.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **routeRequest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **routes** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/control-plane/workspace-server/routes.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **WorkspaceServerRoutes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/control-plane/workspace-server/server.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **App** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **Listen** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/control-plane/adaptors/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getAdaptor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **installAdaptor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **registry** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/bun/registry.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **which** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **info** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isOutdated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/bun/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **which** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **install** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/question/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **ask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **reply** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **reject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/lsp/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getClients** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **schedule** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasClients** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **touchFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **diagnostics** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hover** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **workspaceSymbol** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **documentSymbol** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **definition** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **references** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **implementation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **prepareCallHierarchy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **incomingCalls** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **outgoingCalls** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pretty** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/lsp/server.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **spawn** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **spawn** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **spawn** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **client** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/lsp/client.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **discovery** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/skill/discovery.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **dir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pull** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **skill** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/skill/skill.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dirs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **queue** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/queue.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **work** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **hash** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/hash.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fast** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **process** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/process.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **spawn** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **wildcard** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/wildcard.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **match** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **allStructured** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **matchSequence** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **filesystem** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/filesystem.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **exists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stat** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **size** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readBytes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readArrayBuffer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isEnoent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **write** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeStream** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mimeType** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolve** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **windowsPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **overlaps** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **contains** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findUp** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **globUp** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **timeout** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/timeout.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withTimeout** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **log** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/log.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **shouldLog** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **file** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **fn** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/fn.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fn** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **proxied** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/proxied.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **proxied** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lock** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/lock.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **process** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **read** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **write** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **iife** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/iife.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **iife** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **archive** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/archive.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **extractZip** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **which** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/which.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **which** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **abort** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/abort.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **abortAfter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **abortAfterAny** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **scrap** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/scrap.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **dummyFunction** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **randomHelper** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **token** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/token.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **estimate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lazy** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/lazy.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **lazy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **glob** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/glob.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **toGlobOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scan** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scanSync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **match** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **git** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/git.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **git** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **keybind** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/keybind.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **match** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromParsedKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toString** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **locale** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/locale.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **titlecase** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **time** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **datetime** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **todayTimeOrDateTime** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **number** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **duration** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **truncate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **truncateMiddle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pluralize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **format** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/format.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **formatDuration** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **eventloop** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/eventloop.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **wait** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **signal** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/signal.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **signal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **rpc** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/rpc.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **listen** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **emit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **client** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **defer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/defer.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **defer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **color** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/color.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isValidHex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hexToRgb** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hexToAnsiBold** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **context** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/util/context.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/env/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **set** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **upgrade** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/upgrade.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **upgrade** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **bootstrap** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/bootstrap.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **bootstrap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **network** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/network.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withNetworkOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveNetworkOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **error** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/error.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **FormatError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **FormatUnknownError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ui** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/ui.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **println** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **print** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **empty** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **logo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **input** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **error** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **markdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **import** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/import.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseShareUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformShareData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ingestBootstrapWarning** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ingestBootstrap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **bootstrapImportedSessionIngest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **stats** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/stats.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getCurrentProject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAllSessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **aggregateSessionStats** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **displayStats** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **renderRow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatNumber** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **models** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/models.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **printModels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **web** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/web.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getNetworkIPs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **mcp** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/mcp.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getAuthStatusIcon** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAuthStatusText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isMcpConfigured** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isMcpRemote** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveConfigPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **addMcpToConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **auth** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/auth.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **handlePluginAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolvePluginProviders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **cmd** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/cmd.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **cmd** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **run** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/run.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **props** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **inline** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **block** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fallback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **glob** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **grep** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **read** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **write** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **webfetch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **edit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **codesearch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **websearch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **task** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **skill** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **bash** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **todo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **title** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **share** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **emit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/session.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **pagerCmd** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatSessionTable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatSessionJSON** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **uninstall** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/uninstall.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **collectRemovalTargets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **showRemovalSummary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **executeUninstall** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getShellConfigFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanShellConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDirectorySize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatSize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shortenPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **win32** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/win32.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **load** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **win32DisableProcessedInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **win32FlushInputBuffer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **win32InstallCtrlCGuard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **thread** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/thread.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createWorkerFetch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createEventSource** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **target** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **input** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **worker** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/worker.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getAuthorizationHeader** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **transcript** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/transcript.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **formatTranscript** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatAssistantHeader** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatPart** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **clipboard** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/clipboard.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **writeOsc52** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **read** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **copy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **selection** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/selection.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **copy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **terminal** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/terminal.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **colors** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTerminalBackgroundColor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **markdown** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/markdown.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseRow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isSeparatorRow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAlignment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDisplayWidth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **padToWidth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findTables** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatTable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatMarkdownTables** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **editor** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/editor.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **open** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **signal** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/signal.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createDebouncedSignal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **spinner** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/ui/spinner.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getScannerState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **calculateColorIndex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createKnightRiderTrail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deriveTrailColors** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deriveInactiveColor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createFrames** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createColors** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **textarea-keybindings** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/component/textarea-keybindings.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mapTextareaKeybindings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useTextareaKeybindings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **directory** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/context/directory.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/debug/agent.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getAvailableTools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveTools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseToolParams** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createToolContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ripgrep** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/file/ripgrep.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **filepath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tree** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **search** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **time** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/file/time.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **read** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **withLock** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **assert** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/file/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isImageByExtension** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isTextByExtension** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isTextByName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getImageMimeType** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isBinaryByExtension** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isImage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldEncode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **read** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **search** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ignore** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/file/ignore.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **match** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **watcher** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/file/watcher.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/mcp/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **registerNotificationHandlers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertMcpTool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isMcpConfigured** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **descendants** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchPromptsForClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchResourcesForClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **add** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clients** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **connect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **disconnect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **prompts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resources** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getPrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readResource** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **startAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authenticate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **finishAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **supportsOAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasStoredTokens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAuthStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **auth** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/mcp/auth.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getForUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **set** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateTokens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateClientInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateCodeVerifier** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearCodeVerifier** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateOAuthState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getOAuthState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearOAuthState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isTokenExpired** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **oauth-callback** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/mcp/oauth-callback.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **ensureRunning** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForCallback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cancelPending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isPortInUse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isRunning** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/installation/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **info** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isPreview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isLocal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **method** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getBrewFormula** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **upgrade** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **latest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/command/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **hints** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **flag** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/flag/flag.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **truthy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **falsy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **number** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/worktree/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **pick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **slug** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **randomName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **exists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **outputText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **errorText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **failed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **prune** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sweep** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **canonical** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runStartCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runStartScript** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runStartScripts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **queueStartScripts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeWorktreeInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createFromInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/agent/agent.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **defaultAgent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/scheduler/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **register** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **bootstrap** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/project/bootstrap.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **InstanceBootstrap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **project** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/project/project.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **gitpath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromRow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **discover** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateFromGlobal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setInitialized** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **initGit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sandboxes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **addSandbox** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeSandbox** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **instance** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/project/instance.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **emit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **boot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **track** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **vcs** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/project/vcs.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **currentBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **branch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **state** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/project/state.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetEntry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dispose** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **id** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/id/id.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **schema** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ascending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **descending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateID** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **randomBase62** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **timestamp** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/control/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fromRow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **account** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **token** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/bus/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **publish** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **subscribe** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **once** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **subscribeAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **raw** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **bus-event** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/bus/bus-event.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **define** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **payloads** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/permission/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **toKeys** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **covered** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **respond** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **arity** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/permission/arity.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **prefix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **next** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/permission/next.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **expand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **merge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **evaluate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **disabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/patch/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parsePatchHeader** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseUpdateFileChunks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseAddFileContent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stripHeredoc** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parsePatch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **maybeParseApplyPatch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deriveNewContentsFromChunks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **computeReplacements** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyReplacements** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeUnicode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tryMatch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seekSequence** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateUnifiedDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyHunksToFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyPatch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **maybeParseApplyPatchVerified** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/src/snapshot/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **track** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **patch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **restore** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **revert** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **diff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **diffFull** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **gitdir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **add** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **syncExclude** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **excludes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **workflows-migrator.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/workflows-migrator.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withHome** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **kilo-errors.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/kilo-errors.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **makeAPIError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **worktree-diff-summary.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/worktree-diff-summary.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **rules-migrator.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/rules-migrator.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withHome** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **patch-jsonc.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/patch-jsonc.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isRecord** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **patchJsonc** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **plan-followup.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/plan-followup.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withInstance** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **latestUser** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mockHandoverDeps** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **paths.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/paths.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withHome** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **bash-hierarchy.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/bash-hierarchy.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **collect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **worktree-diff.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/worktree-diff.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setupRepo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **plan-exit-detection.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/plan-exit-detection.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withInstance** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitQuestion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **local-model.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilocode/local-model.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resetMockState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runInRoot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **initLocal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readModelJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeModelJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **structured-output-integration.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/session/structured-output-integration.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withInstance** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **retry.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/session/retry.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **apiError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **wrap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **prompt.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/session/prompt.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **deferred** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **compaction.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/session/compaction.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **llm.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/session/llm.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **deferred** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitRequest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createChatStream** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadFixture** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createEventStream** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createEventResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **message-v2.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/session/message-v2.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **userInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **assistantInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **basePart** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **copilot-chat-model.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/provider/copilot/copilot-chat-model.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **convertReadableStreamToArray** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createMockFetch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **event-subscription.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/acp/event-subscription.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **inProgressText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isToolCallUpdate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toolEvent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createEventStream** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createFakeAgent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **codex.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/plugin/codex.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createTestJwt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **inflight-cache.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilo-sessions/inflight-cache.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **deferred** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ingest-queue.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/kilo-sessions/ingest-queue.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **scheduler** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **config.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/config/config.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **writeManagedSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **check** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **webfetch.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/tool/webfetch.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withFetch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **json-migration.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/storage/json-migration.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setupStorageDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeProject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createTestDb** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-proxy-middleware.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/control-plane/session-proxy-middleware.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **sse.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/control-plane/sse.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **stream** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **db** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/fixture/db.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resetDatabase** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **fixture** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/fixture/fixture.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sanitizePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **exists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clean** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tmpdir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **fake-lsp-server** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/fixture/lsp/fake-lsp-server.js
+ - 🏗️ Layer: Unknown
+ - ƒ **encode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **decodeFrames** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **send** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sendRequest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **client.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/lsp/client.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **spawnFakeServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **skill.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/skill/skill.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createGlobalSkill** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **which.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/util/which.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **cmd** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **env** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **envPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **same** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lock.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/util/lock.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **tick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **flush** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **process.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/util/process.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **node** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **plugin-auth-picker.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/cli/plugin-auth-picker.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **hookWithAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hookWithoutAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **thread.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/cli/tui/thread.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **call** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **check** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/agent/agent.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **evalPerm** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **project.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/project/project.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **withMode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadProject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **snapshot.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/opencode/test/snapshot/snapshot.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **bootstrap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **identity** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-telemetry/src/identity.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setDataPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getMachineId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDistinctId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUserId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getOrganizationId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setOrganizationId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateFromKiloAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **reset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tracer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-telemetry/src/tracer.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTracer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setEnabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shutdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **client** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-telemetry/src/client.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setEnabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isEnabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **capture** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **identify** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **alias** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shutdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **telemetry** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-telemetry/src/telemetry.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setEnabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTracer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isEnabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateIdentity** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **track** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackCliStart** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackCliExit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackSessionStart** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackSessionEnd** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackSessionMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackLlmCompletion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackCommandUsed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackToolUsed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackAgentUsed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackPlanFollowup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackShareCreated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackShareDeleted** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackMcpServerConnected** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackMcpServerError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackAuthSuccess** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackAuthLogout** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trackError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shutdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **telemetry.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-telemetry/src/__tests__/telemetry.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createMockPostHogClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createMockSpan** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **binary** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/binary.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **search** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **insert** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **path** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/path.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getFilename** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFileExtension** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFilenameTruncated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **truncateMiddle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **slug** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/slug.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **fn** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/fn.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fn** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **array** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/array.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findLast** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **iife** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/iife.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **iife** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **encode** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/encode.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **base64Encode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **base64Decode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hash** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checksum** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sampledChecksum** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **identifier** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/identifier.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **ascending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **descending** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **randomBase62** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lazy** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/lazy.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **lazy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **retry** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/util/src/retry.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isTransientError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **retry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **vite.config** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/vite.config.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **providerIconsPlugin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchProviderIcons** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-path** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/file-path.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseFilePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractFilePathFromHref** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **commented-lines** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/commented-lines.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **annotationIndex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clear** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **markCommentedDiffLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **markCommentedFileLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **selection-bridge** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/selection-bridge.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **formatSelectedLineLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **previewSelectedLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cloneSelectedLineRange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **lineInSelectedRange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isSingleLineSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toRange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **restoreShadowTextSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createLineNumberSelectionBridge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-runtime** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/file-runtime.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createReadyWatcher** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearReadyWatcher** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getViewerHost** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getViewerRoot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyViewerScheme** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **observeViewerScheme** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **notifyShadowReady** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createDefaultOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **comment-hover** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/comment-hover.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createHoverCommentUtility** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **media** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/media.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mediaRecord** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeMimeType** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fileExtension** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mediaKindFromPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isBinaryContent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validDataUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dataUrlFromMediaValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **decodeBase64Utf8** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **svgTextFromValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasMediaValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **worker** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/worker.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **workerFactory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createPool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getWorkerPool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getWorkerPools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **diff-selection** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/diff-selection.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findDiffSide** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **diffLineIndex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **diffRowIndex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fixDiffSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **virtualizer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/virtualizer.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **scrollable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scrollRoot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **target** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **acquireVirtualizer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-selection** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/file-selection.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findElement** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findFileLineNumber** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findDiffLineNumber** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findCodeSelectionSide** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readShadowLineSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-find** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/pierre/file-find.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isEditable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hostForNode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **installShortcuts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearHighlightFind** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **supportsHighlights** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scrollParent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createFileFind** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scheduleOverlay** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **loader** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/theme/loader.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **ensureLoaderStyleElement** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyTheme** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildThemeCss** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadThemeFromUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getActiveTheme** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeTheme** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setColorScheme** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **resolve** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/theme/resolve.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resolveThemeVariant** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getColors** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateNeutralOverlayScale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateNeutralAlphaScale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getHex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveTheme** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **themeToCss** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **color** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/theme/color.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **clamp** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hexToRgb** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **rgbToHex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **linearToSrgb** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **srgbToLinear** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **rgbToOklch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **oklchToRgb** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hexToOklch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fitOklch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **oklchToHex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateScale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateNeutralScale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateAlphaScale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mixColors** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shift** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **blend** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **lighten** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **darken** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **withAlpha** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **line-comment-styles** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/components/line-comment-styles.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **installLineCommentStyles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-review-search** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/components/session-review-search.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **hitsForSide** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildSessionSearchHits** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stepSessionSearchIndex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **fixtures** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/ui/src/storybook/fixtures.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **average** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **publish** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/sdk/js/script/publish.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **transformExports** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/sdk/js/src/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createKilo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/sdk/js/src/server.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mergeConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseExistingConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildConfigEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createKiloServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createKiloTui** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **client** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/sdk/js/src/client.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createKiloClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/sdk/js/src/v2/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createKilo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/sdk/js/src/v2/server.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mergeConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseExistingConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildConfigEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createKiloServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createKiloTui** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **client** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/sdk/js/src/v2/client.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createKiloClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **utils.gen** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/sdk/js/src/v2/gen/core/utils.gen.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getValidRequestBody** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **esbuild** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/esbuild.js
+ - 🏗️ Layer: Unknown
+ - ƒ **getWorkerPool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getWorkerPools** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **workerFactory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createBrowserWebviewContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **launch** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/script/launch.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **which** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **detect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **codeCli** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **newest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **compile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **packageVsix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **installVsix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **settings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **launch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **local-bin** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/script/local-bin.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **log** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **platformTag** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findKiloBinaryInOpencodeDist** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ensureBuiltBinary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **watch-cli** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/script/watch-cli.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **log** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sourceBinaryPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **rebuild** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **qrcode** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/qrcode.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **generateQRCode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **id** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/id.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **randomBase62** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getRandomBytes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **errorUtils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/errorUtils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **unwrapError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseAssistantError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isUnauthorizedPaidModelError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isUnauthorizedPromotionLimitError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-action** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/provider-action.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createProviderAction** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **send** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clear** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dispose** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **date** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/date.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **formatRelativeDate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **review-comment-markdown** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/review-comment-markdown.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **escapeInline** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fenceFor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatCode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatReviewCommentMarkdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatReviewCommentsMarkdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **messages** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/types/messages.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **acquireVsCodeApi** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **useFileMention** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/useFileMention.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useFileMention** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-mention-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/file-mention-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **escape** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **syncMentionedPaths** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildTextAfterMentionSelect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildFileAttachments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **useImageAttachments** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/useImageAttachments.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useImageAttachments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **usePromptHistory** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/usePromptHistory.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **load** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **canNavigate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **appendEntry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seedEntries** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **usePromptHistory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **navigate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **append** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **reset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **useSlashCommand** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/useSlashCommand.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useSlashCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **image-attachments-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/image-attachments-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isAcceptedImageType** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isDragLeavingComponent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/marketplace/utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isInstalled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **installedScopes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **model-selector-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/shared/model-selector-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isSmall** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **providerSortKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isFree** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sanitizeName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stripSubProviderPrefix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildTriggerLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **question-dock-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/chat/question-dock-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **toggleAnswer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **prompt-input-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/chat/prompt-input-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fileName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dirName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildHighlightSegments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **atEnd** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **permission-dock-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/chat/permission-dock-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **savedRuleStates** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **describePatterns** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-catalog** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/settings/provider-catalog.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isPopularProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **popularProviderIndex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **providerIcon** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **kiloFallbackProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **providerNoteKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sortProviders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-visibility** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/settings/provider-visibility.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **visibleConnectedIds** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **language-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/language-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeLocale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveTemplate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-queue** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/session-queue.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **activeUserMessageID** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **permission-queue** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/permission-queue.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **upsertPermission** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeSessionPermissions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **model-selection** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/model-selection.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **validate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **recent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveModelSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/session-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **computeStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **calcTotalCost** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **calcContextUsage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/provider-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **flattenModels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isModelValid** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **apply-conflicts** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/apply-conflicts.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **groupApplyConflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mapApplyConflictReason** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **multi-model-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/multi-model-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **allocationKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **totalAllocations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **allocationsToArray** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remaining** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setAllocationCount** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **maxAllocationCount** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tab-order** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/tab-order.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **reorderTabs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyTabOrder** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **firstOrderedTitle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-tree-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/file-tree-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **buildFileTree** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **flatten** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **flattenChain** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **navigate** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/navigate.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resolveNavigation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validateLocalSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **adjacentHint** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **nextSelectionAfterDelete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **review-annotations** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/review-annotations.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **focusWhenConnected** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeIcon** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeActionButton** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildReviewAnnotation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **diff-open-policy** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/diff-open-policy.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isLargeDiffFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **initialOpenFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **review-comments** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/review-comments.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **lineCount** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFilename** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sanitizeReviewComments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **diff-state** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/diff-state.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sameDiffMeta** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mergeWorktreeDiffs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-status** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/session-status.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getBusySessionCount** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **seedSessionStatuses** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **kilo-provider-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getErrorMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sessionToWebview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **indexProvidersById** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filterVisibleAgents** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadSessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **flushPendingSessionRefresh** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildSettingPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mapSSEEventToWebviewMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mapCloudSessionMessageToWebviewMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isEventFromForeignProject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **webview-html-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/webview-html-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **buildConnectSrc** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **joinCspDirectives** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildCspString** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **extension** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/extension.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **activate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deactivate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openKiloInNewTab** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitForWebviewPanelToBeActive** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **project-directory** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/project-directory.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resolvePanelProjectDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveProjectDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **path-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/path-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isAbsolutePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **image-preview** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/image-preview.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseImage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildPreviewPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getPreviewCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getPreviewDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trimEntries** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseBase64** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getExt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sanitize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **review-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/review-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **appendOutput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getWorkspaceRoot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveLocalDiffTarget** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hashFileDiffs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openFileInEditor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openWorkspaceRelativeFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getNonce** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildWebviewHtml** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-actions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/provider-actions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fetchProviderData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildActionContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isModelSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validateRecents** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **computeDefaultSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **postError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validateID** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **connectProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authorizeProviderOAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **completeProviderOAuth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **disconnectProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **saveCustomProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **toggle-auto-approve** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/commands/toggle-auto-approve.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **registerToggleAutoApprove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tryGetClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **fork-session** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/fork-session.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **forkSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **WorktreeManager** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/WorktreeManager.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **stripRemotePrefix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **format-keybinding** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/format-keybinding.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **formatKeybinding** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildKeybindingMap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **constants** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/constants.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **migrateAgentManagerData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **exists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveGitDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fixGitWorktreeRefs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **git-import** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/git-import.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parsePRUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **localBranchName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseForEachRefOutput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildBranchList** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseWorktreeList** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkedOutBranchesFromWorktreeList** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validateGitRef** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **classifyPRError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **classifyWorktreeError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **task-runner** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/task-runner.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **executeVscodeTask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **multi-version** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/multi-version.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resolveVersionModels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildInitialMessages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **shell-env** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/shell-env.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseEnvOutput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getShellEnvironment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolvePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **execWithShellEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearShellEnvCache** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **delete-worktree** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/delete-worktree.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **shouldStopDiffPolling** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **WorktreeStateManager** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/WorktreeStateManager.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **remoteRef** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SetupScriptRunner** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/SetupScriptRunner.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **quoteCmdArg** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildSetupTaskCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **branch-name** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/branch-name.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sanitizeBranchName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **generateBranchName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **versionedName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **base-branch** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/base-branch.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeBaseBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **chooseBaseBranch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **terminal-host** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/terminal-host.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createTerminalHost** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SetupScriptService.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/__tests__/SetupScriptService.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setupRoot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scriptPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeScript** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AgentManagerProvider.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/__tests__/AgentManagerProvider.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createMockHost** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deferred** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createHarness** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-model** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/shared/provider-model.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseModelString** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **providerOrderIndex** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createKiloFallbackProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **custom-provider** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/shared/custom-provider.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validateProviderID** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseCustomProviderSecret** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeCustomProviderConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sanitizeCustomProviderConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **migration-service** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/legacy-migration/migration-service.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getMigrationStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setMigrationStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **detectLegacyData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearLegacyData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateConfigFields** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateDefaultModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateAutoApproval** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateAutocomplete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateLanguage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertMcpServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertCustomModePermissions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertCustomMode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readOAuthCredentials** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readLegacyProviderProfiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readLegacyMcpSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readLegacyCustomModes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readLegacySettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasAutocompleteData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stripYamlQuotes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseCustomModesYaml** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildProviderList** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildMcpServerList** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildCustomModeList** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveDefaultModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **api** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/marketplace/api.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **kebabToTitleCase** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transformSkill** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchWithRetry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **installer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/marketplace/installer.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeMcpEntry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isSafeId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **convertModeToAgent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **escapeJsonValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **substituteParams** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findEscapedPaths** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **walk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **paths** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/marketplace/paths.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **globalConfigDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server-manager** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/cli-backend/server-manager.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **stripAnsi** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toErrorMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/cli-backend/server-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseServerPort** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **connection-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/cli-backend/connection-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resolveEventSessionId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/cli-backend/i18n/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resolveLocale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadTranslations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **t** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **errors** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/telemetry/errors.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isApiProviderError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getApiProviderErrorProperties** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isConsecutiveMistakeError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getConsecutiveMistakeErrorProperties** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **telemetry-proxy-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/telemetry/telemetry-proxy-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **buildTelemetryPayload** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildTelemetryAuthHeader** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/commit-message/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **registerCommitMessageService** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **register-code-actions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/code-actions/register-code-actions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **registerCodeActions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **register-terminal-actions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/code-actions/register-terminal-actions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getTerminalContents** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **registerTerminalActions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **editor-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/code-actions/editor-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getEditorContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **support-prompt** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/code-actions/support-prompt.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **diagnosticText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fill** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createPrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteServiceManager** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/AutocompleteServiceManager.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **readSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **statusbar-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/statusbar-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **humanFormatSessionCost** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatTime** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **types** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/types.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **extractPrefixSuffix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **contextToAutocompleteInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteServiceManager.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/__tests__/AutocompleteServiceManager.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createManager** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteModel.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/__tests__/AutocompleteModel.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createMockConnectionService** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **MockWorkspaceEdit** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/__tests__/MockWorkspaceEdit.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createMockWorkspaceEdit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **HoleFiller** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/HoleFiller.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseAutocompleteResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sum_evens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sum** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hypothenuse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **getProcessedSnippets** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/getProcessedSnippets.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **uriToFsPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasFilepath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filterSnippetsByAccess** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getProcessedSnippets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **uselessSuggestionFilter** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/uselessSuggestionFilter.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **suggestionConsideredDuplication** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **DuplicatesFromPrefixOrSuffix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **DuplicatesFromEdgeLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **containsRepetitivePhraseFromPrefix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeToCompleteLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **postprocessAutocompleteSuggestion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **hole-filler-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/hole-filler-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseAutocompleteResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **contextualSkip** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/contextualSkip.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getTerminatorsForLanguage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isAtEndOfStatement** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isMidWordTyping** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldSkipAutocomplete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteInlineCompletionProvider** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/AutocompleteInlineCompletionProvider.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findMatchingSuggestion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyFirstLineOnly** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **countLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldShowOnlyFirstLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFirstLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stringToInlineCompletions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteTelemetry** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/AutocompleteTelemetry.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getSuggestionKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **telemetry-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/telemetry-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getSuggestionKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **insertWithLRUEviction** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **inline-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/inline-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findMatchingSuggestion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **countLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldShowOnlyFirstLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFirstLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyFirstLineOnly** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **calcDebounceDelay** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteTelemetry.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/AutocompleteTelemetry.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createSuggestion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteContextProvider.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/AutocompleteContextProvider.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createAutocompleteInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **HoleFiller.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/HoleFiller.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createAutocompleteInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteInlineCompletionProvider.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/AutocompleteInlineCompletionProvider.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **provideWithDebounce** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/language-filters/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **applyLanguageFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **markdown** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/language-filters/markdown.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isInsideCodeBlock** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeSpuriousNewlinesBeforeCodeBlockClosingFences** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **markdownFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **handleChatCompletionAccepted** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/chat-autocomplete/handleChatCompletionAccepted.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getChatAutocompleteTelemetry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleChatCompletionAccepted** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **handleChatCompletionRequest** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/chat-autocomplete/handleChatCompletionRequest.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **handleChatCompletionRequest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **chat-autocomplete-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/chat-autocomplete/chat-autocomplete-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **finalizeChatSuggestion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildChatPrefix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **FileIgnoreController** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/shims/FileIgnoreController.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **toPosix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **i18n** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/shims/i18n.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **t** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **util** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/diff/util.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **linesMatchPerfectly** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **linesMatch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **matchLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **myers** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/diff/myers.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **convertMyersChangeToDiffLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **myersDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **myersCharDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **streamDiff.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/diff/streamDiff.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **collectDiffs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getMyersDiffType** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **displayDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **expectDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **stream** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/fetch/stream.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseSseLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lcs** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/lcs.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **longestCommonSubsequence** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **dedent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **uri** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/uri.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **pathToUriPathSegment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCleanUriPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findUriInDirs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUriPathBasename** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFileExtensionFromBasename** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUriFileExtension** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getLastNUriRelativePathParts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **joinPathsToUri** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getShortestUniqueRelativeUriPaths** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getLastNPathParts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ranges** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/ranges.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getRangeInString** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **intersection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **messageContent** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/messageContent.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **stripImages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **renderChatMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **merge** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/merge.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **mergeJson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **logger** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/logger.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getIconFromLevel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **paths** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/paths.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getContinueGlobalPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getIndexFolderPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getConfigJsonPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **treeSitter** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/treeSitter.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getParserForFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findExistingPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getExtensionFromPathOrUri** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getLanguageForFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getQueryForFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadLanguageForFileExt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSymbolsForFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findNamedNodesRecursive** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **pathToUri** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/pathToUri.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **localPathToUri** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **localPathOrUriToPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **testDir** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/test/testDir.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setUpTestDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tearDownTestDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **addToTestDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ignore** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/indexing/ignore.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isSecurityConcern** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/prefiltering/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isDisabledForFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldPrefilter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteLanguageInfo** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/constants/AutocompleteLanguageInfo.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **matchBrackets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **languageForFilepath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **getAllSnippets** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/snippets/getAllSnippets.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **racePromise** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getIdeSnippets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSnippetsFromRecentlyEditedRanges** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **removePrefixOverlap** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/postprocessing/removePrefixOverlap.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **removePrefixOverlap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/postprocessing/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **rewritesLineAbove** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isExtremeRepetition** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isOnlyWhitespace** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isBlank** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **removeBackticks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **postprocessCompletion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **shouldCompleteMultiline** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/classification/shouldCompleteMultiline.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **shouldCompleteMultilineBasedOnLanguage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldCompleteMultiline** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteLruCacheInMem** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/AutocompleteLruCacheInMem.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **truncatePrefix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ast** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/ast.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getAst** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTreePathAtCursor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **completionTestUtils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/completionTestUtils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **processTestCase** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **processSingleLineCompletion** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/processSingleLineCompletion.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **diffPatternMatches** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **processSingleLineCompletion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **textSimilarity** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/textSimilarity.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **lineIsRepeated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **GeneratorReuseManager.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/generation/GeneratorReuseManager.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createMockGenerator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **utils.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/generation/utils.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **streamToString** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **BracketMatchingService.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/BracketMatchingService.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **collectAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **testCases** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/test/testCases.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sayHello** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **calculateArea** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **set** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **storeData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **addPerson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFirstPerson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_grade** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **add** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **subtract** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **util** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/test/util.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseFimExample** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **testAutocompleteFiltering** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lineStream** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/streamTransforms/lineStream.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isBracketEnding** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validatePatternInLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **charStream.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/streamTransforms/charStream.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **streamToString** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lineStream.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/streamTransforms/lineStream.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getLineGenerator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFilteredLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **constructPrefixSuffix** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/constructPrefixSuffix.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **constructInitialPrefixSuffix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **filtering** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/filtering.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **filterSnippetsAlreadyInCaretWindow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **getStopTokens** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/getStopTokens.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getStopTokens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getTemplate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **preparePromptContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **renderPrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildPrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pruneLength** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **renderPromptWithTokenLimit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AutocompleteTemplate** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/AutocompleteTemplate.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getFileName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFileName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sum_evens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sum** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hypothenuse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTemplateForModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **formatOpenedFilesContext** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/formatOpenedFilesContext.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **formatOpenedFilesContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **trimSnippetForContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **renderPrompt.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/__tests__/renderPrompt.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **makeHelper** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/ranking/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getSymbolsForSnippet** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **jaccardSimilarity** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **rankAndOrderSnippets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deduplicateSnippets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mergeSnippetsByRange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mergeOverlappingRangeContents** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fillPromptWithSnippets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tree-sitter-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/static-context/tree-sitter-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findEnclosingTypeDeclaration** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractTopLevelDecls** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractFunctionTypeFromDecl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **unwrapToBaseType** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **StaticContextService** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/static-context/StaticContextService.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **convertToArrowType** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scanRecursively** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **testUtils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/root-path-context/testUtils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **splitTextAtPosition** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **testRootPathContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **base_module** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/base_module.py
+ - 🏗️ Layer: Unknown
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__str__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__str__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **functions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/functions.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getAddress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFirstAddress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **logPerson** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getHardcodedAddress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAddresses** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **logPersonWithAddress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **logPersonOrAddress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **logPersonAndAddress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **functions** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/python/functions.py
+ - 🏗️ Layer: Unknown
+ - ƒ **get_address** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_group_address** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **log_person** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_hardcoded_address** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **log_person_or_address** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **log_person_and_address** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_address_generator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **log_person_and_address** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_person** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **llamaTokenizer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/llamaTokenizer.js
+ - 🏗️ Layer: Unknown
+ - ƒ **isEqual** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **testCase** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **openaiTypeConverters** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/openaiTypeConverters.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **toChatMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toChatBody** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toCompleteBody** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toFimBody** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromChatResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fromChatCompletionChunk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **countTokens** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/countTokens.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **modelUsesGptTokenizer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **encodingForModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **countTokens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **countChatMessageTokens** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractToolSequence** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pruneLinesFromTop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pruneLinesFromBottom** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pruneStringFromBottom** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pruneStringFromTop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTokenCountingBufferSafety** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pruneRawPromptFromTop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **compileChatMessages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **messages** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/messages.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **messageIsEmpty** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **addSpaceToAnyEmptyMessages** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **chatMessageIsEmpty** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/model-info/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **findLlmInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **VSCodeIde** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/vscode-test-harness/src/VSCodeIde.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **stat** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **areEqualURIs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **documentIsCode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **lsp** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/vscode-test-harness/src/autocomplete/lsp.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **gotoInputKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **signatureHelpKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **executeSignatureHelpProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **executeGotoProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isRifWithContents** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findChildren** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findTypeIdentifiers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **crawlTypes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDefinitionsForNode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **symbolInputKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **executeSymbolProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **collectSymbols** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **visible-code-utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/context/visible-code-utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **extractDiffInfo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **VisibleCodeTracker** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/context/VisibleCodeTracker.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **toRelativePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **slim-metadata** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/slim-metadata.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **slimMeta** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **slimPart** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **slimParts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **question** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/question.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **handleQuestionReply** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleQuestionReject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **permission-handler** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/permission-handler.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **handlePermissionResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchAndSendPendingPermissions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **auth** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/auth.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **handleLogin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleLogout** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSetOrganization** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleRefreshProfile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **cloud-session** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/cloud-session.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **handleRequestCloudSessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleRequestCloudSessionData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleImportAndSend** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **migration** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/migration.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **checkAndShowMigrationWizard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleRequestLegacyMigrationData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleStartLegacyMigration** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSkipLegacyMigration** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleClearLegacyData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **visual-regression.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/visual-regression.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **fetchStories** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **disableAnimations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **permission-dock-dropdown.spec** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **storyUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **disableAnimations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openDropdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **git-ops.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/git-ops.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sleep** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ops** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runGit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **withRepo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **kilo-provider-utils.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/kilo-provider-utils.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **makeSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeAgent** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeTextPart** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeAssistantMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeCloudMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-utils.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/provider-utils.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **makeProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **i18n-keys.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/i18n-keys.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **offsetToLine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractKeys** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **collectFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findWebviewMissing** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findCliBackendMissing** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findAutocompleteMissing** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findMissingLocaleKeys** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatLocaleReport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatReport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent-manager-diff-state.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/agent-manager-diff-state.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **diff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **provider-action.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/provider-action.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createTransport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **autocomplete-inline-utils.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/autocomplete-inline-utils.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **makeSuggestion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **git-stats-poller.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/git-stats-poller.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **sleep** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **waitFor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **worktree** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **diff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **gitOps** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **session-terminal-manager.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/session-terminal-manager.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **body** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **date.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/date.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **ago** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **worktree-manager.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/worktree-manager.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createTempRepo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createManager** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createTempRepoWithOrigin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **kilo-provider-session-refresh.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/kilo-provider-session-refresh.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createListSessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createClient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createConnection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **connection-utils.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/connection-utils.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **event** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-tree.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/file-tree.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **diff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **code-action-provider.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/code-action-provider.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **makeRange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent-manager-i18n-split.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/agent-manager-i18n-split.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **placeholders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **extension-arch.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/extension-arch.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **readSrcFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent-manager-arch.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/agent-manager-arch.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **readAllCss** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readAllTsx** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getMethodBody** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **body** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **importsVscode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **agentManagerSourceFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **permission-queue.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/permission-queue.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **perm** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **review-comments.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/review-comments.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **diff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **comment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **kilo-ui-contract.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/kilo-ui-contract.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **check** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **agent-manager-i18n.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/agent-manager-i18n.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **isProgrammatic** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findViolations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **findTranslationShadowViolations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **model-selection.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/model-selection.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **makeProvider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **tab-order.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/tab-order.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **reconcile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **message-contract.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/message-contract.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **readFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **multi-model-utils.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/multi-model-utils.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **make** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file-ignore-controller.test** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/file-ignore-controller.test.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createTempWorkspace** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **electron-builder.config** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/electron-builder.config.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **finalize-latest-yml** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/scripts/finalize-latest-yml.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **serialize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **read** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **utils** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/scripts/utils.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **resolveChannel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **nativeTarget** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCurrentSidecar** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **copyBinaryToSidecarFolder** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **windowsify** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **store** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/store.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getStore** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **cli** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/cli.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getSidecarPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **installCli** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **syncCli** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **serve** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **spawnCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSqliteProgress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **envPrefix** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shellEscape** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCliInstallPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isWslEnabled** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseVersion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **compareVersions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **menu** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/menu.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **createMenu** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **setupApp** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **emitDeepLinks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **focusMainWindow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setInitStep** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setupServerConnection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **initialize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **wireMenu** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **killSidecar** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ensureLoopbackNoProxy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSidecarPort** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sqliteFileExists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setupAutoUpdater** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkUpdate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **installUpdate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkForUpdates** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **delay** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **defer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **apps** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/apps.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **checkAppExists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveAppPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **wslPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkMacosApp** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveWindowsAppPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **windows** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/windows.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **iconsDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **iconPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setDockIcon** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createMainWindow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createLoadingWindow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadWindow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **injectGlobals** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **wireZoom** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **server** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/server.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **getDefaultServerUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setDefaultServerUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getWslConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setWslConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSavedServerUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **spawnLocalServer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkHealth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **checkHealthOrAskRetry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeHostnameForUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getServerUrlFromConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **migrate** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/migrate.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **tauriDir** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tauriAppId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrateFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **migrate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ipc** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/ipc.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **registerIpcHandlers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sendSqliteMigrationProgress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sendMenuCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **sendDeepLinks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **logging** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/logging.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **initLogging** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **markdown** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/main/markdown.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **parseMarkdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **cli** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/renderer/cli.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **installCli** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **updater** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/renderer/updater.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **runUpdater** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **index** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/desktop-electron/src/renderer/i18n/index.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **detectLocale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseLocale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseRecord** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseStored** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pickLocale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **t** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **initI18n** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **theme-tool** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/theme-tool.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **ThemeTool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **use-providers** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/hooks/use-providers.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useProviders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **sync** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/sync.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useSync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **sdk** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/sdk.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useSDK** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **layout** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/layout.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useLayout** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **platform** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/platform.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **usePlatform** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **prompt** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/prompt.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **clonePart** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clonePrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isPromptEqual** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **usePrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **permission** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/permission.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **usePermission** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **comments** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/comments.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useComments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **local** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/local.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useLocal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **global-sync** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/global-sync.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useGlobalSync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **file** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/file.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **selectionFromLines** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useFile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **command** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/command.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **useCommand** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **language** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/language.ts
+ - 🏗️ Layer: Unknown
+ - ƒ **render** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **useLanguage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DashboardTypes** (`Module`) `[TRIVIAL]`
+ - 📝 TypeScript interfaces for Dashboard entities
+ - 🏗️ Layer: Domain
+- 🧩 **Counter** (`Component`) `[TRIVIAL]`
+ - 📝 Simple counter demo component
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `state`
+- 📦 **stores_module** (`Module`)
+ - 📝 Global state management using Svelte stores.
+ - 🏗️ Layer: UI-State
+ - 📦 **plugins** (`Data`) `[TRIVIAL]`
+ - 📝 Store for the list of available plugins.
+ - 📦 **tasks** (`Data`) `[TRIVIAL]`
+ - 📝 Store for the list of tasks.
+ - 📦 **selectedPlugin** (`Data`) `[TRIVIAL]`
+ - 📝 Store for the currently selected plugin.
+ - 📦 **selectedTask** (`Data`) `[TRIVIAL]`
+ - 📝 Store for the currently selected task.
+ - 📦 **currentPage** (`Data`) `[TRIVIAL]`
+ - 📝 Store for the current page.
+ - 📦 **taskLogs** (`Data`) `[TRIVIAL]`
+ - 📝 Store for the logs of the currently selected task.
+ - ƒ **fetchPlugins** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches plugins from the API and updates the plugins store.
+ - ƒ **fetchTasks** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches tasks from the API and updates the tasks store.
+- 📦 **toasts_module** (`Module`) `[TRIVIAL]`
+ - 📝 Manages toast notifications using a Svelte writable store.
+ - 🏗️ Layer: UI-State
+ - 📦 **toasts** (`Data`) `[TRIVIAL]`
+ - 📝 Writable store containing the list of active toasts.
+ - ƒ **addToast** (`Function`) `[TRIVIAL]`
+ - 📝 Adds a new toast message.
+ - ƒ **removeToast** (`Function`) `[TRIVIAL]`
+ - 📝 Removes a toast message by ID.
+ - ƒ **buildToastKey** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **shouldSkipDuplicateToast** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **api_module** (`Module`)
+ - 📝 Handles all communication with the backend API.
+ - 🏗️ Layer: Infra-API
+ - 🔗 DEPENDS_ON -> `toasts_module`
+ - ƒ **buildApiError** (`Function`) `[TRIVIAL]`
+ - 📝 Creates a normalized Error object for failed API responses.
+ - ƒ **notifyApiError** (`Function`) `[TRIVIAL]`
+ - 📝 Shows toast for API errors with explicit handling of critical statuses.
+ - ƒ **shouldSuppressApiErrorToast** (`Function`) `[TRIVIAL]`
+ - 📝 Avoid noisy toasts for expected non-critical API failures.
+ - ƒ **getWsUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the WebSocket URL for a specific task, with fallback logic.
+ - ƒ **getAuthHeaders** (`Function`) `[TRIVIAL]`
+ - 📝 Returns headers with Authorization if token exists.
+ - ƒ **fetchApi** (`Function`) `[TRIVIAL]`
+ - 📝 Generic GET request wrapper.
+ - ƒ **fetchApiBlob** (`Function`) `[TRIVIAL]`
+ - 📝 Generic GET wrapper for binary payloads.
+ - ƒ **postApi** (`Function`) `[TRIVIAL]`
+ - 📝 Generic POST request wrapper.
+ - ƒ **deleteApi** (`Function`) `[TRIVIAL]`
+ - 📝 Generic DELETE request wrapper.
+ - ƒ **requestApi** (`Function`) `[TRIVIAL]`
+ - 📝 Generic request wrapper.
+ - 📦 **api** (`Data`) `[TRIVIAL]`
+ - 📝 API client object with specific methods.
+- 📦 **Utils** (`Module`) `[TRIVIAL]`
+ - 📝 General utility functions (class merging)
+ - 🏗️ Layer: Infra
+ - ƒ **cn** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🗄️ **authStore** (`Store`)
+ - 📝 Manages the global authentication state on the frontend.
+ - 🏗️ Layer: Feature
+ - 🔗 BINDS_TO -> `Navbar`
+ - 📦 **AuthState** (`Interface`) `[TRIVIAL]`
+ - 📝 Defines the structure of the authentication state.
+ - ƒ **createAuthStore** (`Function`) `[TRIVIAL]`
+ - 📝 Creates and configures the auth store with helper methods.
+ - ƒ **setToken** (`Function`) `[TRIVIAL]`
+ - 📝 Updates the store with a new JWT token.
+ - ƒ **setUser** (`Function`) `[TRIVIAL]`
+ - 📝 Sets the current user profile data.
+ - ƒ **logout** (`Function`) `[TRIVIAL]`
+ - 📝 Clears authentication state and storage.
+ - ƒ **setLoading** (`Function`) `[TRIVIAL]`
+ - 📝 Updates the loading state.
+- 📦 **Permissions** (`Module`)
+ - 📝 Shared frontend RBAC utilities for route guards and menu visibility.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Admin role always bypasses explicit permission checks.
+ - ƒ **normalizePermissionRequirement** (`Function`) `[TRIVIAL]`
+ - 📝 Convert permission requirement string to canonical resource/action tuple.
+ - ƒ **isAdminUser** (`Function`) `[TRIVIAL]`
+ - 📝 Determine whether user has Admin role.
+ - ƒ **hasPermission** (`Function`) `[TRIVIAL]`
+ - 📝 Check if user has a required resource/action permission.
+ - ƒ **normalizeAction** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **PermissionsTest** (`Module`)
+ - 📝 Verifies frontend RBAC permission parsing and access checks.
+ - 🏗️ Layer: UI (Tests)
+- 📦 **Debounce** (`Module`) `[TRIVIAL]`
+ - 📝 Debounce utility for limiting function execution rate
+ - 🏗️ Layer: Infra
+ - ƒ **debounce** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🗄️ **health_store** (`Store`)
+ - 📝 Manage dashboard health summary state and failing counts for UI badges.
+ - 🏗️ Layer: UI
+ - 🔗 DEPENDS_ON -> `api_module`
+- 📦 **health** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/stores/health.js
+ - 🏗️ Layer: Unknown
+ - ƒ **createHealthStore** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🗄️ **assistantChat** (`Store`)
+ - 📝 Control assistant chat panel visibility and active conversation binding.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: conversationId persists while panel toggles unless explicitly reset.
+ - 🔗 BINDS_TO -> `AssistantChatPanel`
+ - ƒ **toggleAssistantChat** (`Function`) `[TRIVIAL]`
+ - 📝 Toggle assistant panel visibility.
+ - ƒ **openAssistantChat** (`Function`) `[TRIVIAL]`
+ - 📝 Open assistant panel.
+ - ƒ **closeAssistantChat** (`Function`) `[TRIVIAL]`
+ - 📝 Close assistant panel.
+ - ƒ **setAssistantConversationId** (`Function`) `[TRIVIAL]`
+ - 📝 Bind current conversation id in UI state.
+- 🗄️ **taskDrawer** (`Store`) `[CRITICAL]`
+ - 📝 Manage Task Drawer visibility and resource-to-task mapping
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: resourceTaskMap always reflects current task associations
+- 📦 **taskDrawer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/stores/taskDrawer.js
+ - 🏗️ Layer: Unknown
+ - ƒ **readAutoOpenTaskDrawerPreference** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openDrawerForTask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setTaskDrawerAutoOpenPreference** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTaskDrawerAutoOpenPreference** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openDrawerForTaskIfPreferred** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openDrawer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closeDrawer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateResourceTask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTaskForResource** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🗄️ **sidebar** (`Store`)
+ - 📝 Manage sidebar visibility and navigation state
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: isExpanded state is always synced with localStorage
+- 📦 **sidebar** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/stores/sidebar.js
+ - 🏗️ Layer: Unknown
+ - ƒ **toggleSidebar** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setActiveItem** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setMobileOpen** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closeMobile** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleMobileSidebar** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🗄️ **environmentContext** (`Store`)
+ - 📝 Global selected environment context for navigation and safety cues.
+ - 🏗️ Layer: UI-State
+- 📦 **environmentContext** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/stores/environmentContext.js
+ - 🏗️ Layer: Unknown
+ - ƒ **getStoredSelectedEnvId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **persistSelectedEnvId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasAuthToken** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveSelectedEnvId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applySelectedEnvId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refreshEnvironmentContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **initializeEnvironmentContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setSelectedEnvironment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🗄️ **activity** (`Store`)
+ - 📝 Track active task count for navbar indicator
+ - 🏗️ Layer: UI
+ - 🔗 DEPENDS_ON -> `taskDrawer`
+- 🗄️ **datasetReviewSession** (`Store`)
+ - 📝 Manage active dataset review session state, including loading, local edits, error capture, and reset semantics for the active review workspace.
+ - 🏗️ Layer: UI
+ - 🔗 DEPENDS_ON -> `api_module`
+- 📦 **datasetReviewSession** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/stores/datasetReviewSession.js
+ - 🏗️ Layer: Unknown
+ - ƒ **setSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setLoading** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setDirty** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **patchSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSessionUiPhase** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SidebarIntegrationTest** (`Module`)
+ - 📝 Unit tests for sidebar store
+ - 🏗️ Layer: UI
+- 📦 **SidebarTest** (`Module`)
+ - 📝 Unit tests for sidebar store
+ - 🏗️ Layer: Domain (Tests)
+ - 🔒 Invariant: Sidebar store transitions must be deterministic across desktop/mobile toggles.
+ - ƒ **test_sidebar_initial_state** (`Function`) `[TRIVIAL]`
+ - 📝 Verify initial sidebar store values when no persisted state is available.
+ - ƒ **test_toggleSidebar** (`Function`) `[TRIVIAL]`
+ - 📝 Verify desktop sidebar expansion toggles deterministically.
+ - ƒ **test_setActiveItem** (`Function`) `[TRIVIAL]`
+ - 📝 Default purpose
+ - ƒ **test_mobile_functions** (`Function`) `[TRIVIAL]`
+ - 📝 Default purpose
+- 📦 **ActivityTest** (`Module`)
+ - 📝 Unit tests for activity store
+ - 🏗️ Layer: UI
+ - 🔗 DEPENDS_ON -> `frontend.src.lib.stores.taskDrawer`
+- 📦 **setupTests** (`Module`)
+ - 📝 Global test setup with mocks for SvelteKit modules
+ - 🏗️ Layer: UI
+- 📦 **TaskDrawerTest** (`Module`)
+ - 📝 Unit tests for task drawer store
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Store state transitions remain deterministic for open/close and task-status mapping.
+- 📦 **DatasetReviewSessionStoreTests** (`Module`)
+ - 📝 Unit tests for dataset review session store.
+ - 🏗️ Layer: UI
+- 📦 **AssistantChatTest** (`Module`)
+ - 📝 Validate assistant chat store visibility and conversation binding transitions.
+ - 🏗️ Layer: UI Tests
+ - 🔒 Invariant: Each test starts from default closed state.
+ - 🔗 DEPENDS_ON -> `assistantChatStore`
+ - ƒ **assistantChatStore_tests** (`Function`)
+ - 📝 Group store unit scenarios for assistant panel behavior.
+- 📦 **navigation** (`Mock`) `[TRIVIAL]`
+ - 📝 Mock for $app/navigation in tests
+ - 🔒 Invariant: Includes SvelteKit v1-only APIs (push, prefetchRoutes) as compatibility surface for legacy test consumers; keep until all imports migrate to SvelteKit v2-compatible mocks.
+ - 🔗 DEPENDS_ON -> `$app/navigation`
+ - 🔗 BINDS_TO -> `FrontendStoreLegacyNavigationTests`
+- 📦 **stores** (`Mock`) `[TRIVIAL]`
+ - 📝 Mock for $app/stores in tests
+ - 🔒 Invariant: Mocks $app/stores which is a SvelteKit v1 module; SvelteKit v2 uses $app/state. Verify no active test files import this mock before removal.
+ - 🔗 DEPENDS_ON -> `$app/stores`
+ - 🔗 BINDS_TO -> `FrontendStoreLegacyStateTests`
+- 📦 **state_mock** (`Module`) `[TRIVIAL]`
+ - 📝 Mock for AppState in vitest route/component tests.
+ - 🏗️ Layer: UI Tests
+- 📦 **environment** (`Mock`) `[TRIVIAL]`
+ - 📝 Mock for $app/environment in tests
+- 📦 **mock_env_public** (`Module`)
+ - 📝 Mock for $env/static/public SvelteKit module in vitest
+ - 🏗️ Layer: UI (Tests)
+- 📦 **ReportsApi** (`Module`) `[CRITICAL]`
+ - 📝 Wrapper-based reports API client for list/detail retrieval without direct native fetch usage.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Uses existing api wrapper methods and returns structured errors for UI-state mapping.
+ - 🔗 DEPENDS_ON -> `DEF:api_module`
+ - ƒ **buildReportQueryString** (`Function`) `[TRIVIAL]`
+ - 📝 Build query string for reports list endpoint from filter options.
+ - ƒ **normalizeApiError** (`Function`) `[TRIVIAL]`
+ - 📝 Convert unknown API exceptions into deterministic UI-consumable error objects.
+ - ƒ **getReports** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch unified report list using existing request wrapper.
+ - ƒ **getReportDetail** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch one report detail by report_id.
+- 📦 **AssistantApi** (`Module`)
+ - 📝 API client wrapper for assistant chat, confirmation actions, and history retrieval.
+ - 🏗️ Layer: Infra-API
+ - 🔒 Invariant: All assistant requests must use requestApi wrapper (no native fetch).
+ - 🔗 DEPENDS_ON -> `api_module`
+ - ƒ **sendAssistantMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Send a user message to assistant orchestrator endpoint.
+ - ƒ **confirmAssistantOperation** (`Function`) `[TRIVIAL]`
+ - 📝 Confirm a pending risky assistant operation.
+ - ƒ **cancelAssistantOperation** (`Function`) `[TRIVIAL]`
+ - 📝 Cancel a pending risky assistant operation.
+ - ƒ **getAssistantHistory** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve paginated assistant conversation history.
+ - ƒ **getAssistantConversations** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve paginated conversation list for assistant sidebar/history switcher.
+ - ƒ **deleteAssistantConversation** (`Function`) `[TRIVIAL]`
+ - 📝 Soft-delete or hard-delete a conversation.
+- 📦 **ReportsApiTest** (`Module`)
+ - 📝 Unit tests for reports API client functions: query string building, error normalization, and fetch wrappers.
+ - 🏗️ Layer: Infra (Tests)
+ - 🔒 Invariant: Pure functions produce deterministic output. Async wrappers propagate structured errors.
+ - ℂ **TestBuildReportQueryString** (`Class`) `[TRIVIAL]`
+ - 📝 Validate query string construction from filter options.
+ - ℂ **TestNormalizeApiError** (`Class`) `[TRIVIAL]`
+ - 📝 Validate error normalization for UI-state mapping.
+ - ℂ **TestGetReportsAsync** (`Class`) `[TRIVIAL]`
+ - 📝 Validate getReports and getReportDetail with mocked api.fetchApi.
+- 🧩 **Select** (`Component`) `[TRIVIAL]`
+ - 📝 Standardized dropdown selection component.
+ - 🏗️ Layer: Atom
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+- 📦 **ui** (`Module`) `[TRIVIAL]`
+ - 📝 Central export point for standardized UI components.
+ - 🏗️ Layer: Atom
+ - 🔒 Invariant: All components exported here must follow Semantic Protocol.
+- 🧩 **PageHeader** (`Component`) `[TRIVIAL]`
+ - 📝 Standardized page header with title and action area.
+ - 🏗️ Layer: Atom
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `props`
+- 🧩 **Card** (`Component`) `[TRIVIAL]`
+ - 📝 Standardized container with padding and elevation.
+ - 🏗️ Layer: Atom
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `props`
+- 🧩 **Button** (`Component`) `[TRIVIAL]`
+ - 📝 Define component interface and default values (Svelte 5 Runes).
+ - 🏗️ Layer: Atom
+ - 🔒 Invariant: Supports accessible labels and keyboard navigation.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `props`
+- 🧩 **Input** (`Component`) `[TRIVIAL]`
+ - 📝 Standardized text input component with label and error handling.
+ - 🏗️ Layer: Atom
+ - 🔒 Invariant: Consistent spacing and focus states.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+- 🧩 **LanguageSwitcher** (`Component`) `[TRIVIAL]`
+ - 📝 Dropdown component to switch between supported languages.
+ - 🏗️ Layer: Atom
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `locale`
+ - 🔗 BINDS_TO -> `i18n.locale`
+- 📦 **i18n** (`Module`)
+ - 📝 Determines the starting locale.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Persistence is handled via LocalStorage.
+ - 🔗 DEPENDS_ON -> `i18n_ru_locale`
+ - 🔗 DEPENDS_ON -> `i18n_en_locale`
+ - 🗄️ **locale** (`Store`) `[TRIVIAL]`
+ - 📝 Holds the current active locale string.
+ - 🗄️ **t** (`Store`) `[TRIVIAL]`
+ - 📝 Derived store providing the translation dictionary.
+ - ƒ **_** (`Function`) `[TRIVIAL]`
+ - 📝 Get translation by key path.
+- 🧩 **AssistantChatPanel** (`Component`)
+ - 📝 Slide-out assistant chat panel for natural language command execution and task tracking.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Risky operations are executed only through explicit confirm action.
+ - ⬅️ READS_FROM `app`
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - 🔗 BINDS_TO -> `assistantChat`
+ - 🔗 CALLS -> `AssistantApi`
+ - 🔗 DISPATCHES -> `taskDrawer`
+ - ƒ **loadHistory** (`Function`) `[TRIVIAL]`
+ - 📝 Load current conversation history when panel becomes visible.
+ - ƒ **loadConversations** (`Function`) `[TRIVIAL]`
+ - 📝 Load paginated conversation summaries for quick switching UI.
+ - ƒ **removeConversation** (`Function`) `[TRIVIAL]`
+ - 📝 Removes a conversation from the list and deletes it from the backend.
+ - ƒ **loadOlderMessages** (`Function`) `[TRIVIAL]`
+ - 📝 Lazy-load older messages for active conversation when user scrolls to top.
+ - ƒ **appendLocalUserMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Add optimistic local user message before backend response.
+ - ƒ **appendAssistantResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize and append assistant response payload to chat list.
+ - ƒ **handleSend** (`Function`) `[TRIVIAL]`
+ - 📝 Submit user command to assistant orchestration API.
+ - ƒ **selectConversation** (`Function`) `[TRIVIAL]`
+ - 📝 Switch active chat context to selected conversation item.
+ - ƒ **startNewConversation** (`Function`) `[TRIVIAL]`
+ - 📝 Create local empty chat context that will be persisted on first message.
+ - ƒ **handleAction** (`Function`) `[TRIVIAL]`
+ - 📝 Execute assistant action button behavior (open task/reports, confirm, cancel).
+ - ƒ **handleKeydown** (`Function`) `[TRIVIAL]`
+ - 📝 Submit command by Enter while preserving multiline input with Shift+Enter.
+ - ƒ **stateClass** (`Function`) `[TRIVIAL]`
+ - 📝 Map assistant state to visual badge style class.
+ - ƒ **handleHistoryScroll** (`Function`) `[TRIVIAL]`
+ - 📝 Trigger lazy history fetch when user scroll reaches top boundary.
+- 📦 **AssistantChatPanel** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/assistant/AssistantChatPanel.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **buildConversationTitle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setConversationFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatConversationTime** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadLlmStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AssistantFirstMessageIntegrationTest** (`Module`)
+ - 📝 Verify first optimistic user message stays visible while a new conversation request is pending.
+ - 🏗️ Layer: UI Tests
+ - 🔒 Invariant: Starting a new conversation must not trigger history reload that overwrites the first local user message.
+ - ƒ **assistant_first_message_tests** (`Function`)
+ - 📝 Guard optimistic first-message UX against history reload race in new conversation flow.
+- 📦 **AssistantChatIntegrationTest** (`Module`)
+ - 📝 Contract-level integration checks for assistant chat panel implementation and localization wiring.
+ - 🏗️ Layer: UI Tests
+ - 🔒 Invariant: Critical assistant UX states and action hooks remain present in component source.
+ - ƒ **readJson** (`Function`) `[TRIVIAL]`
+ - 📝 Read and parse JSON fixture file from disk.
+ - ƒ **assistant_chat_contract_tests** (`Function`) `[TRIVIAL]`
+ - 📝 Validate assistant chat component contract and locale integration without DOM runtime dependency.
+- 🧩 **HealthMatrix** (`Component`)
+ - 📝 Visual grid/matrix representing the health status of dashboards.
+ - 🏗️ Layer: UI/Component
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - ⬅️ READS_FROM `lib`
+- 🧩 **PolicyForm** (`Component`)
+ - 📝 Form for creating and editing validation policies.
+ - 🏗️ Layer: UI/Component
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - ➡️ WRITES_TO `props`
+- 📦 **PolicyForm** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/health/PolicyForm.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **getSafePolicy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSafeEnvironments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildFormData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleDay** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **ReportCard** (`Component`)
+ - 📝 Render one report with explicit textual type label and profile-driven visual variant.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Unknown task type always uses fallback profile.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `derived`
+ - 🔗 DEPENDS_ON -> `reportTypeProfiles`
+ - 🔗 DEPENDS_ON -> `i18n`
+- 📦 **ReportCard** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/reports/ReportCard.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **getStatusClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getStatusLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatDate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **onSelect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **ReportsList** (`Component`)
+ - 📝 Render unified list of normalized reports with canonical minimum fields.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Every rendered row shows task_type label, status, summary, and updated_at.
+ - ➡️ WRITES_TO `props`
+ - 🔗 DEPENDS_ON -> `i18n`
+- 📦 **ReportsList** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/reports/ReportsList.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **handleSelect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ReportTypeProfiles** (`Module`) `[CRITICAL]`
+ - 📝 Deterministic mapping from report task_type to visual profile with one fallback.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Unknown type always resolves to fallback profile.
+ - 🔗 DEPENDS_ON -> `i18n`
+ - ƒ **getReportTypeProfile** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve visual profile by task type with guaranteed fallback.
+- 🧩 **ReportDetailPanel** (`Component`)
+ - 📝 Display detailed report context with diagnostics and actionable recovery guidance.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Failed/partial reports surface actionable hints when available.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `props`
+ - ⬅️ READS_FROM `t`
+ - 🔗 DEPENDS_ON -> `i18n`
+- 📦 **ReportDetailPanel** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/reports/ReportDetailPanel.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **notProvided** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatDate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ReportsFilterPerformanceTest** (`Module`)
+ - 📝 Guard test for report filter responsiveness on moderate in-memory dataset.
+ - 🏗️ Layer: UI (Tests)
+ - ƒ **applyFilters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **makeDataset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ReportsPageTest** (`Module`)
+ - 📝 Integration-style checks for unified mixed-type reports rendering expectations.
+ - 🏗️ Layer: UI (Tests)
+ - 🔒 Invariant: Mixed fixture includes all supported report types in one list.
+ - ƒ **collectVisibleTypeLabels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ReportTypeProfilesTest** (`Module`)
+ - 📝 Validate report type profile mapping and unknown fallback behavior.
+ - 🏗️ Layer: UI (Tests)
+ - 🔒 Invariant: Unknown task_type always resolves to the fallback profile.
+- 📦 **ReportsListTest** (`Module`)
+ - 📝 Test ReportsList component iteration and event forwarding.
+ - 🏗️ Layer: UI
+- 📦 **ReportCardTest** (`Module`)
+ - 📝 Test UX states and transitions for ReportCard component
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Each test asserts at least one observable UX contract outcome.
+- 📦 **ReportDetailUxTest** (`Module`)
+ - 📝 Test UX states and recovery for ReportDetailPanel component
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Detail UX tests keep placeholder-safe rendering and recovery visibility verifiable.
+- 📦 **ReportDetailIntegrationTest** (`Module`)
+ - 📝 Validate detail-panel behavior for failed reports and recovery guidance visibility.
+ - 🏗️ Layer: UI (Tests)
+ - 🔒 Invariant: Failed report detail exposes actionable next actions when available.
+ - ƒ **buildFailedDetailFixture** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ReportsFixtures** (`Module`)
+ - 📝 Shared frontend fixtures for unified reports states.
+ - 🏗️ Layer: UI
+- 🧩 **SemanticLayerReview** (`Component`) `[TRIVIAL]`
+ - 📝 Surface field-level semantic decisions with provenance, confidence, candidate acceptance, and manual override safeguards for US2 review flow. -->
+ - 🏗️ Layer: UI -->
+ - ⬅️ READS_FROM `props`
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - 🔗 BINDS_TO -> `api_module`
+ - 🔗 BINDS_TO -> `DatasetReviewWorkspace`
+- 📦 **SemanticLayerReview** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/dataset-review/SemanticLayerReview.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **updateFieldMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetFieldMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **startManualEdit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cancelManualEdit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSourceLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCandidateStatusLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getProvenanceLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getConfidenceLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCurrentValueSummary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **persistFieldSemantic** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **acceptCandidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **saveManualOverride** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mutateLock** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **approveAllCandidates** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **recordFeedback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **SourceIntakePanel** (`Component`) `[TRIVIAL]`
+ - 📝 Collect initial dataset source input through Superset link paste or dataset selection entry paths. -->
+ - 🏗️ Layer: UI -->
+ - ⬅️ READS_FROM `props`
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - 🔗 BINDS_TO -> `api_module`
+- 📦 **SourceIntakePanel** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/dataset-review/SourceIntakePanel.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **setMode** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getInlineHint** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validatePayload** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **submitPayload** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **submitSupersetLink** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **submitDatasetSelection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **ClarificationDialog** (`Component`) `[TRIVIAL]`
+ - 📝 Present one clarification question at a time with explicit why-it-matters context, answer actions, and resumable state transitions for US2. -->
+ - 🏗️ Layer: UI -->
+ - ⬅️ READS_FROM `props`
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - 🔗 BINDS_TO -> `api_module`
+ - 🔗 BINDS_TO -> `assistantChat`
+ - 🔗 BINDS_TO -> `DatasetReviewWorkspace`
+- 📦 **ClarificationDialog** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/dataset-review/ClarificationDialog.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **clearFeedback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeAnswerValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **recordClarificationFeedback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resumeClarification** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **submitAnswer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **requestAssistantGuidance** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **CompiledSQLPreview** (`Component`) `[TRIVIAL]`
+ - 📝 Present the exact Superset-generated compiled SQL preview, expose readiness or staleness clearly, and preserve readable recovery paths when preview generation fails. -->
+ - 🏗️ Layer: UI -->
+ - ⬅️ READS_FROM `props`
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - 🔗 BINDS_TO -> `api_module`
+ - 🔗 BINDS_TO -> `DatasetReviewWorkspace`
+- 📦 **CompiledSQLPreview** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/dataset-review/CompiledSQLPreview.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **resolvePreviewState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getStateLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getStateTone** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCompilerLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getPreviewBodyText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildPreviewTechnicalDetails** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **requestPreview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **jumpToMapping** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **ValidationFindingsPanel** (`Component`) `[TRIVIAL]`
+ - 📝 Present validation findings grouped by severity with explicit resolution and actionability signals. -->
+ - 🏗️ Layer: UI -->
+ - ⬅️ READS_FROM `props`
+ - ⬅️ READS_FROM `derived`
+ - ⬅️ READS_FROM `lib`
+ - 🔗 BINDS_TO -> `DatasetReviewWorkspace`
+- 📦 **ValidationFindingsPanel** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/dataset-review/ValidationFindingsPanel.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **groupFindingsBySeverity** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildTargetFromFinding** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **jumpToFindingTarget** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getResolutionLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getAreaLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getRecommendedActionLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFindingMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFindingTechnicalReference** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFindingResolutionNote** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **LaunchConfirmationPanel** (`Component`) `[TRIVIAL]`
+ - 📝 Summarize final execution context, surface launch blockers explicitly, and confirm only a gate-complete SQL Lab launch request. -->
+ - 🏗️ Layer: UI -->
+ - ⬅️ READS_FROM `props`
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - 🔗 BINDS_TO -> `api_module`
+ - 🔗 BINDS_TO -> `DatasetReviewWorkspace`
+- 📦 **LaunchConfirmationPanel** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/dataset-review/LaunchConfirmationPanel.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **buildLaunchBlockers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getStateLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getStateClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **jumpTo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **confirmLaunch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **ExecutionMappingReview** (`Component`) `[TRIVIAL]`
+ - 📝 Review imported-filter to template-variable mappings, surface effective values and blockers, and require explicit approval for warning-sensitive execution inputs before preview or launch. -->
+ - 🏗️ Layer: UI -->
+ - ⬅️ READS_FROM `props`
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - 🔗 BINDS_TO -> `api_module`
+ - 🔗 BINDS_TO -> `DatasetReviewWorkspace`
+- 📦 **ExecutionMappingReview** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/dataset-review/ExecutionMappingReview.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **setRowMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetRowMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getApprovalLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getWarningLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getMethodLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stringifyValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getEffectiveValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getRowState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **startManualOverride** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cancelManualOverride** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeOverrideValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **approveMapping** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **approveAllMappings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **saveManualOverride** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SourceIntakePanelUxTests** (`Module`)
+ - 📝 Verify source intake entry paths, validation feedback, and submit payload behavior for US1.
+ - 🏗️ Layer: UI
+- 📦 **DatasetReviewUs2UxTests** (`Module`)
+ - 📝 Verify US2 semantic field review and one-question clarification UX contracts.
+ - 🏗️ Layer: UI
+- 📦 **DatasetReviewUs3UxTests** (`Module`)
+ - 📝 Verify US3 mapping review, Superset preview, and launch confirmation UX contracts.
+ - 🏗️ Layer: UI
+- 📦 **ValidationFindingsPanelUxTests** (`Module`)
+ - 📝 Verify grouped findings visibility, empty state, and remediation jump behavior for US1.
+ - 🏗️ Layer: UI
+- 🧩 **Sidebar** (`Component`)
+ - 📝 Persistent left sidebar with resource categories navigation
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Always shows active category and item
+ - ⬅️ READS_FROM `app`
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `derived`
+ - 🔗 BINDS_TO -> `sidebar`
+- 📦 **Sidebar** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/layout/Sidebar.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **withExpandedCategory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleExpandedCategory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleItemClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleCategoryToggle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSubItemClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleToggleClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleOverlayClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **TopNavbar** (`Component`)
+ - 📝 Unified top navigation bar with Logo, Search, Activity, and User menu
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Always visible on non-login pages
+ - ⬅️ READS_FROM `app`
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - 🔗 BINDS_TO -> `activity`
+- 📦 **TopNavbar** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/layout/TopNavbar.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **toggleUserMenu** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closeUserMenu** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleLogout** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleActivityClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleAssistantClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hydrateTaskDrawerPreference** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSearchFocus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearSearchState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleDocumentClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleHamburgerClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleGlobalEnvironmentChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildSearchResultSections** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **triggerSearch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSearchInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openSearchResult** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSearchKeydown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **Breadcrumbs** (`Component`)
+ - 📝 Display page hierarchy navigation
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Always shows current page path
+ - ⬅️ READS_FROM `app`
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `props`
+ - 🔗 DEPENDS_ON -> `page`
+- 📦 **Breadcrumbs** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/layout/Breadcrumbs.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **getBreadcrumbs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatBreadcrumbLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCrumbMeta** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **TaskDrawer** (`Component`)
+ - 📝 Global task drawer for monitoring background operations
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Drawer shows logs for active task or remains closed
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - ➡️ WRITES_TO `derived`
+ - 🔗 BINDS_TO -> `taskDrawer`
+ - ƒ **disconnectWebSocket** (`Function`)
+ - 📝 Disconnects the active WebSocket connection
+ - ƒ **loadRecentTasks** (`Function`) `[TRIVIAL]`
+ - 📝 Load recent tasks for list mode display
+ - ƒ **selectTask** (`Function`) `[TRIVIAL]`
+ - 📝 Select a task from list to view details
+ - ƒ **goBackToList** (`Function`)
+ - 📝 Return to task list view from task details
+- 📦 **TaskDrawer** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/layout/TaskDrawer.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **handleClose** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **goToReportsPage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleGlobalKeydown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeTaskId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isTaskFinished** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveLlmValidationStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **llmValidationBadgeClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getStatusClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **stopTaskDetailsPolling** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadEnvironmentOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveEnvironmentName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveEnvironmentId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeSupersetBaseUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveSupersetDashboardUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadActiveTaskDetails** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractPrimaryDashboardId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildTaskSummary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleOpenDashboardDeepLink** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleShowDiff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleOpenLlmReport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **connectWebSocket** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SidebarNavigation** (`Module`)
+ - 📝 Build sidebar navigation categories filtered by current user permissions.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Admin role can access all categories and subitems through permission utility.
+ - 🔗 DEPENDS_ON -> `frontend.src.lib.auth.permissions.hasPermission`
+ - ƒ **isItemAllowed** (`Function`) `[TRIVIAL]`
+ - 📝 Check whether a single menu node can be shown for a given user.
+ - ƒ **buildSidebarCategories** (`Function`) `[TRIVIAL]`
+ - 📝 Build translated sidebar categories and filter them by RBAC permissions.
+- 📦 **test_breadcrumbs.svelte** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/lib/components/layout/__tests__/test_breadcrumbs.svelte.js
+ - 🏗️ Layer: Unknown
+ - ƒ **getBreadcrumbs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatBreadcrumbLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SidebarNavigationTest** (`Module`)
+ - 📝 Verifies RBAC-based sidebar category and subitem visibility.
+ - 🏗️ Layer: UI (Tests)
+ - ƒ **makeUser** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ErrorPage** (`Page`)
+ - 📝 Global error page displaying HTTP status and messages
+ - 🏗️ Layer: UI
+- 📦 **RootLayoutConfig** (`Module`) `[TRIVIAL]`
+ - 📝 Root layout configuration (SPA mode)
+ - 🏗️ Layer: Infra
+- 📦 **HomePage** (`Page`) `[CRITICAL]`
+ - 📝 Redirect to preferred start page from profile settings with safe dashboards fallback.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Redirect target resolves to one of /dashboards, /datasets, /reports.
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeStartPage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveStartPagePath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **redirectToStartPage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ƒ **load** (`Function`) `[TRIVIAL]`
+ - 📝 Loads initial plugin data for the dashboard.
+- 📦 **RootLayout** (`Module`)
+ - 📝 Root layout component that provides global UI structure (Sidebar, Navbar, Footer, TaskDrawer, Toasts).
+ - 🏗️ Layer: UI (Layout)
+ - 🔒 Invariant: All pages except /login are wrapped in ProtectedRoute.
+ - 🔗 DEPENDS_ON -> `Sidebar`
+ - 🔗 DEPENDS_ON -> `TopNavbar`
+ - 🔗 DEPENDS_ON -> `Footer`
+ - 🔗 DEPENDS_ON -> `Toast`
+ - 🔗 DEPENDS_ON -> `ProtectedRoute`
+ - 🔗 DEPENDS_ON -> `TaskDrawer`
+ - 📦 **layout** (`Module`)
+ - 📝 Bind global layout shell and conditional login/full-app rendering.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Login route bypasses shell; all other routes are wrapped by ProtectedRoute.
+ - 🔗 BINDS_TO -> `Sidebar`
+- 📦 **DatasetHub** (`Page`)
+ - 📝 Dataset Hub - Dedicated hub for datasets with mapping progress
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Always shows datasets for the active environment from context store
+ - 🔗 BINDS_TO -> `sidebarStore`
+ - 🔗 BINDS_TO -> `taskDrawerStore`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/datasets/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **loadDatasets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSearch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handlePageChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handlePageSizeChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateSelectionState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleCheckboxChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSelectAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSelectVisible** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleAction** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleBulkMapColumns** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleBulkGenerateDocs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleTaskStatusClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTaskStatusIcon** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getMappingProgressClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DatasetReviewWorkspaceEntry** (`Page`) `[TRIVIAL]`
+ - 📝 Entry route for Dataset Review Workspace that allows starting a new resumable review session before navigating to a specific session id route. -->
+ - 🏗️ Layer: UI -->
+ - 🔗 CALLS -> `fetchApi`
+ - 🔗 CALLS -> `postApi`
+ - 🔗 BINDS_TO -> `SourceIntakePanel`
+ - 🔗 BINDS_TO -> `environmentContext`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/datasets/review/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **buildSessionUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatDateTime** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSessionMetaValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadExistingSessions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deleteSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **goToPage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSearch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **truncateText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getReadinessTone** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getReadinessHint** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **bootstrap** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSourceSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DatasetReviewEntryUxTests** (`Module`)
+ - 📝 Verify dataset review entry route exposes resumable sessions alongside the new session intake flow.
+ - 🏗️ Layer: UI
+ - ƒ **createSessionSummary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DatasetReviewEntryUxTests** (`Module`)
+ - 📝 Verify dataset review entry route exposes resumable sessions alongside the new session intake flow.
+ - 🏗️ Layer: UI
+ - ƒ **createSessionSummary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **DatasetReviewWorkspace** (`Component`) `[TRIVIAL]`
+ - 📝 Main dataset review workspace coordinating session state, progressive recovery, semantic review, clarification, preview, and launch UX. -->
+ - 🏗️ Layer: UI -->
+ - 🔒 Invariant: Navigation away from dirty session state must require explicit confirmation. -->
+ - ⬅️ READS_FROM `app`
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - 🔗 BINDS_TO -> `api_module`
+ - 🔗 BINDS_TO -> `assistantChat`
+ - 🔗 BINDS_TO -> `taskDrawer`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/datasets/review/[id]/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **normalizeJumpTarget** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getWorkspaceStateLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFallbackLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getRecommendedActionLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildImportMilestones** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildRecentActions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildWorkspaceLaunchBlockers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildSessionUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadSessionDetail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadClarificationState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **bootstrapWorkspace** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSourceSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleResumeSession** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateSessionLifecycle** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **exportArtifact** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleFindingJump** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **startSummaryEdit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cancelSummaryEdit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **saveSummaryDraft** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSemanticUpdated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleClarificationUpdated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleExecutionMappingUpdated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handlePreviewUpdated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleLaunchUpdated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSectionJump** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **primaryActionHandler** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getPrimaryActionCtaLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DatasetReviewWorkspaceUxTests** (`Module`)
+ - 📝 Verify US1-safe and US2-integrated dataset review workspace flow evidence for empty, load, import, semantics, clarification, and export behaviors.
+ - 🏗️ Layer: UI
+ - ƒ **createSessionDetail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **createClarificationState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DatasetDetail** (`Page`)
+ - 📝 Dataset Detail View - Shows detailed dataset information with columns, SQL, and linked dashboards
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Always shows dataset details when loaded
+ - 🔗 DEPENDS_ON -> `api_module`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/datasets/[id]/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **loadDatasetDetail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **navigateToDashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **goBack** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getColumnTypeClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getMappingProgress** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **UnifiedReportsPage** (`Component`) `[CRITICAL]`
+ - 📝 Unified reports page with filtering and resilient UX states for mixed task types.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: List state remains deterministic for active filter set.
+ - ⬅️ READS_FROM `lib`
+ - ⬅️ READS_FROM `t`
+ - ➡️ WRITES_TO `t`
+ - 🔗 DEPENDS_ON -> `ReportsApi`
+ - 🔗 DEPENDS_ON -> `ReportsList`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/reports/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **buildQuery** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadReports** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasActiveFilters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearFilters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **onFilterChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **onSelectReport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/reports/llm/[taskId]/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **formatDate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatMs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getDashboardCheckResult** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getCheckResultClasses** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadReport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **backToReports** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openTaskDetails** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **cleanupScreenshotBlobUrls** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadScreenshotBlobUrls** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openScreenshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ReportPageContractTest** (`Module`)
+ - 📝 Protect the LLM report page from self-triggering screenshot load effects.
+ - 🏗️ Layer: UI Tests
+ - ƒ **llm_report_screenshot_effect_contract** (`Function`)
+ - 📝 Ensure screenshot loading stays untracked from blob-url mutation state.
+- 🧩 **LoginPage** (`Component`)
+ - 📝 Provides the user interface for local and ADFS authentication.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Shows both local login form and ADFS SSO button.
+ - ⬅️ READS_FROM `app`
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `t`
+ - 🔗 CALLS -> `AuthApi`
+ - ƒ **handleLogin** (`Function`) `[TRIVIAL]`
+ - 📝 Submits the local login form to the backend.
+ - ƒ **handleADFSLogin** (`Function`) `[TRIVIAL]`
+ - 📝 Redirects the user to the ADFS login endpoint.
+- 📦 **StorageIndexPage** (`Page`) `[TRIVIAL]`
+ - 📝 Redirect to the backups page as the default storage view.
+ - 🏗️ Layer: Page
+ - 🔒 Invariant: Always redirects to /storage/backups.
+- 📦 **StorageReposPage** (`Module`)
+ - 📝 Dashboard management page for Git integration (moved from /git).
+ - 🏗️ Layer: UI (Page)
+ - 🔒 Invariant: Dashboard grid is always shown when an environment is selected.
+ - 🔗 DEPENDS_ON -> `RepositoryDashboardGrid`
+ - 🔗 DEPENDS_ON -> `api`
+ - 📦 **StorageReposPage** (`Page`) `[TRIVIAL]`
+ - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches the list of available environments.
+ - ƒ **fetchDashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches dashboards for a specific environment.
+ - ƒ **filterDashboardsWithRepositories** (`Function`) `[TRIVIAL]`
+ - 📝 Keep only dashboards that already have initialized Git repositories.
+- 📦 **DashboardHub** (`Page`)
+ - 📝 Dashboard Hub - Central hub for managing dashboards with Git status and task actions
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Always shows dashboards for the active environment from context store
+ - 🔗 BINDS_TO -> `sidebarStore`
+ - 🔗 BINDS_TO -> `taskDrawerStore`
+ - ƒ **DashboardHub.normalizeTaskStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize raw task status to stable lowercase token for UI.
+ - ƒ **DashboardHub.normalizeValidationStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize validation status to pass/fail/warn/unknown.
+ - ƒ **DashboardHub.getValidationBadgeClass** (`Function`) `[TRIVIAL]`
+ - 📝 Map validation level to badge class tuple.
+ - ƒ **DashboardHub.getValidationLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Map normalized validation level to compact UI label.
+ - ƒ **DashboardHub.normalizeOwners** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize owners payload to unique non-empty display labels.
+ - ƒ **DashboardHub.loadDashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Load full dashboard dataset for current environment and hydrate grid projection.
+ - ƒ **DashboardHub.handleTemporaryShowAll** (`Function`) `[TRIVIAL]`
+ - 📝 Temporarily disable profile-default dashboard filter for current page context.
+ - ƒ **DashboardHub.handleRestoreProfileFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Re-enable persisted profile-default filtering after temporary override.
+ - ƒ **DashboardHub.formatDate** (`Function`) `[TRIVIAL]`
+ - 📝 Convert ISO timestamp to locale date string.
+ - ƒ **DashboardHub.getGitSummaryLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Compute stable text label for git state column.
+ - ƒ **DashboardHub.getLlmSummaryLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Compute normalized LLM validation summary label.
+ - ƒ **DashboardHub.getColumnCellValue** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve comparable/filterable display value for any grid column.
+ - ƒ **DashboardHub.getFilterOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Build unique sorted value list for a column filter dropdown.
+ - ƒ **DashboardHub.getVisibleFilterOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Apply in-dropdown search over full filter options.
+ - ƒ **DashboardHub.toggleFilterDropdown** (`Function`) `[TRIVIAL]`
+ - 📝 Toggle active column filter popover.
+ - ƒ **DashboardHub.toggleFilterValue** (`Function`) `[TRIVIAL]`
+ - 📝 Add/remove specific filter value and reapply projection.
+ - ƒ **DashboardHub.clearColumnFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Reset selected values for one column.
+ - ƒ **DashboardHub.selectAllColumnFilterValues** (`Function`) `[TRIVIAL]`
+ - 📝 Select all currently visible values in filter popover.
+ - ƒ **DashboardHub.updateColumnFilterSearch** (`Function`) `[TRIVIAL]`
+ - 📝 Update local search token for one filter popover.
+ - ƒ **DashboardHub.hasColumnFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Determine if column has active selected values.
+ - ƒ **DashboardHub.doesDashboardPassColumnFilters** (`Function`) `[TRIVIAL]`
+ - 📝 Evaluate dashboard row against all active column filters.
+ - ƒ **DashboardHub.getSortValue** (`Function`) `[TRIVIAL]`
+ - 📝 Compute stable comparable sort key for chosen column.
+ - ƒ **DashboardHub.handleSort** (`Function`) `[TRIVIAL]`
+ - 📝 Toggle or switch sort order and reapply grid projection.
+ - ƒ **DashboardHub.getSortIndicator** (`Function`) `[TRIVIAL]`
+ - 📝 Return visual indicator for active/inactive sort header.
+ - ƒ **DashboardHub.applyGridTransforms** (`Function`) `[TRIVIAL]`
+ - 📝 Apply search + column filters + sort + pagination to grid data.
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/dashboards/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **handleDocumentClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeTaskStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeValidationStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getValidationBadgeClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getValidationLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeOwners** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadDashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSearch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handlePageChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handlePageSizeChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleTemporaryShowAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleRestoreProfileFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateSelectionState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **replaceSelectedIds** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearSelectedIds** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleCheckboxChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSelectAll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSelectVisible** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatDate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getGitSummaryLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getLlmSummaryLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getColumnCellValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getFilterOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getVisibleFilterOptions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleFilterDropdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleFilterValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearColumnFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **selectAllColumnFilterValues** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateColumnFilterSearch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasColumnFilter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **doesDashboardPassColumnFilters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSortValue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSort** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getSortIndicator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyGridTransforms** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleActionDropdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closeActionDropdown** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleAction** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleValidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleTargetEnvChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadDatabases** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleMappingUpdate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadDbMappings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **calculateDryRun** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleBulkMigrate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleBulkBackup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleTaskStatusClick** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **navigateToDashboardDetail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getStatusBadgeClass** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isGitBusy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setGitBusy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **ensureGitConfigs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **updateDashboardGitState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeRepositoryStatusPayload** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchDashboardGitStatusesBatch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refreshDashboardGitState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hydrateVisibleGitStatusesBatch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleGitInit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleGitSync** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleGitCommit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleGitPull** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleGitPush** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTaskStatusIcon** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getPaginationRange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleEnvironmentCreated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DashboardProfileOverrideIntegrationTest** (`Module`)
+ - 📝 Verifies temporary show-all override and restore-on-return behavior for profile-default dashboard filtering.
+ - 🏗️ Layer: UI (Tests)
+ - ƒ **buildFilteredResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **buildUnfilteredResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **HealthCenterPage** (`Component`)
+ - 📝 Main page for the Dashboard Health Center.
+ - 🏗️ Layer: UI/Page
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - ⬅️ READS_FROM `lib`
+ - 🔗 DEPENDS_ON -> `HealthMatrix`
+ - 🔗 CALLS -> `api_module`
+ - ƒ **loadData** (`Function`) `[TRIVIAL]`
+ - 📝 Load health summary rows and environment options for the current filter.
+ - ƒ **handleEnvChange** (`Function`) `[TRIVIAL]`
+ - 📝 Apply environment filter and trigger health summary reload.
+ - ƒ **handleDeleteReport** (`Function`) `[TRIVIAL]`
+ - 📝 Delete one health report row with confirmation and optimistic button lock.
+- 📦 **HealthPageIntegrationTest** (`Module`)
+ - 📝 Lock dashboard health page contract for slug navigation and report deletion.
+ - 🏗️ Layer: UI Tests
+- 📦 **DashboardDetail** (`Page`)
+ - 📝 Dashboard Detail View - Overview of charts and datasets linked to a dashboard
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Shows dashboard metadata, charts, and datasets for selected environment
+ - 🔗 DEPENDS_ON -> `api_module`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/dashboards/[id]/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **loadDashboardPage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadDashboardDetail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadTaskHistory** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **releaseThumbnailUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadThumbnail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runBackupTask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runLlmValidationTask** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openLlmReport** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toTaskTypeLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getTaskStatusClasses** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getValidationStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getValidationStatusClasses** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **goBack** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openDataset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **formatDate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadLlmStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **hasGitRepository** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveGitSyncState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **allChangedFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **countChangedByAnyPath** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getGitStatusMeta** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadGitStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadGitDiffPreview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runGitSyncAndOpenCommit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runGitPull** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **runGitPush** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleBranchChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **AdminRolesPage** (`Component`)
+ - 📝 UI for managing system roles and their permissions.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Only accessible by users with Admin role.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `t`
+ - ⬅️ READS_FROM `t`
+ - 🔗 DEPENDS_ON -> `adminService`
+ - 🔗 DEPENDS_ON -> `ProtectedRoute`
+ - ƒ **loadData** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches roles and available permissions.
+ - ƒ **openCreateModal** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes state for creating a new role.
+ - ƒ **openEditModal** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes state for editing an existing role.
+ - ƒ **handleSaveRole** (`Function`) `[TRIVIAL]`
+ - 📝 Submits role data (create or update).
+ - ƒ **handleDeleteRole** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a role after confirmation.
+- 🧩 **AdminUsersPage** (`Component`) `[TRIVIAL]`
+ - 📝 UI for managing system users and their roles.
+ - 🏗️ Layer: Feature
+ - 🔒 Invariant: Only accessible by users with "admin:users" permission.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `t`
+ - ⬅️ READS_FROM `t`
+ - 🔗 DEPENDS_ON -> `frontend.src.services.adminService`
+ - 🔗 DEPENDS_ON -> `frontend.src.components.auth.ProtectedRoute`
+ - ƒ **loadData** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches users and roles from the backend.
+ - ƒ **openCreateModal** (`Function`) `[TRIVIAL]`
+ - 📝 Prepares the form for creating a new user.
+ - ƒ **openEditModal** (`Function`) `[TRIVIAL]`
+ - 📝 Prepares the form for editing an existing user.
+ - ƒ **handleSaveUser** (`Function`) `[TRIVIAL]`
+ - 📝 Submits user data to the backend (create or update).
+ - ƒ **handleDeleteUser** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a user after confirmation.
+- 🧩 **AdminSettingsPage** (`Component`)
+ - 📝 UI for configuring Active Directory Group to local Role mappings for ADFS SSO and logging settings.
+ - 🏗️ Layer: Feature
+ - 🔒 Invariant: Only accessible by users with "admin:settings" permission.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `t`
+ - ⬅️ READS_FROM `t`
+ - 🔗 DEPENDS_ON -> `adminService`
+ - 🔗 DEPENDS_ON -> `ProtectedRoute`
+ - ƒ **loadData** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches AD mappings and roles from the backend to populate the UI.
+ - ƒ **handleCreateMapping** (`Function`) `[TRIVIAL]`
+ - 📝 Submits a new AD Group to Role mapping to the backend.
+ - ƒ **loadLoggingConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches current logging configuration from the backend.
+ - ƒ **saveLoggingConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Saves logging configuration to the backend.
+- 🧩 **LLMSettingsPage** (`Component`)
+ - 📝 Admin settings page for LLM provider configuration.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `t`
+ - ➡️ WRITES_TO `t`
+ - 🔗 CALLS -> `ProviderConfig`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/admin/settings/llm/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **isMultimodalModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getProviderById** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetchProviders** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **saveSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **MigrationDashboard** (`Component`) `[TRIVIAL]`
+ - 📝 Orchestrate migration UI workflow and route user actions to backend APIs and task store.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `effect`
+ - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches the list of environments from the API.
+ - ƒ **fetchDashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches dashboards for the selected source environment.
+ - ▦ **ReactiveDashboardFetch** (`Block`) `[TRIVIAL]`
+ - 📝 Automatically fetch dashboards when the source environment is changed.
+ - ƒ **fetchDatabases** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches databases from both environments and gets suggestions.
+ - ƒ **handleMappingUpdate** (`Function`) `[TRIVIAL]`
+ - 📝 Saves a mapping to the backend.
+ - ƒ **handleViewLogs** (`Function`) `[TRIVIAL]`
+ - 📝 Opens the log viewer for a specific task.
+ - ƒ **handlePasswordPrompt** (`Function`) `[TRIVIAL]`
+ - 📝 Reactive logic to show password prompt when a task is awaiting input.
+ - ▦ **ReactivePasswordPrompt** (`Block`) `[TRIVIAL]`
+ - 📝 Monitor selected task for input requests and trigger password prompt.
+ - ƒ **handleResumeMigration** (`Function`) `[TRIVIAL]`
+ - 📝 Resumes a migration task with provided passwords.
+ - ƒ **startMigration** (`Function`) `[TRIVIAL]`
+ - 📝 Initiates the migration process by sending the selection to the backend.
+ - ƒ **startDryRun** (`Function`) `[TRIVIAL]`
+ - 📝 Performs a dry-run migration to identify potential risks and changes.
+- ▦ **MigrationDashboardView** (`Block`) `[TRIVIAL]`
+ - 📝 Render migration configuration controls, action CTAs, dry-run results, and modal entry points.
+ - ▦ **MigrationHeader** (`Block`) `[TRIVIAL]`
+ - ▦ **TaskHistorySection** (`Block`) `[TRIVIAL]`
+ - ▦ **ActiveTaskSection** (`Block`) `[TRIVIAL]`
+ - ▦ **EnvironmentSelectionSection** (`Block`) `[TRIVIAL]`
+ - 🧩 **DashboardSelectionSection** (`Component`) `[TRIVIAL]`
+ - ▦ **MigrationOptionsSection** (`Block`) `[TRIVIAL]`
+ - ▦ **DryRunResultsSection** (`Block`) `[TRIVIAL]`
+ - ▦ **MigrationModals** (`Block`) `[TRIVIAL]`
+ - 📝 Render overlay components for log viewing and password entry.
+- ▦ **MappingsPageScript** (`Block`) `[TRIVIAL]`
+ - 📝 Define imports, state, and handlers that drive migration mappings page FSM.
+ - 🔗 CALLS -> `fetchEnvironments`
+ - 🔗 CALLS -> `fetchDatabases`
+ - 🔗 CALLS -> `handleUpdate`
+ - ▦ **Imports** (`Block`) `[TRIVIAL]`
+ - 🗄️ **UiState** (`Store`) `[CRITICAL]`
+ - 📝 Maintain local page state for environments, fetched databases, mappings, suggestions, and UX messages.
+ - ƒ **belief_scope** (`Function`) `[TRIVIAL]`
+ - 📝 Frontend semantic scope wrapper for CRITICAL trace boundaries without changing business behavior.
+ - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
+ - 📝 Load environment options for source/target selectors on initial mount.
+ - ƒ **fetchDatabases** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch both environment database catalogs, existing mappings, and suggested matches.
+ - ƒ **handleUpdate** (`Function`) `[TRIVIAL]`
+ - 📝 Persist a selected mapping pair and reconcile local mapping list by source database UUID.
+- ▦ **MappingsPageTemplate** (`Block`) `[TRIVIAL]`
+- 🧩 **ProfilePage** (`Component`) `[CRITICAL]`
+ - 📝 Manage user profile sections for read-only security access, Git identity/token configuration, and UI preferences with resilient save/cancel UX.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Save operations mutate only current user's preference payload via profile API.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - ➡️ WRITES_TO `derived`
+ - 🔗 BINDS_TO -> `i18n`
+ - 🔗 BINDS_TO -> `api_module`
+ - 🔗 BINDS_TO -> `environmentContext`
+ - 🔗 BINDS_TO -> `taskDrawer`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/profile/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **createSecuritySummaryDefault** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeStartPage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeDensity** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parseValidationErrorsFromError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **setSavedSnapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **syncLocalUiPreferenceCaches** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **applyPreferenceResponse** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadPreference** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadLookupCandidates** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSelectCandidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleGitTokenInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleClearGitToken** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleEnvironmentChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSave** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleCancel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ProfileSettingsStateIntegrationTest** (`Module`)
+ - 📝 Verifies profile settings preload, cancel without persistence, and saved-state reload behavior.
+ - 🏗️ Layer: UI (Tests)
+- 📦 **ProfilePreferencesIntegrationTest** (`Module`)
+ - 📝 Verifies profile binding happy path and degraded lookup manual fallback save flow.
+ - 🏗️ Layer: UI (Tests)
+- 📦 **ProfileFixtures** (`Module`) `[TRIVIAL]`
+ - 📝 Shared deterministic fixture inputs for profile page integration tests.
+ - 🔒 Invariant: lookupFailedManualFallback.warning is a hardcoded English string; drift risk if i18n key profile.lookup_error changes without updating this fixture.
+ - 🔗 BINDS_TO -> `ProfilePageBindAccountFlowTests`
+ - 🔗 DEPENDS_ON -> `i18n.profile.lookup_error`
+ - 🔗 DEPENDS_ON -> `frontend/src/lib/i18n/index.ts [key:profile.lookup_error`
+- 🧩 **StoragePage** (`Component`)
+ - 📝 Main page for unified file storage management.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Always displays a unified storage view without category tabs.
+ - ⬅️ READS_FROM `app`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `t`
+ - 🔗 DEPENDS_ON -> `storageService`
+ - ƒ **loadFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches the list of files from the server.
+ - ƒ **resolveStorageQueryFromPath** (`Function`) `[TRIVIAL]`
+ - 📝 Splits UI path into storage API category and category-local subpath.
+ - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
+ - 📝 Handles the file deletion process.
+ - ƒ **handleNavigate** (`Function`) `[TRIVIAL]`
+ - 📝 Updates the current path and reloads files when navigating into a directory.
+ - ƒ **navigateUp** (`Function`) `[TRIVIAL]`
+ - 📝 Navigates one level up in the directory structure.
+ - ƒ **updateUploadCategory** (`Function`) `[TRIVIAL]`
+ - 📝 Keeps upload category aligned with the currently viewed top-level folder.
+- 🧩 **MapperPage** (`Component`) `[TRIVIAL]`
+ - 📝 Page for the dataset column mapper tool.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `t`
+- 🧩 **DebugPage** (`Component`) `[TRIVIAL]`
+ - 📝 Page for system diagnostics and debugging.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `t`
+- 📦 **SettingsPage** (`Page`) `[CRITICAL]`
+ - 📝 Consolidated Settings Page - All settings in one place with tabbed navigation
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Always shows tabbed interface with all settings categories
+ - 🔗 DEPENDS_ON -> `sidebar`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/settings/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **createEmptyConnectionDraft** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeTab** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **readTabFromUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **writeTabToUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeLlmSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isMultimodalModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getProviderById** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **isDashboardValidationBindingValid** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleTabChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadConnections** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetConnectionForm** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openConnectionForm** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closeConnectionForm** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleCreateConnection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleDeleteConnection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadMigrationSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadMappingsPage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **onMappingsSearchInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **onMappingsFilterChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **goToMappingsPage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **saveMigrationSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **triggerSyncNow** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleRefresh** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSave** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleTestEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **editEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetEnvForm** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleAddOrUpdateEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleDeleteEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolveEnvStage** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeSupersetBaseUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ƒ **load** (`Function`) `[TRIVIAL]`
+ - 📝 Loads application settings and environment list.
+- 🧩 **NotificationSettingsPage** (`Component`)
+ - 📝 Manage global notification provider configurations (SMTP, Telegram, Slack).
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `t`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/settings/notifications/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **loadConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSave** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **ConnectionsSettingsPage** (`Component`) `[TRIVIAL]`
+ - 📝 Page for managing database connection configurations.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `t`
+ - ƒ **handleSuccess** (`Function`) `[TRIVIAL]`
+ - 📝 Refreshes the connection list after a successful creation.
+- 🧩 **GitSettingsPage** (`Component`) `[TRIVIAL]`
+ - 📝 Manage Git server configurations for dashboard versioning.
+ - 🏗️ Layer: Page
+ - 🔒 Invariant: All configurations must be validated via connection test.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `t`
+ - ƒ **loadConfigs** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches existing git configurations.
+ - ƒ **handleTest** (`Function`) `[TRIVIAL]`
+ - 📝 Tests connection to a git server with current form data.
+ - ƒ **handleSave** (`Function`) `[TRIVIAL]`
+ - 📝 Saves a new git configuration.
+ - ƒ **handleEdit** (`Function`) `[TRIVIAL]`
+ - 📝 Populates the form with an existing config to edit.
+ - ƒ **resetForm** (`Function`) `[TRIVIAL]`
+ - 📝 Resets the configuration form.
+ - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a git configuration by ID.
+ - ƒ **loadGiteaRepos** (`Function`) `[TRIVIAL]`
+ - 📝 Loads repositories from selected Gitea config.
+ - ƒ **handleCreateGiteaRepo** (`Function`) `[TRIVIAL]`
+ - 📝 Creates new repository on selected Gitea server.
+ - ƒ **handleDeleteGiteaRepo** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes repository from selected Gitea server.
+- 📦 **GitSettingsPageUxTest** (`Module`) `[TRIVIAL]`
+ - 📝 Test UX states and transitions for the Git Settings page
+- 🧩 **AutomationSettingsPage** (`Component`)
+ - 📝 Settings page for managing validation policies.
+ - 🏗️ Layer: UI/Page
+ - ⬅️ READS_FROM `state`
+ - ⬅️ READS_FROM `derived`
+ - ⬅️ READS_FROM `lib`
+- 📦 **+page** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/routes/settings/automation/+page.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **loadData** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleAdd** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleEdit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSave** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getEnvName** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **GitDashboardPage** (`Component`) `[TRIVIAL]`
+ - 📝 Dashboard management page for Git integration.
+ - 🏗️ Layer: Page
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `state`
+ - ➡️ WRITES_TO `derived`
+ - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches the list of deployment environments from the API.
+ - ƒ **fetchDashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches dashboards for a specific environment.
+- 🧩 **Dashboard** (`Component`) `[TRIVIAL]`
+ - 📝 Displays the list of available plugins and allows selecting one.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `plugins`
+ - 🔗 DEPENDS_ON -> `stores`
+ - ƒ **onMount** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch plugins when the component mounts.
+ - ƒ **selectPlugin** (`Function`) `[TRIVIAL]`
+ - 📝 Selects a plugin to display its form.
+- 🧩 **Settings** (`Component`) `[TRIVIAL]`
+ - 📝 The main settings page for the application, allowing management of environments and global settings.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Settings changes must be saved to the backend.
+ - ⬅️ READS_FROM `t`
+ - ➡️ WRITES_TO `t`
+ - 🔗 CALLS -> `api.js`
+ - ƒ **loadSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Loads settings from the backend.
+ - ƒ **handleSaveGlobal** (`Function`) `[TRIVIAL]`
+ - 📝 Saves global settings to the backend.
+ - ƒ **handleAddOrUpdateEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Adds or updates an environment.
+ - ƒ **handleDeleteEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes an environment.
+ - ƒ **handleTestEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Tests the connection to an environment.
+ - ƒ **editEnv** (`Function`) `[TRIVIAL]`
+ - 📝 Sets the form to edit an existing environment.
+ - ƒ **resetEnvForm** (`Function`) `[TRIVIAL]`
+ - 📝 Resets the environment form.
+- ƒ **getConnections** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch a list of saved connections.
+- ƒ **createConnection** (`Function`) `[TRIVIAL]`
+ - 📝 Create a new connection configuration.
+- ƒ **deleteConnection** (`Function`) `[TRIVIAL]`
+ - 📝 Delete a connection configuration.
+- 📦 **GitServiceClient** (`Module`)
+ - 📝 API client for Git operations, managing the communication between frontend and backend.
+ - 🏗️ Layer: Service
+ - 🔗 DEPENDS_ON -> `specs/011-git-integration-dashboard/contracts/api.md`
+ - 📦 **gitService** (`Action`) `[TRIVIAL]`
+ - 📝 Promotes changes between branches via MR or direct merge.
+ - ƒ **buildDashboardRepoEndpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ƒ **runTask** (`Function`) `[TRIVIAL]`
+ - 📝 Start a new task for a given plugin.
+- ƒ **getTaskStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch details for a specific task (to poll status or get result).
+- 📦 **adminService** (`Module`)
+ - 📝 Service for Admin-related API calls (User and Role management).
+ - 🏗️ Layer: Service
+ - 🔒 Invariant: All requests must include valid Admin JWT token (handled by api client).
+ - 🔗 DEPENDS_ON -> `api_module`
+ - ƒ **getUsers** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches all registered users from the backend.
+ - ƒ **createUser** (`Function`) `[TRIVIAL]`
+ - 📝 Creates a new local user.
+ - ƒ **getRoles** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches all available system roles.
+ - ƒ **getADGroupMappings** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches mappings between AD groups and local roles.
+ - ƒ **createADGroupMapping** (`Function`) `[TRIVIAL]`
+ - 📝 Creates or updates an AD group to Role mapping.
+ - ƒ **updateUser** (`Function`) `[TRIVIAL]`
+ - 📝 Updates an existing user.
+ - ƒ **deleteUser** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a user.
+ - ƒ **createRole** (`Function`) `[TRIVIAL]`
+ - 📝 Creates a new role.
+ - ƒ **updateRole** (`Function`) `[TRIVIAL]`
+ - 📝 Updates an existing role.
+ - ƒ **deleteRole** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a role.
+ - ƒ **getPermissions** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches all available permissions.
+ - ƒ **getLoggingConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches current logging configuration.
+ - ƒ **updateLoggingConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Updates logging configuration.
+- ƒ **getTasks** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch a list of tasks with pagination and optional status filter.
+- ƒ **getTask** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch details for a specific task.
+- ƒ **getTaskLogs** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch logs for a specific task.
+- ƒ **resumeTask** (`Function`) `[TRIVIAL]`
+ - 📝 Resume a task that is awaiting input (e.g., passwords).
+- ƒ **resolveTask** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve a task that is awaiting mapping.
+- ƒ **clearTasks** (`Function`) `[TRIVIAL]`
+ - 📝 Clear tasks based on status.
+- 📦 **storageService** (`Module`)
+ - 📝 Frontend API client for file storage management.
+ - 🏗️ Layer: Service
+ - ƒ **getStorageAuthHeaders** (`Function`) `[TRIVIAL]`
+ - 📝 Returns headers with Authorization for storage API calls.
+ - ƒ **encodeStoragePath** (`Function`) `[TRIVIAL]`
+ - 📝 Encodes a storage-relative path preserving slash separators.
+ - ƒ **listFiles** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches the list of files for a given category and subpath.
+ - ƒ **uploadFile** (`Function`) `[TRIVIAL]`
+ - 📝 Uploads a file to the storage system.
+ - ƒ **deleteFile** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a file or directory from storage.
+ - ƒ **downloadFileUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the URL for downloading a file.
+ - ƒ **downloadFile** (`Function`) `[TRIVIAL]`
+ - 📝 Downloads a file using authenticated fetch and saves it in browser.
+- 📦 **gitServiceContractTests** (`Module`) `[TRIVIAL]`
+ - 📝 API client tests ensuring correct endpoints are called per contract
+- 🧩 **DashboardGrid** (`Component`)
+ - 📝 Displays a grid of dashboards with selection and pagination.
+ - 🏗️ Layer: Component
+ - 🔒 Invariant: Selected IDs must be a subset of available dashboards.
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - ➡️ WRITES_TO `derived`
+ - ƒ **handleSort** (`Function`) `[TRIVIAL]`
+ - 📝 Toggles sort direction or changes sort column.
+ - ƒ **handleSelectionChange** (`Function`) `[TRIVIAL]`
+ - 📝 Handles individual checkbox changes.
+ - ƒ **handleSelectAll** (`Function`) `[TRIVIAL]`
+ - 📝 Handles select all checkbox.
+ - ƒ **goToPage** (`Function`) `[TRIVIAL]`
+ - 📝 Changes current page.
+ - ƒ **getRepositoryStatusToken** (`Function`) `[TRIVIAL]`
+ - 📝 Returns normalized repository status token for a dashboard.
+ - ƒ **isRepositoryReady** (`Function`) `[TRIVIAL]`
+ - 📝 Determines whether git actions can run for a dashboard.
+ - ƒ **invalidateRepositoryStatuses** (`Function`) `[TRIVIAL]`
+ - 📝 Marks dashboard statuses as loading so they are refetched.
+ - ƒ **resolveRepositoryStatusToken** (`Function`) `[TRIVIAL]`
+ - 📝 Converts git status payload into a stable UI status token.
+ - ƒ **loadRepositoryStatuses** (`Function`) `[TRIVIAL]`
+ - 📝 Hydrates repository status map for dashboards in repository mode.
+ - ƒ **runBulkGitAction** (`Function`) `[TRIVIAL]`
+ - 📝 Executes git action for selected dashboards with limited parallelism.
+ - ƒ **handleBulkSync** (`Function`) `[TRIVIAL]`
+ - ƒ **handleBulkCommit** (`Function`) `[TRIVIAL]`
+ - ƒ **handleBulkPull** (`Function`) `[TRIVIAL]`
+ - ƒ **handleBulkPush** (`Function`) `[TRIVIAL]`
+ - ƒ **handleBulkDelete** (`Function`) `[TRIVIAL]`
+ - 📝 Removes selected repositories from storage and binding table.
+ - ƒ **handleManageSelected** (`Function`) `[TRIVIAL]`
+ - 📝 Opens Git manager for exactly one selected dashboard.
+ - ƒ **resolveDashboardRef** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves dashboard slug from payload fields.
+ - ƒ **openGitManagerForDashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Opens Git manager for provided dashboard metadata.
+ - ƒ **handleInitializeRepositories** (`Function`) `[TRIVIAL]`
+ - 📝 Opens Git manager from bulk actions to initialize selected repository.
+ - ƒ **getSortStatusValue** (`Function`) `[TRIVIAL]`
+ - 📝 Returns sort value for status column based on mode.
+ - ƒ **getStatusLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Returns localized label for status column.
+ - ƒ **getStatusBadgeClass** (`Function`) `[TRIVIAL]`
+ - 📝 Returns badge style for status column.
+- 🧩 **PasswordPrompt** (`Component`) `[TRIVIAL]`
+ - 📝 A modal component to prompt the user for database passwords when a migration task is paused.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `effect`
+ - 🔗 BINDS_TO -> `onresume`
+ - 🔗 BINDS_TO -> `oncancel`
+ - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Validates and forwards passwords to resume the task.
+ - ƒ **handleCancel** (`Function`) `[TRIVIAL]`
+ - 📝 Cancels the password prompt.
+- 🧩 **MappingTable** (`Component`) `[TRIVIAL]`
+ - 📝 Displays and allows editing of database mappings.
+ - 🏗️ Layer: Feature
+ - 🔒 Invariant: Each source database can be mapped to one target database.
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `t`
+ - 🔗 BINDS_TO -> `mappings state`
+ - ƒ **updateMapping** (`Function`) `[TRIVIAL]`
+ - 📝 Updates a mapping for a specific source database.
+ - ƒ **getSuggestion** (`Function`) `[TRIVIAL]`
+ - 📝 Finds a suggestion for a source database.
+- 🧩 **TaskLogViewer** (`Component`)
+ - 📝 Displays detailed logs for a specific task inline or in a modal using TaskLogPanel.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Real-time logs are always appended without duplicates.
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - 📦 **handleRealTimeLogs** (`Action`) `[TRIVIAL]`
+ - 📝 Sync real-time logs to the current log list
+ - ƒ **fetchLogs** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches logs for a given task ID
+ - ƒ **handleFilterChange** (`Function`) `[TRIVIAL]`
+ - 📝 Updates filter conditions for the log viewer
+ - ƒ **handleRefresh** (`Function`) `[TRIVIAL]`
+ - 📝 Refreshes the logs by polling the API
+ - 🧩 **showInline** (`Component`) `[TRIVIAL]`
+ - 📝 Shows inline logs -->
+ - 🏗️ Layer: UI -->
+ - 🧩 **showModal** (`Component`) `[TRIVIAL]`
+ - 📝 Shows modal logs -->
+ - 🏗️ Layer: UI -->
+- 🧩 **Footer** (`Component`) `[TRIVIAL]`
+ - 📝 Displays the application footer with copyright information.
+ - 🏗️ Layer: UI
+- 🧩 **MissingMappingModal** (`Component`) `[TRIVIAL]`
+ - 📝 Prompts the user to provide a database mapping when one is missing during migration.
+ - 🏗️ Layer: Feature
+ - 🔒 Invariant: Modal blocks migration progress until resolved or cancelled.
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - 🔗 BINDS_TO -> `onresolve`
+ - 🔗 BINDS_TO -> `oncancel`
+ - ƒ **resolve** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves the missing mapping via callback prop.
+ - ƒ **cancel** (`Function`) `[TRIVIAL]`
+ - 📝 Cancels the mapping resolution modal.
+- 🧩 **DashboardGrid** (`Component`)
+ - 📝 Displays a grid of dashboards with selection and pagination.
+ - 🏗️ Layer: Component
+ - 🔒 Invariant: Selected IDs must be a subset of available dashboards.
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - ➡️ WRITES_TO `derived`
+ - ƒ **handleValidate** (`Function`) `[TRIVIAL]`
+ - 📝 Triggers dashboard validation task.
+ - ƒ **handleSort** (`Function`) `[TRIVIAL]`
+ - 📝 Toggles sort direction or changes sort column.
+ - ƒ **handleSelectionChange** (`Function`) `[TRIVIAL]`
+ - 📝 Handles individual checkbox changes.
+ - ƒ **handleSelectAll** (`Function`) `[TRIVIAL]`
+ - 📝 Handles select all checkbox.
+ - ƒ **goToPage** (`Function`) `[TRIVIAL]`
+ - 📝 Changes current page.
+ - ƒ **openGit** (`Function`) `[TRIVIAL]`
+ - 📝 Opens the Git management modal for a dashboard.
+- 🧩 **Navbar** (`Component`)
+ - 📝 Main navigation bar for the application.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `app`
+ - ⬅️ READS_FROM `lib`
+ - ⬅️ READS_FROM `t`
+- 📦 **Navbar** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/Navbar.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **handleLogout** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **TaskHistory** (`Component`) `[TRIVIAL]`
+ - 📝 Displays a list of recent tasks with their status and allows selecting them for viewing logs.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `selectedTask`
+ - ➡️ WRITES_TO `selectedTask`
+ - ⬅️ READS_FROM `t`
+ - ƒ **fetchTasks** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches the list of recent tasks from the API.
+ - ƒ **clearTasks** (`Function`) `[TRIVIAL]`
+ - 📝 Clears tasks from the history, optionally filtered by status.
+ - ƒ **selectTask** (`Function`) `[TRIVIAL]`
+ - 📝 Selects a task and fetches its full details.
+ - ƒ **getStatusColor** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the CSS color class for a given task status.
+ - ƒ **onMount** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the component by fetching tasks and starting polling.
+ - ƒ **onDestroy** (`Function`) `[TRIVIAL]`
+ - 📝 Cleans up the polling interval when the component is destroyed.
+- 🧩 **Toast** (`Component`) `[TRIVIAL]`
+ - 📝 Displays transient notifications (toasts) in the bottom-right corner.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `toasts`
+ - 🔗 DEPENDS_ON -> `frontend/src/lib/toasts.js`
+- 🧩 **TaskRunner** (`Component`)
+ - 📝 Connects to a WebSocket to display real-time logs for a running task with filtering support.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `t`
+ - ⬅️ READS_FROM `selectedTask`
+ - ➡️ WRITES_TO `t`
+ - 🔗 DEPENDS_ON -> `TaskLogPanel`
+ - ƒ **connect** (`Function`) `[TRIVIAL]`
+ - 📝 Establishes WebSocket connection with exponential backoff and filter parameters.
+ - ƒ **handleFilterChange** (`Function`) `[TRIVIAL]`
+ - 📝 Handles filter changes and reconnects WebSocket with new parameters.
+ - ƒ **fetchTargetDatabases** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches available databases from target environment for mapping.
+ - ƒ **handleMappingResolve** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves missing database mapping and continues migration.
+ - ƒ **handlePasswordResume** (`Function`) `[TRIVIAL]`
+ - 📝 Submits passwords and resumes paused migration task.
+ - ƒ **startDataTimeout** (`Function`) `[TRIVIAL]`
+ - 📝 Starts timeout timer to detect idle connection.
+ - ƒ **resetDataTimeout** (`Function`) `[TRIVIAL]`
+ - 📝 Resets data timeout timer when new data arrives.
+ - ƒ **onMount** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes WebSocket connection when component mounts.
+ - ƒ **onDestroy** (`Function`) `[TRIVIAL]`
+- 🧩 **TaskList** (`Component`) `[TRIVIAL]`
+ - 📝 Displays a list of tasks with their status and execution details.
+ - 🏗️ Layer: Component
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `t`
+ - ⬅️ READS_FROM `t`
+ - ƒ **getStatusColor** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the CSS color class for a given task status.
+ - ƒ **formatTime** (`Function`) `[TRIVIAL]`
+ - 📝 Formats a date string using date-fns.
+ - ƒ **handleTaskClick** (`Function`) `[TRIVIAL]`
+ - 📝 Forwards the selected task through a callback prop.
+- 🧩 **DynamicForm** (`Component`) `[TRIVIAL]`
+ - 📝 Generates a form dynamically based on a JSON schema.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `props`
+ - 🔗 BINDS_TO -> `onsubmit callback`
+ - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Emits submitted form data via callback prop.
+ - ƒ **initializeForm** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize form data with default values from the schema.
+- 🧩 **EnvSelector** (`Component`) `[TRIVIAL]`
+ - 📝 Provides a UI component for selecting source and target environments.
+ - 🏗️ Layer: Feature
+ - 🔒 Invariant: Source and target environments must be selectable from the list of configured environments.
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `t`
+ - 🔗 BINDS_TO -> `environments store`
+ - ƒ **handleSelect** (`Function`) `[TRIVIAL]`
+ - 📝 Propagates the selection change through a callback prop.
+- 🧩 **StartupEnvironmentWizard** (`Component`)
+ - 📝 Blocking startup wizard for creating the first Superset environment from zero-state screens.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: When open, wizard keeps user on an actionable setup path until the first environment exists.
+ - ⬅️ READS_FROM `app`
+ - ⬅️ READS_FROM `lib`
+ - ➡️ WRITES_TO `props`
+ - 🔗 CALLS -> `api`
+ - 🔗 CALLS -> `environmentContext`
+- 📦 **StartupEnvironmentWizard** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/StartupEnvironmentWizard.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **createInitialForm** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **slugifyEnvironmentId** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **normalizeSupersetBaseUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetWizard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleNameInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleIdInput** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openAdvancedSettings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleCreateEnvironment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ProtectedRouteModule** (`Module`)
+ - 📝 Enforces authenticated and authorized access before protected route content is rendered.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Unauthenticated users are redirected to /login, unauthorized users are redirected to fallbackPath, and protected slot renders only when access is verified.
+ - 🔗 BINDS_TO -> `authStore`
+ - 🔗 CALLS -> `goto`
+ - 🔗 DEPENDS_ON -> `Permissions`
+ - 🔗 CALLS -> `fetchApi`
+ - 🧩 **ProtectedRoute** (`Component`) `[TRIVIAL]`
+ - 📝 Wraps protected slot content with session and permission verification guards.
+ - ƒ **verifySessionAndAccess** (`Function`) `[TRIVIAL]`
+ - 📝 Validates session and optional permission gate before allowing protected content render.
+- 🧩 **TaskLogPanel** (`Component`)
+ - 📝 Combines log filtering and display into a single cohesive dark-themed panel.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: Must always display logs in chronological order and respect auto-scroll preference.
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+- 📦 **TaskLogPanel** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/tasks/TaskLogPanel.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **filterLogs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleFilterChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **scrollToBottom** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleAutoScroll** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **LogFilterBar** (`Component`)
+ - 📝 Compact filter toolbar for logs — level, source, and text search in a single dense row.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `derived`
+- 📦 **LogFilterBar** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/tasks/LogFilterBar.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **handleLevelChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSourceChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSearchChange** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clearFilters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **LogEntryRow** (`Component`)
+ - 📝 Renders a single log entry with stacked layout optimized for narrow drawer panels.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `derived`
+ - ƒ **formatTime** (`Function`) `[TRIVIAL]`
+ - 📝 Format ISO timestamp to HH:MM:SS */
+- 📦 **TaskResultPanel** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/tasks/TaskResultPanel.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **statusColor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TaskLogViewerTest** (`Module`)
+ - 📝 Unit tests for TaskLogViewer component by mounting it and observing the DOM.
+ - 🏗️ Layer: UI (Tests)
+ - 🔒 Invariant: Duplicate logs are never appended. Polling only active for in-progress tasks.
+- 🧩 **FileList** (`Component`)
+ - 📝 Displays a table of files with metadata and actions.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `t`
+ - ⬅️ READS_FROM `t`
+ - 🔗 DEPENDS_ON -> `storageService`
+ - ƒ **isDirectory** (`Function`) `[TRIVIAL]`
+ - 📝 Checks if a file object represents a directory.
+ - ƒ **formatSize** (`Function`) `[TRIVIAL]`
+ - 📝 Formats file size in bytes into a human-readable string.
+ - ƒ **formatDate** (`Function`) `[TRIVIAL]`
+ - 📝 Formats an ISO date string into a localized readable format.
+ - ƒ **handleDownload** (`Function`) `[TRIVIAL]`
+ - 📝 Downloads selected file through authenticated API request.
+- 🧩 **FileUpload** (`Component`)
+ - 📝 Provides a form for uploading files to a specific category.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `t`
+ - 🔗 DEPENDS_ON -> `storageService`
+ - ƒ **handleUpload** (`Function`) `[TRIVIAL]`
+ - 📝 Handles the file upload process.
+ - ƒ **handleDrop** (`Function`) `[TRIVIAL]`
+ - 📝 Handles the file drop event for drag-and-drop.
+- 🧩 **ConnectionForm** (`Component`) `[TRIVIAL]`
+ - 📝 UI component for creating a new database connection configuration.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `t`
+ - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Submits the connection form to the backend.
+ - ƒ **resetForm** (`Function`) `[TRIVIAL]`
+ - 📝 Resets the connection form fields to their default values.
+- 🧩 **ConnectionList** (`Component`) `[TRIVIAL]`
+ - 📝 UI component for listing and deleting saved database connection configurations.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `t`
+ - ➡️ WRITES_TO `t`
+ - ƒ **fetchConnections** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches the list of connections from the backend.
+ - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a connection configuration.
+- 🧩 **MapperTool** (`Component`) `[TRIVIAL]`
+ - 📝 UI component for mapping dataset column verbose names using the MapperPlugin.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `t`
+ - ➡️ WRITES_TO `t`
+ - ƒ **fetchData** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches environments and saved connections.
+ - ƒ **handleRunMapper** (`Function`) `[TRIVIAL]`
+ - 📝 Triggers the MapperPlugin task.
+ - ƒ **handleGenerateDocs** (`Function`) `[TRIVIAL]`
+ - 📝 Triggers the LLM Documentation task.
+- 📦 **MapperTool** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/tools/MapperTool.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **handleApplyDoc** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **DebugTool** (`Component`) `[TRIVIAL]`
+ - 📝 UI component for system diagnostics and debugging API responses.
+ - 🏗️ Layer: UI
+ - ⬅️ READS_FROM `t`
+ - ➡️ WRITES_TO `t`
+ - ƒ **fetchEnvironments** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches available environments.
+ - ƒ **handleRunDebug** (`Function`) `[TRIVIAL]`
+ - 📝 Triggers the debug task.
+ - ƒ **startPolling** (`Function`) `[TRIVIAL]`
+ - 📝 Polls for task completion.
+- 🧩 **CommitHistory** (`Component`) `[TRIVIAL]`
+ - 📝 Displays the commit history for a specific dashboard.
+ - 🏗️ Layer: Component
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `t`
+ - 🔗 CALLS -> `gitService.getHistory`
+ - ƒ **onMount** (`Function`) `[TRIVIAL]`
+ - 📝 Load history when component is mounted.
+ - ƒ **loadHistory** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch commit history from the backend.
+- 🧩 **DeploymentModal** (`Component`) `[TRIVIAL]`
+ - 📝 Modal for deploying a dashboard to a target environment.
+ - 🏗️ Layer: Component
+ - 🔒 Invariant: Cannot deploy without a selected environment.
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - 🔗 CALLS -> `GitService`
+ - 🔗 DISPATCHES -> `deploy`
+ - 📦 **loadStatus** (`Watcher`) `[TRIVIAL]`
+ - ƒ **normalizeEnvStage** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize environment stage with legacy production fallback.
+ - ƒ **resolveEnvUrl** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve environment URL from consolidated or git-specific payload shape.
+ - ƒ **loadEnvironments** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch available environments from API.
+ - ƒ **handleDeploy** (`Function`) `[TRIVIAL]`
+ - 📝 Trigger deployment to selected environment.
+- 🧩 **ConflictResolver** (`Component`) `[TRIVIAL]`
+ - 📝 UI for resolving merge conflicts (Keep Mine / Keep Theirs).
+ - 🏗️ Layer: Component
+ - 🔒 Invariant: User must resolve all conflicts before saving.
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - 🔗 BINDS_TO -> `onresolve`
+ - ƒ **resolve** (`Function`) `[TRIVIAL]`
+ - 📝 Set resolution strategy for a file.
+ - ƒ **handleSave** (`Function`) `[TRIVIAL]`
+ - 📝 Validate and submit resolutions.
+- 🧩 **CommitModal** (`Component`)
+ - 📝 Модальное окно для создания коммита с просмотром изменений (diff).
+ - 🏗️ Layer: Component
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - ⬅️ READS_FROM `t`
+ - 🔗 CALLS -> `GitService`
+ - 🔗 CALLS -> `GitService`
+ - 🔗 CALLS -> `GitService`
+ - 🔗 CALLS -> `commit`
+ - ƒ **handleGenerateMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Generates a commit message using LLM.
+ - ƒ **loadStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Загружает текущий статус репозитория и diff.
+ - ƒ **handleCommit** (`Function`) `[TRIVIAL]`
+ - 📝 Создает коммит с указанным сообщением.
+- 🧩 **BranchSelector** (`Component`) `[TRIVIAL]`
+ - 📝 UI для выбора и создания веток Git.
+ - 🏗️ Layer: Component
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - 🔗 CALLS -> `gitService.getBranches`
+ - 🔗 CALLS -> `GitServiceBranch`
+ - 🔗 CALLS -> `gitService.createBranch`
+ - 🔗 BINDS_TO -> `onchange`
+ - ƒ **onMount** (`Function`) `[TRIVIAL]`
+ - 📝 Load branches when component is mounted.
+ - ƒ **loadBranches** (`Function`) `[TRIVIAL]`
+ - 📝 Загружает список веток для дашборда.
+ - ƒ **handleSelect** (`Function`) `[TRIVIAL]`
+ - 📝 Handles branch selection from dropdown.
+ - ƒ **handleCheckout** (`Function`) `[TRIVIAL]`
+ - 📝 Переключает текущую ветку.
+ - ƒ **handleCreate** (`Function`) `[TRIVIAL]`
+ - 📝 Создает новую ветку.
+- 🧩 **GitManager** (`Component`) `[TRIVIAL]`
+ - 📝 Центральный UI управления Git с фокусом на рабочий поток аналитика (commit -> promote -> deploy).
+ - 🏗️ Layer: Component
+ - ➡️ WRITES_TO `bindable`
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - 🔗 CALLS -> `gitService`
+ - ƒ **normalizeEnvStage** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize environment stage with legacy fallback.
+ - ƒ **stageBadgeClass** (`Function`) `[TRIVIAL]`
+ - 📝 Return visual class for environment stage badges.
+ - ƒ **resolveCurrentEnvironmentId** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve active environment id for current dashboard session.
+ - ƒ **applyGitflowStageDefaults** (`Function`) `[TRIVIAL]`
+ - 📝 Apply GitFlow defaults by current environment stage.
+ - ƒ **loadCurrentEnvironmentStage** (`Function`) `[TRIVIAL]`
+ - 📝 Detect current environment stage and bind GitFlow defaults.
+ - ƒ **isNumericDashboardRef** (`Function`) `[TRIVIAL]`
+ - 📝 Checks whether current dashboard reference is numeric ID.
+ - ƒ **checkStatus** (`Function`) `[TRIVIAL]`
+ - 📝 Verify repository initialization for dashboard slug.
+ - ƒ **loadWorkspace** (`Function`) `[TRIVIAL]`
+ - 📝 Load current git status and combined diff for workspace tab.
+ - ƒ **handleSync** (`Function`) `[TRIVIAL]`
+ - 📝 Sync latest dashboard config from Superset to git workspace.
+ - ƒ **handleGenerateMessage** (`Function`) `[TRIVIAL]`
+ - 📝 Generate commit message from diff using LLM.
+ - ƒ **handleCommit** (`Function`) `[TRIVIAL]`
+ - 📝 Commit current workspace changes with provided message.
+ - ƒ **handlePull** (`Function`) `[TRIVIAL]`
+ - 📝 Pull remote changes for current branch.
+ - ƒ **handlePush** (`Function`) `[TRIVIAL]`
+ - 📝 Push local commits to remote repository.
+ - ƒ **handlePromote** (`Function`) `[TRIVIAL]`
+ - 📝 Promote branch to the next stage via MR or unsafe direct mode.
+ - ƒ **openDeployModal** (`Function`) `[TRIVIAL]`
+ - 📝 Open deploy modal with extra confirmation for PROD context.
+ - ƒ **getSelectedConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Return currently selected git server config.
+ - ƒ **resolveDefaultConfig** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve default git config for current session.
+ - ƒ **resolvePushProviderLabel** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve lower-case provider label for auto-push checkbox.
+ - ƒ **extractHttpHost** (`Function`) `[TRIVIAL]`
+ - 📝 Extract comparable host[:port] from URL string.
+ - ƒ **buildSuggestedRepoName** (`Function`) `[TRIVIAL]`
+ - 📝 Build deterministic repository name from dashboard title/id.
+ - ƒ **handleCreateRemoteRepo** (`Function`) `[TRIVIAL]`
+ - 📝 Create remote repository on selected Git provider.
+ - ƒ **handleInit** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize git repository for dashboard.
+ - ƒ **closeModal** (`Function`) `[TRIVIAL]`
+ - 📝 Close git manager modal.
+ - ƒ **handleBackdropClick** (`Function`) `[TRIVIAL]`
+ - 📝 Close modal on backdrop click.
+- 📦 **GitManager** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/git/GitManager.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **tryParseJsonObject** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extractUnfinishedMergeContext** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **openUnfinishedMergeDialogFromError** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loadMergeRecoveryState** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **closeUnfinishedMergeDialog** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleOpenConflictResolver** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleResolveConflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleAbortUnfinishedMerge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleContinueUnfinishedMerge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **getUnfinishedMergeCommandsText** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleCopyUnfinishedMergeCommands** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **GitManagerUnfinishedMergeIntegrationTest** (`Module`)
+ - 📝 Protect unresolved-merge dialog contract in GitManager pull flow.
+ - 🏗️ Layer: UI Tests
+- 🧩 **DocPreview** (`Component`)
+ - 📝 UI component for previewing generated dataset documentation before saving.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `derived`
+ - ➡️ WRITES_TO `state`
+ - 🔗 DEPENDS_ON -> `backend/src/plugins/llm_analysis/plugin.py`
+- 📦 **DocPreview** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/llm/DocPreview.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **handleSave** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 🧩 **ProviderConfig** (`Component`)
+ - 📝 UI form for managing LLM provider configurations.
+ - 🏗️ Layer: UI
+ - ➡️ WRITES_TO `props`
+ - ➡️ WRITES_TO `state`
+ - ➡️ WRITES_TO `t`
+ - 🔗 DEPENDS_ON -> `requestApi`
+- 📦 **ProviderConfig** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/llm/ProviderConfig.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **isMultimodalModel** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resetForm** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleEdit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **testConnection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleSubmit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **toggleActive** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **handleDelete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ValidationReport** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for frontend/src/components/llm/ValidationReport.svelte
+ - 🏗️ Layer: Unknown
+ - ƒ **getStatusColor** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ProviderConfigIntegrationTest** (`Module`)
+ - 📝 Protect edit and delete interaction contracts in LLM provider settings UI.
+ - 🏗️ Layer: UI Tests
+ - 🔒 Invariant: Edit action keeps explicit click handler and opens normalized edit form.
+ - ƒ **provider_config_edit_contract_tests** (`Function`)
+ - 📝 Validate edit and delete handler wiring plus normalized edit form state mapping.
+- 📦 **DeleteRunningTasksUtil** (`Module`) `[TRIVIAL]`
+ - 📝 Script to delete tasks with RUNNING status from the database.
+ - 🏗️ Layer: Utility
+ - 🔗 DEPENDS_ON -> `TasksSessionLocal`
+ - 🔗 DEPENDS_ON -> `TaskRecord`
+ - ƒ **delete_running_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Delete all tasks with RUNNING status from the database.
+- 📦 **AppModule** (`Module`) `[CRITICAL]`
+ - 📝 The main entry point for the FastAPI application. It initializes the app, configures CORS, sets up dependencies, includes API routers, and defines the WebSocket endpoint for log streaming.
+ - 🏗️ Layer: UI (API)
+ - 🔒 Invariant: All WebSocket connections must be properly cleaned up on disconnect.
+ - 🔗 DEPENDS_ON -> `AppDependencies`
+ - 🔗 DEPENDS_ON -> `ApiRoutesModule`
+ - 📦 **App** (`Global`) `[TRIVIAL]`
+ - 📝 The global FastAPI application instance.
+ - ƒ **ensure_initial_admin_user** (`Function`)
+ - 📝 Ensures initial admin user exists when bootstrap env flags are enabled.
+ - ƒ **startup_event** (`Function`)
+ - 📝 Handles application startup tasks, such as starting the scheduler.
+ - 🔗 CALLS -> `AppDependencies`
+ - ƒ **shutdown_event** (`Function`)
+ - 📝 Handles application shutdown tasks, such as stopping the scheduler.
+ - 🔗 CALLS -> `AppDependencies`
+ - ▦ **app_middleware** (`Block`) `[TRIVIAL]`
+ - 📝 Configure application-wide middleware (Session, CORS).
+ - ƒ **network_error_handler** (`Function`) `[TRIVIAL]`
+ - 📝 Global exception handler for NetworkError.
+ - ƒ **log_requests** (`Function`)
+ - 📝 Middleware to log incoming HTTP requests and their response status.
+ - 🔗 DEPENDS_ON -> `LoggerModule`
+ - ▦ **api_routes** (`Block`) `[TRIVIAL]`
+ - 📝 Register all application API routers.
+ - 📦 **api.include_routers** (`Action`) `[TRIVIAL]`
+ - 📝 Registers all API routers with the FastAPI application.
+ - 🏗️ Layer: API
+ - ƒ **websocket_endpoint** (`Function`) `[CRITICAL]`
+ - 📝 Provides a WebSocket endpoint for real-time log streaming of a task with server-side filtering.
+ - 🔒 Invariant: Every accepted WebSocket subscription is unsubscribed exactly once even when streaming fails or the client disconnects.
+ - 🔗 CALLS -> `TaskManagerPackage`
+ - 🔗 DEPENDS_ON -> `LoggerModule`
+ - 📦 **StaticFiles** (`Mount`) `[TRIVIAL]`
+ - 📝 Mounts the frontend build directory to serve static assets.
+ - ƒ **serve_spa** (`Function`) `[TRIVIAL]`
+ - 📝 Serves the SPA frontend for any path not matched by API routes.
+ - ƒ **read_root** (`Function`) `[TRIVIAL]`
+ - 📝 A simple root endpoint to confirm that the API is running when frontend is missing.
+ - ƒ **matches_filters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AppDependencies** (`Module`)
+ - 📝 Manages creation and provision of shared application dependencies, such as PluginLoader and TaskManager, to avoid circular imports.
+ - 🏗️ Layer: Core
+ - 🔗 CALLS -> `CleanReleaseRepository`
+ - 🔗 CALLS -> `ConfigManager`
+ - 🔗 CALLS -> `PluginLoader`
+ - 🔗 CALLS -> `SchedulerService`
+ - 🔗 CALLS -> `TaskManager`
+ - 🔗 CALLS -> `get_all_plugin_configs`
+ - 🔗 CALLS -> `get_db`
+ - 🔗 CALLS -> `info`
+ - 🔗 CALLS -> `init_db`
+ - ƒ **get_config_manager** (`Function`) `[TRIVIAL]`
+ - 📝 Dependency injector for ConfigManager.
+ - ƒ **get_plugin_loader** (`Function`) `[TRIVIAL]`
+ - 📝 Dependency injector for PluginLoader.
+ - ƒ **get_task_manager** (`Function`) `[TRIVIAL]`
+ - 📝 Dependency injector for TaskManager.
+ - ƒ **get_scheduler_service** (`Function`) `[TRIVIAL]`
+ - 📝 Dependency injector for SchedulerService.
+ - ƒ **get_resource_service** (`Function`) `[TRIVIAL]`
+ - 📝 Dependency injector for ResourceService.
+ - ƒ **get_mapping_service** (`Function`) `[TRIVIAL]`
+ - 📝 Dependency injector for MappingService.
+ - ƒ **get_clean_release_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Legacy compatibility shim for CleanReleaseRepository.
+ - ƒ **get_clean_release_facade** (`Function`) `[TRIVIAL]`
+ - 📝 Dependency injector for CleanReleaseFacade.
+ - 📦 **oauth2_scheme** (`Variable`) `[TRIVIAL]`
+ - 📝 OAuth2 password bearer scheme for token extraction.
+ - 🔗 DEPENDS_ON -> `OAuth2PasswordBearer`
+ - ƒ **get_current_user** (`Function`)
+ - 📝 Dependency for retrieving currently authenticated user from a JWT.
+ - 🔗 CALLS -> `AuthRepository`
+ - ƒ **has_permission** (`Function`)
+ - 📝 Dependency for checking if the current user has a specific permission.
+ - 🔗 CALLS -> `AuthRepository`
+ - ƒ **permission_checker** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SrcRoot** (`Module`) `[TRIVIAL]`
+ - 📝 Canonical backend package root for application, scripts, and tests.
+- 📦 **backend.src.scripts.seed_superset_load_test** (`Module`)
+ - 📝 Creates randomized load-test data in Superset by cloning chart configurations and creating dashboards in target environments.
+ - 🏗️ Layer: Scripts
+ - 🔒 Invariant: Created chart and dashboard names are globally unique for one script run.
+ - ƒ **_parse_args** (`Function`) `[TRIVIAL]`
+ - 📝 Parses CLI arguments for load-test data generation.
+ - ƒ **_extract_result_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Normalizes Superset API payloads that may be wrapped in `result`.
+ - ƒ **_extract_created_id** (`Function`) `[TRIVIAL]`
+ - 📝 Extracts object ID from create/update API response.
+ - ƒ **_generate_unique_name** (`Function`) `[TRIVIAL]`
+ - 📝 Generates globally unique random names for charts/dashboards.
+ - ƒ **_resolve_target_envs** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves requested environment IDs from configuration.
+ - ƒ **_build_chart_template_pool** (`Function`) `[TRIVIAL]`
+ - 📝 Builds a pool of source chart templates to clone in one environment.
+ - ƒ **seed_superset_load_data** (`Function`) `[TRIVIAL]`
+ - 📝 Creates dashboards and cloned charts for load testing across target environments.
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 CLI entrypoint for Superset load-test data seeding.
+- 📦 **test_dataset_dashboard_relations_script** (`Module`) `[TRIVIAL]`
+ - 📝 Tests and inspects dataset-to-dashboard relationship responses from Superset API.
+ - ƒ **test_dashboard_dataset_relations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **backend.src.scripts.clean_release_tui** (`Module`)
+ - 📝 Interactive terminal interface for Enterprise Clean Release compliance validation.
+ - 🏗️ Layer: UI
+ - 🔒 Invariant: TUI refuses startup in non-TTY environments; headless flow is CLI/API only.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.compliance_orchestrator`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - ℂ **TuiFacadeAdapter** (`Class`) `[TRIVIAL]`
+ - 📝 Thin TUI adapter that routes business mutations through application services.
+ - ℂ **CleanReleaseTUI** (`Class`) `[TRIVIAL]`
+ - 📝 Curses-based application for compliance monitoring.
+ - ƒ **run_checks** (`Function`) `[TRIVIAL]`
+ - 📝 Execute compliance run via facade adapter and update UI state.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_build_config_manager** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **run_compliance** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **approve_latest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **publish_latest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_overview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_build_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_bootstrap_demo_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_bootstrap_real_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_resolve_candidate_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **draw_header** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **draw_checks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **draw_sources** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **draw_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **draw_footer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clear_history** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **approve_latest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **publish_latest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh_overview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh_overview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh_screen** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **loop** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **tui_main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **backend.src.scripts.migrate_sqlite_to_postgres** (`Module`)
+ - 📝 Migrates legacy config and task history from SQLite/file storage to PostgreSQL.
+ - 🏗️ Layer: Scripts
+ - 🔒 Invariant: Script is idempotent for task_records and app_configurations.
+ - 📦 **Constants** (`Section`) `[TRIVIAL]`
+ - ƒ **_json_load_if_needed** (`Function`)
+ - 📝 Parses JSON-like values from SQLite TEXT/JSON columns to Python objects.
+ - ƒ **_find_legacy_config_path** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves the existing legacy config.json path from candidates.
+ - ƒ **_connect_sqlite** (`Function`) `[TRIVIAL]`
+ - 📝 Opens a SQLite connection with row factory.
+ - ƒ **_ensure_target_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures required PostgreSQL tables exist before migration.
+ - ƒ **_migrate_config** (`Function`) `[TRIVIAL]`
+ - 📝 Migrates legacy config.json into app_configurations(global).
+ - ƒ **_migrate_tasks_and_logs** (`Function`) `[TRIVIAL]`
+ - 📝 Migrates task_records and task_logs from SQLite into PostgreSQL.
+ - ƒ **run_migration** (`Function`) `[TRIVIAL]`
+ - 📝 Orchestrates migration from SQLite/file to PostgreSQL.
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 CLI entrypoint.
+- 📦 **backend.src.scripts.clean_release_cli** (`Module`)
+ - 📝 Provide headless CLI commands for candidate registration, artifact import and manifest build.
+ - 🏗️ Layer: Scripts
+ - ƒ **build_parser** (`Function`) `[TRIVIAL]`
+ - 📝 Build argparse parser for clean release CLI.
+ - ƒ **run_candidate_register** (`Function`) `[TRIVIAL]`
+ - 📝 Register candidate in repository via CLI command.
+ - ƒ **run_artifact_import** (`Function`) `[TRIVIAL]`
+ - 📝 Import single artifact for existing candidate.
+ - ƒ **run_manifest_build** (`Function`) `[TRIVIAL]`
+ - 📝 Build immutable manifest snapshot for candidate.
+ - ƒ **run_compliance_run** (`Function`) `[TRIVIAL]`
+ - 📝 Execute compliance run for candidate with optional manifest fallback.
+ - ƒ **run_compliance_status** (`Function`) `[TRIVIAL]`
+ - 📝 Read run status by run id.
+ - ƒ **_to_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Serialize domain models for CLI JSON output across SQLAlchemy/Pydantic variants.
+ - ƒ **run_compliance_report** (`Function`) `[TRIVIAL]`
+ - 📝 Read immutable report by run id.
+ - ƒ **run_compliance_violations** (`Function`) `[TRIVIAL]`
+ - 📝 Read run violations by run id.
+ - ƒ **run_approve** (`Function`) `[TRIVIAL]`
+ - 📝 Approve candidate based on immutable PASSED report.
+ - ƒ **run_reject** (`Function`) `[TRIVIAL]`
+ - 📝 Reject candidate without mutating compliance evidence.
+ - ƒ **run_publish** (`Function`) `[TRIVIAL]`
+ - 📝 Publish approved candidate to target channel.
+ - ƒ **run_revoke** (`Function`) `[TRIVIAL]`
+ - 📝 Revoke active publication record.
+ - ƒ **main** (`Function`) `[TRIVIAL]`
+ - 📝 CLI entrypoint for clean release commands.
+ - ƒ **_normalize** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SeedPermissionsScript** (`Module`)
+ - 📝 Populates the auth database with initial system permissions.
+ - 🏗️ Layer: Scripts
+ - 🔒 Invariant: Safe to run multiple times (idempotent).
+ - 🔗 DEPENDS_ON -> `AuthSessionLocal`
+ - 🔗 DEPENDS_ON -> `Permission`
+ - 🔗 DEPENDS_ON -> `Role`
+ - 🔗 DEPENDS_ON -> `AuthRepository`
+ - 📦 **INITIAL_PERMISSIONS** (`Constant`)
+ - 📝 Canonical bootstrap permission tuples seeded into auth storage.
+ - 🔗 DEPENDS_ON -> `SeedPermissionsScript`
+ - ƒ **seed_permissions** (`Function`)
+ - 📝 Inserts missing permissions into the database.
+ - 🔗 DEPENDS_ON -> `AuthSessionLocal`
+ - 🔗 DEPENDS_ON -> `Permission`
+ - 🔗 DEPENDS_ON -> `Role`
+ - 🔗 DEPENDS_ON -> `AuthRepository`
+ - 🔗 DEPENDS_ON -> `INITIAL_PERMISSIONS`
+- 📦 **InitAuthDbScript** (`Module`) `[TRIVIAL]`
+ - 📝 Initializes the auth database and creates the necessary tables.
+ - 🏗️ Layer: Scripts
+ - 🔒 Invariant: Safe to run multiple times (idempotent).
+ - 🔗 CALLS -> `init_db`
+ - 🔗 CALLS -> `ensure_encryption_key`
+ - 🔗 CALLS -> `seed_permissions`
+ - ƒ **run_init** (`Function`)
+ - 📝 Main entry point for the initialization script.
+ - 🔗 CALLS -> `ensure_encryption_key`
+ - 🔗 CALLS -> `init_db`
+ - 🔗 CALLS -> `seed_permissions`
+- 📦 **backend.src.scripts.create_admin** (`Module`)
+ - 📝 CLI tool for creating the initial admin user.
+ - 🏗️ Layer: Scripts
+ - 🔒 Invariant: Admin user must have the "Admin" role.
+ - ƒ **create_admin** (`Function`) `[TRIVIAL]`
+ - 📝 Creates an admin user and necessary roles/permissions.
+- 📦 **src.scripts** (`Package`) `[TRIVIAL]`
+ - 📝 Script entrypoint package root.
+- 📦 **backend.src.schemas.health** (`Module`)
+ - 📝 Pydantic schemas for dashboard health summary.
+ - 🏗️ Layer: Domain
+ - ℂ **DashboardHealthItem** (`Class`) `[TRIVIAL]`
+ - 📝 Represents the latest health status of a single dashboard.
+ - ℂ **HealthSummaryResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Aggregated health summary for all dashboards.
+- 📦 **DatasetReviewSchemas** (`Module`)
+ - 📝 Defines API schemas for the dataset review orchestration flow.
+ - 🏗️ Layer: API
+ - 🔗 DEPENDS_ON -> `DatasetReviewModels`
+ - ℂ **SessionCollaboratorDto** (`Class`) `[TRIVIAL]`
+ - ℂ **DatasetProfileDto** (`Class`) `[TRIVIAL]`
+ - ℂ **ValidationFindingDto** (`Class`) `[TRIVIAL]`
+ - ℂ **SemanticSourceDto** (`Class`) `[TRIVIAL]`
+ - ℂ **SemanticCandidateDto** (`Class`) `[TRIVIAL]`
+ - ℂ **SemanticFieldEntryDto** (`Class`) `[TRIVIAL]`
+ - ℂ **ImportedFilterDto** (`Class`) `[TRIVIAL]`
+ - ℂ **TemplateVariableDto** (`Class`) `[TRIVIAL]`
+ - ℂ **ExecutionMappingDto** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationOptionDto** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationAnswerDto** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationQuestionDto** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationSessionDto** (`Class`) `[TRIVIAL]`
+ - ℂ **CompiledPreviewDto** (`Class`) `[TRIVIAL]`
+ - ℂ **DatasetRunContextDto** (`Class`) `[TRIVIAL]`
+ - ℂ **SessionSummary** (`Class`) `[TRIVIAL]`
+ - ℂ **SessionDetail** (`Class`) `[TRIVIAL]`
+- 📦 **backend.src.schemas.settings** (`Module`)
+ - 📝 Pydantic schemas for application settings and automation policies.
+ - 🏗️ Layer: Domain
+ - ℂ **NotificationChannel** (`Class`) `[TRIVIAL]`
+ - 📝 Structured notification channel definition for policy-level custom routing.
+ - ℂ **ValidationPolicyBase** (`Class`) `[TRIVIAL]`
+ - 📝 Base schema for validation policy data.
+ - ℂ **ValidationPolicyCreate** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for creating a new validation policy.
+ - ℂ **ValidationPolicyUpdate** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for updating an existing validation policy.
+ - ℂ **ValidationPolicyResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for validation policy response data.
+- 📦 **backend.src.schemas.auth** (`Module`)
+ - 📝 Pydantic schemas for authentication requests and responses.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: Sensitive fields like password must not be included in response schemas.
+ - 🔗 DEPENDS_ON -> `pydantic`
+ - ℂ **Token** (`Class`) `[TRIVIAL]`
+ - 📝 Represents a JWT access token response.
+ - ℂ **TokenData** (`Class`) `[TRIVIAL]`
+ - 📝 Represents the data encoded in a JWT token.
+ - ℂ **PermissionSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Represents a permission in API responses.
+ - ℂ **RoleSchema** (`Class`) `[CRITICAL]`
+ - 📝 Represents a role in API responses.
+ - ℂ **RoleCreate** (`Class`) `[CRITICAL]`
+ - 📝 Schema for creating a new role.
+ - ℂ **RoleUpdate** (`Class`) `[CRITICAL]`
+ - 📝 Schema for updating an existing role.
+ - ℂ **ADGroupMappingSchema** (`Class`) `[CRITICAL]`
+ - 📝 Represents an AD Group to Role mapping in API responses.
+ - ℂ **ADGroupMappingCreate** (`Class`) `[CRITICAL]`
+ - 📝 Schema for creating an AD Group mapping.
+ - ℂ **UserBase** (`Class`) `[CRITICAL]`
+ - 📝 Base schema for user data.
+ - ℂ **UserCreate** (`Class`) `[CRITICAL]`
+ - 📝 Schema for creating a new user.
+ - ℂ **UserUpdate** (`Class`) `[CRITICAL]`
+ - 📝 Schema for updating an existing user.
+ - ℂ **User** (`Class`) `[CRITICAL]`
+ - 📝 Schema for user data in API responses.
+- 📦 **backend.src.schemas.profile** (`Module`)
+ - 📝 Defines API schemas for profile preference persistence, security read-only snapshot, and Superset account lookup.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: Schema shapes stay stable for profile UI states and backend preference contracts.
+ - 🔗 DEPENDS_ON -> `pydantic`
+ - ℂ **ProfilePermissionState** (`Class`)
+ - 📝 Represents one permission badge state for profile read-only security view.
+ - ℂ **ProfileSecuritySummary** (`Class`)
+ - 📝 Read-only security and access snapshot for current user.
+ - ℂ **ProfilePreference** (`Class`)
+ - 📝 Represents persisted profile preference for a single authenticated user.
+ - ℂ **ProfilePreferenceUpdateRequest** (`Class`)
+ - 📝 Request payload for updating current user's profile settings.
+ - ℂ **ProfilePreferenceResponse** (`Class`)
+ - 📝 Response envelope for profile preference read/update endpoints.
+ - ℂ **SupersetAccountLookupRequest** (`Class`)
+ - 📝 Query contract for Superset account lookup by selected environment.
+ - ℂ **SupersetAccountCandidate** (`Class`)
+ - 📝 Canonical account candidate projected from Superset users payload.
+ - ℂ **SupersetAccountLookupResponse** (`Class`)
+ - 📝 Response envelope for Superset account lookup (success or degraded mode).
+- 📦 **src.schemas** (`Package`) `[TRIVIAL]`
+ - 📝 API schema package root.
+- 📦 **TestSettingsAndHealthSchemas** (`Module`)
+ - 📝 Regression tests for settings and health schema contracts updated in 026 fix batch.
+ - ƒ **test_validation_policy_create_accepts_structured_custom_channels** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure policy schema accepts structured custom channel objects with type/target fields.
+ - 🔗 BINDS_TO -> `TestSettingsAndHealthSchemas`
+ - ƒ **test_validation_policy_create_rejects_legacy_string_custom_channels** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure legacy list[str] custom channel payload is rejected by typed channel contract.
+ - 🔗 BINDS_TO -> `TestSettingsAndHealthSchemas`
+ - ƒ **test_dashboard_health_item_status_accepts_only_whitelisted_values** (`Function`) `[TRIVIAL]`
+ - 📝 Verify strict grouped regex only accepts PASS/WARN/FAIL/UNKNOWN exact statuses.
+ - 🔗 BINDS_TO -> `TestSettingsAndHealthSchemas`
+- 📦 **backend.src.core.superset_profile_lookup** (`Module`)
+ - 📝 Provides environment-scoped Superset account lookup adapter with stable normalized output.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Adapter never leaks raw upstream payload shape to API consumers.
+ - 🔗 DEPENDS_ON -> `backend.src.core.utils.network.APIClient`
+ - 🔗 DEPENDS_ON -> `backend.src.core.logger`
+ - ℂ **SupersetAccountLookupAdapter** (`Class`)
+ - 📝 Lookup Superset users and normalize candidates for profile binding.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes lookup adapter with authenticated API client and environment context.
+ - ƒ **get_users_page** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch one users page from Superset with passthrough search/sort parameters.
+ - ƒ **_normalize_lookup_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Convert Superset users response variants into stable candidates payload.
+ - ƒ **normalize_user_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Project raw Superset user object to canonical candidate shape.
+- 📦 **SupersetClientModule** (`Module`)
+ - 📝 Предоставляет высокоуровневый клиент для взаимодействия с Superset REST API, инкапсулируя логику запросов, обработку ошибок и пагинацию.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: All network operations must use the internal APIClient instance.
+ - 🔗 DEPENDS_ON -> `APIClient.__init__`
+ - ℂ **SupersetClient** (`Class`)
+ - 📝 Класс-обёртка над Superset REST API, предоставляющий методы для работы с дашбордами и датасетами.
+ - 🔗 DEPENDS_ON -> `APIClient`
+ - ƒ **SupersetClient.__init__** (`Function`)
+ - 📝 Инициализирует клиент, проверяет конфигурацию и создает сетевой клиент.
+ - 🔗 DEPENDS_ON -> `Environment`
+ - 🔗 DEPENDS_ON -> `APIClient.__init__`
+ - ƒ **SupersetClient.authenticate** (`Function`)
+ - 📝 Authenticates the client using the configured credentials.
+ - 🔗 CALLS -> `APIClient.authenticate`
+ - ƒ **SupersetClient.headers** (`Function`) `[TRIVIAL]`
+ - 📝 Возвращает базовые HTTP-заголовки, используемые сетевым клиентом.
+ - ƒ **SupersetClient.get_dashboards** (`Function`)
+ - 📝 Получает полный список дашбордов, автоматически обрабатывая пагинацию.
+ - 🔗 CALLS -> `_fetch_all_pages`
+ - ƒ **SupersetClient.get_dashboards_page** (`Function`)
+ - 📝 Fetches a single dashboards page from Superset without iterating all pages.
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.get_dashboards_summary** (`Function`)
+ - 📝 Fetches dashboard metadata optimized for the grid.
+ - 🔗 CALLS -> `SupersetClient.get_dashboards`
+ - ƒ **SupersetClient.get_dashboards_summary_page** (`Function`)
+ - 📝 Fetches one page of dashboard metadata optimized for the grid.
+ - 🔗 CALLS -> `SupersetClient.get_dashboards_page`
+ - ƒ **SupersetClient._extract_owner_labels** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize dashboard owners payload to stable display labels.
+ - ƒ **SupersetClient._extract_user_display** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize user payload to a stable display name.
+ - ƒ **SupersetClient._sanitize_user_text** (`Function`) `[TRIVIAL]`
+ - 📝 Convert scalar value to non-empty user-facing text.
+ - ƒ **SupersetClient.get_dashboard** (`Function`)
+ - 📝 Fetches a single dashboard by ID or slug.
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.get_dashboard_permalink_state** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches stored dashboard permalink state by permalink key.
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.get_native_filter_state** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches stored native filter state by filter state key.
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.extract_native_filters_from_permalink** (`Function`)
+ - 📝 Extract native filters dataMask from a permalink key.
+ - 🔗 CALLS -> `SupersetClient.get_dashboard_permalink_state`
+ - ƒ **SupersetClient.extract_native_filters_from_key** (`Function`)
+ - 📝 Extract native filters from a native_filters_key URL parameter.
+ - 🔗 CALLS -> `SupersetClient.get_native_filter_state`
+ - ƒ **SupersetClient.parse_dashboard_url_for_filters** (`Function`)
+ - 📝 Parse a Superset dashboard URL and extract native filter state if present.
+ - 🔗 CALLS -> `SupersetClient.extract_native_filters_from_permalink`
+ - 🔗 CALLS -> `SupersetClient.extract_native_filters_from_key`
+ - ƒ **SupersetClient.get_chart** (`Function`)
+ - 📝 Fetches a single chart by ID.
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.get_dashboard_detail** (`Function`)
+ - 📝 Fetches detailed dashboard information including related charts and datasets.
+ - 🔗 CALLS -> `SupersetClient.get_dashboard`
+ - 🔗 CALLS -> `SupersetClient.get_chart`
+ - ƒ **extract_dataset_id_from_form_data** (`Function`) `[TRIVIAL]`
+ - ƒ **SupersetClient.get_charts** (`Function`)
+ - 📝 Fetches all charts with pagination support.
+ - 🔗 CALLS -> `_fetch_all_pages`
+ - ƒ **SupersetClient._extract_chart_ids_from_layout** (`Function`) `[TRIVIAL]`
+ - 📝 Traverses dashboard layout metadata and extracts chart IDs from common keys.
+ - ƒ **export_dashboard** (`Function`)
+ - 📝 Экспортирует дашборд в виде ZIP-архива.
+ - 🔗 CALLS -> `request`
+ - ƒ **import_dashboard** (`Function`)
+ - 📝 Импортирует дашборд из ZIP-файла.
+ - 🔗 CALLS -> `SupersetClient._do_import`
+ - 🔗 CALLS -> `delete_dashboard`
+ - ƒ **delete_dashboard** (`Function`)
+ - 📝 Удаляет дашборд по его ID или slug.
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.get_datasets** (`Function`)
+ - 📝 Получает полный список датасетов, автоматически обрабатывая пагинацию.
+ - 🔗 CALLS -> `_fetch_all_pages`
+ - ƒ **SupersetClient.get_datasets_summary** (`Function`)
+ - 📝 Fetches dataset metadata optimized for the Dataset Hub grid.
+ - 🔗 CALLS -> `SupersetClient.get_datasets`
+ - ƒ **get_dataset_detail** (`Function`)
+ - 📝 Fetches detailed dataset information including columns and linked dashboards
+ - 🔗 CALLS -> `SupersetClient.get_dataset`
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.get_dataset** (`Function`)
+ - 📝 Получает информацию о конкретном датасете по его ID.
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.compile_dataset_preview** (`Function`)
+ - 📝 Compile dataset preview SQL through the strongest supported Superset preview endpoint family and return normalized SQL output.
+ - 🔗 CALLS -> `SupersetClient.get_dataset`
+ - 🔗 CALLS -> `SupersetClient.build_dataset_preview_query_context`
+ - 🔗 CALLS -> `SupersetClient.build_dataset_preview_legacy_form_data`
+ - 🔗 CALLS -> `request`
+ - 🔗 CALLS -> `_extract_compiled_sql_from_preview_response`
+ - ƒ **SupersetClient.build_dataset_preview_legacy_form_data** (`Function`)
+ - 📝 Build browser-style legacy form_data payload for Superset preview endpoints inferred from observed deployment traffic.
+ - 🔗 CALLS -> `SupersetClient.build_dataset_preview_query_context`
+ - ƒ **SupersetClient.build_dataset_preview_query_context** (`Function`)
+ - 📝 Build a reduced-scope chart-data query context for deterministic dataset preview compilation.
+ - 🔗 CALLS -> `_normalize_effective_filters_for_query_context`
+ - ƒ **_normalize_effective_filters_for_query_context** (`Function`)
+ - 📝 Convert execution mappings into Superset chart-data filter objects.
+ - 🔗 DEPENDS_ON -> `FilterStateModels`
+ - ƒ **_extract_compiled_sql_from_preview_response** (`Function`)
+ - 📝 Normalize compiled SQL from either chart-data or legacy form_data preview responses.
+ - 🔗 DEPENDS_ON -> `SupersetAPIError`
+ - ƒ **SupersetClient.update_dataset** (`Function`)
+ - 📝 Обновляет данные датасета по его ID.
+ - 🔗 CALLS -> `request`
+ - ƒ **SupersetClient.get_databases** (`Function`)
+ - 📝 Получает полный список баз данных.
+ - 🔗 CALLS -> `_fetch_all_pages`
+ - ƒ **get_database** (`Function`)
+ - 📝 Получает информацию о конкретной базе данных по её ID.
+ - 🔗 CALLS -> `request`
+ - ƒ **get_databases_summary** (`Function`)
+ - 📝 Fetch a summary of databases including uuid, name, and engine.
+ - 🔗 CALLS -> `SupersetClient.get_databases`
+ - ƒ **get_database_by_uuid** (`Function`)
+ - 📝 Find a database by its UUID.
+ - 🔗 CALLS -> `SupersetClient.get_databases`
+ - ƒ **SupersetClient._resolve_target_id_for_delete** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves a dashboard ID from either an ID or a slug.
+ - 🔗 CALLS -> `SupersetClient.get_dashboards`
+ - ƒ **SupersetClient._do_import** (`Function`) `[TRIVIAL]`
+ - 📝 Performs the actual multipart upload for import.
+ - 🔗 CALLS -> `APIClient.upload_file`
+ - ƒ **_validate_export_response** (`Function`) `[TRIVIAL]`
+ - 📝 Validates that the export response is a non-empty ZIP archive.
+ - ƒ **_resolve_export_filename** (`Function`) `[TRIVIAL]`
+ - 📝 Determines the filename for an exported dashboard.
+ - ƒ **_validate_query_params** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures query parameters have default page and page_size.
+ - ƒ **_fetch_total_object_count** (`Function`) `[TRIVIAL]`
+ - 📝 Fetches the total number of items for a given endpoint.
+ - 🔗 CALLS -> `fetch_paginated_count`
+ - ƒ **_fetch_all_pages** (`Function`) `[TRIVIAL]`
+ - 📝 Iterates through all pages to collect all data items.
+ - 🔗 CALLS -> `fetch_paginated_data`
+ - ƒ **_validate_import_file** (`Function`) `[TRIVIAL]`
+ - 📝 Validates that the file to be imported is a valid ZIP with metadata.yaml.
+ - ƒ **get_all_resources** (`Function`)
+ - 📝 Fetches all resources of a given type with id, uuid, and name columns.
+ - 🔗 CALLS -> `_fetch_all_pages`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authenticate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **headers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_dashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_dashboards_page** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_dashboards_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_dashboards_summary_page** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_owner_labels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_user_display** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_sanitize_user_text** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_dashboard_permalink_state** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_native_filter_state** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extract_native_filters_from_permalink** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extract_native_filters_from_key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parse_dashboard_url_for_filters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_chart** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_dashboard_detail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_charts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_chart_ids_from_layout** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **walk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_datasets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_datasets_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **as_bool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_dataset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **compile_dataset_preview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build_dataset_preview_legacy_form_data** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build_dataset_preview_query_context** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **update_dataset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_databases** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_resolve_target_id_for_delete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_do_import** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **EncryptionKeyModule** (`Module`) `[CRITICAL]`
+ - 📝 Resolve and persist the Fernet encryption key required by runtime services.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Runtime key resolution never falls back to an ephemeral secret.
+ - 🔗 DEPENDS_ON -> `LoggerModule`
+ - ƒ **ensure_encryption_key** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure backend runtime has a persistent valid Fernet key.
+- 📦 **ConfigManager** (`Module`) `[CRITICAL]`
+ - 📝 Manages application configuration persistence in DB with one-time migration from legacy JSON.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Configuration must always be representable by AppConfig and persisted under global record id.
+ - 🔗 DEPENDS_ON -> `AppConfig`
+ - 🔗 DEPENDS_ON -> `SessionLocal`
+ - 🔗 DEPENDS_ON -> `AppConfigRecord`
+ - 🔗 CALLS -> `logger`
+ - 🔗 CALLS -> `configure_logger`
+ - ℂ **ConfigManager** (`Class`) `[CRITICAL]`
+ - 📝 Handles application configuration load, validation, mutation, and persistence lifecycle.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize manager state from persisted or migrated configuration.
+ - ƒ **_default_config** (`Function`) `[TRIVIAL]`
+ - 📝 Build default application configuration fallback.
+ - ƒ **_sync_raw_payload_from_config** (`Function`) `[TRIVIAL]`
+ - 📝 Merge typed AppConfig state into raw payload while preserving unsupported legacy sections.
+ - ƒ **_load_from_legacy_file** (`Function`) `[TRIVIAL]`
+ - 📝 Load legacy JSON configuration for migration fallback path.
+ - ƒ **_get_record** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve global configuration record from DB.
+ - ƒ **_load_config** (`Function`) `[TRIVIAL]`
+ - 📝 Load configuration from DB or perform one-time migration from legacy JSON.
+ - ƒ **_sync_environment_records** (`Function`) `[TRIVIAL]`
+ - 📝 Mirror configured environments into the relational environments table used by FK-backed domain models.
+ - ƒ **_save_config_to_db** (`Function`) `[TRIVIAL]`
+ - 📝 Persist provided AppConfig into the global DB configuration record.
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Persist current in-memory configuration state.
+ - ƒ **get_config** (`Function`) `[TRIVIAL]`
+ - 📝 Return current in-memory configuration snapshot.
+ - ƒ **get_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Return full persisted payload including sections outside typed AppConfig schema.
+ - ƒ **save_config** (`Function`) `[TRIVIAL]`
+ - 📝 Persist configuration provided either as typed AppConfig or raw payload dict.
+ - ƒ **update_global_settings** (`Function`) `[TRIVIAL]`
+ - 📝 Replace global settings and persist the resulting configuration.
+ - ƒ **validate_path** (`Function`) `[TRIVIAL]`
+ - 📝 Validate that path exists and is writable, creating it when absent.
+ - ƒ **get_environments** (`Function`) `[TRIVIAL]`
+ - 📝 Return all configured environments.
+ - ƒ **has_environments** (`Function`) `[TRIVIAL]`
+ - 📝 Check whether at least one environment exists in configuration.
+ - ƒ **get_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve a configured environment by identifier.
+ - ƒ **add_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Upsert environment by id into configuration and persist.
+ - ƒ **update_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Update existing environment by id and preserve masked password placeholder behavior.
+ - ƒ **delete_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Delete environment by id and persist when deletion occurs.
+- 📦 **SchedulerModule** (`Module`)
+ - 📝 Manages scheduled tasks using APScheduler.
+ - 🏗️ Layer: Core
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - ℂ **SchedulerService** (`Class`)
+ - 📝 Provides a service to manage scheduled backup tasks.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the scheduler service with task and config managers.
+ - ƒ **start** (`Function`) `[TRIVIAL]`
+ - 📝 Starts the background scheduler and loads initial schedules.
+ - ƒ **stop** (`Function`) `[TRIVIAL]`
+ - 📝 Stops the background scheduler.
+ - ƒ **load_schedules** (`Function`) `[TRIVIAL]`
+ - 📝 Loads backup schedules from configuration and registers them.
+ - ƒ **add_backup_job** (`Function`) `[TRIVIAL]`
+ - 📝 Adds a scheduled backup job for an environment.
+ - ƒ **_trigger_backup** (`Function`) `[TRIVIAL]`
+ - 📝 Triggered by the scheduler to start a backup task.
+ - ℂ **ThrottledSchedulerConfigurator** (`Class`) `[CRITICAL]`
+ - 📝 Distributes validation tasks evenly within an execution window.
+ - 🔒 Invariant: Returned schedule size always matches number of dashboard IDs.
+ - 🔗 DEPENDS_ON -> `SchedulerModule`
+ - ƒ **calculate_schedule** (`Function`) `[TRIVIAL]`
+ - 📝 Calculates execution times for N tasks within a window.
+ - 🔒 Invariant: Tasks are distributed with near-even spacing.
+- 📦 **backend.src.core.config_models** (`Module`)
+ - 📝 Defines the data models for application configuration using Pydantic.
+ - 🏗️ Layer: Core
+ - 📦 **Schedule** (`DataClass`) `[TRIVIAL]`
+ - 📝 Represents a backup schedule configuration.
+ - 📦 **backend.src.core.config_models.Environment** (`DataClass`) `[TRIVIAL]`
+ - 📝 Represents a Superset environment configuration.
+ - 📦 **LoggingConfig** (`DataClass`) `[TRIVIAL]`
+ - 📝 Defines the configuration for the application's logging system.
+ - 📦 **CleanReleaseConfig** (`DataClass`) `[TRIVIAL]`
+ - 📝 Configuration for clean release compliance subsystem.
+ - 📦 **GlobalSettings** (`DataClass`) `[TRIVIAL]`
+ - 📝 Represents global application settings.
+ - 📦 **AppConfig** (`DataClass`) `[TRIVIAL]`
+ - 📝 The root configuration model containing all application settings.
+- 📦 **DatabaseModule** (`Module`)
+ - 📝 Configures database connection and session management (PostgreSQL-first).
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: A single engine instance is used for the entire application.
+ - 🔗 DEPENDS_ON -> `MappingModels`
+ - 🔗 DEPENDS_ON -> `auth_config`
+ - 🔗 DEPENDS_ON -> `ConnectionConfig`
+ - 📦 **BASE_DIR** (`Variable`) `[TRIVIAL]`
+ - 📝 Base directory for the backend.
+ - 📦 **DATABASE_URL** (`Constant`) `[TRIVIAL]`
+ - 📝 URL for the main application database.
+ - 📦 **TASKS_DATABASE_URL** (`Constant`) `[TRIVIAL]`
+ - 📝 URL for the tasks execution database.
+ - 📦 **AUTH_DATABASE_URL** (`Constant`) `[TRIVIAL]`
+ - 📝 URL for the authentication database.
+ - 📦 **engine** (`Variable`) `[TRIVIAL]`
+ - 📝 SQLAlchemy engine for mappings database.
+ - 📦 **tasks_engine** (`Variable`) `[TRIVIAL]`
+ - 📝 SQLAlchemy engine for tasks database.
+ - 📦 **auth_engine** (`Variable`) `[TRIVIAL]`
+ - 📝 SQLAlchemy engine for authentication database.
+ - ℂ **SessionLocal** (`Class`) `[TRIVIAL]`
+ - 📝 A session factory for the main mappings database.
+ - ℂ **TasksSessionLocal** (`Class`) `[TRIVIAL]`
+ - 📝 A session factory for the tasks execution database.
+ - ℂ **AuthSessionLocal** (`Class`) `[TRIVIAL]`
+ - 📝 A session factory for the authentication database.
+ - ƒ **_ensure_user_dashboard_preferences_columns** (`Function`)
+ - 📝 Applies additive schema upgrades for user_dashboard_preferences table.
+ - 🔗 DEPENDS_ON -> `engine`
+ - ƒ **_ensure_user_dashboard_preferences_health_columns** (`Function`)
+ - 📝 Applies additive schema upgrades for user_dashboard_preferences table (health fields).
+ - 🔗 DEPENDS_ON -> `engine`
+ - ƒ **_ensure_llm_validation_results_columns** (`Function`)
+ - 📝 Applies additive schema upgrades for llm_validation_results table.
+ - 🔗 DEPENDS_ON -> `engine`
+ - ƒ **_ensure_git_server_configs_columns** (`Function`)
+ - 📝 Applies additive schema upgrades for git_server_configs table.
+ - 🔗 DEPENDS_ON -> `engine`
+ - ƒ **_ensure_auth_users_columns** (`Function`)
+ - 📝 Applies additive schema upgrades for auth users table.
+ - 🔗 DEPENDS_ON -> `auth_engine`
+ - ƒ **ensure_connection_configs_table** (`Function`)
+ - 📝 Ensures the external connection registry table exists in the main database.
+ - 🔗 DEPENDS_ON -> `ConnectionConfig`
+ - ƒ **_ensure_filter_source_enum_values** (`Function`)
+ - 📝 Adds missing FilterSource enum values to the PostgreSQL native filtersource type.
+ - 🔗 DEPENDS_ON -> `engine`
+ - ƒ **init_db** (`Function`)
+ - 📝 Initializes the database by creating all tables.
+ - 🔗 CALLS -> `ensure_connection_configs_table`
+ - 🔗 CALLS -> `_ensure_filter_source_enum_values`
+ - ƒ **get_db** (`Function`)
+ - 📝 Dependency for getting a database session.
+ - 🔗 DEPENDS_ON -> `SessionLocal`
+ - ƒ **get_tasks_db** (`Function`)
+ - 📝 Dependency for getting a tasks database session.
+ - 🔗 DEPENDS_ON -> `TasksSessionLocal`
+ - ƒ **get_auth_db** (`Function`)
+ - 📝 Dependency for getting an authentication database session.
+ - 🔗 DEPENDS_ON -> `AuthSessionLocal`
+ - ƒ **_build_engine** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **LoggerModule** (`Module`) `[TRIVIAL]`
+ - 📝 Configures the application's logging system, including a custom handler for buffering logs and streaming them over WebSockets.
+ - 🏗️ Layer: Core
+ - ℂ **BeliefFormatter** (`Class`) `[TRIVIAL]`
+ - 📝 Custom logging formatter that adds belief state prefixes to log messages.
+ - ƒ **format** (`Function`) `[TRIVIAL]`
+ - 📝 Formats the log record, adding belief state context if available.
+ - ℂ **LogEntry** (`Class`) `[TRIVIAL]`
+ - 📝 A Pydantic model representing a single, structured log entry. This is a re-definition for consistency, as it's also defined in task_manager.py.
+ - ƒ **belief_scope** (`Function`) `[TRIVIAL]`
+ - 📝 Context manager for structured Belief State logging.
+ - ƒ **configure_logger** (`Function`) `[TRIVIAL]`
+ - 📝 Configures the logger with the provided logging settings.
+ - ƒ **get_task_log_level** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the current task log level filter.
+ - ƒ **should_log_task_level** (`Function`) `[TRIVIAL]`
+ - 📝 Checks if a log level should be recorded based on task_log_level setting.
+ - ℂ **WebSocketLogHandler** (`Class`) `[TRIVIAL]`
+ - 📝 A custom logging handler that captures log records into a buffer. It is designed to be extended for real-time log streaming over WebSockets.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the handler with a fixed-capacity buffer.
+ - ƒ **emit** (`Function`) `[TRIVIAL]`
+ - 📝 Captures a log record, formats it, and stores it in the buffer.
+ - ƒ **get_recent_logs** (`Function`) `[TRIVIAL]`
+ - 📝 Returns a list of recent log entries from the buffer.
+ - 📦 **Logger** (`Global`) `[TRIVIAL]`
+ - 📝 The global logger instance for the application, configured with both a console handler and the custom WebSocket handler.
+ - ƒ **believed** (`Function`) `[TRIVIAL]`
+ - 📝 A decorator that wraps a function in a belief scope.
+ - ƒ **decorator** (`Function`) `[TRIVIAL]`
+ - 📝 Internal decorator for belief scope.
+ - ƒ **explore** (`Function`) `[TRIVIAL]`
+ - 📝 Logs an EXPLORE message (Van der Waals force) for searching, alternatives, and hypotheses.
+ - ƒ **reason** (`Function`) `[TRIVIAL]`
+ - 📝 Logs a REASON message (Covalent bond) for strict deduction and core logic.
+ - ƒ **reflect** (`Function`) `[TRIVIAL]`
+ - 📝 Logs a REFLECT message (Hydrogen bond) for self-check and structural validation.
+- ℂ **PluginLoader** (`Class`)
+ - 📝 Scans a specified directory for Python modules, dynamically loads them, and registers any classes that are valid implementations of the PluginBase interface.
+ - 🏗️ Layer: Core
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the PluginLoader with a directory to scan.
+ - ƒ **_load_plugins** (`Function`) `[TRIVIAL]`
+ - 📝 Scans the plugin directory and loads all valid plugins.
+ - ƒ **_load_module** (`Function`) `[TRIVIAL]`
+ - 📝 Loads a single Python module and discovers PluginBase implementations.
+ - ƒ **_register_plugin** (`Function`) `[TRIVIAL]`
+ - 📝 Registers a PluginBase instance and its configuration.
+ - ƒ **get_plugin** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieves a loaded plugin instance by its ID.
+ - ƒ **get_all_plugin_configs** (`Function`) `[TRIVIAL]`
+ - 📝 Returns a list of all registered plugin configurations.
+ - ƒ **has_plugin** (`Function`) `[TRIVIAL]`
+ - 📝 Checks if a plugin with the given ID is registered.
+- 📦 **backend.src.core.migration_engine** (`Module`) `[CRITICAL]`
+ - 📝 Transforms Superset export ZIP archives while preserving archive integrity and patching mapped identifiers.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: ZIP structure and non-targeted metadata must remain valid after transformation.
+ - 🔗 DEPENDS_ON -> `src.core.logger`
+ - 🔗 DEPENDS_ON -> `src.core.mapping_service.IdMappingService`
+ - 🔗 DEPENDS_ON -> `src.models.mapping.ResourceType`
+ - 🔗 DEPENDS_ON -> `yaml`
+ - ℂ **MigrationEngine** (`Class`) `[CRITICAL]`
+ - 📝 Engine for transforming Superset export ZIPs.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes migration orchestration dependencies for ZIP/YAML metadata transformations.
+ - ƒ **transform_zip** (`Function`) `[TRIVIAL]`
+ - 📝 Extracts ZIP, replaces database UUIDs in YAMLs, patches cross-filters, and re-packages.
+ - 🔗 DEPENDS_ON -> `_transform_yaml, _extract_chart_uuids_from_archive, _patch_dashboard_metadata`
+ - ƒ **_transform_yaml** (`Function`) `[TRIVIAL]`
+ - 📝 Replaces database_uuid in a single YAML file.
+ - ƒ **_extract_chart_uuids_from_archive** (`Function`) `[TRIVIAL]`
+ - 📝 Scans extracted chart YAML files and builds a source chart ID to UUID lookup map.
+ - ƒ **_patch_dashboard_metadata** (`Function`) `[TRIVIAL]`
+ - 📝 Rewrites dashboard json_metadata chart/dataset integer identifiers using target environment mappings.
+- 📦 **AsyncSupersetClientModule** (`Module`) `[CRITICAL]`
+ - 📝 Async Superset client for dashboard hot-path requests without blocking FastAPI event loop.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Async dashboard operations reuse shared auth cache and avoid sync requests in async routes.
+ - 🔗 DEPENDS_ON -> `SupersetClientModule`
+ - 🔗 DEPENDS_ON -> `AsyncAPIClient`
+ - ℂ **AsyncSupersetClient** (`Class`)
+ - 📝 Async sibling of SupersetClient for dashboard read paths.
+ - 🔗 INHERITS -> `SupersetClient`
+ - 🔗 DEPENDS_ON -> `AsyncAPIClient`
+ - 🔗 CALLS -> `AsyncAPIClient.request`
+ - ƒ **AsyncSupersetClientInit** (`Function`)
+ - 📝 Initialize async Superset client with AsyncAPIClient transport.
+ - 🔗 DEPENDS_ON -> `AsyncAPIClient`
+ - ƒ **AsyncSupersetClientClose** (`Function`)
+ - 📝 Close async transport resources.
+ - 🔗 CALLS -> `AsyncAPIClient.aclose`
+ - ƒ **get_dashboards_page_async** (`Function`)
+ - 📝 Fetch one dashboards page asynchronously.
+ - 🔗 CALLS -> `AsyncAPIClient.request`
+ - ƒ **get_dashboard_async** (`Function`)
+ - 📝 Fetch one dashboard payload asynchronously.
+ - 🔗 CALLS -> `AsyncAPIClient.request`
+ - ƒ **get_chart_async** (`Function`)
+ - 📝 Fetch one chart payload asynchronously.
+ - 🔗 CALLS -> `AsyncAPIClient.request`
+ - ƒ **get_dashboard_detail_async** (`Function`)
+ - 📝 Fetch dashboard detail asynchronously with concurrent charts/datasets requests.
+ - 🔗 CALLS -> `get_dashboard_async`
+ - 🔗 CALLS -> `get_chart_async`
+ - ƒ **get_dashboard_permalink_state_async** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch stored dashboard permalink state asynchronously.
+ - ƒ **get_native_filter_state_async** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch stored native filter state asynchronously.
+ - ƒ **extract_native_filters_from_permalink_async** (`Function`)
+ - 📝 Extract native filters dataMask from a permalink key asynchronously.
+ - 🔗 CALLS -> `get_dashboard_permalink_state_async`
+ - ƒ **extract_native_filters_from_key_async** (`Function`)
+ - 📝 Extract native filters from a native_filters_key URL parameter asynchronously.
+ - 🔗 CALLS -> `get_native_filter_state_async`
+ - ƒ **parse_dashboard_url_for_filters_async** (`Function`)
+ - 📝 Parse a Superset dashboard URL and extract native filter state asynchronously.
+ - 🔗 CALLS -> `extract_native_filters_from_permalink_async`
+ - 🔗 CALLS -> `extract_native_filters_from_key_async`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **aclose** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **extract_dataset_id_from_form_data** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ℂ **PluginBase** (`Class`) `[TRIVIAL]`
+ - 📝 Defines the abstract base class that all plugins must implement to be recognized by the system. It enforces a common structure for plugin metadata and execution.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: All plugins MUST inherit from this class.
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the unique identifier for the plugin.
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the human-readable name of the plugin.
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Returns a brief description of the plugin.
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the version of the plugin.
+ - ƒ **required_permission** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the required permission string to execute this plugin.
+ - ƒ **ui_route** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the frontend route for the plugin's UI, if applicable.
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the JSON schema for the plugin's input parameters.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Executes the plugin's core logic.
+- ℂ **PluginConfig** (`Class`) `[TRIVIAL]`
+ - 📝 A Pydantic model used to represent the validated configuration and metadata of a loaded plugin. This object is what gets exposed to the API layer.
+ - 🏗️ Layer: Core
+- 📦 **src.core** (`Package`) `[TRIVIAL]`
+ - 📝 Backend core services and infrastructure package root.
+- 📦 **IdMappingServiceModule** (`Module`) `[CRITICAL]`
+ - 📝 Service for tracking and synchronizing Superset Resource IDs (UUID <-> Integer ID)
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: sync_environment must handle remote API failures gracefully.
+ - 🔗 DEPENDS_ON -> `MappingModels`
+ - 🔗 DEPENDS_ON -> `LoggerModule`
+ - ℂ **IdMappingService** (`Class`) `[CRITICAL]`
+ - 📝 Service handling the cataloging and retrieval of remote Superset Integer IDs.
+ - 🔒 Invariant: self.db remains the authoritative session for all mapping operations.
+ - 🔗 DEPENDS_ON -> `MappingModels`
+ - 🔗 DEPENDS_ON -> `LoggerModule`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the mapping service.
+ - ƒ **start_scheduler** (`Function`) `[TRIVIAL]`
+ - 📝 Starts the background scheduler with a given cron string.
+ - ƒ **sync_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Fully synchronizes mapping for a specific environment.
+ - ƒ **get_remote_id** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieves the remote integer ID for a given universal UUID.
+ - ƒ **get_remote_ids_batch** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieves remote integer IDs for a list of universal UUIDs efficiently.
+ - ƒ **sync_all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AuthConfigModule** (`Module`) `[TRIVIAL]`
+ - 📝 Centralized configuration for authentication and authorization.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: All sensitive configuration must have defaults or be loaded from environment.
+ - 🔗 DEPENDS_ON -> `pydantic`
+ - ℂ **AuthConfig** (`Class`) `[CRITICAL]`
+ - 📝 Holds authentication-related settings.
+ - 🔗 INHERITS -> `pydantic_settings.BaseSettings`
+ - 📦 **auth_config** (`Variable`) `[TRIVIAL]`
+ - 📝 Singleton instance of AuthConfig.
+ - 🔗 DEPENDS_ON -> `AuthConfig`
+- 📦 **AuthJwtModule** (`Module`)
+ - 📝 JWT token generation and validation logic.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Tokens must include expiration time and user identifier.
+ - 🔗 DEPENDS_ON -> `auth_config`
+ - ƒ **create_access_token** (`Function`) `[TRIVIAL]`
+ - 📝 Generates a new JWT access token.
+ - 🔗 DEPENDS_ON -> `auth_config`
+ - ƒ **decode_token** (`Function`) `[TRIVIAL]`
+ - 📝 Decodes and validates a JWT token.
+ - 🔗 DEPENDS_ON -> `auth_config`
+- 📦 **AuthOauthModule** (`Module`) `[TRIVIAL]`
+ - 📝 ADFS OIDC configuration and client using Authlib.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Must use secure OIDC flows.
+ - 🔗 DEPENDS_ON -> `authlib`
+ - 📦 **oauth** (`Variable`) `[TRIVIAL]`
+ - 📝 Global Authlib OAuth registry.
+ - 🔗 DEPENDS_ON -> `OAuth`
+ - ƒ **register_adfs** (`Function`) `[TRIVIAL]`
+ - 📝 Registers the ADFS OIDC client.
+ - ƒ **is_adfs_configured** (`Function`) `[TRIVIAL]`
+ - 📝 Checks if ADFS is properly configured.
+- 📦 **AuthLoggerModule** (`Module`)
+ - 📝 Audit logging for security-related events.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Must not log sensitive data like passwords or full tokens.
+ - ƒ **log_security_event** (`Function`) `[TRIVIAL]`
+ - 📝 Logs a security-related event for audit trails.
+- 📦 **AuthSecurityModule** (`Module`) `[TRIVIAL]`
+ - 📝 Utility for password hashing and verification using Passlib.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Uses bcrypt for hashing with standard work factor.
+ - 🔗 DEPENDS_ON -> `bcrypt`
+ - ƒ **verify_password** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies a plain password against a hashed password.
+ - 🔗 DEPENDS_ON -> `bcrypt`
+ - ƒ **get_password_hash** (`Function`) `[TRIVIAL]`
+ - 📝 Generates a bcrypt hash for a plain password.
+ - 🔗 DEPENDS_ON -> `bcrypt`
+- 📦 **AuthRepositoryModule** (`Module`) `[CRITICAL]`
+ - 📝 Data access layer for authentication and user preference entities.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: All database read/write operations must execute via the injected SQLAlchemy session boundary.
+ - 🔗 DEPENDS_ON -> `Session`
+ - 🔗 DEPENDS_ON -> `User`
+ - 🔗 DEPENDS_ON -> `Role`
+ - 🔗 DEPENDS_ON -> `Permission`
+ - 🔗 DEPENDS_ON -> `UserDashboardPreference`
+ - 🔗 DEPENDS_ON -> `belief_scope`
+ - ℂ **AuthRepository** (`Class`) `[CRITICAL]`
+ - 📝 Initialize repository with database session.
+ - 🔗 DEPENDS_ON -> `Session`
+ - ƒ **get_user_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve user by UUID.
+ - 🔗 DEPENDS_ON -> `User`
+ - ƒ **get_user_by_username** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve user by username.
+ - 🔗 DEPENDS_ON -> `User`
+ - ƒ **get_role_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve role by UUID with permissions preloaded.
+ - 🔗 DEPENDS_ON -> `Role`
+ - 🔗 DEPENDS_ON -> `Permission`
+ - ƒ **get_role_by_name** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve role by unique name.
+ - 🔗 DEPENDS_ON -> `Role`
+ - ƒ **get_permission_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve permission by UUID.
+ - 🔗 DEPENDS_ON -> `Permission`
+ - ƒ **get_permission_by_resource_action** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve permission by resource and action tuple.
+ - 🔗 DEPENDS_ON -> `Permission`
+ - ƒ **list_permissions** (`Function`) `[TRIVIAL]`
+ - 📝 List all system permissions.
+ - 🔗 DEPENDS_ON -> `Permission`
+ - ƒ **get_user_dashboard_preference** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve dashboard filters/preferences for a user.
+ - 🔗 DEPENDS_ON -> `UserDashboardPreference`
+ - ƒ **get_roles_by_ad_groups** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve roles that match a list of AD group names.
+ - 🔗 DEPENDS_ON -> `Role`
+ - 🔗 DEPENDS_ON -> `ADGroupMapping`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AuthPackage** (`Package`) `[TRIVIAL]`
+ - 📝 Authentication and authorization package root.
+- 📦 **test_auth** (`Module`)
+ - 📝 Unit tests for authentication module
+ - 🏗️ Layer: Domain
+ - ƒ **test_create_user** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies that a persisted user can be retrieved with intact credential hash.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_authenticate_user** (`Function`) `[TRIVIAL]`
+ - 📝 Validates authentication outcomes for valid, wrong-password, and unknown-user cases.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_create_session** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures session creation returns bearer token payload fields.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_role_permission_association** (`Function`) `[TRIVIAL]`
+ - 📝 Confirms role-permission many-to-many assignments persist and reload correctly.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_user_role_association** (`Function`) `[TRIVIAL]`
+ - 📝 Confirms user-role assignment persists and is queryable from repository reads.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_ad_group_mapping** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies AD group mapping rows persist and reference the expected role.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_authenticate_user_updates_last_login** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies successful authentication updates last_login audit field.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_authenticate_inactive_user** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies inactive accounts are rejected during password authentication.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_verify_password_empty_hash** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies password verification safely rejects empty or null password hashes.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_provision_adfs_user_new** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies JIT provisioning creates a new ADFS user and maps group-derived roles.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **test_provision_adfs_user_existing** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies JIT provisioning reuses existing ADFS user and refreshes role assignments.
+ - 🔗 BINDS_TO -> `test_auth`
+ - ƒ **db_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **auth_service** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **auth_repo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SupersetContextExtractor** (`Module`)
+ - 📝 Recover dataset and dashboard context from Superset links while preserving explicit partial-recovery markers.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Partial recovery is surfaced explicitly and never misrepresented as fully confirmed context.
+ - 🔗 DEPENDS_ON -> `ImportedFilter`
+ - 🔗 DEPENDS_ON -> `ImportedFilter`
+ - 🔗 DEPENDS_ON -> `TemplateVariable`
+ - ▦ **SupersetContextExtractor.imports** (`Block`) `[TRIVIAL]`
+ - ℂ **SupersetParsedContext** (`Class`) `[TRIVIAL]`
+ - 📝 Normalized output of Superset link parsing for session intake and recovery.
+ - ℂ **SupersetContextExtractor** (`Class`)
+ - 📝 Parse supported Superset URLs and recover canonical dataset/dashboard references for review-session intake.
+ - 🔗 DEPENDS_ON -> `Environment`
+ - ƒ **SupersetContextExtractor.__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Bind extractor to one Superset environment and client instance.
+ - ƒ **SupersetContextExtractor.parse_superset_link** (`Function`)
+ - 📝 Extract candidate identifiers and query state from supported Superset URLs.
+ - 🔗 CALLS -> `SupersetClient.get_dashboard_detail`
+ - ƒ **SupersetContextExtractor.recover_imported_filters** (`Function`)
+ - 📝 Build imported filter entries from URL state and Superset-side saved context.
+ - 🔗 CALLS -> `SupersetClient.get_dashboard`
+ - ƒ **SupersetContextExtractor.discover_template_variables** (`Function`)
+ - 📝 Detect runtime variables and Jinja references from dataset query-bearing fields.
+ - 🔗 DEPENDS_ON -> `TemplateVariable`
+ - ƒ **SupersetContextExtractor.build_recovery_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Summarize recovered, partial, and unresolved context for session state and UX.
+ - ƒ **SupersetContextExtractor._extract_numeric_identifier** (`Function`) `[TRIVIAL]`
+ - 📝 Extract a numeric identifier from a REST-like Superset URL path.
+ - ƒ **SupersetContextExtractor._extract_dashboard_reference** (`Function`) `[TRIVIAL]`
+ - 📝 Extract a dashboard id-or-slug reference from a Superset URL path.
+ - ƒ **SupersetContextExtractor._extract_dashboard_permalink_key** (`Function`) `[TRIVIAL]`
+ - 📝 Extract a dashboard permalink key from a Superset URL path.
+ - ƒ **SupersetContextExtractor._extract_dashboard_id_from_state** (`Function`) `[TRIVIAL]`
+ - 📝 Extract a dashboard identifier from returned permalink state when present.
+ - ƒ **SupersetContextExtractor._extract_chart_id_from_state** (`Function`) `[TRIVIAL]`
+ - 📝 Extract a chart identifier from returned permalink state when dashboard id is absent.
+ - ƒ **SupersetContextExtractor._search_nested_numeric_key** (`Function`)
+ - 📝 Recursively search nested dict/list payloads for the first numeric value under a candidate key set.
+ - 🔗 DEPENDS_ON -> `SupersetContextExtractor.parse_superset_link`
+ - ƒ **SupersetContextExtractor._recover_dataset_binding_from_dashboard** (`Function`)
+ - 📝 Recover a dataset binding from resolved dashboard context while preserving explicit unresolved markers.
+ - 🔗 CALLS -> `SupersetClient.get_dashboard_detail`
+ - ƒ **SupersetContextExtractor._decode_query_state** (`Function`) `[TRIVIAL]`
+ - 📝 Decode query-string structures used by Superset URL state transport.
+ - ƒ **SupersetContextExtractor._extract_imported_filters** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize imported filters from decoded query state without fabricating missing values.
+ - ƒ **SupersetContextExtractor._normalize_imported_filter_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize one imported-filter payload with explicit provenance and confirmation state.
+ - ƒ **SupersetContextExtractor._collect_query_bearing_expressions** (`Function`)
+ - 📝 Collect SQL and expression-bearing dataset fields for deterministic template-variable discovery.
+ - 🔗 DEPENDS_ON -> `SupersetContextExtractor.discover_template_variables`
+ - ƒ **SupersetContextExtractor._append_template_variable** (`Function`) `[TRIVIAL]`
+ - 📝 Append one deduplicated template-variable descriptor.
+ - ƒ **SupersetContextExtractor._extract_primary_jinja_identifier** (`Function`) `[TRIVIAL]`
+ - 📝 Extract a deterministic primary identifier from a Jinja expression without executing it.
+ - ƒ **SupersetContextExtractor._normalize_default_literal** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize literal default fragments from template helper calls into JSON-safe values.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **parse_superset_link** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **recover_imported_filters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **merge_recovered_filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **discover_template_variables** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build_recovery_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_numeric_identifier** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_dashboard_reference** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_dashboard_permalink_key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_dashboard_id_from_state** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_chart_id_from_state** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_search_nested_numeric_key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_recover_dataset_binding_from_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_decode_query_state** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_imported_filters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_normalize_imported_filter_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_collect_query_bearing_expressions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **append_expression** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_append_template_variable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_primary_jinja_identifier** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_normalize_default_literal** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AsyncNetworkModule** (`Module`) `[CRITICAL]`
+ - 📝 Provides async Superset API client with shared auth-token cache to avoid per-request re-login.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Async client reuses cached auth tokens per environment credentials and invalidates on 401.
+ - 🔗 DEPENDS_ON -> `SupersetAuthCache`
+ - ℂ **AsyncAPIClient** (`Class`)
+ - 📝 Async Superset API client backed by httpx.AsyncClient with shared auth cache.
+ - 🔗 DEPENDS_ON -> `SupersetAuthCache`
+ - 🔗 CALLS -> `SupersetAuthCache.get`
+ - 🔗 CALLS -> `SupersetAuthCache.set`
+ - ƒ **AsyncAPIClient.__init__** (`Function`)
+ - 📝 Initialize async API client for one environment.
+ - 🔗 CALLS -> `AsyncAPIClient._normalize_base_url`
+ - 🔗 DEPENDS_ON -> `SupersetAuthCache`
+ - ƒ **AsyncAPIClient._normalize_base_url** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize base URL for Superset API root construction.
+ - ƒ **AsyncAPIClient._build_api_url** (`Function`) `[TRIVIAL]`
+ - 📝 Build full API URL from relative Superset endpoint.
+ - ƒ **AsyncAPIClient._get_auth_lock** (`Function`) `[TRIVIAL]`
+ - 📝 Return per-cache-key async lock to serialize fresh login attempts.
+ - ƒ **AsyncAPIClient.authenticate** (`Function`)
+ - 📝 Authenticate against Superset and cache access/csrf tokens.
+ - 🔗 CALLS -> `SupersetAuthCache.get`
+ - 🔗 CALLS -> `SupersetAuthCache.set`
+ - 🔗 CALLS -> `AsyncAPIClient._get_auth_lock`
+ - ƒ **AsyncAPIClient.get_headers** (`Function`)
+ - 📝 Return authenticated Superset headers for async requests.
+ - 🔗 CALLS -> `AsyncAPIClient.authenticate`
+ - ƒ **AsyncAPIClient.request** (`Function`)
+ - 📝 Perform one authenticated async Superset API request.
+ - 🔗 CALLS -> `AsyncAPIClient.get_headers`
+ - 🔗 CALLS -> `AsyncAPIClient._handle_http_error`
+ - 🔗 CALLS -> `AsyncAPIClient._handle_network_error`
+ - ƒ **AsyncAPIClient._handle_http_error** (`Function`)
+ - 📝 Translate upstream HTTP errors into stable domain exceptions.
+ - 🔗 CALLS -> `AsyncAPIClient._is_dashboard_endpoint`
+ - 🔗 DEPENDS_ON -> `DashboardNotFoundError`
+ - 🔗 DEPENDS_ON -> `SupersetAPIError`
+ - 🔗 DEPENDS_ON -> `PermissionDeniedError`
+ - 🔗 DEPENDS_ON -> `AuthenticationError`
+ - 🔗 DEPENDS_ON -> `NetworkError`
+ - ƒ **AsyncAPIClient._is_dashboard_endpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Determine whether an API endpoint represents a dashboard resource for 404 translation.
+ - ƒ **AsyncAPIClient._handle_network_error** (`Function`)
+ - 📝 Translate generic httpx errors into NetworkError.
+ - 🔗 DEPENDS_ON -> `NetworkError`
+ - ƒ **AsyncAPIClient.aclose** (`Function`)
+ - 📝 Close underlying httpx client.
+ - 🔗 DEPENDS_ON -> `AsyncAPIClient.__init__`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_normalize_base_url** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_build_api_url** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_get_auth_lock** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authenticate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_headers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **request** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_handle_http_error** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_is_dashboard_endpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_handle_network_error** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **aclose** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SupersetCompilationAdapter** (`Module`)
+ - 📝 Interact with Superset preview compilation and SQL Lab execution endpoints using the current approved execution context.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: The adapter never fabricates compiled SQL locally; preview truth is delegated to Superset only.
+ - 🔗 CALLS -> `SupersetClient`
+ - 🔗 DEPENDS_ON -> `CompiledPreview`
+ - ▦ **SupersetCompilationAdapter.imports** (`Block`) `[TRIVIAL]`
+ - ℂ **PreviewCompilationPayload** (`Class`) `[TRIVIAL]`
+ - 📝 Typed preview payload for Superset-side compilation.
+ - ℂ **SqlLabLaunchPayload** (`Class`) `[TRIVIAL]`
+ - 📝 Typed SQL Lab payload for audited launch handoff.
+ - ℂ **SupersetCompilationAdapter** (`Class`)
+ - 📝 Delegate preview compilation and SQL Lab launch to Superset without local SQL fabrication.
+ - 🔗 CALLS -> `SupersetClient`
+ - ƒ **SupersetCompilationAdapter.__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Bind adapter to one Superset environment and client instance.
+ - ƒ **SupersetCompilationAdapter._supports_client_method** (`Function`) `[TRIVIAL]`
+ - 📝 Detect explicitly implemented client capabilities without treating loose mocks as real methods.
+ - ƒ **SupersetCompilationAdapter.compile_preview** (`Function`)
+ - 📝 Request Superset-side compiled SQL preview for the current effective inputs.
+ - 🔗 CALLS -> `SupersetCompilationAdapter._request_superset_preview`
+ - ƒ **SupersetCompilationAdapter.mark_preview_stale** (`Function`) `[TRIVIAL]`
+ - 📝 Invalidate previous preview after mapping or value changes.
+ - ƒ **SupersetCompilationAdapter.create_sql_lab_session** (`Function`)
+ - 📝 Create the canonical audited execution session after all launch gates pass.
+ - 🔗 CALLS -> `SupersetCompilationAdapter._request_sql_lab_session`
+ - ƒ **SupersetCompilationAdapter._request_superset_preview** (`Function`)
+ - 📝 Request preview compilation through explicit client support backed by real Superset endpoints only.
+ - 🔗 CALLS -> `SupersetClient.compile_dataset_preview`
+ - ƒ **SupersetCompilationAdapter._request_sql_lab_session** (`Function`)
+ - 📝 Probe supported SQL Lab execution surfaces and return the first successful response.
+ - 🔗 CALLS -> `SupersetClient.get_dataset`
+ - ƒ **SupersetCompilationAdapter._normalize_preview_response** (`Function`)
+ - 📝 Normalize candidate Superset preview responses into one compiled-sql structure.
+ - 🔗 DEPENDS_ON -> `CompiledPreview`
+ - ƒ **SupersetCompilationAdapter._dump_json** (`Function`) `[TRIVIAL]`
+ - 📝 Serialize Superset request payload deterministically for network transport.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_supports_client_method** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **compile_preview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mark_preview_stale** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create_sql_lab_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_request_superset_preview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_request_sql_lab_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_normalize_preview_response** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_dump_json** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **FileIO** (`Module`)
+ - 📝 Предоставляет набор утилит для управления файловыми операциями, включая работу с временными файлами, архивами ZIP, файлами YAML и очистку директорий.
+ - 🏗️ Layer: Infra
+ - 🔗 DEPENDS_ON -> `backend.src.core.logger`
+ - 🔗 DEPENDS_ON -> `pyyaml`
+ - ℂ **InvalidZipFormatError** (`Class`) `[TRIVIAL]`
+ - 📝 Exception raised when a file is not a valid ZIP archive.
+ - ƒ **create_temp_file** (`Function`) `[TRIVIAL]`
+ - 📝 Контекстный менеджер для создания временного файла или директории с гарантированным удалением.
+ - ƒ **remove_empty_directories** (`Function`) `[TRIVIAL]`
+ - 📝 Рекурсивно удаляет все пустые поддиректории, начиная с указанного пути.
+ - ƒ **read_dashboard_from_disk** (`Function`) `[TRIVIAL]`
+ - 📝 Читает бинарное содержимое файла с диска.
+ - ƒ **calculate_crc32** (`Function`) `[TRIVIAL]`
+ - 📝 Вычисляет контрольную сумму CRC32 для файла.
+ - 📦 **RetentionPolicy** (`DataClass`) `[TRIVIAL]`
+ - 📝 Определяет политику хранения для архивов (ежедневные, еженедельные, ежемесячные).
+ - ƒ **archive_exports** (`Function`) `[TRIVIAL]`
+ - 📝 Управляет архивом экспортированных файлов, применяя политику хранения и дедупликацию.
+ - 🔗 CALLS -> `apply_retention_policy`
+ - 🔗 CALLS -> `calculate_crc32`
+ - ƒ **apply_retention_policy** (`Function`) `[TRIVIAL]`
+ - 📝 (Helper) Применяет политику хранения к списку файлов, возвращая те, что нужно сохранить.
+ - ƒ **save_and_unpack_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Сохраняет бинарное содержимое ZIP-архива на диск и опционально распаковывает его.
+ - ƒ **update_yamls** (`Function`) `[TRIVIAL]`
+ - 📝 Обновляет конфигурации в YAML-файлах, заменяя значения или применяя regex.
+ - 🔗 CALLS -> `_update_yaml_file`
+ - ƒ **_update_yaml_file** (`Function`) `[TRIVIAL]`
+ - 📝 (Helper) Обновляет один YAML файл.
+ - ƒ **replacer** (`Function`) `[TRIVIAL]`
+ - 📝 Функция замены, сохраняющая кавычки если они были.
+ - ƒ **create_dashboard_export** (`Function`) `[TRIVIAL]`
+ - 📝 Создает ZIP-архив из указанных исходных путей.
+ - ƒ **sanitize_filename** (`Function`) `[TRIVIAL]`
+ - 📝 Очищает строку от символов, недопустимых в именах файлов.
+ - ƒ **get_filename_from_headers** (`Function`) `[TRIVIAL]`
+ - 📝 Извлекает имя файла из HTTP заголовка 'Content-Disposition'.
+ - ƒ **consolidate_archive_folders** (`Function`) `[TRIVIAL]`
+ - 📝 Консолидирует директории архивов на основе общего слага в имени.
+- 📦 **NetworkModule** (`Module`)
+ - 📝 Инкапсулирует низкоуровневую HTTP-логику для взаимодействия с Superset API, включая аутентификацию, управление сессией, retry-логику и обработку ошибок.
+ - 🏗️ Layer: Infra
+ - 🔗 DEPENDS_ON -> `LoggerModule`
+ - ℂ **SupersetAPIError** (`Class`) `[TRIVIAL]`
+ - 📝 Base exception for all Superset API related errors.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the exception with a message and context.
+ - ℂ **AuthenticationError** (`Class`) `[TRIVIAL]`
+ - 📝 Exception raised when authentication fails.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the authentication error.
+ - ℂ **PermissionDeniedError** (`Class`) `[TRIVIAL]`
+ - 📝 Exception raised when access is denied.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the permission denied error.
+ - ℂ **DashboardNotFoundError** (`Class`) `[TRIVIAL]`
+ - 📝 Exception raised when a dashboard cannot be found.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the not found error with resource ID.
+ - ℂ **NetworkError** (`Class`) `[TRIVIAL]`
+ - 📝 Exception raised when a network level error occurs.
+ - ƒ **NetworkError.__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the network error.
+ - ℂ **SupersetAuthCache** (`Class`) `[TRIVIAL]`
+ - 📝 Process-local cache for Superset access/csrf tokens keyed by environment credentials.
+ - ƒ **SupersetAuthCache.get** (`Function`) `[TRIVIAL]`
+ - ƒ **SupersetAuthCache.set** (`Function`) `[TRIVIAL]`
+ - ℂ **APIClient** (`Class`)
+ - 📝 Synchronous Superset API client with process-local auth token caching.
+ - 🔗 DEPENDS_ON -> `SupersetAuthCache`
+ - 🔗 DEPENDS_ON -> `LoggerModule`
+ - ƒ **APIClient.__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Инициализирует API клиент с конфигурацией, сессией и логгером.
+ - ƒ **_init_session** (`Function`) `[TRIVIAL]`
+ - 📝 Создает и настраивает `requests.Session` с retry-логикой.
+ - ƒ **_normalize_base_url** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize Superset environment URL to base host/path without trailing slash and /api/v1 suffix.
+ - ƒ **_build_api_url** (`Function`) `[TRIVIAL]`
+ - 📝 Build absolute Superset API URL for endpoint using canonical /api/v1 base.
+ - ƒ **APIClient.authenticate** (`Function`) `[TRIVIAL]`
+ - 📝 Выполняет аутентификацию в Superset API и получает access и CSRF токены.
+ - 🔗 CALLS -> `SupersetAuthCache.get`
+ - 🔗 CALLS -> `SupersetAuthCache.set`
+ - ƒ **headers** (`Function`) `[TRIVIAL]`
+ - 📝 Возвращает HTTP-заголовки для аутентифицированных запросов.
+ - ƒ **request** (`Function`) `[TRIVIAL]`
+ - 📝 Выполняет универсальный HTTP-запрос к API.
+ - ƒ **_handle_http_error** (`Function`) `[TRIVIAL]`
+ - 📝 (Helper) Преобразует HTTP ошибки в кастомные исключения.
+ - ƒ **_is_dashboard_endpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Determine whether an API endpoint represents a dashboard resource for 404 translation.
+ - ƒ **_handle_network_error** (`Function`) `[TRIVIAL]`
+ - 📝 (Helper) Преобразует сетевые ошибки в `NetworkError`.
+ - ƒ **upload_file** (`Function`) `[TRIVIAL]`
+ - 📝 Загружает файл на сервер через multipart/form-data.
+ - ƒ **_perform_upload** (`Function`) `[TRIVIAL]`
+ - 📝 (Helper) Выполняет POST запрос с файлом.
+ - ƒ **fetch_paginated_count** (`Function`) `[TRIVIAL]`
+ - 📝 Получает общее количество элементов для пагинации.
+ - ƒ **fetch_paginated_data** (`Function`) `[TRIVIAL]`
+ - 📝 Автоматически собирает данные со всех страниц пагинированного эндпоинта.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build_key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **set** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **invalidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init_poolmanager** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authenticate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **backend.src.core.utils.matching** (`Module`) `[TRIVIAL]`
+ - 📝 Provides utility functions for fuzzy matching database names.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Confidence scores are returned as floats between 0.0 and 1.0.
+ - 🔗 DEPENDS_ON -> `rapidfuzz`
+ - ƒ **suggest_mappings** (`Function`) `[TRIVIAL]`
+ - 📝 Suggests mappings between source and target databases using fuzzy matching.
+- 📦 **backend.core.utils.dataset_mapper** (`Module`) `[TRIVIAL]`
+ - 📝 Этот модуль отвечает за обновление метаданных (verbose_map) в датасетах Superset, извлекая их из PostgreSQL или XLSX-файлов.
+ - 🏗️ Layer: Domain
+ - 🔗 DEPENDS_ON -> `backend.core.superset_client`
+ - 🔗 DEPENDS_ON -> `pandas`
+ - 🔗 DEPENDS_ON -> `psycopg2`
+ - ℂ **DatasetMapper** (`Class`) `[TRIVIAL]`
+ - 📝 Класс для меппинга и обновления verbose_map в датасетах Superset.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the mapper.
+ - ƒ **get_postgres_comments** (`Function`) `[TRIVIAL]`
+ - 📝 Извлекает комментарии к колонкам из системного каталога PostgreSQL.
+ - ƒ **load_excel_mappings** (`Function`) `[TRIVIAL]`
+ - 📝 Загружает меппинги 'column_name' -> 'column_comment' из XLSX файла.
+ - ƒ **run_mapping** (`Function`) `[TRIVIAL]`
+ - 📝 Основная функция для выполнения меппинга и обновления verbose_map датасета в Superset.
+ - 🔗 CALLS -> `self.get_postgres_comments`
+ - 🔗 CALLS -> `self.load_excel_mappings`
+ - 🔗 CALLS -> `superset_client.get_dataset`
+ - 🔗 CALLS -> `superset_client.update_dataset`
+- 📦 **src.core.utils** (`Package`) `[TRIVIAL]`
+ - 📝 Shared utility package root.
+- 📦 **NativeFilterExtractionTests** (`Module`)
+ - 📝 Verify native filter extraction from permalinks and native_filters_key URLs.
+ - 🏗️ Layer: Domain
+ - 🔗 BINDS_TO -> `SupersetClient`
+ - 🔗 BINDS_TO -> `AsyncSupersetClient`
+ - 🔗 BINDS_TO -> `FilterState, ParsedNativeFilters, ExtraFormDataMerge`
+ - ƒ **_make_environment** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `NativeFilterExtractionTests`
+ - ƒ **test_extract_native_filters_from_permalink** (`Function`) `[TRIVIAL]`
+ - 📝 Extract native filters from a permalink key.
+ - 🔗 BINDS_TO -> `NativeFilterExtractionTests`
+ - ƒ **test_extract_native_filters_from_permalink_direct_response** (`Function`) `[TRIVIAL]`
+ - 📝 Handle permalink response without result wrapper.
+ - 🔗 BINDS_TO -> `NativeFilterExtractionTests`
+ - ƒ **test_extract_native_filters_from_key** (`Function`) `[TRIVIAL]`
+ - 📝 Extract native filters from a native_filters_key.
+ - 🔗 BINDS_TO -> `NativeFilterExtractionTests`
+- 📦 **TestSupersetProfileLookup** (`Module`)
+ - 📝 Verifies Superset profile lookup adapter payload normalization and fallback error precedence.
+ - 🏗️ Layer: Domain
+ - ℂ **_RecordingNetworkClient** (`Class`) `[TRIVIAL]`
+ - 📝 Records request payloads and returns scripted responses for deterministic adapter tests.
+ - 🔒 Invariant: Each request consumes one scripted response in call order and persists call metadata.
+ - 🔗 BINDS_TO -> `TestSupersetProfileLookup`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes scripted network responses.
+ - ƒ **request** (`Function`) `[TRIVIAL]`
+ - 📝 Mimics APIClient.request while capturing call arguments.
+ - ƒ **test_get_users_page_sends_lowercase_order_direction** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures adapter sends lowercase order_direction compatible with Superset rison schema.
+ - 🔗 BINDS_TO -> `TestSupersetProfileLookup`
+ - ƒ **test_get_users_page_preserves_primary_schema_error_over_fallback_auth_error** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures fallback auth error does not mask primary schema/query failure.
+ - 🔗 BINDS_TO -> `TestSupersetProfileLookup`
+ - ƒ **test_get_users_page_uses_fallback_endpoint_when_primary_fails** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies adapter retries second users endpoint and succeeds when fallback is healthy.
+ - 🔗 BINDS_TO -> `TestSupersetProfileLookup`
+- 📦 **SupersetPreviewPipelineTests** (`Module`)
+ - 📝 Verify explicit chart-data preview compilation and ensure non-dashboard 404 errors remain generic across sync and async clients.
+ - 🏗️ Layer: Domain
+ - 🔗 BINDS_TO -> `AsyncNetworkModule`
+ - ƒ **_make_environment** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **_make_requests_http_error** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **_make_httpx_status_error** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy** (`Function`) `[TRIVIAL]`
+ - 📝 Superset preview compilation should prefer the legacy form_data transport inferred from browser traffic before falling back to chart-data.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures** (`Function`) `[TRIVIAL]`
+ - 📝 Superset preview compilation should fall back to chart-data when legacy form_data strategies are rejected.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_build_dataset_preview_query_context_places_recovered_filters_in_chart_style_form_data** (`Function`) `[TRIVIAL]`
+ - 📝 Preview query context should mirror chart-style filter transport so recovered native filters reach Superset compilation.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_build_dataset_preview_query_context_merges_dataset_template_params_and_preserves_user_values** (`Function`) `[TRIVIAL]`
+ - 📝 Preview query context should merge dataset template params for parity with real dataset definitions while preserving explicit session overrides.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_build_dataset_preview_query_context_preserves_time_range_from_native_filter_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Preview query context should preserve time-range native filter extras even when dataset defaults differ.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_build_dataset_preview_legacy_form_data_preserves_native_filter_clauses** (`Function`) `[TRIVIAL]`
+ - 📝 Legacy preview form_data should preserve recovered native filter clauses in browser-style fields without duplicating datasource for QueryObjectFactory.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_sync_network_404_mapping_keeps_non_dashboard_endpoints_generic** (`Function`) `[TRIVIAL]`
+ - 📝 Sync network client should reserve dashboard-not-found translation for dashboard endpoints only.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_sync_network_404_mapping_translates_dashboard_endpoints** (`Function`) `[TRIVIAL]`
+ - 📝 Sync network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_async_network_404_mapping_keeps_non_dashboard_endpoints_generic** (`Function`) `[TRIVIAL]`
+ - 📝 Async network client should reserve dashboard-not-found translation for dashboard endpoints only.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+ - ƒ **test_async_network_404_mapping_translates_dashboard_endpoints** (`Function`) `[TRIVIAL]`
+ - 📝 Async network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors.
+ - 🔗 BINDS_TO -> `SupersetPreviewPipelineTests`
+- 📦 **test_throttled_scheduler** (`Module`)
+ - 📝 Unit tests for ThrottledSchedulerConfigurator distribution logic.
+ - ƒ **test_calculate_schedule_even_distribution** (`Function`) `[TRIVIAL]`
+ - 📝 Validate even spacing across a two-hour scheduling window for three tasks.
+ - 🔗 BINDS_TO -> `test_throttled_scheduler`
+ - ƒ **test_calculate_schedule_midnight_crossing** (`Function`) `[TRIVIAL]`
+ - 📝 Validate scheduler correctly rolls timestamps into the next day across midnight.
+ - 🔗 BINDS_TO -> `test_throttled_scheduler`
+ - ƒ **test_calculate_schedule_single_task** (`Function`) `[TRIVIAL]`
+ - 📝 Validate single-task schedule returns only the window start timestamp.
+ - 🔗 BINDS_TO -> `test_throttled_scheduler`
+ - ƒ **test_calculate_schedule_empty_list** (`Function`) `[TRIVIAL]`
+ - 📝 Validate empty dashboard list produces an empty schedule.
+ - 🔗 BINDS_TO -> `test_throttled_scheduler`
+ - ƒ **test_calculate_schedule_zero_window** (`Function`) `[TRIVIAL]`
+ - 📝 Validate zero-length window schedules all tasks at identical start timestamp.
+ - 🔗 BINDS_TO -> `test_throttled_scheduler`
+ - ƒ **test_calculate_schedule_very_small_window** (`Function`) `[TRIVIAL]`
+ - 📝 Validate sub-second interpolation when task count exceeds near-zero window granularity.
+ - 🔗 BINDS_TO -> `test_throttled_scheduler`
+- 📦 **TestConfigManagerCompat** (`Module`)
+ - 📝 Verifies ConfigManager compatibility wrappers preserve legacy payload sections.
+ - 🏗️ Layer: Domain
+ - ƒ **test_get_payload_preserves_legacy_sections** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure get_payload merges typed config into raw payload without dropping legacy sections.
+ - 🔗 BINDS_TO -> `TestConfigManagerCompat`
+ - ƒ **test_save_config_accepts_raw_payload_and_keeps_extras** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure save_config accepts raw dict payload, refreshes typed config, and preserves extra sections.
+ - 🔗 BINDS_TO -> `TestConfigManagerCompat`
+ - ƒ **test_save_config_syncs_environment_records_for_fk_backed_flows** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure saving config mirrors typed environments into relational records required by FK-backed session persistence.
+ - 🔗 BINDS_TO -> `TestConfigManagerCompat`
+ - ℂ **_FakeQuery** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal query stub returning hardcoded existing environment record list for sync tests.
+ - 🔒 Invariant: all() always returns [existing_record]; no parameterization or filtering.
+ - 🔗 BINDS_TO -> `test_save_config_syncs_environment_records_for_fk_backed_flows`
+ - ℂ **_FakeSession** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal SQLAlchemy session stub that captures add/delete calls for environment sync assertions.
+ - 🔒 Invariant: query() always returns _FakeQuery; no real DB interaction.
+ - 🔗 BINDS_TO -> `test_save_config_syncs_environment_records_for_fk_backed_flows`
+ - ƒ **test_load_config_syncs_environment_records_from_existing_db_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure loading an existing DB-backed config also mirrors environment rows required by FK-backed runtime flows.
+ - 🔗 BINDS_TO -> `TestConfigManagerCompat`
+ - ℂ **_FakeSession** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal session stub tracking commit/close signals for config load lifecycle assertions.
+ - 🔒 Invariant: No query or add semantics; only lifecycle signal tracking.
+ - 🔗 BINDS_TO -> `test_load_config_syncs_environment_records_from_existing_db_payload`
+ - ƒ **_capture_save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **query** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **add** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **delete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **close** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_logger** (`Module`)
+ - 📝 Unit tests for logger module
+ - 🏗️ Layer: Infra
+ - ƒ **test_belief_scope_logs_entry_action_exit_at_debug** (`Function`) `[TRIVIAL]`
+ - 📝 Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs at DEBUG level.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_belief_scope_error_handling** (`Function`) `[TRIVIAL]`
+ - 📝 Test that belief_scope logs Coherence:Failed on exception.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_belief_scope_success_coherence** (`Function`) `[TRIVIAL]`
+ - 📝 Test that belief_scope logs Coherence:OK on success.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_belief_scope_not_visible_at_info** (`Function`) `[TRIVIAL]`
+ - 📝 Test that belief_scope Entry/Exit/Coherence logs are NOT visible at INFO level.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_task_log_level_default** (`Function`) `[TRIVIAL]`
+ - 📝 Test that default task log level is INFO.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_should_log_task_level** (`Function`) `[TRIVIAL]`
+ - 📝 Test that should_log_task_level correctly filters log levels.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_configure_logger_task_log_level** (`Function`) `[TRIVIAL]`
+ - 📝 Test that configure_logger updates task_log_level.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_enable_belief_state_flag** (`Function`) `[TRIVIAL]`
+ - 📝 Test that enable_belief_state flag controls belief_scope logging.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_belief_scope_missing_anchor** (`Function`) `[TRIVIAL]`
+ - 📝 Test @PRE condition: anchor_id must be provided
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **test_configure_logger_post_conditions** (`Function`) `[TRIVIAL]`
+ - 📝 Test @POST condition: Logger level, handlers, belief state flag, and task log level are updated.
+ - 🔗 BINDS_TO -> `test_logger`
+ - ƒ **reset_logger_state** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **MigrationDryRunOrchestratorModule** (`Module`)
+ - 📝 Compute pre-flight migration diff and risk scoring without apply.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Dry run is informative only and must not mutate target environment.
+ - 🔗 DEPENDS_ON -> `SupersetClient`
+ - 🔗 DEPENDS_ON -> `MigrationEngine`
+ - 🔗 DEPENDS_ON -> `MigrationArchiveParser`
+ - 🔗 DEPENDS_ON -> `RiskAssessorModule`
+ - ℂ **MigrationDryRunService** (`Class`) `[CRITICAL]`
+ - 📝 Build deterministic diff/risk payload for migration pre-flight.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Wire parser dependency for archive object extraction.
+ - ƒ **run** (`Function`) `[TRIVIAL]`
+ - 📝 Execute full dry-run computation for selected dashboards.
+ - 🔗 DEPENDS_ON -> `_load_db_mapping`
+ - 🔗 DEPENDS_ON -> `_accumulate_objects`
+ - 🔗 DEPENDS_ON -> `_build_target_signatures`
+ - 🔗 DEPENDS_ON -> `_build_object_diff`
+ - 🔗 DEPENDS_ON -> `_build_risks`
+ - ƒ **_load_db_mapping** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve UUID mapping for optional DB config replacement.
+ - ƒ **_accumulate_objects** (`Function`) `[TRIVIAL]`
+ - 📝 Merge extracted resources by UUID to avoid duplicates.
+ - ƒ **_index_by_uuid** (`Function`) `[TRIVIAL]`
+ - 📝 Build UUID-index map for normalized resources.
+ - ƒ **_build_object_diff** (`Function`) `[TRIVIAL]`
+ - 📝 Compute create/update/delete buckets by UUID+signature.
+ - 🔗 DEPENDS_ON -> `_index_by_uuid`
+ - ƒ **_build_target_signatures** (`Function`) `[TRIVIAL]`
+ - 📝 Pull target metadata and normalize it into comparable signatures.
+ - ƒ **_build_risks** (`Function`) `[TRIVIAL]`
+ - 📝 Build risk items for missing datasource, broken refs, overwrite, owner mismatch.
+- 📦 **MigrationArchiveParserModule** (`Module`)
+ - 📝 Parse Superset export ZIP archives into normalized object catalogs for diffing.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Parsing is read-only and never mutates archive files.
+ - 🔗 DEPENDS_ON -> `LoggerModule`
+ - ℂ **MigrationArchiveParser** (`Class`) `[CRITICAL]`
+ - 📝 Extract normalized dashboards/charts/datasets metadata from ZIP archives.
+ - ƒ **extract_objects_from_zip** (`Function`) `[TRIVIAL]`
+ - 📝 Extract object catalogs from Superset archive.
+ - 🔗 DEPENDS_ON -> `_collect_yaml_objects`
+ - ƒ **_collect_yaml_objects** (`Function`) `[TRIVIAL]`
+ - 📝 Read and normalize YAML manifests for one object type.
+ - 🔗 DEPENDS_ON -> `_normalize_object_payload`
+ - ƒ **_normalize_object_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Convert raw YAML payload to stable diff signature shape.
+- 📦 **RiskAssessorModule** (`Module`) `[CRITICAL]`
+ - 📝 Compute deterministic migration risk items and aggregate score for dry-run reporting.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Risk scoring must remain bounded to [0,100] and preserve severity-to-weight mapping.
+ - 🔗 DEPENDS_ON -> `SupersetClient`
+ - ƒ **index_by_uuid** (`Function`) `[TRIVIAL]`
+ - 📝 Build UUID-index from normalized objects.
+ - ƒ **extract_owner_identifiers** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize owner payloads for stable comparison.
+ - ƒ **build_risks** (`Function`) `[TRIVIAL]`
+ - 📝 Build risk list from computed diffs and target catalog state.
+ - 🔗 DEPENDS_ON -> `index_by_uuid`
+ - 🔗 DEPENDS_ON -> `extract_owner_identifiers`
+ - ƒ **score_risks** (`Function`) `[TRIVIAL]`
+ - 📝 Aggregate risk list into score and level.
+- 📦 **MigrationPackage** (`Module`) `[TRIVIAL]`
+ - 📝 Namespace package for migration pre-flight orchestration components.
+ - 🏗️ Layer: Core
+- 📦 **TaskLoggerModule** (`Module`) `[TRIVIAL]`
+ - 📝 Provides a dedicated logger for tasks with automatic source attribution.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Each TaskLogger instance is bound to a specific task_id and default source.
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - 🔗 CALLS -> `_add_log`
+ - ℂ **TaskLogger** (`Class`) `[TRIVIAL]`
+ - 📝 A wrapper around TaskManager._add_log that carries task_id and source context.
+ - 🔒 Invariant: All log calls include the task_id and source.
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - 🔗 CALLS -> `_add_log`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize the TaskLogger with task context.
+ - ƒ **with_source** (`Function`) `[TRIVIAL]`
+ - 📝 Create a sub-logger with a different default source.
+ - ƒ **_log** (`Function`) `[TRIVIAL]`
+ - 📝 Internal method to log a message at a given level.
+ - ƒ **debug** (`Function`) `[TRIVIAL]`
+ - 📝 Log a DEBUG level message.
+ - ƒ **info** (`Function`) `[TRIVIAL]`
+ - 📝 Log an INFO level message.
+ - ƒ **warning** (`Function`) `[TRIVIAL]`
+ - 📝 Log a WARNING level message.
+ - ƒ **error** (`Function`) `[TRIVIAL]`
+ - 📝 Log an ERROR level message.
+ - ƒ **progress** (`Function`) `[TRIVIAL]`
+ - 📝 Log a progress update with percentage.
+- 📦 **TaskPersistenceModule** (`Module`) `[CRITICAL]`
+ - 📝 Handles the persistence of tasks using SQLAlchemy and the tasks.db database.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Database schema must match the TaskRecord model structure.
+ - 🔗 DEPENDS_ON -> `TasksSessionLocal`
+ - ℂ **TaskPersistenceService** (`Class`) `[CRITICAL]`
+ - 📝 Provides methods to save, load, and delete task records in tasks.db using SQLAlchemy models.
+ - 🔒 Invariant: Persistence must handle potentially missing task fields natively.
+ - 🔗 DEPENDS_ON -> `TasksSessionLocal`
+ - 🔗 DEPENDS_ON -> `TaskRecord`
+ - 🔗 DEPENDS_ON -> `Environment`
+ - ƒ **_json_load_if_needed** (`Function`) `[TRIVIAL]`
+ - 📝 Safely load JSON strings from DB if necessary
+ - ƒ **_parse_datetime** (`Function`) `[TRIVIAL]`
+ - 📝 Safely parse a datetime string from the database
+ - ƒ **_resolve_environment_id** (`Function`)
+ - 📝 Resolve environment id into existing environments.id value to satisfy FK constraints.
+ - 🔗 DEPENDS_ON -> `Environment`
+ - ƒ **__init__** (`Function`)
+ - 📝 Initializes the persistence service.
+ - ƒ **persist_task** (`Function`)
+ - 📝 Persists or updates a single task in the database.
+ - 🔗 CALLS -> `_resolve_environment_id`
+ - ƒ **persist_tasks** (`Function`)
+ - 📝 Persists multiple tasks.
+ - 🔗 CALLS -> `persist_task`
+ - ƒ **load_tasks** (`Function`)
+ - 📝 Loads tasks from the database.
+ - 🔗 CALLS -> `_json_load_if_needed`
+ - 🔗 CALLS -> `_parse_datetime`
+ - ƒ **delete_tasks** (`Function`)
+ - 📝 Deletes specific tasks from the database.
+ - 🔗 DEPENDS_ON -> `TaskRecord`
+ - ℂ **TaskLogPersistenceService** (`Class`) `[CRITICAL]`
+ - 📝 Provides methods to store, query, summarize, and delete task log rows in the task_logs table.
+ - 🔒 Invariant: Log entries are batch-inserted for performance.
+ - 🔗 DEPENDS_ON -> `TaskLogRecord`
+ - 🔗 DEPENDS_ON -> `TasksSessionLocal`
+ - ƒ **__init__** (`Function`)
+ - 📝 Initializes the TaskLogPersistenceService
+ - ƒ **add_logs** (`Function`)
+ - 📝 Batch insert log entries for a task.
+ - 🔗 DEPENDS_ON -> `TaskLogRecord`
+ - ƒ **get_logs** (`Function`)
+ - 📝 Query logs for a task with filtering and pagination.
+ - 🔗 DEPENDS_ON -> `TaskLogRecord`
+ - 🔗 DEPENDS_ON -> `LogFilter`
+ - 🔗 DEPENDS_ON -> `TaskLog`
+ - ƒ **get_log_stats** (`Function`)
+ - 📝 Get statistics about logs for a task.
+ - 🔗 DEPENDS_ON -> `TaskLogRecord`
+ - 🔗 DEPENDS_ON -> `LogStats`
+ - ƒ **get_sources** (`Function`)
+ - 📝 Get unique sources for a task's logs.
+ - 🔗 DEPENDS_ON -> `TaskLogRecord`
+ - ƒ **delete_logs_for_task** (`Function`)
+ - 📝 Delete all logs for a specific task.
+ - 🔗 DEPENDS_ON -> `TaskLogRecord`
+ - ƒ **delete_logs_for_tasks** (`Function`)
+ - 📝 Delete all logs for multiple tasks.
+ - 🔗 DEPENDS_ON -> `TaskLogRecord`
+ - ƒ **normalize_token** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **json_serializable** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TaskManager** (`Module`) `[CRITICAL]`
+ - 📝 Manages the lifecycle of tasks, including their creation, execution, and state tracking. It uses a thread pool to run plugins asynchronously.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Task IDs are unique.
+ - 🔗 DEPENDS_ON -> `PluginLoader`
+ - 🔗 DEPENDS_ON -> `TaskPersistenceService`
+ - 🔗 DEPENDS_ON -> `TaskLogPersistenceService`
+ - ℂ **TaskManager** (`Class`) `[CRITICAL]`
+ - 📝 Manages the lifecycle of tasks, including their creation, execution, and state tracking.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Log entries are never deleted after being added to a task.
+ - 🔗 DEPENDS_ON -> `TaskPersistenceService`
+ - 🔗 DEPENDS_ON -> `TaskLogPersistenceService`
+ - 🔗 DEPENDS_ON -> `PluginLoader`
+ - ƒ **__init__** (`Function`) `[CRITICAL]`
+ - 📝 Initialize the TaskManager with dependencies.
+ - 🔗 CALLS -> `TaskPersistenceService.load_tasks`
+ - ƒ **_flusher_loop** (`Function`)
+ - 📝 Background thread that periodically flushes log buffer to database.
+ - 🔗 CALLS -> `TaskManager._flush_logs`
+ - ƒ **_flush_logs** (`Function`)
+ - 📝 Flush all buffered logs to the database.
+ - 🔗 CALLS -> `TaskLogPersistenceService.add_logs`
+ - ƒ **_flush_task_logs** (`Function`)
+ - 📝 Flush logs for a specific task immediately.
+ - 🔗 CALLS -> `TaskLogPersistenceService.add_logs`
+ - ƒ **create_task** (`Function`)
+ - 📝 Creates and queues a new task for execution.
+ - 🔗 CALLS -> `TaskPersistenceService.persist_task`
+ - ƒ **_run_task** (`Function`)
+ - 📝 Internal method to execute a task with TaskContext support.
+ - 🔗 CALLS -> `TaskPersistenceService.persist_task`
+ - ƒ **resolve_task** (`Function`)
+ - 📝 Resumes a task that is awaiting mapping.
+ - 🔗 CALLS -> `TaskPersistenceService.persist_task`
+ - ƒ **wait_for_resolution** (`Function`)
+ - 📝 Pauses execution and waits for a resolution signal.
+ - 🔗 CALLS -> `TaskPersistenceService.persist_task`
+ - ƒ **wait_for_input** (`Function`)
+ - 📝 Pauses execution and waits for user input.
+ - 🔗 CALLS -> `asyncio.AbstractEventLoop.create_future`
+ - ƒ **get_task** (`Function`)
+ - 📝 Retrieves a task by its ID.
+ - ƒ **get_all_tasks** (`Function`)
+ - 📝 Retrieves all registered tasks.
+ - ƒ **get_tasks** (`Function`)
+ - 📝 Retrieves tasks with pagination and optional status filter.
+ - ƒ **get_task_logs** (`Function`)
+ - 📝 Retrieves logs for a specific task (from memory for running, persistence for completed).
+ - 🔗 CALLS -> `TaskLogPersistenceService.get_logs`
+ - ƒ **get_task_log_stats** (`Function`)
+ - 📝 Get statistics about logs for a task.
+ - 🔗 CALLS -> `TaskLogPersistenceService.get_log_stats`
+ - ƒ **get_task_log_sources** (`Function`)
+ - 📝 Get unique sources for a task's logs.
+ - 🔗 CALLS -> `TaskLogPersistenceService.get_sources`
+ - ƒ **_add_log** (`Function`)
+ - 📝 Adds a log entry to a task buffer and notifies subscribers.
+ - 🔗 CALLS -> `should_log_task_level`
+ - ƒ **subscribe_logs** (`Function`)
+ - 📝 Subscribes to real-time logs for a task.
+ - ƒ **unsubscribe_logs** (`Function`)
+ - 📝 Unsubscribes from real-time logs for a task.
+ - ƒ **load_persisted_tasks** (`Function`)
+ - 📝 Load persisted tasks using persistence service.
+ - 🔗 CALLS -> `TaskPersistenceService.load_tasks`
+ - ƒ **await_input** (`Function`)
+ - 📝 Transition a task to AWAITING_INPUT state with input request.
+ - 🔗 CALLS -> `TaskPersistenceService.persist_task`
+ - ƒ **resume_task_with_password** (`Function`)
+ - 📝 Resume a task that is awaiting input with provided passwords.
+ - 🔗 CALLS -> `TaskPersistenceService.persist_task`
+ - ƒ **clear_tasks** (`Function`)
+ - 📝 Clears tasks based on status filter (also deletes associated logs).
+ - 🔗 CALLS -> `TaskPersistenceService.delete_tasks`
+ - ƒ **sort_key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TaskManagerModels** (`Module`)
+ - 📝 Defines the data models and enumerations used by the Task Manager.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Task IDs are immutable once created.
+ - 📦 **TaskStatus** (`Enum`) `[TRIVIAL]`
+ - 📝 Defines the possible states a task can be in during its lifecycle.
+ - 📦 **LogLevel** (`Enum`) `[TRIVIAL]`
+ - 📝 Defines the possible log levels for task logging.
+ - ℂ **LogEntry** (`Class`) `[TRIVIAL]`
+ - 📝 A Pydantic model representing a single, structured log entry associated with a task.
+ - 🔒 Invariant: Each log entry has a unique timestamp and source.
+ - 🔗 DEPENDS_ON -> `LogLevel`
+ - ℂ **TaskLog** (`Class`)
+ - 📝 A Pydantic model representing a persisted log entry from the database.
+ - ℂ **LogFilter** (`Class`) `[TRIVIAL]`
+ - 📝 Filter parameters for querying task logs.
+ - ℂ **LogStats** (`Class`) `[TRIVIAL]`
+ - 📝 Statistics about log entries for a task.
+ - ℂ **Task** (`Class`)
+ - 📝 A Pydantic model representing a single execution instance of a plugin, including its status, parameters, and logs.
+ - 🔗 DEPENDS_ON -> `TaskStatus`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the Task model and validates input_request for AWAITING_INPUT status.
+- 📦 **TaskCleanupModule** (`Module`)
+ - 📝 Implements task cleanup and retention policies, including associated logs.
+ - 🏗️ Layer: Core
+ - ℂ **TaskCleanupService** (`Class`)
+ - 📝 Provides methods to clean up old task records and their associated logs.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the cleanup service with dependencies.
+ - ƒ **run_cleanup** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes tasks older than the configured retention period and their logs.
+ - ƒ **delete_task_with_logs** (`Function`) `[TRIVIAL]`
+ - 📝 Delete a single task and all its associated logs.
+- 📦 **TaskManagerPackage** (`Module`) `[TRIVIAL]`
+ - 📝 Exports the public API of the task manager package.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Package exports stay aligned with manager and models contracts.
+ - 🔗 DEPENDS_ON -> `TaskManagerModels`
+ - 🔗 DEPENDS_ON -> `TaskManagerModule`
+ - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.manager.TaskManager`
+- 📦 **TaskContextModule** (`Module`) `[CRITICAL]`
+ - 📝 Provides execution context passed to plugins during task execution.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: Each TaskContext is bound to a single task execution.
+ - 🔗 DEPENDS_ON -> `TaskLoggerModule`
+ - ℂ **TaskContext** (`Class`) `[CRITICAL]`
+ - 📝 A container passed to plugin.execute() providing the logger and other task-specific utilities.
+ - 🔒 Invariant: logger is always a valid TaskLogger instance.
+ - 🔗 DEPENDS_ON -> `TaskLogger`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize the TaskContext with task-specific resources.
+ - ƒ **task_id** (`Function`) `[TRIVIAL]`
+ - 📝 Get the task ID.
+ - ƒ **logger** (`Function`) `[TRIVIAL]`
+ - 📝 Get the TaskLogger instance for this context.
+ - ƒ **params** (`Function`) `[TRIVIAL]`
+ - 📝 Get the task parameters.
+ - ƒ **background_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Expose optional background task scheduler for plugins that dispatch deferred side effects.
+ - ƒ **get_param** (`Function`) `[TRIVIAL]`
+ - 📝 Get a specific parameter value with optional default.
+ - ƒ **create_sub_context** (`Function`) `[TRIVIAL]`
+ - 📝 Create a sub-context with a different default source.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ƒ **test_task_logger_initialization** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_task_logger`
+- ƒ **test_log_methods_delegation** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_task_logger`
+- ƒ **test_with_source** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_task_logger`
+- ƒ **test_missing_task_id** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_task_logger`
+- ƒ **test_invalid_add_log_fn** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_task_logger`
+- ƒ **test_progress_log** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_task_logger`
+- 📦 **test_task_logger** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/src/core/task_manager/__tests__/test_task_logger.py
+ - 🏗️ Layer: Unknown
+ - ƒ **mock_add_log** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **task_logger** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestContext** (`Module`)
+ - 📝 Verify TaskContext preserves optional background task scheduler across sub-context creation.
+ - ƒ **test_task_context_preserves_background_tasks_across_sub_context** (`Function`) `[TRIVIAL]`
+ - 📝 Plugins must be able to access background_tasks from both root and sub-context loggers.
+ - 🔗 BINDS_TO -> `TestContext`
+- 📦 **AuthApi** (`Module`)
+ - 📝 Authentication API endpoints.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: All auth endpoints must return consistent error codes.
+ - 🔗 DEPENDS_ON -> `AuthService`
+ - 🔗 DEPENDS_ON -> `get_auth_db`
+ - 🔗 DEPENDS_ON -> `get_current_user`
+ - 🔗 DEPENDS_ON -> `is_adfs_configured`
+ - 📦 **router** (`Variable`) `[TRIVIAL]`
+ - 📝 APIRouter instance for authentication routes.
+ - 🔗 DEPENDS_ON -> `fastapi.APIRouter`
+ - ƒ **login_for_access_token** (`Function`)
+ - 📝 Authenticates a user and returns a JWT access token.
+ - 🔗 CALLS -> `AuthService.authenticate_user`
+ - 🔗 CALLS -> `AuthService.create_session`
+ - ƒ **read_users_me** (`Function`)
+ - 📝 Retrieves the profile of the currently authenticated user.
+ - 🔗 DEPENDS_ON -> `get_current_user`
+ - ƒ **logout** (`Function`)
+ - 📝 Logs out the current user (placeholder for session revocation).
+ - 🔗 DEPENDS_ON -> `get_current_user`
+ - ƒ **login_adfs** (`Function`)
+ - 📝 Initiates the ADFS OIDC login flow.
+ - ƒ **auth_callback_adfs** (`Function`)
+ - 📝 Handles the callback from ADFS after successful authentication.
+ - 🔗 DEPENDS_ON -> `is_adfs_configured`
+ - 🔗 CALLS -> `AuthService.provision_adfs_user`
+ - 🔗 CALLS -> `AuthService.create_session`
+- 📦 **src.api** (`Package`) `[TRIVIAL]`
+ - 📝 Backend API package root.
+- 📦 **router** (`Global`) `[TRIVIAL]`
+ - 📝 APIRouter instance for LLM routes.
+- ƒ **_is_valid_runtime_api_key** (`Function`) `[TRIVIAL]`
+ - 📝 Validate decrypted runtime API key presence/shape.
+- ƒ **get_providers** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve all LLM provider configurations.
+- ƒ **get_llm_status** (`Function`) `[TRIVIAL]`
+ - 📝 Returns whether LLM runtime is configured for dashboard validation.
+- ƒ **create_provider** (`Function`) `[TRIVIAL]`
+ - 📝 Create a new LLM provider configuration.
+- ƒ **update_provider** (`Function`) `[TRIVIAL]`
+ - 📝 Update an existing LLM provider configuration.
+- ƒ **delete_provider** (`Function`) `[TRIVIAL]`
+ - 📝 Delete an LLM provider configuration.
+- ƒ **test_connection** (`Function`) `[TRIVIAL]`
+ - 📝 Test connection to an LLM provider.
+- ƒ **test_provider_config** (`Function`) `[TRIVIAL]`
+ - 📝 Test connection with a provided configuration (not yet saved).
+- 📦 **DatasetsApi** (`Module`)
+ - 📝 API endpoints for the Dataset Hub - listing datasets with mapping progress
+ - 🏗️ Layer: API
+ - 🔒 Invariant: All dataset responses include last_task metadata
+ - 🔗 DEPENDS_ON -> `AppDependencies`
+ - 🔗 DEPENDS_ON -> `backend.src.services.resource_service.ResourceService`
+ - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
+ - 📦 **MappedFields** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for dataset mapping progress statistics
+ - 📦 **LastTask** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for the most recent task associated with a dataset
+ - 📦 **DatasetItem** (`DataClass`) `[TRIVIAL]`
+ - 📝 Summary DTO for a dataset in the hub listing
+ - 📦 **LinkedDashboard** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for a dashboard linked to a dataset
+ - 📦 **DatasetColumn** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for a single dataset column's metadata
+ - 📦 **DatasetDetailResponse** (`DataClass`) `[TRIVIAL]`
+ - 📝 Detailed DTO for a dataset including columns and links
+ - 📦 **DatasetsResponse** (`DataClass`) `[TRIVIAL]`
+ - 📝 Paginated response DTO for dataset listings
+ - 📦 **TaskResponse** (`DataClass`) `[TRIVIAL]`
+ - 📝 Response DTO containing a task ID for tracking
+ - ƒ **get_dataset_ids** (`Function`)
+ - 📝 Fetch list of all dataset IDs from a specific environment (without pagination)
+ - 🔗 CALLS -> `get_datasets_with_status`
+ - ƒ **get_datasets** (`Function`)
+ - 📝 Fetch list of datasets from a specific environment with mapping progress
+ - 🔗 CALLS -> `backend.src.services.resource_service.ResourceService.get_datasets_with_status`
+ - 📦 **MapColumnsRequest** (`DataClass`) `[TRIVIAL]`
+ - 📝 Request DTO for initiating column mapping
+ - ƒ **map_columns** (`Function`)
+ - 📝 Trigger bulk column mapping for datasets
+ - 🔗 DISPATCHES -> `backend.src.plugins.mapper.MapperPlugin`
+ - 🔗 CALLS -> `backend.src.core.task_manager.manager.TaskManager:create_task`
+ - 📦 **GenerateDocsRequest** (`DataClass`) `[TRIVIAL]`
+ - 📝 Request DTO for initiating documentation generation
+ - ƒ **generate_docs** (`Function`)
+ - 📝 Trigger bulk documentation generation for datasets
+ - 🔗 DISPATCHES -> `backend.src.plugins.llm_analysis.plugin.DocumentationPlugin`
+ - 🔗 CALLS -> `backend.src.core.task_manager.manager.TaskManager:create_task`
+ - ƒ **get_dataset_detail** (`Function`)
+ - 📝 Get detailed dataset information including columns and linked dashboards
+ - 🔗 CALLS -> `backend.src.core.superset_client.SupersetClient:get_dataset_detail`
+- 📦 **GitApi** (`Module`)
+ - 📝 Provides FastAPI endpoints for Git integration operations.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: All Git operations must be routed through GitService.
+ - ƒ **_build_no_repo_status_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Build a consistent status payload for dashboards without initialized repositories.
+ - ƒ **_handle_unexpected_git_route_error** (`Function`) `[TRIVIAL]`
+ - 📝 Convert unexpected route-level exceptions to stable 500 API responses.
+ - ƒ **_resolve_repository_status** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve repository status for one dashboard with graceful NO_REPO semantics.
+ - ƒ **_get_git_config_or_404** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve GitServerConfig by id or raise 404.
+ - ƒ **_find_dashboard_id_by_slug** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard numeric ID by slug in a specific environment.
+ - ƒ **_resolve_dashboard_id_from_ref** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard ID from slug-or-id reference for Git routes.
+ - ƒ **_find_dashboard_id_by_slug_async** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard numeric ID by slug asynchronously for hot-path Git routes.
+ - ƒ **_resolve_dashboard_id_from_ref_async** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard ID asynchronously from slug-or-id reference for hot Git routes.
+ - ƒ **_resolve_repo_key_from_ref** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve repository folder key with slug-first strategy and deterministic fallback.
+ - ƒ **_sanitize_optional_identity_value** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize optional identity value into trimmed string or None.
+ - ƒ **_resolve_current_user_git_identity** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve configured Git username/email from current user's profile preferences.
+ - ƒ **_apply_git_identity_from_profile** (`Function`) `[TRIVIAL]`
+ - 📝 Apply user-scoped Git identity to repository-local config before write/pull operations.
+ - ƒ **get_git_configs** (`Function`) `[TRIVIAL]`
+ - 📝 List all configured Git servers.
+ - ƒ **create_git_config** (`Function`) `[TRIVIAL]`
+ - 📝 Register a new Git server configuration.
+ - ƒ **update_git_config** (`Function`) `[TRIVIAL]`
+ - 📝 Update an existing Git server configuration.
+ - ƒ **delete_git_config** (`Function`) `[TRIVIAL]`
+ - 📝 Remove a Git server configuration.
+ - ƒ **test_git_config** (`Function`) `[TRIVIAL]`
+ - 📝 Validate connection to a Git server using provided credentials.
+ - ƒ **list_gitea_repositories** (`Function`) `[TRIVIAL]`
+ - 📝 List repositories in Gitea for a saved Gitea config.
+ - ƒ **create_gitea_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Create a repository in Gitea for a saved Gitea config.
+ - ƒ **create_remote_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Create repository on remote Git server using selected provider config.
+ - ƒ **delete_gitea_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Delete repository in Gitea for a saved Gitea config.
+ - ƒ **init_repository** (`Function`)
+ - 📝 Link a dashboard to a Git repository and perform initial clone/init.
+ - ƒ **get_repository_binding** (`Function`) `[TRIVIAL]`
+ - 📝 Return repository binding with provider metadata for selected dashboard.
+ - ƒ **delete_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Delete local repository workspace and DB binding for selected dashboard.
+ - ƒ **get_branches** (`Function`) `[TRIVIAL]`
+ - 📝 List all branches for a dashboard's repository.
+ - ƒ **create_branch** (`Function`) `[TRIVIAL]`
+ - 📝 Create a new branch in the dashboard's repository.
+ - ƒ **checkout_branch** (`Function`) `[TRIVIAL]`
+ - 📝 Switch the dashboard's repository to a specific branch.
+ - ƒ **commit_changes** (`Function`) `[TRIVIAL]`
+ - 📝 Stage and commit changes in the dashboard's repository.
+ - ƒ **push_changes** (`Function`) `[TRIVIAL]`
+ - 📝 Push local commits to the remote repository.
+ - ƒ **pull_changes** (`Function`)
+ - 📝 Pull changes from the remote repository.
+ - ƒ **get_merge_status** (`Function`) `[TRIVIAL]`
+ - 📝 Return unfinished-merge status for repository (web-only recovery support).
+ - ƒ **get_merge_conflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Return conflicted files with mine/theirs previews for web conflict resolver.
+ - ƒ **resolve_merge_conflicts** (`Function`)
+ - 📝 Apply mine/theirs/manual conflict resolutions from WebUI and stage files.
+ - ƒ **abort_merge** (`Function`) `[TRIVIAL]`
+ - 📝 Abort unfinished merge from WebUI flow.
+ - ƒ **continue_merge** (`Function`)
+ - 📝 Finalize unfinished merge from WebUI flow.
+ - ƒ **sync_dashboard** (`Function`)
+ - 📝 Sync dashboard state from Superset to Git using the GitPlugin.
+ - ƒ **promote_dashboard** (`Function`)
+ - 📝 Promote changes between branches via MR or direct merge.
+ - ƒ **get_environments** (`Function`) `[TRIVIAL]`
+ - 📝 List all deployment environments.
+ - ƒ **deploy_dashboard** (`Function`)
+ - 📝 Deploy dashboard from Git to a target environment.
+ - ƒ **get_history** (`Function`) `[TRIVIAL]`
+ - 📝 View commit history for a dashboard's repository.
+ - ƒ **get_repository_status** (`Function`) `[TRIVIAL]`
+ - 📝 Get current Git status for a dashboard repository.
+ - ƒ **get_repository_status_batch** (`Function`) `[TRIVIAL]`
+ - 📝 Get Git statuses for multiple dashboard repositories in one request.
+ - ƒ **get_repository_diff** (`Function`) `[TRIVIAL]`
+ - 📝 Get Git diff for a dashboard repository.
+ - ƒ **generate_commit_message** (`Function`)
+ - 📝 Generate a suggested commit message using LLM.
+- 📦 **ConnectionsRouter** (`Module`)
+ - 📝 Defines the FastAPI router for managing external database connections.
+ - 🏗️ Layer: UI (API)
+ - 🔗 DEPENDS_ON -> `Session`
+ - ƒ **_ensure_connections_schema** (`Function`)
+ - 📝 Ensures the connection_configs table exists before CRUD access.
+ - 🔗 CALLS -> `ensure_connection_configs_table`
+ - ℂ **ConnectionSchema** (`Class`)
+ - 📝 Pydantic model for connection response.
+ - 🔗 BINDS_TO -> `ConnectionConfig`
+ - ℂ **ConnectionCreate** (`Class`)
+ - 📝 Pydantic model for creating a connection.
+ - 🔗 BINDS_TO -> `ConnectionConfig`
+ - ƒ **list_connections** (`Function`)
+ - 📝 Lists all saved connections.
+ - 🔗 CALLS -> `_ensure_connections_schema`
+ - 🔗 DEPENDS_ON -> `ConnectionConfig`
+ - ƒ **create_connection** (`Function`)
+ - 📝 Creates a new connection configuration.
+ - 🔗 CALLS -> `_ensure_connections_schema`
+ - 🔗 DEPENDS_ON -> `ConnectionConfig`
+ - ƒ **delete_connection** (`Function`)
+ - 📝 Deletes a connection configuration.
+ - 🔗 CALLS -> `_ensure_connections_schema`
+ - 🔗 DEPENDS_ON -> `ConnectionConfig`
+- 📦 **health_router** (`Module`)
+ - 📝 API endpoints for dashboard health monitoring and status aggregation.
+ - 🏗️ Layer: UI/API
+ - 🔗 DEPENDS_ON -> `health_service`
+ - ƒ **get_health_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Get aggregated health status for all dashboards.
+ - 🔗 CALLS -> `backend.src.services.health_service.HealthService`
+ - ƒ **delete_health_report** (`Function`) `[TRIVIAL]`
+ - 📝 Delete one persisted dashboard validation report from health summary.
+ - 🔗 CALLS -> `backend.src.services.health_service.HealthService`
+- 📦 **EnvironmentsApi** (`Module`)
+ - 📝 API endpoints for listing environments and their databases.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: Environment IDs must exist in the configuration.
+ - 🔗 DEPENDS_ON -> `backend.src.dependencies`
+ - 🔗 DEPENDS_ON -> `backend.src.core.superset_client`
+ - ƒ **_normalize_superset_env_url** (`Function`) `[TRIVIAL]`
+ - 📝 Canonicalize Superset environment URL to base host/path without trailing /api/v1.
+ - 📦 **ScheduleSchema** (`DataClass`) `[TRIVIAL]`
+ - 📦 **EnvironmentResponse** (`DataClass`) `[TRIVIAL]`
+ - 📦 **DatabaseResponse** (`DataClass`) `[TRIVIAL]`
+ - ƒ **get_environments** (`Function`) `[TRIVIAL]`
+ - 📝 List all configured environments.
+ - 🏗️ Layer: API
+ - ƒ **update_environment_schedule** (`Function`) `[TRIVIAL]`
+ - 📝 Update backup schedule for an environment.
+ - 🏗️ Layer: API
+ - ƒ **get_environment_databases** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch the list of databases from a specific environment.
+ - 🏗️ Layer: API
+- 📦 **DatasetReviewApi** (`Module`)
+ - 📝 Expose dataset review session lifecycle and export endpoints for backend US1.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: No cross-user session leakage is allowed; export payloads only expose the current user's accessible session.
+ - 🔗 DEPENDS_ON -> `AppDependencies`
+ - 🔗 DEPENDS_ON -> `DatasetReviewSessionRepository`
+ - 🔗 DEPENDS_ON -> `DatasetReviewOrchestrator`
+ - ▦ **DatasetReviewApi.imports** (`Block`) `[TRIVIAL]`
+ - ℂ **StartSessionRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for starting one dataset review session from a Superset link or dataset selection.
+ - ℂ **UpdateSessionRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for lifecycle state updates on an existing session.
+ - ℂ **SessionCollectionResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Paginated ownership-scoped dataset review session collection response.
+ - ℂ **ExportArtifactResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Inline export response for documentation or validation outputs without introducing unrelated persistence changes.
+ - ℂ **FieldSemanticUpdateRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for field-level semantic candidate acceptance or manual override.
+ - ℂ **FeedbackRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for thumbs up/down feedback persistence on AI-assisted content.
+ - ℂ **ClarificationAnswerRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for submitting one clarification answer.
+ - ℂ **ClarificationSessionSummaryResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Summary DTO for current clarification session state without exposing historical noise.
+ - ℂ **ClarificationStateResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Response DTO for current clarification state and active question payload.
+ - ℂ **ClarificationAnswerResultResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Response DTO for one clarification answer mutation result.
+ - ℂ **FeedbackResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal response DTO for persisted AI feedback actions.
+ - ℂ **ApproveMappingRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Optional request DTO for explicit mapping approval audit notes.
+ - ℂ **BatchApproveSemanticItemRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for one batch semantic-approval item aligned with single-field acceptance semantics.
+ - ℂ **BatchApproveSemanticRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for explicit batch semantic approvals inside one owned session scope.
+ - ℂ **BatchApproveMappingRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for explicit batch mapping approvals aligned with single-item approval semantics.
+ - ℂ **PreviewEnqueueResultResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Contract-compliant async preview trigger response exposing only enqueue state.
+ - ℂ **MappingCollectionResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Contract-compliant wrapper for execution mapping list responses.
+ - ℂ **UpdateExecutionMappingRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request DTO for one manual execution-mapping override update without introducing unrelated bulk mutation semantics.
+ - ℂ **LaunchDatasetResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Contract-compliant launch result exposing audited run context and SQL Lab redirect target.
+ - ƒ **_require_auto_review_flag** (`Function`) `[TRIVIAL]`
+ - 📝 Guard US1 dataset review endpoints behind the configured feature flag.
+ - 🔗 DEPENDS_ON -> `ConfigManager`
+ - ƒ **_require_clarification_flag** (`Function`) `[TRIVIAL]`
+ - 📝 Guard clarification-specific US2 endpoints behind the configured feature flag.
+ - 🔗 DEPENDS_ON -> `ConfigManager`
+ - ƒ **_require_execution_flag** (`Function`) `[TRIVIAL]`
+ - 📝 Guard US3 execution endpoints behind the configured feature flag.
+ - 🔗 DEPENDS_ON -> `ConfigManager`
+ - ƒ **_get_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Build repository dependency for dataset review session aggregate access.
+ - ƒ **_get_orchestrator** (`Function`) `[TRIVIAL]`
+ - 📝 Build orchestrator dependency for session lifecycle actions.
+ - 🔗 DEPENDS_ON -> `DatasetReviewOrchestrator`
+ - ƒ **_get_clarification_engine** (`Function`) `[TRIVIAL]`
+ - 📝 Build clarification engine dependency for one-question-at-a-time guided clarification mutations.
+ - 🔗 DEPENDS_ON -> `ClarificationEngine`
+ - ƒ **_serialize_session_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Map SQLAlchemy session aggregate root into stable API summary DTO.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - 🔗 DEPENDS_ON -> `SessionSummary`
+ - ƒ **_serialize_session_detail** (`Function`) `[TRIVIAL]`
+ - 📝 Map SQLAlchemy session aggregate root into stable API detail DTO.
+ - 🔗 DEPENDS_ON -> `SessionDetail`
+ - ƒ **_serialize_semantic_field** (`Function`) `[TRIVIAL]`
+ - 📝 Map one semantic field aggregate into stable field-level DTO output.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntryDto`
+ - ƒ **_serialize_clarification_question_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Convert clarification engine payload into API DTO aligned with the clarification contract.
+ - 🔗 DEPENDS_ON -> `ClarificationQuestionDto`
+ - ƒ **_serialize_clarification_state** (`Function`) `[TRIVIAL]`
+ - 📝 Convert clarification engine state into stable API response payload.
+ - 🔗 DEPENDS_ON -> `ClarificationStateResponse`
+ - ƒ **_get_owned_session_or_404** (`Function`)
+ - 📝 Resolve one session for current user or collaborator scope, returning 404 when inaccessible.
+ - 🔗 CALLS -> `load_detail`
+ - ƒ **_require_owner_mutation_scope** (`Function`)
+ - 📝 Enforce owner-only mutation scope for dataset review write endpoints.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **_record_session_event** (`Function`) `[TRIVIAL]`
+ - 📝 Persist one explicit audit event for an owned dataset-review mutation endpoint.
+ - 🔗 CALLS -> `SessionEventLogger.log_for_session`
+ - ƒ **_get_owned_mapping_or_404** (`Function`)
+ - 📝 Resolve one execution mapping inside one owned session aggregate without leaking foreign-mapping existence.
+ - 🔗 DEPENDS_ON -> `ExecutionMapping`
+ - ƒ **_get_owned_field_or_404** (`Function`)
+ - 📝 Resolve a semantic field inside one owned session aggregate without leaking foreign-field existence.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - ƒ **_get_latest_clarification_session_or_404** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve the latest clarification aggregate for one session or raise when clarification is unavailable.
+ - 🔗 DEPENDS_ON -> `ClarificationSession`
+ - ƒ **_map_candidate_provenance** (`Function`) `[TRIVIAL]`
+ - 📝 Translate accepted semantic candidate type into stable field provenance.
+ - ƒ **_resolve_candidate_source_version** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve the semantic source version for one accepted candidate from the loaded session aggregate.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - 🔗 DEPENDS_ON -> `SemanticSource`
+ - ƒ **_update_semantic_field_state** (`Function`)
+ - 📝 Apply field-level semantic manual override or candidate acceptance while preserving lock/provenance invariants.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - 🔗 DEPENDS_ON -> `SemanticCandidate`
+ - ƒ **_serialize_execution_mapping** (`Function`) `[TRIVIAL]`
+ - 📝 Map one persisted execution mapping into stable API DTO output.
+ - 🔗 DEPENDS_ON -> `ExecutionMappingDto`
+ - ƒ **_serialize_run_context** (`Function`) `[TRIVIAL]`
+ - 📝 Map one persisted launch run context into stable API DTO output for SQL Lab handoff confirmation.
+ - 🔗 DEPENDS_ON -> `DatasetRunContextDto`
+ - ƒ **_build_sql_lab_redirect_url** (`Function`) `[TRIVIAL]`
+ - 📝 Build a stable SQL Lab redirect URL from the configured Superset environment and persisted run context reference.
+ - 🔗 DEPENDS_ON -> `DatasetRunContextDto`
+ - ƒ **_build_documentation_export** (`Function`) `[TRIVIAL]`
+ - 📝 Produce session documentation export content from current persisted review state.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **_build_validation_export** (`Function`) `[TRIVIAL]`
+ - 📝 Produce validation-focused export content from persisted findings and readiness state.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **list_sessions** (`Function`)
+ - 📝 List resumable dataset review sessions for the current user.
+ - 🔗 CALLS -> `list_user_sess`
+ - ƒ **start_session** (`Function`)
+ - 📝 Start a new dataset review session from a Superset link or dataset selection.
+ - 🔗 CALLS -> `start_session:Function`
+ - ƒ **get_session_detail** (`Function`)
+ - 📝 Return the full accessible dataset review session aggregate for current user scope.
+ - 🔗 CALLS -> `_get_owned_session_or_404`
+ - ƒ **update_session** (`Function`)
+ - 📝 Update resumable lifecycle status for an owned dataset review session.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **delete_session** (`Function`)
+ - 📝 Archive or hard-delete a session owned by the current user.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **export_documentation** (`Function`)
+ - 📝 Export documentation output for the current session in JSON or Markdown form.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **export_validation** (`Function`)
+ - 📝 Export validation findings for the current session in JSON or Markdown form.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **get_clarification_state** (`Function`)
+ - 📝 Return the current clarification session summary and one active question payload.
+ - 🔗 CALLS -> `build_question_payload:Function`
+ - ƒ **resume_clarification** (`Function`)
+ - 📝 Resume clarification mode on the highest-priority unresolved question for an owned session.
+ - 🔗 CALLS -> `build_question_payload:Function`
+ - ƒ **record_clarification_answer** (`Function`)
+ - 📝 Persist one clarification answer before advancing the active pointer or readiness state.
+ - 🔗 CALLS -> `record_answer:Function`
+ - ƒ **update_field_semantic** (`Function`)
+ - 📝 Apply one field-level semantic candidate decision or manual override with lock/provenance safeguards.
+ - 🔗 CALLS -> `_update_semantic_field_state`
+ - ƒ **lock_field_semantic** (`Function`)
+ - 📝 Lock one semantic field against later automatic overwrite while preserving the current active value.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - ƒ **unlock_field_semantic** (`Function`)
+ - 📝 Unlock one semantic field so later automated candidate application may replace it explicitly.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - ƒ **approve_batch_semantic_fields** (`Function`)
+ - 📝 Approve multiple semantic candidate decisions in one owner-authorized batch without bypassing single-field semantics.
+ - 🔗 CALLS -> `_update_semantic_field_state`
+ - ƒ **list_execution_mappings** (`Function`)
+ - 📝 Return the current mapping-review set for one accessible session.
+ - 🔗 CALLS -> `_get_owned_session_or_404`
+ - ƒ **update_execution_mapping** (`Function`)
+ - 📝 Persist one owner-authorized execution-mapping effective value override and invalidate stale preview truth.
+ - 🔗 DEPENDS_ON -> `ExecutionMapping`
+ - ƒ **approve_execution_mapping** (`Function`)
+ - 📝 Explicitly approve a warning-sensitive mapping transformation and preserve audit note state.
+ - 🔗 DEPENDS_ON -> `ExecutionMapping`
+ - ƒ **approve_batch_execution_mappings** (`Function`)
+ - 📝 Approve multiple warning-sensitive execution mappings in one owner-authorized batch.
+ - 🔗 DEPENDS_ON -> `ExecutionMapping`
+ - ƒ **trigger_preview_generation** (`Function`)
+ - 📝 Trigger Superset-side preview compilation for the current owned execution context.
+ - 🔗 CALLS -> `prepare_launch_preview:Function`
+ - ƒ **launch_dataset** (`Function`)
+ - 📝 Execute the current owned session launch handoff through the orchestrator and return audited SQL Lab run context.
+ - 🔗 CALLS -> `launch_dataset:Function`
+ - ƒ **record_field_feedback** (`Function`)
+ - 📝 Persist thumbs up/down feedback for AI-assisted semantic field content.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - ƒ **record_clarification_feedback** (`Function`)
+ - 📝 Persist thumbs up/down feedback for clarification question/answer content used in guided review.
+ - 🔗 DEPENDS_ON -> `ClarificationAnswer`
+- 📦 **MigrationApi** (`Module`) `[CRITICAL]`
+ - 📝 HTTP contract layer for migration orchestration, settings, dry-run, and mapping sync endpoints.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Migration endpoints never execute with invalid environment references and always return explicit HTTP errors on guard failures.
+ - 🔗 DEPENDS_ON -> `AppDependencies`
+ - 🔗 DEPENDS_ON -> `DatabaseModule`
+ - 🔗 DEPENDS_ON -> `DashboardSelection`
+ - 🔗 DEPENDS_ON -> `DashboardMetadata`
+ - 🔗 DEPENDS_ON -> `MigrationDryRunService`
+ - 🔗 DEPENDS_ON -> `IdMappingService`
+ - 🔗 DEPENDS_ON -> `ResourceMapping`
+ - ƒ **get_dashboards** (`Function`)
+ - 📝 Fetch dashboard metadata from a requested environment for migration selection UI.
+ - 🔗 CALLS -> `SupersetClient.get_dashboards_summary`
+ - ƒ **execute_migration** (`Function`) `[CRITICAL]`
+ - 📝 Validate migration selection and enqueue asynchronous migration task execution.
+ - 🔒 Invariant: Migration task dispatch never occurs before source and target environment ids pass guard validation.
+ - 🔗 CALLS -> `create_task`
+ - 🔗 DEPENDS_ON -> `DashboardSelection`
+ - ƒ **dry_run_migration** (`Function`) `[CRITICAL]`
+ - 📝 Build pre-flight migration diff and risk summary without mutating target systems.
+ - 🔒 Invariant: Dry-run flow remains read-only and rejects identical source/target environments before service execution.
+ - 🔗 DEPENDS_ON -> `DashboardSelection`
+ - 🔗 DEPENDS_ON -> `MigrationDryRunService`
+ - ƒ **get_migration_settings** (`Function`)
+ - 📝 Read and return configured migration synchronization cron expression.
+ - 🔗 DEPENDS_ON -> `AppDependencies`
+ - ƒ **update_migration_settings** (`Function`)
+ - 📝 Validate and persist migration synchronization cron expression update.
+ - 🔗 DEPENDS_ON -> `AppDependencies`
+ - ƒ **get_resource_mappings** (`Function`)
+ - 📝 Fetch synchronized resource mappings with optional filters and pagination for migration mappings view.
+ - 🔗 DEPENDS_ON -> `ResourceMapping`
+ - ƒ **trigger_sync_now** (`Function`)
+ - 📝 Trigger immediate ID synchronization for every configured environment.
+ - 🔗 DEPENDS_ON -> `IdMappingService`
+ - 🔗 CALLS -> `sync_environment`
+- 📦 **PluginsRouter** (`Module`)
+ - 📝 Defines the FastAPI router for plugin-related endpoints, allowing clients to list available plugins.
+ - 🏗️ Layer: UI (API)
+ - ƒ **list_plugins** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve a list of all available plugins.
+- 📦 **CleanReleaseV2Api** (`Module`)
+ - 📝 Redesigned clean release API for headless candidate lifecycle.
+ - ℂ **ApprovalRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for approval request payload.
+ - ℂ **PublishRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for publication request payload.
+ - ℂ **RevokeRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for revocation request payload.
+ - ƒ **register_candidate** (`Function`)
+ - 📝 Register a new release candidate.
+ - 🔗 CALLS -> `CleanReleaseRepository.save_candidate`
+ - ƒ **import_artifacts** (`Function`)
+ - 📝 Associate artifacts with a release candidate.
+ - 🔗 CALLS -> `CleanReleaseRepository.get_candidate`
+ - ƒ **build_manifest** (`Function`)
+ - 📝 Generate distribution manifest for a candidate.
+ - 🔗 CALLS -> `CleanReleaseRepository.save_manifest`
+ - 🔗 CALLS -> `CleanReleaseRepository.get_candidate`
+ - ƒ **approve_candidate_endpoint** (`Function`)
+ - 📝 Endpoint to record candidate approval.
+ - 🔗 CALLS -> `approve_candidate`
+ - ƒ **reject_candidate_endpoint** (`Function`)
+ - 📝 Endpoint to record candidate rejection.
+ - 🔗 CALLS -> `reject_candidate`
+ - ƒ **publish_candidate_endpoint** (`Function`)
+ - 📝 Endpoint to publish an approved candidate.
+ - 🔗 CALLS -> `publish_candidate`
+ - ƒ **revoke_publication_endpoint** (`Function`)
+ - 📝 Endpoint to revoke a previous publication.
+ - 🔗 CALLS -> `revoke_publication`
+- 📦 **MappingsApi** (`Module`)
+ - 📝 API endpoints for managing database mappings and getting suggestions.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: Mappings are persisted in the SQLite database.
+ - 🔗 DEPENDS_ON -> `backend.src.dependencies`
+ - 🔗 DEPENDS_ON -> `backend.src.core.database`
+ - 🔗 DEPENDS_ON -> `backend.src.services.mapping_service`
+ - 📦 **MappingCreate** (`DataClass`) `[TRIVIAL]`
+ - 📦 **MappingResponse** (`DataClass`) `[TRIVIAL]`
+ - 📦 **SuggestRequest** (`DataClass`) `[TRIVIAL]`
+ - ƒ **get_mappings** (`Function`) `[TRIVIAL]`
+ - 📝 List all saved database mappings.
+ - ƒ **create_mapping** (`Function`) `[TRIVIAL]`
+ - 📝 Create or update a database mapping.
+ - ƒ **suggest_mappings_api** (`Function`) `[TRIVIAL]`
+ - 📝 Get suggested mappings based on fuzzy matching.
+- 📦 **SettingsRouter** (`Module`)
+ - 📝 Provides API endpoints for managing application settings and Superset environments.
+ - 🏗️ Layer: UI (API)
+ - 🔒 Invariant: All settings changes must be persisted via ConfigManager.
+ - 🔗 DEPENDS_ON -> `ConfigManager`
+ - 🔗 DEPENDS_ON -> `get_config_manager:Function`
+ - 🔗 DEPENDS_ON -> `has_permission:Function`
+ - ℂ **LoggingConfigResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Response model for logging configuration with current task log level.
+ - ƒ **_normalize_superset_env_url** (`Function`) `[TRIVIAL]`
+ - 📝 Canonicalize Superset environment URL to base host/path without trailing /api/v1.
+ - ƒ **_validate_superset_connection_fast** (`Function`) `[TRIVIAL]`
+ - 📝 Run lightweight Superset connectivity validation without full pagination scan.
+ - ƒ **get_settings** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieves all application settings.
+ - ƒ **update_global_settings** (`Function`) `[TRIVIAL]`
+ - 📝 Updates global application settings.
+ - ƒ **get_storage_settings** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieves storage-specific settings.
+ - ƒ **update_storage_settings** (`Function`) `[TRIVIAL]`
+ - 📝 Updates storage-specific settings.
+ - ƒ **get_environments** (`Function`) `[TRIVIAL]`
+ - 📝 Lists all configured Superset environments.
+ - ƒ **add_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Adds a new Superset environment.
+ - ƒ **update_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Updates an existing Superset environment.
+ - ƒ **delete_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a Superset environment.
+ - ƒ **test_environment_connection** (`Function`) `[TRIVIAL]`
+ - 📝 Tests the connection to a Superset environment.
+ - ƒ **get_logging_config** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieves current logging configuration.
+ - ƒ **update_logging_config** (`Function`) `[TRIVIAL]`
+ - 📝 Updates logging configuration.
+ - ℂ **ConsolidatedSettingsResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Response model for consolidated application settings.
+ - ƒ **get_consolidated_settings** (`Function`)
+ - 📝 Retrieves all settings categories in a single call
+ - 🔗 DEPENDS_ON -> `ConfigManager`
+ - 🔗 DEPENDS_ON -> `LLMProviderService`
+ - 🔗 DEPENDS_ON -> `AppConfigRecord`
+ - 🔗 DEPENDS_ON -> `SessionLocal`
+ - 🔗 DEPENDS_ON -> `has_permission:Function`
+ - 🔗 DEPENDS_ON -> `normalize_llm_settings:Function`
+ - ƒ **update_consolidated_settings** (`Function`) `[TRIVIAL]`
+ - 📝 Bulk update application settings from the consolidated view.
+ - ƒ **get_validation_policies** (`Function`) `[TRIVIAL]`
+ - 📝 Lists all validation policies.
+ - ƒ **create_validation_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Creates a new validation policy.
+ - ƒ **update_validation_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Updates an existing validation policy.
+ - ƒ **delete_validation_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a validation policy.
+- 📦 **AdminApi** (`Module`)
+ - 📝 Admin API endpoints for user and role management.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: All endpoints in this module require 'Admin' role or 'admin' scope.
+ - 🔗 DEPENDS_ON -> `AuthRepository:Class`
+ - 🔗 DEPENDS_ON -> `get_auth_db:Function`
+ - 🔗 DEPENDS_ON -> `has_permission:Function`
+ - 📦 **router** (`Variable`) `[TRIVIAL]`
+ - 📝 APIRouter instance for admin routes.
+ - 🔗 DEPENDS_ON -> `fastapi.APIRouter`
+ - ƒ **list_users** (`Function`)
+ - 📝 Lists all registered users.
+ - 🔗 CALLS -> `User`
+ - ƒ **create_user** (`Function`)
+ - 📝 Creates a new local user.
+ - 🔗 CALLS -> `AuthRepository:Class`
+ - ƒ **update_user** (`Function`)
+ - 📝 Updates an existing user.
+ - 🔗 CALLS -> `AuthRepository`
+ - ƒ **delete_user** (`Function`)
+ - 📝 Deletes a user.
+ - 🔗 CALLS -> `AuthRepository`
+ - ƒ **list_roles** (`Function`)
+ - 📝 Lists all available roles.
+ - 🔗 CALLS -> `Role:Class`
+ - ƒ **create_role** (`Function`)
+ - 📝 Creates a new system role with associated permissions.
+ - 🔗 CALLS -> `get_permission_by_id:Function`
+ - ƒ **update_role** (`Function`)
+ - 📝 Updates an existing role's metadata and permissions.
+ - 🔗 CALLS -> `get_role_by_id:Function`
+ - ƒ **delete_role** (`Function`)
+ - 📝 Removes a role from the system.
+ - 🔗 CALLS -> `get_role_by_id:Function`
+ - ƒ **list_permissions** (`Function`)
+ - 📝 Lists all available system permissions for assignment.
+ - 🔗 CALLS -> `backend.src.core.auth.repository.AuthRepository.list_permissions`
+ - ƒ **list_ad_mappings** (`Function`)
+ - 📝 Lists all AD Group to Role mappings.
+ - 🔗 CALLS -> `ADGroupMapping`
+ - ƒ **create_ad_mapping** (`Function`) `[TRIVIAL]`
+ - 📝 Creates a new AD Group mapping.
+ - 🔗 DEPENDS_ON -> `ADGroupMapping:Class`
+ - 🔗 DEPENDS_ON -> `get_auth_db:Function`
+ - 🔗 DEPENDS_ON -> `has_permission:Function`
+- 📦 **GitSchemas** (`Module`) `[TRIVIAL]`
+ - 📝 Defines Pydantic models for the Git integration API layer.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: All schemas must be compatible with the FastAPI router.
+ - 🔗 DEPENDS_ON -> `backend.src.models.git`
+ - ℂ **GitServerConfigBase** (`Class`) `[TRIVIAL]`
+ - 📝 Base schema for Git server configuration attributes.
+ - ℂ **GitServerConfigUpdate** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for updating an existing Git server configuration.
+ - ℂ **GitServerConfigCreate** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for creating a new Git server configuration.
+ - ℂ **GitServerConfigSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for representing a Git server configuration with metadata.
+ - ℂ **GitRepositorySchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for tracking a local Git repository linked to a dashboard.
+ - ℂ **BranchSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for representing a Git branch metadata.
+ - ℂ **CommitSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for representing Git commit details.
+ - ℂ **BranchCreate** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for branch creation requests.
+ - ℂ **BranchCheckout** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for branch checkout requests.
+ - ℂ **CommitCreate** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for staging and committing changes.
+ - ℂ **ConflictResolution** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for resolving merge conflicts.
+ - ℂ **MergeStatusSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema representing unfinished merge status for repository.
+ - ℂ **MergeConflictFileSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema describing one conflicted file with optional side snapshots.
+ - ℂ **MergeResolveRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for resolving one or multiple merge conflicts.
+ - ℂ **MergeContinueRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for finishing merge with optional explicit commit message.
+ - ℂ **DeploymentEnvironmentSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for representing a target deployment environment.
+ - ℂ **DeployRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for dashboard deployment requests.
+ - ℂ **RepoInitRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for repository initialization requests.
+ - ℂ **RepositoryBindingSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema describing repository-to-config binding and provider metadata.
+ - ℂ **RepoStatusBatchRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for requesting repository statuses for multiple dashboards in a single call.
+ - ℂ **RepoStatusBatchResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Schema for returning repository statuses keyed by dashboard ID.
+ - ℂ **GiteaRepoSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Schema describing a Gitea repository.
+ - ℂ **GiteaRepoCreateRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for creating a Gitea repository.
+ - ℂ **RemoteRepoSchema** (`Class`) `[TRIVIAL]`
+ - 📝 Provider-agnostic remote repository payload.
+ - ℂ **RemoteRepoCreateRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Provider-agnostic repository creation request.
+ - ℂ **PromoteRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for branch promotion workflow.
+ - ℂ **PromoteResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Response schema for promotion operation result.
+- 📦 **AssistantApi** (`Module`) `[CRITICAL]`
+ - 📝 API routes for LLM assistant command parsing and safe execution orchestration.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: Risky operations are never executed without valid confirmation token.
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - 🔗 DEPENDS_ON -> `AssistantMessageRecord`
+ - 🔗 DEPENDS_ON -> `AssistantConfirmationRecord`
+ - 🔗 DEPENDS_ON -> `AssistantAuditRecord`
+ - ℂ **AssistantMessageRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Input payload for assistant message endpoint.
+ - 🔒 Invariant: message is always non-empty and no longer than 4000 characters.
+ - ℂ **AssistantAction** (`Class`) `[TRIVIAL]`
+ - 📝 UI action descriptor returned with assistant responses.
+ - 🔒 Invariant: type and label are required for every UI action.
+ - ℂ **AssistantMessageResponse** (`Class`) `[TRIVIAL]`
+ - 📝 Output payload contract for assistant interaction endpoints.
+ - 🔒 Invariant: created_at and state are always present in endpoint responses.
+ - ℂ **ConfirmationRecord** (`Class`) `[TRIVIAL]`
+ - 📝 In-memory confirmation token model for risky operation dispatch.
+ - 🔒 Invariant: state defaults to "pending" and expires_at bounds confirmation validity.
+ - ƒ **_append_history** (`Function`) `[TRIVIAL]`
+ - 📝 Append conversation message to in-memory history buffer.
+ - 🔒 Invariant: every appended entry includes generated message_id and created_at timestamp.
+ - ƒ **_persist_message** (`Function`) `[TRIVIAL]`
+ - 📝 Persist assistant/user message record to database.
+ - 🔒 Invariant: failed persistence attempts always rollback before returning.
+ - 🔗 DEPENDS_ON -> `AssistantMessageRecord`
+ - ƒ **_audit** (`Function`) `[TRIVIAL]`
+ - 📝 Append in-memory audit record for assistant decision trace.
+ - 🔒 Invariant: persisted in-memory audit entry always contains created_at in ISO format.
+ - ƒ **_persist_audit** (`Function`) `[TRIVIAL]`
+ - 📝 Persist structured assistant audit payload in database.
+ - ƒ **_persist_confirmation** (`Function`) `[TRIVIAL]`
+ - 📝 Persist confirmation token record to database.
+ - ƒ **_update_confirmation_state** (`Function`) `[TRIVIAL]`
+ - 📝 Update persistent confirmation token lifecycle state.
+ - ƒ **_load_confirmation_from_db** (`Function`) `[TRIVIAL]`
+ - 📝 Load confirmation token from database into in-memory model.
+ - ƒ **_ensure_conversation** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve active conversation id in memory or create a new one.
+ - ƒ **_resolve_or_create_conversation** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve active conversation using explicit id, memory cache, or persisted history.
+ - ƒ **_cleanup_history_ttl** (`Function`) `[TRIVIAL]`
+ - 📝 Enforce assistant message retention window by deleting expired rows and in-memory records.
+ - ƒ **_is_conversation_archived** (`Function`) `[TRIVIAL]`
+ - 📝 Determine archived state for a conversation based on last update timestamp.
+ - ƒ **_coerce_query_bool** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize bool-like query values for compatibility in direct handler invocations/tests.
+ - ƒ **_extract_id** (`Function`) `[TRIVIAL]`
+ - 📝 Extract first regex match group from text by ordered pattern list.
+ - ƒ **_resolve_env_id** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve environment identifier/name token to canonical environment id.
+ - ƒ **_is_production_env** (`Function`) `[TRIVIAL]`
+ - 📝 Determine whether environment token resolves to production-like target.
+ - ƒ **_resolve_provider_id** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve provider token to provider id with active/default fallback.
+ - ƒ **_get_default_environment_id** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve default environment id from settings or first configured environment.
+ - ƒ **_resolve_dashboard_id_by_ref** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard id by title or slug reference in selected environment.
+ - ƒ **_resolve_dashboard_id_entity** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard id from intent entities using numeric id or dashboard_ref fallback.
+ - ƒ **_get_environment_name_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve human-readable environment name by id.
+ - ƒ **_extract_result_deep_links** (`Function`) `[TRIVIAL]`
+ - 📝 Build deep-link actions to verify task result from assistant chat.
+ - ƒ **_build_task_observability_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Build compact textual summary for completed tasks to reduce "black box" effect.
+ - ƒ **_parse_command** (`Function`)
+ - 📝 Deterministically parse RU/EN command text into intent payload.
+ - 🔒 Invariant: every return path includes domain, operation, entities, confidence, risk_level, requires_confirmation.
+ - 🔗 DEPENDS_ON -> `_extract_id`
+ - 🔗 DEPENDS_ON -> `_is_production_env`
+ - ƒ **_check_any_permission** (`Function`) `[TRIVIAL]`
+ - 📝 Validate user against alternative permission checks (logical OR).
+ - ƒ **_has_any_permission** (`Function`) `[TRIVIAL]`
+ - 📝 Check whether user has at least one permission tuple from the provided list.
+ - ƒ **_build_tool_catalog** (`Function`)
+ - 📝 Build current-user tool catalog for LLM planner with operation contracts and defaults.
+ - ƒ **_coerce_intent_entities** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize intent entity value types from LLM output to route-compatible values.
+ - ƒ **_confirmation_summary** (`Function`)
+ - 📝 Build human-readable confirmation prompt for an intent before execution.
+ - ƒ **_clarification_text_for_intent** (`Function`) `[TRIVIAL]`
+ - 📝 Convert technical missing-parameter errors into user-facing clarification prompts.
+ - ƒ **_plan_intent_with_llm** (`Function`) `[TRIVIAL]`
+ - 📝 Use active LLM provider to select best tool/operation from dynamic catalog.
+ - ƒ **_authorize_intent** (`Function`) `[TRIVIAL]`
+ - 📝 Validate user permissions for parsed intent before confirmation/dispatch.
+ - ƒ **_dispatch_intent** (`Function`) `[CRITICAL]`
+ - 📝 Execute parsed assistant intent via existing task/plugin/git services.
+ - 🔒 Invariant: unsupported operations are rejected via HTTPException(400).
+ - 🔗 DEPENDS_ON -> `_check_any_permission`
+ - 🔗 DEPENDS_ON -> `_resolve_dashboard_id_entity`
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - 🔗 DEPENDS_ON -> `GitService`
+ - ƒ **send_message** (`Function`) `[CRITICAL]`
+ - 📝 Parse assistant command, enforce safety gates, and dispatch executable intent.
+ - 🔒 Invariant: non-safe operations are gated with confirmation before execution from this endpoint.
+ - 🔗 DEPENDS_ON -> `_plan_intent_with_llm`
+ - 🔗 DEPENDS_ON -> `_parse_command`
+ - 🔗 DEPENDS_ON -> `_dispatch_intent`
+ - 🔗 DEPENDS_ON -> `_append_history`
+ - 🔗 DEPENDS_ON -> `_persist_message`
+ - 🔗 DEPENDS_ON -> `_audit`
+ - ƒ **confirm_operation** (`Function`) `[TRIVIAL]`
+ - 📝 Execute previously requested risky operation after explicit user confirmation.
+ - ƒ **cancel_operation** (`Function`) `[TRIVIAL]`
+ - 📝 Cancel pending risky operation and mark confirmation token as cancelled.
+ - ƒ **list_conversations** (`Function`) `[TRIVIAL]`
+ - 📝 Return paginated conversation list for current user with archived flag and last message preview.
+ - ƒ **delete_conversation** (`Function`) `[TRIVIAL]`
+ - 📝 Soft-delete or hard-delete a conversation and clear its in-memory trace.
+ - ƒ **get_history** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve paginated assistant conversation history for current user.
+ - ƒ **get_assistant_audit** (`Function`) `[TRIVIAL]`
+ - 📝 Return assistant audit decisions for current user from persistent and in-memory stores.
+ - ƒ **_async_confirmation_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_label** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **storage_routes** (`Module`)
+ - 📝 API endpoints for file storage management (backups and repositories).
+ - 🏗️ Layer: API
+ - 🔒 Invariant: All paths must be validated against path traversal.
+ - 🔗 DEPENDS_ON -> `backend.src.models.storage`
+ - ƒ **list_files** (`Function`)
+ - 📝 List all files and directories in the storage system.
+ - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.list_files`
+ - ƒ **upload_file** (`Function`)
+ - 📝 Upload a file to the storage system.
+ - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.save_file`
+ - ƒ **delete_file** (`Function`)
+ - 📝 Delete a specific file or directory.
+ - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.delete_file`
+ - ƒ **download_file** (`Function`)
+ - 📝 Retrieve a file for download.
+ - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.get_file_path`
+ - ƒ **get_file_by_path** (`Function`)
+ - 📝 Retrieve a file by validated absolute/relative path under storage root.
+ - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.get_storage_root`
+ - 🔗 CALLS -> `backend.src.plugins.storage.plugin.StoragePlugin.validate_path`
+- 📦 **backend.src.api.routes.clean_release** (`Module`)
+ - 📝 Expose clean release endpoints for candidate preparation and subsequent compliance flow.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: API never reports prepared status if preparation errors are present.
+ - 🔗 DEPENDS_ON -> `backend.src.dependencies.get_clean_release_repository`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.preparation_service`
+ - ℂ **PrepareCandidateRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for candidate preparation endpoint.
+ - ℂ **StartCheckRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for clean compliance check run startup.
+ - ℂ **RegisterCandidateRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for candidate registration endpoint.
+ - ℂ **ImportArtifactsRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for candidate artifact import endpoint.
+ - ℂ **BuildManifestRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for manifest build endpoint.
+ - ℂ **CreateComplianceRunRequest** (`Class`) `[TRIVIAL]`
+ - 📝 Request schema for compliance run creation with optional manifest pinning.
+ - ƒ **register_candidate_v2_endpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Register a clean-release candidate for headless lifecycle.
+ - ƒ **import_candidate_artifacts_v2_endpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Import candidate artifacts in headless flow.
+ - ƒ **build_candidate_manifest_v2_endpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Build immutable manifest snapshot for prepared candidate.
+ - ƒ **get_candidate_overview_v2_endpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Return expanded candidate overview DTO for headless lifecycle visibility.
+ - ƒ **prepare_candidate_endpoint** (`Function`) `[TRIVIAL]`
+ - 📝 Prepare candidate with policy evaluation and deterministic manifest generation.
+ - ƒ **start_check** (`Function`) `[TRIVIAL]`
+ - 📝 Start and finalize a clean compliance check run and persist report artifacts.
+ - ƒ **get_check_status** (`Function`) `[TRIVIAL]`
+ - 📝 Return terminal/intermediate status payload for a check run.
+ - ƒ **get_report** (`Function`) `[TRIVIAL]`
+ - 📝 Return persisted compliance report by report_id.
+- 📦 **ReportsRouter** (`Module`) `[CRITICAL]`
+ - 📝 FastAPI router for unified task report list and detail retrieval endpoints.
+ - 🏗️ Layer: UI (API)
+ - 🔒 Invariant: Endpoints are read-only and do not trigger long-running tasks.
+ - 🔗 DEPENDS_ON -> `ReportsService:Class`
+ - 🔗 DEPENDS_ON -> `get_task_manager:Function`
+ - 🔗 DEPENDS_ON -> `get_clean_release_repository:Function`
+ - 🔗 DEPENDS_ON -> `has_permission:Function`
+ - ƒ **_parse_csv_enum_list** (`Function`) `[TRIVIAL]`
+ - 📝 Parse comma-separated query value into enum list.
+ - ƒ **list_reports** (`Function`) `[TRIVIAL]`
+ - 📝 Return paginated unified reports list.
+ - 🔗 CALLS -> `_parse_csv_enum_list:Function`
+ - 🔗 DEPENDS_ON -> `ReportQuery:Class`
+ - 🔗 DEPENDS_ON -> `ReportsService:Class`
+ - ƒ **get_report_detail** (`Function`) `[TRIVIAL]`
+ - 📝 Return one normalized report detail with diagnostics and next actions.
+- 📦 **ProfileApiModule** (`Module`) `[CRITICAL]`
+ - 📝 Exposes self-scoped profile preference endpoints and environment-based Superset account lookup.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: Endpoints are self-scoped and never mutate another user preference.
+ - 🔗 DEPENDS_ON -> `backend.src.services.profile_service`
+ - 🔗 DEPENDS_ON -> `backend.src.dependencies.get_current_user`
+ - 🔗 DEPENDS_ON -> `backend.src.core.database.get_db`
+ - ƒ **_get_profile_service** (`Function`) `[TRIVIAL]`
+ - 📝 Build profile service for current request scope.
+ - 🔗 CALLS -> `ProfileService`
+ - ƒ **get_preferences** (`Function`) `[TRIVIAL]`
+ - 📝 Get authenticated user's dashboard filter preference.
+ - 🔗 CALLS -> `ProfileService`
+ - ƒ **update_preferences** (`Function`) `[TRIVIAL]`
+ - 📝 Update authenticated user's dashboard filter preference.
+ - 🔗 CALLS -> `ProfileService`
+ - ƒ **lookup_superset_accounts** (`Function`) `[TRIVIAL]`
+ - 📝 Lookup Superset account candidates in selected environment.
+ - 🔗 CALLS -> `ProfileService`
+- 📦 **ApiRoutesModule** (`Module`)
+ - 📝 Provide lazy route module loading to avoid heavyweight imports during tests.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: Only names listed in __all__ are importable via __getattr__.
+ - 🔗 CALLS -> `ApiRoutesGetAttr`
+ - ƒ **ApiRoutesGetAttr** (`Function`)
+ - 📝 Lazily import route module by attribute name.
+ - 🔗 DEPENDS_ON -> `ApiRoutesModule`
+ - ƒ **__getattr__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TasksRouter** (`Module`)
+ - 📝 Defines the FastAPI router for task-related endpoints, allowing clients to create, list, and get the status of tasks.
+ - 🏗️ Layer: UI (API)
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - 🔗 DEPENDS_ON -> `ConfigManager`
+ - 🔗 DEPENDS_ON -> `LLMProviderService`
+ - ƒ **create_task** (`Function`)
+ - 📝 Create and start a new task for a given plugin.
+ - ƒ **list_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve a list of tasks with pagination and optional status filter.
+ - ƒ **get_task** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve the details of a specific task.
+ - ƒ **get_task_logs** (`Function`) `[CRITICAL]`
+ - 📝 Retrieve logs for a specific task with optional filtering.
+ - ƒ **get_task_log_stats** (`Function`) `[TRIVIAL]`
+ - 📝 Get statistics about logs for a task (counts by level and source).
+ - ƒ **get_task_log_sources** (`Function`) `[TRIVIAL]`
+ - 📝 Get unique sources for a task's logs.
+ - ƒ **resolve_task** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve a task that is awaiting mapping.
+ - ƒ **resume_task** (`Function`) `[TRIVIAL]`
+ - 📝 Resume a task that is awaiting input (e.g., passwords).
+ - ƒ **clear_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Clear tasks matching the status filter.
+- 📦 **DashboardsApi** (`Module`) `[CRITICAL]`
+ - 📝 API endpoints for the Dashboard Hub - listing dashboards with Git and task status
+ - 🏗️ Layer: API
+ - 🔒 Invariant: All dashboard responses include git_status and last_task metadata
+ - 🔗 DEPENDS_ON -> `AppDependencies`
+ - 🔗 DEPENDS_ON -> `ResourceService`
+ - 🔗 DEPENDS_ON -> `SupersetClient`
+ - 📦 **GitStatus** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for dashboard Git synchronization status.
+ - 📦 **LastTask** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for the most recent background task associated with a dashboard.
+ - 📦 **DashboardItem** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO representing a single dashboard with projected metadata.
+ - 📦 **EffectiveProfileFilter** (`DataClass`) `[TRIVIAL]`
+ - 📝 Metadata about applied profile filters for UI context.
+ - 📦 **DashboardsResponse** (`DataClass`) `[TRIVIAL]`
+ - 📝 Envelope DTO for paginated dashboards list.
+ - 📦 **DashboardChartItem** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for a chart linked to a dashboard.
+ - 📦 **DashboardDatasetItem** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for a dataset associated with a dashboard.
+ - 📦 **DashboardDetailResponse** (`DataClass`) `[TRIVIAL]`
+ - 📝 Detailed dashboard metadata including children.
+ - 📦 **DashboardTaskHistoryItem** (`DataClass`) `[TRIVIAL]`
+ - 📝 Individual history record entry.
+ - 📦 **DashboardTaskHistoryResponse** (`DataClass`) `[TRIVIAL]`
+ - 📝 Collection DTO for task history.
+ - 📦 **DatabaseMapping** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for cross-environment database ID mapping.
+ - 📦 **DatabaseMappingsResponse** (`DataClass`) `[TRIVIAL]`
+ - 📝 Wrapper for database mappings.
+ - ƒ **_find_dashboard_id_by_slug** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard numeric ID by slug using Superset list endpoint.
+ - ƒ **_resolve_dashboard_id_from_ref** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard ID from slug-first reference with numeric fallback.
+ - ƒ **_find_dashboard_id_by_slug_async** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard numeric ID by slug using async Superset list endpoint.
+ - ƒ **_resolve_dashboard_id_from_ref_async** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard ID from slug-first reference using async Superset client.
+ - ƒ **_normalize_filter_values** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize query filter values to lower-cased non-empty tokens.
+ - ƒ **_dashboard_git_filter_value** (`Function`) `[TRIVIAL]`
+ - 📝 Build comparable git status token for dashboards filtering.
+ - ƒ **_normalize_actor_alias_token** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize actor alias token to comparable trim+lower text.
+ - ƒ **_normalize_owner_display_token** (`Function`) `[TRIVIAL]`
+ - 📝 Project owner payload value into stable display string for API response contracts.
+ - ƒ **_normalize_dashboard_owner_values** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize dashboard owners payload to optional list of display strings.
+ - ƒ **_project_dashboard_response_items** (`Function`) `[TRIVIAL]`
+ - 📝 Project dashboard payloads to response-contract-safe shape.
+ - ƒ **_get_profile_filter_binding** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve dashboard profile-filter binding through current or legacy profile service contracts.
+ - ƒ **_resolve_profile_actor_aliases** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve stable actor aliases for profile filtering without per-dashboard detail fan-out.
+ - ƒ **_matches_dashboard_actor_aliases** (`Function`) `[TRIVIAL]`
+ - 📝 Apply profile actor matching against multiple aliases (username + optional display name).
+ - ƒ **get_dashboards** (`Function`)
+ - 📝 Fetch list of dashboards from a specific environment with Git status and last task status
+ - 🔗 CALLS -> `get_dashboards_with_status`
+ - ƒ **get_database_mappings** (`Function`) `[TRIVIAL]`
+ - 📝 Get database mapping suggestions between source and target environments
+ - 🔗 CALLS -> `MappingService:get_suggestions`
+ - ƒ **get_dashboard_detail** (`Function`) `[TRIVIAL]`
+ - 📝 Fetch detailed dashboard info with related charts and datasets
+ - 🔗 CALLS -> `AsyncSupersetClient`
+ - ƒ **_task_matches_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Checks whether task params are tied to a specific dashboard and environment.
+ - ƒ **get_dashboard_tasks_history** (`Function`) `[TRIVIAL]`
+ - 📝 Returns history of backup and LLM validation tasks for a dashboard.
+ - ƒ **get_dashboard_thumbnail** (`Function`)
+ - 📝 Proxies Superset dashboard thumbnail with cache support.
+ - 📦 **MigrateRequest** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for dashboard migration requests.
+ - 📦 **TaskResponse** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for async task ID return.
+ - ƒ **migrate_dashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Trigger bulk migration of dashboards from source to target environment
+ - 🔗 DISPATCHES -> `MigrationPlugin:execute`
+ - 🔗 CALLS -> `TaskManager`
+ - 📦 **BackupRequest** (`DataClass`) `[TRIVIAL]`
+ - 📝 DTO for dashboard backup requests.
+ - ƒ **backup_dashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Trigger bulk backup of dashboards with optional cron schedule
+ - 🔗 DISPATCHES -> `BackupPlugin:execute`
+ - 🔗 CALLS -> `TaskManager`
+ - ƒ **_read_optional_string** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_read_bool** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_matches_dashboard_filters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_sort_key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DashboardsApiTests** (`Module`)
+ - 📝 Unit tests for dashboards API endpoints.
+ - 🏗️ Layer: API
+ - 🔗 DEPENDS_ON -> `backend.src.api.routes.dashboards`
+ - ƒ **test_get_dashboards_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboards listing returns a populated response that satisfies the schema contract.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_with_search** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboards listing applies the search filter and returns only matching rows.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_empty** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboards listing returns an empty payload for an environment without dashboards.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_superset_failure** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboards listing surfaces a 503 contract when Superset access fails.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboards listing returns 404 when the requested environment does not exist.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_invalid_pagination** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboards listing rejects invalid pagination parameters with 400 responses.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboard_detail_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboard detail returns charts and datasets for an existing dashboard.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboard_detail_env_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboard detail returns 404 when the requested environment is missing.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_migrate_dashboards_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboard migration request creates an async task and returns its identifier.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_migrate_dashboards_no_ids** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboard migration rejects empty dashboard identifier lists.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_migrate_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate migration creation returns 404 when the source environment cannot be resolved.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_backup_dashboards_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboard backup request creates an async backup task and returns its identifier.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_backup_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate backup task creation returns 404 when the target environment is missing.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_database_mappings_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate database mapping suggestions are returned for valid source and target environments.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_database_mappings_env_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate database mapping suggestions return 404 when either environment is missing.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboard_tasks_history_filters_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboard task history returns only related backup and LLM tasks.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboard_thumbnail_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboard thumbnail endpoint proxies image bytes and content type from Superset.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **_build_profile_preference_stub** (`Function`) `[TRIVIAL]`
+ - 📝 Creates profile preference payload stub for dashboards filter contract tests.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **_matches_actor_case_insensitive** (`Function`) `[TRIVIAL]`
+ - 📝 Applies trim + case-insensitive owners OR modified_by matching used by route contract tests.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_profile_filter_contract_owners_or_modified_by** (`Function`) `[TRIVIAL]`
+ - 📝 Validate profile-default filtering matches owner and modifier aliases using normalized Superset actor values.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_override_show_all_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Validate override_show_all bypasses profile-default filtering without changing dashboard list semantics.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_profile_filter_no_match_results_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Validate profile-default filtering returns an empty dashboard page when no actor aliases match the bound user.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_page_context_other_disables_profile_default** (`Function`) `[TRIVIAL]`
+ - 📝 Validate non-dashboard page contexts suppress profile-default filtering and preserve unfiltered results.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_profile_filter_matches_display_alias_without_detail_fanout** (`Function`) `[TRIVIAL]`
+ - 📝 Validate profile-default filtering reuses resolved Superset display aliases without triggering per-dashboard detail fanout.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **test_get_dashboards_profile_filter_matches_owner_object_payload_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Validate profile-default filtering accepts owner object payloads once aliases resolve to the bound Superset username.
+ - 🔗 BINDS_TO -> `DashboardsApiTests`
+ - ƒ **mock_deps** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mock_get_dashboards** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_network_request** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestGitStatusRoute** (`Module`)
+ - 📝 Validate status endpoint behavior for missing and error repository states.
+ - 🏗️ Layer: Domain (Tests)
+ - ƒ **test_get_repository_status_returns_no_repo_payload_for_missing_repo** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure missing local repository is represented as NO_REPO payload instead of an API error.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_get_repository_status_propagates_non_404_http_exception** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure HTTP exceptions other than 404 are not masked.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_get_repository_diff_propagates_http_exception** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure diff endpoint preserves domain HTTP errors from GitService.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_get_history_wraps_unexpected_error_as_500** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure non-HTTP exceptions in history endpoint become deterministic 500 errors.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_commit_changes_wraps_unexpected_error_as_500** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure commit endpoint does not leak unexpected errors as 400.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_get_repository_status_batch_returns_mixed_statuses** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure batch endpoint returns per-dashboard statuses in one response.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_get_repository_status_batch_marks_item_as_error_on_service_failure** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure batch endpoint marks failed items as ERROR without failing entire request.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_get_repository_status_batch_deduplicates_and_truncates_ids** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure batch endpoint protects server from oversized payloads.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_commit_changes_applies_profile_identity_before_commit** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure commit route configures repository identity from profile preferences before commit call.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_pull_changes_applies_profile_identity_before_pull** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure pull route configures repository identity from profile preferences before pull call.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_get_merge_status_returns_service_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure merge status route returns service payload as-is.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_resolve_merge_conflicts_passes_resolution_items_to_service** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure merge resolve route forwards parsed resolutions to service.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_abort_merge_calls_service_and_returns_result** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure abort route delegates to service.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **test_continue_merge_passes_message_and_returns_commit** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure continue route passes commit message to service.
+ - 🔗 BINDS_TO -> `TestGitStatusRoute`
+ - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_diff** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_commit_history** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit_changes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **configure_identity** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit_changes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **first** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **query** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **configure_identity** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **pull_changes** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **first** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **query** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_merge_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolve_merge_conflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dict** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **abort_merge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **continue_merge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestReportsOpenapiConformance** (`Module`)
+ - 📝 Validate implemented reports payload shape against OpenAPI-required top-level contract fields.
+ - 🏗️ Layer: Domain (Tests)
+ - 🔒 Invariant: List and detail payloads include required contract keys.
+ - ℂ **_FakeTaskManager** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal task-manager fake exposing static task list for OpenAPI conformance checks.
+ - 🔒 Invariant: get_all_tasks returns seeded tasks unchanged.
+ - 🔗 BINDS_TO -> `TestReportsOpenapiConformance`
+ - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
+ - 📝 Provide admin principal fixture required by reports routes in conformance tests.
+ - 🔗 BINDS_TO -> `TestReportsOpenapiConformance`
+ - ƒ **_task** (`Function`) `[TRIVIAL]`
+ - 📝 Construct deterministic task fixture consumed by reports list/detail payload assertions.
+ - 🔗 BINDS_TO -> `TestReportsOpenapiConformance`
+ - ƒ **test_reports_list_openapi_required_keys** (`Function`) `[TRIVIAL]`
+ - 📝 Verify reports list endpoint includes all required OpenAPI top-level keys.
+ - 🔗 BINDS_TO -> `TestReportsOpenapiConformance`
+ - ƒ **test_reports_detail_openapi_required_keys** (`Function`) `[TRIVIAL]`
+ - 📝 Verify reports detail endpoint returns payload containing the report object key.
+ - 🔗 BINDS_TO -> `TestReportsOpenapiConformance`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestCleanReleaseSourcePolicy** (`Module`)
+ - 📝 Validate API behavior for source isolation violations in clean release preparation.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: External endpoints must produce blocking violation entries.
+ - ƒ **_repo_with_seed_data** (`Function`) `[TRIVIAL]`
+ - 📝 Seed repository with candidate, registry, and active policy for source isolation test flow.
+ - 🔗 BINDS_TO -> `TestCleanReleaseSourcePolicy`
+ - ƒ **test_prepare_candidate_blocks_external_source** (`Function`) `[TRIVIAL]`
+ - 📝 Verify candidate preparation is blocked when at least one source host is external to the trusted registry.
+ - 🔗 BINDS_TO -> `TestCleanReleaseSourcePolicy`
+- 📦 **TestCleanReleaseApi** (`Module`)
+ - 📝 Contract tests for clean release checks and reports endpoints.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: API returns deterministic payload shapes for checks and reports.
+ - ƒ **_repo_with_seed_data** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestCleanReleaseApi`
+ - ƒ **test_start_check_and_get_status_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Validate checks start endpoint returns expected identifiers and status endpoint reflects the same run.
+ - 🔗 BINDS_TO -> `TestCleanReleaseApi`
+ - ƒ **test_get_report_not_found_returns_404** (`Function`) `[TRIVIAL]`
+ - 📝 Validate reports endpoint returns 404 for an unknown report identifier.
+ - 🔗 BINDS_TO -> `TestCleanReleaseApi`
+ - ƒ **test_get_report_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate reports endpoint returns persisted report payload for an existing report identifier.
+ - 🔗 BINDS_TO -> `TestCleanReleaseApi`
+ - ƒ **test_prepare_candidate_api_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate candidate preparation endpoint returns prepared status and manifest identifier on valid input.
+ - 🔗 BINDS_TO -> `TestCleanReleaseApi`
+- 📦 **test_tasks_logs_module** (`Module`) `[TRIVIAL]`
+ - 📝 Contract testing for task logs API endpoints.
+ - 🏗️ Layer: Domain (Tests)
+ - 🔒 Invariant: unconstrained mock — no spec= enforced
+ - ƒ **test_get_task_logs_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate task logs endpoint returns filtered logs for an existing task.
+ - 🔗 BINDS_TO -> `test_tasks_logs_module`
+ - ƒ **test_get_task_logs_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate task logs endpoint returns 404 when the task identifier is missing.
+ - 🔗 BINDS_TO -> `test_tasks_logs_module`
+ - ƒ **test_get_task_logs_invalid_limit** (`Function`) `[TRIVIAL]`
+ - 📝 Validate task logs endpoint enforces query validation for limit lower bound.
+ - 🔗 BINDS_TO -> `test_tasks_logs_module`
+ - ƒ **test_get_task_log_stats_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate log stats endpoint returns success payload for an existing task.
+ - 🔗 BINDS_TO -> `test_tasks_logs_module`
+ - ƒ **client** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestReportsApi** (`Module`)
+ - 📝 Contract tests for GET /api/reports defaults, pagination, and filtering behavior.
+ - 🏗️ Layer: Domain (Tests)
+ - 🔒 Invariant: API response contract contains {items,total,page,page_size,has_next,applied_filters}.
+ - ℂ **_FakeTaskManager** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal task-manager double exposing only get_all_tasks used by reports route tests.
+ - 🔒 Invariant: Returns pre-seeded tasks without mutation or side effects.
+ - 🔗 BINDS_TO -> `TestReportsApi`
+ - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
+ - 📝 Build deterministic admin principal accepted by reports authorization guard.
+ - 🔗 BINDS_TO -> `TestReportsApi`
+ - ƒ **_make_task** (`Function`) `[TRIVIAL]`
+ - 📝 Build Task fixture with controlled timestamps/status for reports list/detail normalization.
+ - 🔗 BINDS_TO -> `TestReportsApi`
+ - ƒ **test_get_reports_default_pagination_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Validate reports list endpoint default pagination and contract keys for mixed task statuses.
+ - 🔗 BINDS_TO -> `TestReportsApi`
+ - ƒ **test_get_reports_filter_and_pagination** (`Function`) `[TRIVIAL]`
+ - 📝 Validate reports list endpoint applies task-type/status filters and pagination boundaries.
+ - 🔗 BINDS_TO -> `TestReportsApi`
+ - ƒ **test_get_reports_handles_mixed_naive_and_aware_datetimes** (`Function`) `[TRIVIAL]`
+ - 📝 Validate reports sorting remains stable when task timestamps mix naive and timezone-aware datetimes.
+ - 🔗 BINDS_TO -> `TestReportsApi`
+ - ƒ **test_get_reports_invalid_filter_returns_400** (`Function`) `[TRIVIAL]`
+ - 📝 Validate reports list endpoint rejects unsupported task type filters with HTTP 400.
+ - 🔗 BINDS_TO -> `TestReportsApi`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DatasetsApiTests** (`Module`)
+ - 📝 Unit tests for datasets API endpoints.
+ - 🏗️ Layer: API
+ - 🔒 Invariant: unconstrained mock — no spec= enforced; attribute typos will silently pass
+ - 🔗 DEPENDS_ON -> `src.api.routes.datasets:Module`
+ - ƒ **test_get_datasets_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate successful datasets listing contract for an existing environment.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_get_datasets_env_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate datasets listing returns 404 when the requested environment does not exist.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_get_datasets_invalid_pagination** (`Function`) `[TRIVIAL]`
+ - 📝 Validate datasets listing rejects invalid pagination parameters with 400 responses.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_map_columns_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate map-columns request creates an async mapping task and returns its identifier.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_map_columns_invalid_source_type** (`Function`) `[TRIVIAL]`
+ - 📝 Validate map-columns rejects unsupported source types with a 400 contract response.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_generate_docs_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate generate-docs request creates an async documentation task and returns its identifier.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_map_columns_empty_ids** (`Function`) `[TRIVIAL]`
+ - 📝 Validate map-columns rejects empty dataset identifier lists.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_generate_docs_empty_ids** (`Function`) `[TRIVIAL]`
+ - 📝 Validate generate-docs rejects empty dataset identifier lists.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_generate_docs_env_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate generate-docs returns 404 when the requested environment cannot be resolved.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **test_get_datasets_superset_failure** (`Function`) `[TRIVIAL]`
+ - 📝 Validate datasets listing surfaces a 503 contract when Superset access fails.
+ - 🔗 BINDS_TO -> `DatasetsApiTests:Module`
+ - ƒ **mock_deps** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestProfileApi** (`Module`)
+ - 📝 Verifies profile API route contracts for preference read/update and Superset account lookup.
+ - 🏗️ Layer: API
+ - ƒ **mock_profile_route_dependencies** (`Function`) `[TRIVIAL]`
+ - 📝 Provides deterministic dependency overrides for profile route tests.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+ - ƒ **profile_route_deps_fixture** (`Function`) `[TRIVIAL]`
+ - 📝 Pytest fixture wrapper for profile route dependency overrides.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+ - ƒ **_build_preference_response** (`Function`) `[TRIVIAL]`
+ - 📝 Builds stable profile preference response payload for route tests.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+ - ƒ **test_get_profile_preferences_returns_self_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies GET /api/profile/preferences returns stable self-scoped payload.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+ - ƒ **test_patch_profile_preferences_success** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies PATCH /api/profile/preferences persists valid payload through route mapping.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+ - ƒ **test_patch_profile_preferences_validation_error** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies route maps domain validation failure to HTTP 422 with actionable details.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+ - ƒ **test_patch_profile_preferences_cross_user_denied** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies route maps domain authorization guard failure to HTTP 403.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+ - ƒ **test_lookup_superset_accounts_success** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies lookup route returns success payload with normalized candidates.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+ - ƒ **test_lookup_superset_accounts_env_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Verifies lookup route maps missing environment to HTTP 404.
+ - 🔗 BINDS_TO -> `TestProfileApi`
+- 📦 **TestReportsDetailApi** (`Module`)
+ - 📝 Contract tests for GET /api/reports/{report_id} detail endpoint behavior.
+ - 🏗️ Layer: Domain (Tests)
+ - 🔒 Invariant: Detail endpoint tests must keep deterministic assertions for success and not-found contracts.
+ - ℂ **_FakeTaskManager** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal task-manager double exposing pre-seeded tasks to detail endpoint under test.
+ - 🔒 Invariant: get_all_tasks returns exactly seeded tasks list.
+ - 🔗 BINDS_TO -> `TestReportsDetailApi`
+ - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
+ - 📝 Provide admin principal fixture accepted by reports detail authorization policy.
+ - 🔗 BINDS_TO -> `TestReportsDetailApi`
+ - ƒ **_make_task** (`Function`) `[TRIVIAL]`
+ - 📝 Build deterministic Task payload for reports detail endpoint contract assertions.
+ - 🔗 BINDS_TO -> `TestReportsDetailApi`
+ - ƒ **test_get_report_detail_success** (`Function`) `[TRIVIAL]`
+ - 📝 Validate report detail endpoint returns report body with diagnostics and next actions for existing task.
+ - 🔗 BINDS_TO -> `TestReportsDetailApi`
+ - ƒ **test_get_report_detail_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate report detail endpoint returns 404 when requested report identifier is absent.
+ - 🔗 BINDS_TO -> `TestReportsDetailApi`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **RoutesTestsConftest** (`Module`) `[TRIVIAL]`
+ - 📝 Shared low-fidelity test doubles for API route test modules.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **order_by** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **limit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **offset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **first** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestCleanReleaseLegacyCompat** (`Module`)
+ - 📝 Compatibility tests for legacy clean-release API paths retained during v2 migration.
+ - 🏗️ Layer: Tests
+ - ƒ **_seed_legacy_repo** (`Function`) `[TRIVIAL]`
+ - 📝 Seed in-memory repository with minimum trusted data for legacy endpoint contracts.
+ - 🔗 BINDS_TO -> `TestCleanReleaseLegacyCompat`
+ - ƒ **test_legacy_prepare_endpoint_still_available** (`Function`) `[TRIVIAL]`
+ - 📝 Verify legacy prepare endpoint remains reachable and returns a status payload.
+ - 🔗 BINDS_TO -> `TestCleanReleaseLegacyCompat`
+ - ƒ **test_legacy_checks_endpoints_still_available** (`Function`) `[TRIVIAL]`
+ - 📝 Verify legacy checks start/status endpoints remain available during v2 transition.
+ - 🔗 BINDS_TO -> `TestCleanReleaseLegacyCompat`
+- 📦 **DatasetReviewApiTests** (`Module`)
+ - 📝 Verify backend US1 dataset review lifecycle, export, parsing, and dictionary-resolution contracts.
+ - 🏗️ Layer: API
+ - 🔗 BINDS_TO -> `DatasetReviewApi`
+ - 🔗 BINDS_TO -> `DatasetReviewOrchestrator`
+ - ƒ **_make_user** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **_make_config_manager** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **_make_session** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **_make_us2_session** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **_make_us3_session** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **_make_preview_ready_session** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **dataset_review_api_dependencies** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_parse_superset_link_dashboard_partial_recovery** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dashboard links recover dataset context and preserve explicit partial-recovery markers.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_parse_superset_link_dashboard_slug_recovery** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dashboard slug links resolve through dashboard detail endpoints and recover dataset context.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_parse_superset_link_dashboard_permalink_partial_recovery** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dashboard permalink links no longer fail parsing and preserve permalink filter state for partial recovery.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_parse_superset_link_dashboard_permalink_recovers_dataset_from_nested_dashboard_state** (`Function`) `[TRIVIAL]`
+ - 📝 Verify permalink state with nested dashboard id recovers dataset binding and keeps imported filters.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_resolve_from_dictionary_prefers_exact_match** (`Function`) `[TRIVIAL]`
+ - 📝 Verify trusted dictionary exact matches outrank fuzzy candidates and unresolved fields stay explicit.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_orchestrator_start_session_preserves_partial_recovery** (`Function`) `[TRIVIAL]`
+ - 📝 Verify session start persists usable recovery-required state when Superset intake is partial.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_orchestrator_start_session_bootstraps_recovery_state** (`Function`) `[TRIVIAL]`
+ - 📝 Verify session start persists recovered filters, template variables, and initial execution mappings for review workspace bootstrap.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_start_session_endpoint_returns_created_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Verify POST session lifecycle endpoint returns a persisted ownership-scoped summary.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_get_session_detail_export_and_lifecycle_endpoints** (`Function`) `[TRIVIAL]`
+ - 📝 Verify lifecycle get/patch/delete plus documentation and validation exports remain ownership-scoped and usable.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_us2_clarification_endpoints_persist_answer_and_feedback** (`Function`) `[TRIVIAL]`
+ - 📝 Clarification endpoints should expose one current question, persist the answer before advancement, and store feedback on the answer audit record.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_us2_field_semantic_override_lock_unlock_and_feedback** (`Function`) `[TRIVIAL]`
+ - 📝 Semantic field endpoints should apply manual overrides with lock/provenance invariants and persist feedback independently.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_us3_mapping_patch_approval_preview_and_launch_endpoints** (`Function`) `[TRIVIAL]`
+ - 📝 US3 execution endpoints should persist manual overrides, preserve explicit approval semantics, return contract-shaped preview truth, and expose audited launch handoff.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_us3_preview_endpoint_returns_failed_preview_without_false_dashboard_not_found_contract_drift** (`Function`) `[TRIVIAL]`
+ - 📝 Preview endpoint should preserve API contract and surface generic upstream preview failures without fabricating dashboard-not-found semantics for non-dashboard 404s.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_execution_snapshot_includes_recovered_imported_filters_without_template_mapping** (`Function`) `[TRIVIAL]`
+ - 📝 Recovered imported filters with values should flow into preview filter context even when no template variable mapping exists.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_execution_snapshot_preserves_mapped_template_variables_and_filter_context** (`Function`) `[TRIVIAL]`
+ - 📝 Mapped template variables should still populate template params while contributing their effective filter context.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_execution_snapshot_skips_partial_imported_filters_without_values** (`Function`) `[TRIVIAL]`
+ - 📝 Partial imported filters without raw or normalized values must not emit bogus active preview filters.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_us3_launch_endpoint_requires_launch_permission** (`Function`) `[TRIVIAL]`
+ - 📝 Launch endpoint should enforce the contract RBAC permission instead of the generic session-manage permission.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **test_semantic_source_version_propagation_preserves_locked_fields** (`Function`) `[TRIVIAL]`
+ - 📝 Updated semantic source versions should mark unlocked fields reviewable while preserving locked manual values.
+ - 🔗 BINDS_TO -> `DatasetReviewApiTests`
+ - ƒ **_add_side_effect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **CleanReleaseV2ApiTests** (`Module`)
+ - 📝 API contract tests for redesigned clean release endpoints.
+ - 🏗️ Layer: Domain
+ - 🔗 DEPENDS_ON -> `backend.src.api.routes.clean_release_v2`
+ - ƒ **test_candidate_registration_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Validate candidate registration endpoint creates a draft candidate with expected identifier contract.
+ - 🔗 BINDS_TO -> `CleanReleaseV2ApiTests`
+ - ƒ **test_artifact_import_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Validate artifact import endpoint accepts candidate artifacts and returns success status payload.
+ - 🔗 BINDS_TO -> `CleanReleaseV2ApiTests`
+ - ƒ **test_manifest_build_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Validate manifest build endpoint produces manifest payload linked to the target candidate.
+ - 🔗 BINDS_TO -> `CleanReleaseV2ApiTests`
+- 📦 **TestAssistantAuthz** (`Module`)
+ - 📝 Verify assistant confirmation ownership, expiration, and deny behavior for restricted users.
+ - 🏗️ Layer: UI (API Tests)
+ - 🔒 Invariant: Security-sensitive flows fail closed for unauthorized actors.
+ - 🔗 DEPENDS_ON -> `backend.src.api.routes.assistant`
+ - ƒ **_run_async** (`Function`) `[TRIVIAL]`
+ - 📝 Execute async endpoint handler in synchronous test context.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ℂ **_FakeTask** (`Class`) `[TRIVIAL]`
+ - 📝 Lightweight task model used for assistant authz tests.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ℂ **_FakeTaskManager** (`Class`) `[TRIVIAL]`
+ - 📝 In-memory task manager double that records assistant-created tasks deterministically.
+ - 🔒 Invariant: Only create_task/get_task/get_tasks behavior used by assistant authz routes is emulated.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ℂ **_FakeConfigManager** (`Class`) `[TRIVIAL]`
+ - 📝 Provide deterministic environment aliases required by intent parsing.
+ - 🔒 Invariant: get_config() is absent; only get_environments() is emulated. Safe only for routes that do not invoke get_config() on the injected ConfigManager — verify against assistant.py route handler code before adding new test cases that use this fake.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
+ - 📝 Build admin principal fixture.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ƒ **_other_admin_user** (`Function`) `[TRIVIAL]`
+ - 📝 Build second admin principal fixture for ownership tests.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ƒ **_limited_user** (`Function`) `[TRIVIAL]`
+ - 📝 Build limited principal without required assistant execution privileges.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ℂ **_FakeQuery** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal chainable query object for fake DB interactions.
+ - 🔒 Invariant: filter() is predicate-blind; returns all records regardless of user_id scope
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ℂ **_FakeDb** (`Class`) `[TRIVIAL]`
+ - 📝 In-memory DB session double constrained to assistant message/confirmation/audit persistence paths.
+ - 🔒 Invariant: query/add/merge are intentionally narrow and must not claim full SQLAlchemy Session semantics.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ƒ **_clear_assistant_state** (`Function`) `[TRIVIAL]`
+ - 📝 Reset assistant process-local state between test cases.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ƒ **test_confirmation_owner_mismatch_returns_403** (`Function`) `[TRIVIAL]`
+ - 📝 Confirm endpoint should reject requests from user that does not own the confirmation token.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ƒ **test_expired_confirmation_cannot_be_confirmed** (`Function`) `[TRIVIAL]`
+ - 📝 Expired confirmation token should be rejected and not create task.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ƒ **test_limited_user_cannot_launch_restricted_operation** (`Function`) `[TRIVIAL]`
+ - 📝 Limited user should receive denied state for privileged operation.
+ - 🔗 BINDS_TO -> `TestAssistantAuthz`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create_task** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_task** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_environments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_config** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **order_by** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **first** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **limit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **offset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **add** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **merge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **query** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **rollback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **CleanReleaseV2ReleaseApiTests** (`Module`)
+ - 📝 API contract test scaffolding for clean release approval and publication endpoints.
+ - 🏗️ Layer: Domain
+ - 🔗 DEPENDS_ON -> `backend.src.api.routes.clean_release_v2`
+ - ƒ **_seed_candidate_and_passed_report** (`Function`) `[TRIVIAL]`
+ - 📝 Seed repository with approvable candidate and passed report for release endpoint contracts.
+ - 🔗 BINDS_TO -> `CleanReleaseV2ReleaseApiTests`
+ - ƒ **test_release_approve_and_publish_revoke_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Verify approve, publish, and revoke endpoints preserve expected release lifecycle contract.
+ - 🔗 BINDS_TO -> `CleanReleaseV2ReleaseApiTests`
+ - ƒ **test_release_reject_contract** (`Function`) `[TRIVIAL]`
+ - 📝 Verify reject endpoint returns successful rejection decision payload.
+ - 🔗 BINDS_TO -> `CleanReleaseV2ReleaseApiTests`
+- 📦 **ConnectionsRoutesTests** (`Module`)
+ - 📝 Verifies connection routes bootstrap their table before CRUD access.
+ - 🏗️ Layer: API
+ - 🔗 DEPENDS_ON -> `ConnectionsRouter`
+ - ƒ **test_list_connections_bootstraps_missing_table** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure listing connections auto-creates missing table and returns empty payload.
+ - 🔗 BINDS_TO -> `ConnectionsRoutesTests`
+ - ƒ **test_create_connection_bootstraps_missing_table** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure connection creation bootstraps table and persists returned connection fields.
+ - 🔗 BINDS_TO -> `ConnectionsRoutesTests`
+ - ƒ **db_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestGitApi** (`Module`)
+ - 📝 API tests for Git configurations and repository operations.
+ - ℂ **DbMock** (`Class`) `[TRIVIAL]`
+ - 📝 In-memory session double for git route tests with minimal query/filter persistence semantics.
+ - 🔒 Invariant: Supports only the SQLAlchemy-like operations exercised by this test module.
+ - 🔗 BINDS_TO -> `TestGitApi`
+ - ƒ **test_get_git_configs_masks_pat** (`Function`) `[TRIVIAL]`
+ - 📝 Validate listing git configs masks stored PAT values in API-facing responses.
+ - 🔗 BINDS_TO -> `TestGitApi`
+ - ƒ **test_create_git_config_persists_config** (`Function`) `[TRIVIAL]`
+ - 📝 Validate creating git config persists supplied server attributes in backing session.
+ - 🔗 BINDS_TO -> `TestGitApi`
+ - ƒ **test_update_git_config_modifies_record** (`Function`) `[TRIVIAL]`
+ - 📝 Validate updating git config modifies mutable fields while preserving masked PAT semantics.
+ - 🔗 BINDS_TO -> `TestGitApi`
+ - ℂ **SingleConfigDbMock** (`Class`) `[TRIVIAL]`
+ - ƒ **test_update_git_config_raises_404_if_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Validate updating non-existent git config raises HTTP 404 contract response.
+ - 🔗 BINDS_TO -> `TestGitApi`
+ - ƒ **test_delete_git_config_removes_record** (`Function`) `[TRIVIAL]`
+ - 📝 Validate deleting existing git config removes record and returns success payload.
+ - 🔗 BINDS_TO -> `TestGitApi`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **query** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **first** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **add** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **delete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **query** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **first** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **query** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **first** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **delete** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_connection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_connection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_gitea_repositories** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create_gitlab_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **init_repo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AssistantApiTests** (`Module`)
+ - 📝 Validate assistant API endpoint logic via direct async handler invocation.
+ - 🔒 Invariant: Every test clears assistant in-memory state before execution.
+ - 🔗 DEPENDS_ON -> `backend.src.api.routes.assistant`
+ - ƒ **_run_async** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ℂ **_FakeTask** (`Class`) `[TRIVIAL]`
+ - 📝 Lightweight task model stub used as return value from _FakeTaskManager.create_task in assistant route tests.
+ - 🔒 Invariant: status is a bare string not a TaskStatus enum; callers must not depend on enum semantics.
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ℂ **_FakeTaskManager** (`Class`) `[TRIVIAL]`
+ - 📝 In-memory task manager stub that records created tasks for route-level assertions.
+ - 🔒 Invariant: create_task stores tasks retrievable by get_task/get_tasks without external side effects.
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ℂ **_FakeConfigManager** (`Class`) `[TRIVIAL]`
+ - 📝 Deterministic config stub providing hardcoded dev/prod environments and minimal settings shape for assistant route tests.
+ - 🔒 Invariant: get_config() returns anonymous inner classes, not real GlobalSettings; only default_environment_id and llm fields are safe to access.
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ƒ **_admin_user** (`Function`) `[TRIVIAL]`
+ - 📝 Build admin principal with spec=User for assistant route authorization tests.
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ƒ **_limited_user** (`Function`) `[TRIVIAL]`
+ - 📝 Build limited user principal with empty roles for assistant route denial tests.
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ℂ **_FakeQuery** (`Class`) `[TRIVIAL]`
+ - 📝 Chainable SQLAlchemy-like query stub returning fixed item lists for assistant message persistence paths.
+ - 🔒 Invariant: filter() is predicate-blind; returns all records regardless of user_id scope
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ℂ **_FakeDb** (`Class`) `[TRIVIAL]`
+ - 📝 Explicit in-memory DB session double limited to assistant message persistence paths.
+ - 🔒 Invariant: query() always returns _FakeQuery with intentionally non-evaluated predicates; add/merge stay deterministic and never emulate unrelated SQLAlchemy behavior.
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ƒ **_clear_assistant_state** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ƒ **test_unknown_command_returns_needs_clarification** (`Function`) `[TRIVIAL]`
+ - 📝 Unknown command should return clarification state and unknown intent.
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ƒ **test_capabilities_question_returns_successful_help** (`Function`) `[TRIVIAL]`
+ - 📝 Capability query should return deterministic help response.
+ - 🔗 BINDS_TO -> `AssistantApiTests`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create_task** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_task** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_environments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_config** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **order_by** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **limit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **offset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **first** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **query** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **add** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **rollback** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **merge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **refresh** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestMigrationRoutes** (`Module`)
+ - 📝 Unit tests for migration API route handlers.
+ - 🏗️ Layer: API
+ - ƒ **_make_config_manager** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMigrationRoutes`
+ - ƒ **_mock_env** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMigrationRoutes`
+ - ƒ **_make_sync_config_manager** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMigrationRoutes`
+ - ƒ **db_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_migration_settings_returns_default_cron** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_migration_settings_returns_fallback_when_no_cron** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_update_migration_settings_saves_cron** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_update_migration_settings_rejects_missing_cron** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_resource_mappings_returns_formatted_list** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_resource_mappings_respects_pagination** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_resource_mappings_search_by_name** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_resource_mappings_filter_by_env** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_resource_mappings_filter_by_type** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_trigger_sync_now_creates_env_row_and_syncs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_trigger_sync_now_rejects_empty_environments** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_trigger_sync_now_handles_partial_failure** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_trigger_sync_now_idempotent_env_upsert** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_dashboards_success** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_dashboards_invalid_env_raises_404** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_execute_migration_success** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_execute_migration_invalid_env_raises_400** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_dry_run_migration_returns_diff_and_risk** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_dry_run_migration_rejects_same_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ConfigModels** (`Module`)
+ - 📝 Defines SQLAlchemy persistence models for application and notification configuration records.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Configuration payload and notification credentials must remain persisted as non-null JSON documents.
+ - 🔗 DEPENDS_ON -> `MappingModels:Base`
+ - ℂ **AppConfigRecord** (`Class`) `[CRITICAL]`
+ - 📝 Stores persisted application configuration as a single authoritative record model.
+ - ℂ **NotificationConfig** (`Class`) `[CRITICAL]`
+ - 📝 Stores persisted provider-level notification configuration and encrypted credentials metadata.
+- 📦 **LlmModels** (`Module`)
+ - 📝 SQLAlchemy models for LLM provider configuration and validation results.
+ - 🏗️ Layer: Domain
+ - ℂ **ValidationPolicy** (`Class`) `[TRIVIAL]`
+ - 📝 Defines a scheduled rule for validating a group of dashboards within an execution window.
+ - ℂ **LLMProvider** (`Class`) `[TRIVIAL]`
+ - 📝 SQLAlchemy model for LLM provider configuration.
+ - ℂ **ValidationRecord** (`Class`) `[TRIVIAL]`
+ - 📝 SQLAlchemy model for dashboard validation history.
+ - ƒ **generate_uuid** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **GitModels** (`Module`) `[TRIVIAL]`
+ - 📝 Git-specific SQLAlchemy models for configuration and repository tracking.
+ - 🏗️ Layer: Model
+ - ℂ **GitServerConfig** (`Class`) `[TRIVIAL]`
+ - 📝 Configuration for a Git server connection.
+ - ℂ **GitRepository** (`Class`) `[TRIVIAL]`
+ - 📝 Tracking for a local Git repository linked to a dashboard.
+ - ℂ **DeploymentEnvironment** (`Class`) `[TRIVIAL]`
+ - 📝 Target Superset environments for dashboard deployment.
+- 📦 **TaskModels** (`Module`) `[TRIVIAL]`
+ - 📝 Defines the database schema for task execution records.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: All primary keys are UUID strings.
+ - 🔗 DEPENDS_ON -> `sqlalchemy`
+ - ℂ **TaskRecord** (`Class`) `[TRIVIAL]`
+ - 📝 Represents a persistent record of a task execution.
+ - ℂ **TaskLogRecord** (`Class`)
+ - 📝 Represents a single persistent log entry for a task.
+ - 🔒 Invariant: Each log entry belongs to exactly one task.
+ - 🔗 DEPENDS_ON -> `TaskRecord`
+- 📦 **ConnectionModels** (`Module`) `[TRIVIAL]`
+ - 📝 Defines the database schema for external database connection configurations.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: All primary keys are UUID strings.
+ - 🔗 DEPENDS_ON -> `sqlalchemy`
+ - ℂ **ConnectionConfig** (`Class`) `[TRIVIAL]`
+ - 📝 Stores credentials for external databases used for column mapping.
+- 📦 **DatasetReviewModels** (`Module`)
+ - 📝 SQLAlchemy models for the dataset review orchestration flow.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Session and profile entities are strictly scoped to an authenticated user.
+ - 🔗 DEPENDS_ON -> `AuthModels`
+ - 🔗 DEPENDS_ON -> `MappingModels`
+ - ℂ **SessionStatus** (`Class`) `[TRIVIAL]`
+ - ℂ **SessionPhase** (`Class`) `[TRIVIAL]`
+ - ℂ **ReadinessState** (`Class`) `[TRIVIAL]`
+ - ℂ **RecommendedAction** (`Class`) `[TRIVIAL]`
+ - ℂ **SessionCollaboratorRole** (`Class`) `[TRIVIAL]`
+ - ℂ **SessionCollaborator** (`Class`) `[TRIVIAL]`
+ - ℂ **DatasetReviewSession** (`Class`) `[TRIVIAL]`
+ - ℂ **BusinessSummarySource** (`Class`) `[TRIVIAL]`
+ - ℂ **ConfidenceState** (`Class`) `[TRIVIAL]`
+ - ℂ **DatasetProfile** (`Class`) `[TRIVIAL]`
+ - ℂ **FindingArea** (`Class`) `[TRIVIAL]`
+ - ℂ **FindingSeverity** (`Class`) `[TRIVIAL]`
+ - ℂ **ResolutionState** (`Class`) `[TRIVIAL]`
+ - ℂ **ValidationFinding** (`Class`) `[TRIVIAL]`
+ - ℂ **SemanticSourceType** (`Class`) `[TRIVIAL]`
+ - ℂ **TrustLevel** (`Class`) `[TRIVIAL]`
+ - ℂ **SemanticSourceStatus** (`Class`) `[TRIVIAL]`
+ - ℂ **SemanticSource** (`Class`) `[TRIVIAL]`
+ - ℂ **FieldKind** (`Class`) `[TRIVIAL]`
+ - ℂ **FieldProvenance** (`Class`) `[TRIVIAL]`
+ - ℂ **SemanticFieldEntry** (`Class`) `[TRIVIAL]`
+ - ℂ **CandidateMatchType** (`Class`) `[TRIVIAL]`
+ - ℂ **CandidateStatus** (`Class`) `[TRIVIAL]`
+ - ℂ **SemanticCandidate** (`Class`) `[TRIVIAL]`
+ - ℂ **FilterSource** (`Class`) `[TRIVIAL]`
+ - ℂ **FilterConfidenceState** (`Class`) `[TRIVIAL]`
+ - ℂ **FilterRecoveryStatus** (`Class`) `[TRIVIAL]`
+ - ℂ **ImportedFilter** (`Class`) `[TRIVIAL]`
+ - ℂ **VariableKind** (`Class`) `[TRIVIAL]`
+ - ℂ **MappingStatus** (`Class`) `[TRIVIAL]`
+ - ℂ **TemplateVariable** (`Class`) `[TRIVIAL]`
+ - ℂ **MappingMethod** (`Class`) `[TRIVIAL]`
+ - ℂ **MappingWarningLevel** (`Class`) `[TRIVIAL]`
+ - ℂ **ApprovalState** (`Class`) `[TRIVIAL]`
+ - ℂ **ExecutionMapping** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationStatus** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationSession** (`Class`) `[TRIVIAL]`
+ - ℂ **QuestionState** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationQuestion** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationOption** (`Class`) `[TRIVIAL]`
+ - ℂ **AnswerKind** (`Class`) `[TRIVIAL]`
+ - ℂ **ClarificationAnswer** (`Class`) `[TRIVIAL]`
+ - ℂ **PreviewStatus** (`Class`) `[TRIVIAL]`
+ - ℂ **CompiledPreview** (`Class`) `[TRIVIAL]`
+ - ℂ **LaunchStatus** (`Class`) `[TRIVIAL]`
+ - ℂ **DatasetRunContext** (`Class`) `[TRIVIAL]`
+ - ℂ **SessionEvent** (`Class`) `[TRIVIAL]`
+ - ℂ **ArtifactType** (`Class`) `[TRIVIAL]`
+ - ℂ **ArtifactFormat** (`Class`) `[TRIVIAL]`
+ - ℂ **ExportArtifact** (`Class`) `[TRIVIAL]`
+- 📦 **MappingModels** (`Module`)
+ - 📝 Defines the database schema for environment metadata and database mappings using SQLAlchemy.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: All primary keys are UUID strings.
+ - 🔗 DEPENDS_ON -> `sqlalchemy`
+ - ℂ **ResourceType** (`Class`) `[TRIVIAL]`
+ - 📝 Enumeration of possible Superset resource types for ID mapping.
+ - ℂ **MigrationStatus** (`Class`) `[TRIVIAL]`
+ - 📝 Enumeration of possible migration job statuses.
+ - ℂ **Environment** (`Class`)
+ - 📝 Represents a Superset instance environment.
+ - 🔗 DEPENDS_ON -> `MappingModels`
+ - ℂ **DatabaseMapping** (`Class`)
+ - 📝 Represents a mapping between source and target databases.
+ - ℂ **MigrationJob** (`Class`) `[TRIVIAL]`
+ - 📝 Represents a single migration execution job.
+ - ℂ **ResourceMapping** (`Class`)
+ - 📝 Maps a universal UUID for a resource to its actual ID on a specific environment.
+ - 🔗 DEPENDS_ON -> `MappingModels`
+- 📦 **ReportModels** (`Module`)
+ - 📝 Canonical report schemas for unified task reporting across heterogeneous task types.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Canonical report fields are always present for every report item.
+ - 🔗 DEPENDS_ON -> `TaskModels`
+ - ℂ **TaskType** (`Class`)
+ - 📝 Supported normalized task report types.
+ - 🔒 Invariant: Must contain valid generic task type mappings.
+ - 🔗 DEPENDS_ON -> `ReportModels`
+ - ℂ **ReportStatus** (`Class`)
+ - 📝 Supported normalized report status values.
+ - 🔒 Invariant: TaskStatus enum mapping logic holds.
+ - ℂ **ErrorContext** (`Class`)
+ - 📝 Error and recovery context for failed/partial reports.
+ - 🔒 Invariant: The properties accurately describe error state.
+ - ℂ **TaskReport** (`Class`)
+ - 📝 Canonical normalized report envelope for one task execution.
+ - 🔒 Invariant: Must represent canonical task record attributes.
+ - ℂ **ReportQuery** (`Class`)
+ - 📝 Query object for server-side report filtering, sorting, and pagination.
+ - 🔒 Invariant: Time and pagination queries are mutually consistent.
+ - ℂ **ReportCollection** (`Class`)
+ - 📝 Paginated collection of normalized task reports.
+ - 🔒 Invariant: Represents paginated data correctly.
+ - ℂ **ReportDetailView** (`Class`)
+ - 📝 Detailed report representation including diagnostics and recovery actions.
+ - 🔒 Invariant: Incorporates a report and logs correctly.
+ - ƒ **_non_empty_str** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_validate_sort_by** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_validate_sort_order** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_validate_time_range** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **FilterStateModels** (`Module`) `[TRIVIAL]`
+ - 📝 Pydantic models for Superset native filter state extraction and restoration.
+ - 🏗️ Layer: Models
+ - 🔗 DEPENDS_ON -> `pydantic`
+ - 📦 **FilterState** (`Model`) `[TRIVIAL]`
+ - 📝 Represents the state of a single native filter.
+ - 📦 **NativeFilterDataMask** (`Model`) `[TRIVIAL]`
+ - 📝 Represents the dataMask containing all native filter states.
+ - 📦 **ParsedNativeFilters** (`Model`) `[TRIVIAL]`
+ - 📝 Result of parsing native filters from permalink or native_filters_key.
+ - 📦 **DashboardURLFilterExtraction** (`Model`) `[TRIVIAL]`
+ - 📝 Result of parsing a complete dashboard URL for filter information.
+ - 📦 **ExtraFormDataMerge** (`Model`) `[TRIVIAL]`
+ - 📝 Configuration for merging extraFormData from different sources.
+ - ƒ **get_filter_ids** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_extra_form_data** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **has_filters** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_filter_count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **merge** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AssistantModels** (`Module`)
+ - 📝 SQLAlchemy models for assistant audit trail and confirmation tokens.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Assistant records preserve immutable ids and creation timestamps.
+ - 🔗 DEPENDS_ON -> `MappingModels`
+ - ℂ **AssistantAuditRecord** (`Class`)
+ - 📝 Store audit decisions and outcomes produced by assistant command handling.
+ - 🔗 INHERITS -> `MappingModels`
+ - ℂ **AssistantMessageRecord** (`Class`)
+ - 📝 Persist chat history entries for assistant conversations.
+ - 🔗 INHERITS -> `MappingModels`
+ - ℂ **AssistantConfirmationRecord** (`Class`)
+ - 📝 Persist risky operation confirmation tokens with lifecycle state.
+ - 🔗 INHERITS -> `MappingModels`
+- 📦 **StorageModels** (`Module`) `[TRIVIAL]`
+ - 📝 Data models for the storage system.
+ - 🏗️ Layer: Domain
+ - ℂ **FileCategory** (`Class`) `[TRIVIAL]`
+ - 📝 Enumeration of supported file categories in the storage system.
+ - ℂ **StorageConfig** (`Class`) `[TRIVIAL]`
+ - 📝 Configuration model for the storage system, defining paths and naming patterns.
+ - ℂ **StoredFile** (`Class`) `[TRIVIAL]`
+ - 📝 Data model representing metadata for a file stored in the system.
+- 📦 **DashboardModels** (`Module`)
+ - 📝 Defines data models for dashboard metadata and selection.
+ - 🏗️ Layer: Model
+ - ℂ **DashboardMetadata** (`Class`) `[TRIVIAL]`
+ - 📝 Represents a dashboard available for migration.
+ - ℂ **DashboardSelection** (`Class`) `[TRIVIAL]`
+ - 📝 Represents the user's selection of dashboards to migrate.
+- 📦 **CleanReleaseModels** (`Module`)
+ - 📝 Define canonical clean release domain entities and lifecycle guards.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Immutable snapshots are never mutated; forbidden lifecycle transitions are rejected.
+ - 🔗 DEPENDS_ON -> `MappingModels`
+ - ℂ **ExecutionMode** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible execution mode enum for legacy TUI/orchestrator tests.
+ - ℂ **CheckFinalStatus** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible final status enum for legacy TUI/orchestrator tests.
+ - ℂ **CheckStageName** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible stage name enum for legacy TUI/orchestrator tests.
+ - ℂ **CheckStageStatus** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible stage status enum for legacy TUI/orchestrator tests.
+ - ℂ **CheckStageResult** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible stage result container for legacy TUI/orchestrator tests.
+ - ℂ **ProfileType** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible profile enum for legacy TUI bootstrap logic.
+ - ℂ **RegistryStatus** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible registry status enum for legacy TUI bootstrap logic.
+ - ℂ **ReleaseCandidateStatus** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible release candidate status enum for legacy TUI.
+ - ℂ **ResourceSourceEntry** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible source entry model for legacy TUI bootstrap logic.
+ - ℂ **ResourceSourceRegistry** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible source registry model for legacy TUI bootstrap logic.
+ - ℂ **CleanProfilePolicy** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible policy model for legacy TUI bootstrap logic.
+ - ℂ **ComplianceCheckRun** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible run model for legacy TUI typing/import compatibility.
+ - ℂ **ReleaseCandidate** (`Class`) `[TRIVIAL]`
+ - 📝 Represents the release unit being prepared and governed.
+ - ℂ **CandidateArtifact** (`Class`) `[TRIVIAL]`
+ - 📝 Represents one artifact associated with a release candidate.
+ - ℂ **ManifestItem** (`Class`) `[TRIVIAL]`
+ - ℂ **ManifestSummary** (`Class`) `[TRIVIAL]`
+ - ℂ **DistributionManifest** (`Class`) `[TRIVIAL]`
+ - 📝 Immutable snapshot of the candidate payload.
+ - 🔒 Invariant: Immutable after creation.
+ - ℂ **SourceRegistrySnapshot** (`Class`) `[TRIVIAL]`
+ - 📝 Immutable registry snapshot for allowed sources.
+ - ℂ **CleanPolicySnapshot** (`Class`) `[TRIVIAL]`
+ - 📝 Immutable policy snapshot used to evaluate a run.
+ - ℂ **ComplianceRun** (`Class`) `[TRIVIAL]`
+ - 📝 Operational record for one compliance execution.
+ - ℂ **ComplianceStageRun** (`Class`) `[TRIVIAL]`
+ - 📝 Stage-level execution record inside a run.
+ - ℂ **ViolationSeverity** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible violation severity enum for legacy clean-release tests.
+ - ℂ **ViolationCategory** (`Class`) `[TRIVIAL]`
+ - 📝 Backward-compatible violation category enum for legacy clean-release tests.
+ - ℂ **ComplianceViolation** (`Class`) `[TRIVIAL]`
+ - 📝 Violation produced by a stage.
+ - ℂ **ComplianceReport** (`Class`) `[TRIVIAL]`
+ - 📝 Immutable result derived from a completed run.
+ - 🔒 Invariant: Immutable after creation.
+ - ℂ **ApprovalDecision** (`Class`) `[TRIVIAL]`
+ - 📝 Approval or rejection bound to a candidate and report.
+ - ℂ **PublicationRecord** (`Class`) `[TRIVIAL]`
+ - 📝 Publication or revocation record.
+ - ℂ **CleanReleaseAuditLog** (`Class`) `[TRIVIAL]`
+ - 📝 Represents a persistent audit log entry for clean release actions.
+ - ƒ **populate_legacy_allowlists** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validate_enterprise_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **registry_snapshot_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validate_final_status_alignment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **run_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **candidate_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **transition_to** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **manifest_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **deterministic_hash** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **summary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **check_run_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **violation_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **violation_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **check_run_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **category** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **category** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **location** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remediation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **blocked_release** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **report_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **check_run_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **operator_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **structured_payload_ref** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **violations_count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **blocking_violations_count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **AuthModels** (`Module`)
+ - 📝 SQLAlchemy models for multi-user authentication and authorization.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Usernames and emails must be unique.
+ - ƒ **generate_uuid** (`Function`) `[TRIVIAL]`
+ - 📝 Generates a unique UUID string.
+ - 🔗 DEPENDS_ON -> `uuid`
+ - 📦 **user_roles** (`Table`) `[TRIVIAL]`
+ - 📝 Association table for many-to-many relationship between Users and Roles.
+ - 🔗 DEPENDS_ON -> `Base`
+ - 🔗 DEPENDS_ON -> `User`
+ - 🔗 DEPENDS_ON -> `Role`
+ - 📦 **role_permissions** (`Table`) `[TRIVIAL]`
+ - 📝 Association table for many-to-many relationship between Roles and Permissions.
+ - 🔗 DEPENDS_ON -> `Base`
+ - 🔗 DEPENDS_ON -> `Role`
+ - 🔗 DEPENDS_ON -> `Permission`
+ - ℂ **User** (`Class`) `[CRITICAL]`
+ - 📝 Represents an identity that can authenticate to the system.
+ - ℂ **Role** (`Class`) `[CRITICAL]`
+ - 📝 Represents a collection of permissions.
+ - ℂ **Permission** (`Class`) `[CRITICAL]`
+ - 📝 Represents a specific capability within the system.
+ - ℂ **ADGroupMapping** (`Class`) `[CRITICAL]`
+ - 📝 Maps an Active Directory group to a local System Role.
+ - 🔗 DEPENDS_ON -> `Role`
+- 📦 **ProfileModels** (`Module`)
+ - 📝 Defines persistent per-user profile settings for dashboard filter, Git identity/token, and UX preferences.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Sensitive Git token is stored encrypted and never returned in plaintext.
+ - 🔗 DEPENDS_ON -> `AuthModels`
+ - ℂ **UserDashboardPreference** (`Class`)
+ - 📝 Stores Superset username binding and default "my dashboards" toggle for one authenticated user.
+ - 🔗 INHERITS -> `MappingModels:Base`
+- 📦 **ModelsPackage** (`Package`) `[TRIVIAL]`
+ - 📝 Domain model package root.
+- 📦 **test_models** (`Module`) `[TRIVIAL]`
+ - 📝 Unit tests for data models
+ - 🏗️ Layer: Domain
+ - ƒ **test_environment_model** (`Function`) `[TRIVIAL]`
+ - 📝 Tests that Environment model correctly stores values.
+ - 🔗 BINDS_TO -> `test_models`
+- 📦 **test_report_models** (`Module`)
+ - 📝 Unit tests for report Pydantic models and their validators
+ - 🏗️ Layer: Domain
+ - ƒ **test_enum_values** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_enum_values** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_valid_creation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_minimal_creation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_make_report** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_valid_creation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_empty_report_id_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_whitespace_report_id_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_empty_task_id_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_empty_summary_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_summary_whitespace_trimmed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_optional_fields** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_with_error_context** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_defaults** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_invalid_sort_by_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_valid_sort_by_values** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_invalid_sort_order_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_valid_sort_order_values** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_time_range_validation_valid** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_time_range_validation_invalid** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_page_ge_1** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_page_size_bounds** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_valid_creation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_with_items** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_valid_creation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_with_all_fields** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ƒ **test_release_candidate_valid** (`Function`) `[TRIVIAL]`
+ - 📝 Verify that a valid release candidate can be instantiated.
+ - 🔗 BINDS_TO -> `__tests__/test_clean_release`
+- ƒ **test_release_candidate_empty_id** (`Function`) `[TRIVIAL]`
+ - 📝 Verify that a release candidate with an empty ID is rejected.
+ - 🔗 BINDS_TO -> `__tests__/test_clean_release`
+- ƒ **test_enterprise_policy_valid** (`Function`) `[TRIVIAL]`
+ - 📝 Verify that a valid enterprise policy is accepted.
+ - 🔗 BINDS_TO -> `__tests__/test_clean_release`
+- ƒ **test_enterprise_policy_missing_prohibited** (`Function`) `[TRIVIAL]`
+ - 📝 Verify that an enterprise policy without prohibited categories is rejected.
+ - 🔗 BINDS_TO -> `__tests__/test_clean_release`
+- ƒ **test_enterprise_policy_external_allowed** (`Function`) `[TRIVIAL]`
+ - 📝 Verify that an enterprise policy allowing external sources is rejected.
+ - 🔗 BINDS_TO -> `__tests__/test_clean_release`
+- ƒ **test_manifest_count_mismatch** (`Function`) `[TRIVIAL]`
+ - 📝 Verify that a manifest with count mismatches is rejected.
+ - 🔗 BINDS_TO -> `__tests__/test_clean_release`
+- ƒ **test_compliant_run_validation** (`Function`) `[TRIVIAL]`
+ - 📝 Verify compliant run validation logic and mandatory stage checks.
+ - 🔗 BINDS_TO -> `__tests__/test_clean_release`
+- ƒ **test_report_validation** (`Function`) `[TRIVIAL]`
+ - 📝 Verify compliance report validation based on status and violation counts.
+ - 🔗 BINDS_TO -> `__tests__/test_clean_release`
+- 📦 **test_clean_release** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/src/models/__tests__/test_clean_release.py
+ - 🏗️ Layer: Unknown
+ - ƒ **valid_candidate_data** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **valid_policy_data** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **profile_service** (`Module`) `[CRITICAL]`
+ - 📝 Orchestrates profile preference persistence, Superset account lookup, and deterministic actor matching.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Username normalization is trim+lower and shared by save and matching paths.
+ - 🔗 DEPENDS_ON -> `backend.src.models.profile`
+ - 🔗 DEPENDS_ON -> `backend.src.schemas.profile`
+ - 🔗 DEPENDS_ON -> `backend.src.core.superset_client`
+ - 🔗 DEPENDS_ON -> `backend.src.core.auth.repository`
+ - 🔗 DEPENDS_ON -> `backend.src.models.auth`
+ - 🔗 DEPENDS_ON -> `sqlalchemy.orm.Session`
+ - ℂ **ProfileValidationError** (`Class`) `[TRIVIAL]`
+ - 📝 Domain validation error for profile preference update requests.
+ - 🔗 INHERITS -> `Exception`
+ - ℂ **EnvironmentNotFoundError** (`Class`) `[TRIVIAL]`
+ - 📝 Raised when environment_id from lookup request is unknown in app configuration.
+ - 🔗 INHERITS -> `Exception`
+ - ℂ **ProfileAuthorizationError** (`Class`) `[TRIVIAL]`
+ - 📝 Raised when caller attempts cross-user preference mutation.
+ - 🔗 INHERITS -> `Exception`
+ - ℂ **ProfileService** (`Class`) `[CRITICAL]`
+ - 📝 Implements profile preference read/update flow and Superset account lookup degradation strategy.
+ - 🔗 DEPENDS_ON -> `sqlalchemy.orm.Session`
+ - 🔗 DEPENDS_ON -> `backend.src.core.auth.repository.AuthRepository`
+ - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
+ - 🔗 DEPENDS_ON -> `backend.src.core.superset_profile_lookup.SupersetAccountLookupAdapter`
+ - 🔗 DEPENDS_ON -> `backend.src.models.profile.UserDashboardPreference`
+ - 🔗 CALLS -> `backend.src.services.rbac_permission_catalog.discover_declared_permissions`
+ - ƒ **init** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize service with DB session and config manager.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **get_my_preference** (`Function`) `[TRIVIAL]`
+ - 📝 Return current user's persisted preference or default non-configured view.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **get_dashboard_filter_binding** (`Function`) `[TRIVIAL]`
+ - 📝 Return only dashboard-filter fields required by dashboards listing hot path.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **update_my_preference** (`Function`) `[TRIVIAL]`
+ - 📝 Validate and persist current user's profile preference in self-scoped mode.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **lookup_superset_accounts** (`Function`) `[TRIVIAL]`
+ - 📝 Query Superset users in selected environment and project canonical account candidates.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **matches_dashboard_actor** (`Function`) `[TRIVIAL]`
+ - 📝 Apply trim+case-insensitive actor match across owners OR modified_by.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_build_security_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Build read-only security snapshot with role and permission badges.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_collect_user_permission_pairs** (`Function`) `[TRIVIAL]`
+ - 📝 Collect effective permission tuples from current user's roles.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_format_permission_key** (`Function`) `[TRIVIAL]`
+ - 📝 Convert normalized permission pair to compact UI key.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_to_preference_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Map ORM preference row to API DTO with token metadata.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_mask_secret_value** (`Function`) `[TRIVIAL]`
+ - 📝 Build a safe display value for sensitive secrets.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_sanitize_text** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize optional text into trimmed form or None.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_sanitize_secret** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize secret input into trimmed form or None.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_normalize_start_page** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize supported start page aliases to canonical values.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_normalize_density** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize supported density aliases to canonical values.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_resolve_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve environment model from configured environments by id.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_get_preference_row** (`Function`) `[TRIVIAL]`
+ - 📝 Return persisted preference row for user or None.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_get_or_create_preference_row** (`Function`) `[TRIVIAL]`
+ - 📝 Return existing preference row or create new unsaved row.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_build_default_preference** (`Function`) `[TRIVIAL]`
+ - 📝 Build non-persisted default preference DTO for unconfigured users.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_validate_update_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Validate username/toggle constraints for preference mutation.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_sanitize_username** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize raw username into trimmed form or None for empty input.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_normalize_username** (`Function`) `[TRIVIAL]`
+ - 📝 Apply deterministic trim+lower normalization for actor matching.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **_normalize_owner_tokens** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize owners payload into deduplicated lower-cased tokens.
+ - 🔗 BINDS_TO -> `ProfileService`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **ResourceServiceModule** (`Module`)
+ - 📝 Shared service for fetching resource data with Git status and task status
+ - 🏗️ Layer: Service
+ - 🔒 Invariant: All resources include metadata about their current state
+ - 🔗 DEPENDS_ON -> `SupersetClient`
+ - 🔗 DEPENDS_ON -> `TaskManagerPackage`
+ - 🔗 DEPENDS_ON -> `TaskManagerModels`
+ - 🔗 DEPENDS_ON -> `GitService`
+ - ℂ **ResourceService** (`Class`)
+ - 📝 Provides centralized access to resource data with enhanced metadata
+ - 🔗 DEPENDS_ON -> `SupersetClient`
+ - 🔗 DEPENDS_ON -> `GitService`
+ - ƒ **ResourceService_init** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize the resource service with dependencies
+ - ƒ **get_dashboards_with_status** (`Function`)
+ - 📝 Fetch dashboards from environment with Git status and last task status
+ - 🔗 CALLS -> `SupersetClient.get_dashboards_summary`
+ - 🔗 CALLS -> `_get_git_status_for_dashboard`
+ - 🔗 CALLS -> `_get_last_llm_task_for_dashboard`
+ - ƒ **get_dashboards_page_with_status** (`Function`)
+ - 📝 Fetch one dashboard page from environment and enrich only that page with status metadata.
+ - 🔗 CALLS -> `SupersetClient.get_dashboards_summary_page`
+ - 🔗 CALLS -> `_get_git_status_for_dashboard`
+ - 🔗 CALLS -> `_get_last_llm_task_for_dashboard`
+ - ƒ **_get_last_llm_task_for_dashboard** (`Function`)
+ - 📝 Get most recent LLM validation task for a dashboard in an environment
+ - 🔗 CALLS -> `_normalize_datetime_for_compare`
+ - 🔗 CALLS -> `_normalize_validation_status`
+ - 🔗 CALLS -> `_normalize_task_status`
+ - ƒ **_normalize_task_status** (`Function`)
+ - 📝 Normalize task status to stable uppercase values for UI/API projections
+ - ƒ **_normalize_validation_status** (`Function`)
+ - 📝 Normalize LLM validation status to PASS/FAIL/WARN/UNKNOWN
+ - ƒ **_normalize_datetime_for_compare** (`Function`)
+ - 📝 Normalize datetime values to UTC-aware values for safe comparisons.
+ - ƒ **get_datasets_with_status** (`Function`)
+ - 📝 Fetch datasets from environment with mapping progress and last task status
+ - 🔗 CALLS -> `SupersetClient.get_datasets_summary`
+ - 🔗 CALLS -> `_get_last_task_for_resource`
+ - ƒ **get_activity_summary** (`Function`)
+ - 📝 Get summary of active and recent tasks for the activity indicator
+ - 🔗 CALLS -> `_extract_resource_name_from_task`
+ - 🔗 CALLS -> `_extract_resource_type_from_task`
+ - ƒ **_get_git_status_for_dashboard** (`Function`)
+ - 📝 Get Git sync status for a dashboard
+ - 🔗 CALLS -> `get_repo`
+ - ƒ **_get_last_task_for_resource** (`Function`)
+ - 📝 Get the most recent task for a specific resource
+ - 🔗 CALLS -> `_normalize_datetime_for_compare`
+ - ƒ **_extract_resource_name_from_task** (`Function`)
+ - 📝 Extract resource name from task params
+ - ƒ **_extract_resource_type_from_task** (`Function`)
+ - 📝 Extract resource type from task params
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_task_time** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **llm_prompt_templates** (`Module`) `[TRIVIAL]`
+ - 📝 Provide default LLM prompt templates and normalization helpers for runtime usage.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: All required prompt template keys are always present after normalization.
+ - 🔗 DEPENDS_ON -> `backend.src.core.config_manager:Function`
+ - 📦 **DEFAULT_LLM_PROMPTS** (`Constant`) `[TRIVIAL]`
+ - 📝 Default prompt templates used by documentation, dashboard validation, and git commit generation.
+ - 📦 **DEFAULT_LLM_PROVIDER_BINDINGS** (`Constant`) `[TRIVIAL]`
+ - 📝 Default provider binding per task domain.
+ - 📦 **DEFAULT_LLM_ASSISTANT_SETTINGS** (`Constant`) `[TRIVIAL]`
+ - 📝 Default planner settings for assistant chat intent model/provider resolution.
+ - ƒ **normalize_llm_settings** (`Function`)
+ - 📝 Ensure llm settings contain stable schema with prompts section and default templates.
+ - ƒ **is_multimodal_model** (`Function`)
+ - 📝 Heuristically determine whether model supports image input required for dashboard validation.
+ - ƒ **resolve_bound_provider_id** (`Function`)
+ - 📝 Resolve provider id configured for a task binding with fallback to default provider.
+ - ƒ **render_prompt** (`Function`)
+ - 📝 Render prompt template using deterministic placeholder replacement with graceful fallback.
+- 📦 **health_service** (`Module`)
+ - 📝 Business logic for aggregating dashboard health status from validation records.
+ - 🏗️ Layer: Domain/Service
+ - 🔗 DEPENDS_ON -> `backend.src.models.llm.ValidationRecord`
+ - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
+ - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.cleanup.TaskCleanupService`
+ - ℂ **HealthService** (`Class`)
+ - 📝 Aggregate latest dashboard validation state and manage persisted health report lifecycle.
+ - 🔗 DEPENDS_ON -> `sqlalchemy.orm.Session`
+ - 🔗 DEPENDS_ON -> `backend.src.models.llm.ValidationRecord`
+ - 🔗 DEPENDS_ON -> `backend.src.schemas.health.DashboardHealthItem`
+ - 🔗 DEPENDS_ON -> `backend.src.schemas.health.HealthSummaryResponse`
+ - 🔗 CALLS -> `backend.src.core.superset_client.SupersetClient`
+ - 🔗 CALLS -> `backend.src.core.task_manager.cleanup.TaskCleanupService`
+ - ƒ **HealthService_init** (`Function`)
+ - 📝 Initialize health service with DB session and optional config access for dashboard metadata resolution.
+ - 🔗 BINDS_TO -> `backend.src.services.health_service.HealthService`
+ - 🔗 DEPENDS_ON -> `sqlalchemy.orm.Session`
+ - ƒ **_prime_dashboard_meta_cache** (`Function`)
+ - 📝 Warm dashboard slug/title cache with one Superset list fetch per environment.
+ - 🔗 DEPENDS_ON -> `backend.src.models.llm.ValidationRecord`
+ - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
+ - 🔗 CALLS -> `config_manager.get_environments`
+ - 🔗 CALLS -> `backend.src.core.superset_client.SupersetClient.get_dashboards_summary`
+ - ƒ **_resolve_dashboard_meta** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve slug/title for a dashboard referenced by persisted validation record.
+ - ƒ **get_health_summary** (`Function`)
+ - 📝 Aggregate latest validation status per dashboard and enrich rows with dashboard slug/title.
+ - 🔗 CALLS -> `self._prime_dashboard_meta_cache`
+ - 🔗 CALLS -> `self._resolve_dashboard_meta`
+ - ƒ **delete_validation_report** (`Function`)
+ - 📝 Delete one persisted health report and optionally clean linked task/log artifacts.
+ - 🔗 DEPENDS_ON -> `backend.src.models.llm.ValidationRecord`
+ - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.TaskManager`
+ - 🔗 CALLS -> `os.path.exists`
+ - 🔗 CALLS -> `os.remove`
+ - 🔗 CALLS -> `backend.src.core.task_manager.cleanup.TaskCleanupService.delete_task_with_logs`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **llm_provider** (`Module`)
+ - 📝 Service for managing LLM provider configurations with encrypted API keys.
+ - 🏗️ Layer: Domain
+ - 🔗 DEPENDS_ON -> `backend.src.core.database:Function`
+ - 🔗 DEPENDS_ON -> `backend.src.models.llm:Function`
+ - ƒ **_require_fernet_key** (`Function`) `[CRITICAL]`
+ - 📝 Load and validate the Fernet key used for secret encryption.
+ - 🔒 Invariant: Encryption initialization never falls back to a hardcoded secret.
+ - 🔗 DEPENDS_ON -> `backend.src.core.logger:Function`
+ - ℂ **EncryptionManager** (`Class`) `[CRITICAL]`
+ - 📝 Handles encryption and decryption of sensitive data like API keys.
+ - 🔒 Invariant: Uses only a validated secret key from environment.
+ - ƒ **EncryptionManager_init** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize the encryption manager with a Fernet key.
+ - ƒ **encrypt** (`Function`) `[TRIVIAL]`
+ - 📝 Encrypt a plaintext string.
+ - ƒ **decrypt** (`Function`) `[TRIVIAL]`
+ - 📝 Decrypt an encrypted string.
+ - ℂ **LLMProviderService** (`Class`)
+ - 📝 Service to manage LLM provider lifecycle.
+ - ƒ **LLMProviderService_init** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize the service with database session.
+ - ƒ **get_all_providers** (`Function`)
+ - 📝 Returns all configured LLM providers.
+ - ƒ **get_provider** (`Function`)
+ - 📝 Returns a single LLM provider by ID.
+ - ƒ **create_provider** (`Function`)
+ - 📝 Creates a new LLM provider with encrypted API key.
+ - ƒ **update_provider** (`Function`)
+ - 📝 Updates an existing LLM provider.
+ - ƒ **delete_provider** (`Function`)
+ - 📝 Deletes an LLM provider.
+ - ƒ **get_decrypted_api_key** (`Function`)
+ - 📝 Returns the decrypted API key for a provider.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **rbac_permission_catalog** (`Module`) `[TRIVIAL]`
+ - 📝 Discovers declared RBAC permissions from API routes/plugins and synchronizes them into auth database.
+ - 🏗️ Layer: Service
+ - 🔒 Invariant: Synchronization is idempotent for existing (resource, action) permission pairs.
+ - 🔗 CALLS -> `backend.src.core.plugin_loader.PluginLoader.get_all_plugin_configs`
+ - 🔗 DEPENDS_ON -> `backend.src.models.auth.Permission`
+ - 📦 **HAS_PERMISSION_PATTERN** (`Constant`) `[TRIVIAL]`
+ - 📝 Regex pattern for extracting has_permission("resource", "ACTION") declarations.
+ - 📦 **ROUTES_DIR** (`Constant`) `[TRIVIAL]`
+ - 📝 Absolute directory path where API route RBAC declarations are defined.
+ - ƒ **_iter_route_files** (`Function`) `[TRIVIAL]`
+ - 📝 Iterates API route files that may contain RBAC declarations.
+ - ƒ **_discover_route_permissions** (`Function`) `[TRIVIAL]`
+ - 📝 Extracts explicit has_permission declarations from API route source code.
+ - ƒ **_discover_route_permissions_cached** (`Function`) `[TRIVIAL]`
+ - 📝 Cache route permission discovery because route source files are static during normal runtime.
+ - ƒ **_discover_plugin_execute_permissions** (`Function`) `[TRIVIAL]`
+ - 📝 Derives dynamic task permissions of form plugin:{plugin_id}:EXECUTE from plugin registry.
+ - ƒ **_discover_plugin_execute_permissions_cached** (`Function`) `[TRIVIAL]`
+ - 📝 Cache dynamic plugin EXECUTE permission pairs by normalized plugin id tuple.
+ - ƒ **discover_declared_permissions** (`Function`) `[TRIVIAL]`
+ - 📝 Builds canonical RBAC permission catalog from routes and plugin registry.
+ - ƒ **sync_permission_catalog** (`Function`) `[TRIVIAL]`
+ - 📝 Persists missing RBAC permission pairs into auth database.
+- 📦 **services** (`Module`) `[TRIVIAL]`
+ - 📝 Package initialization for services module
+ - 🏗️ Layer: Core
+ - ƒ **__getattr__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **auth_service** (`Module`) `[CRITICAL]`
+ - 📝 Orchestrates credential authentication and ADFS JIT user provisioning.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Authentication succeeds only for active users with valid credentials; issued sessions encode subject and scopes from assigned roles.
+ - 🔗 DEPENDS_ON -> `AuthRepository`
+ - 🔗 DEPENDS_ON -> `verify_password`
+ - 🔗 DEPENDS_ON -> `create_access_token`
+ - 🔗 DEPENDS_ON -> `User`
+ - 🔗 DEPENDS_ON -> `Role`
+ - ℂ **AuthService** (`Class`)
+ - 📝 Provides high-level authentication services.
+ - ƒ **AuthService_init** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the authentication service with repository access over an active DB session.
+ - ƒ **AuthService.authenticate_user** (`Function`)
+ - 📝 Validates credentials and account state for local username/password authentication.
+ - ƒ **AuthService.create_session** (`Function`)
+ - 📝 Issues an access token payload for an already authenticated user.
+ - ƒ **AuthService.provision_adfs_user** (`Function`)
+ - 📝 Performs ADFS Just-In-Time provisioning and role synchronization from AD group mappings.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **authenticate_user** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **provision_adfs_user** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **git_service** (`Module`)
+ - 📝 Core Git logic using GitPython to manage dashboard repositories.
+ - 🏗️ Layer: Service
+ - 🔒 Invariant: All Git operations must be performed on a valid local directory.
+ - 🔗 DEPENDS_ON -> `backend.src.core.database.SessionLocal`
+ - 🔗 DEPENDS_ON -> `backend.src.models.config.AppConfigRecord`
+ - 🔗 DEPENDS_ON -> `backend.src.models.git.GitRepository`
+ - ℂ **GitService** (`Class`)
+ - 📝 Wrapper for GitPython operations with semantic logging and error handling.
+ - ƒ **GitService_init** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the GitService with a base path for repositories.
+ - 🔗 CALLS -> `GitService._resolve_base_path`
+ - 🔗 CALLS -> `GitService._ensure_base_path_exists`
+ - ƒ **_ensure_base_path_exists** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure the repositories root directory exists and is a directory.
+ - ƒ **_resolve_base_path** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve base repository directory from explicit argument or global storage settings.
+ - ƒ **_normalize_repo_key** (`Function`) `[TRIVIAL]`
+ - 📝 Convert user/dashboard-provided key to safe filesystem directory name.
+ - ƒ **_update_repo_local_path** (`Function`) `[TRIVIAL]`
+ - 📝 Persist repository local_path in GitRepository table when record exists.
+ - ƒ **_migrate_repo_directory** (`Function`) `[TRIVIAL]`
+ - 📝 Move legacy repository directory to target path and sync DB metadata.
+ - 🔗 CALLS -> `GitService._update_repo_local_path`
+ - ƒ **_ensure_gitflow_branches** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure standard GitFlow branches (main/dev/preprod) exist locally and on origin.
+ - ƒ **_get_repo_path** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves the local filesystem path for a dashboard's repository.
+ - 🔗 CALLS -> `GitService._normalize_repo_key`
+ - 🔗 CALLS -> `GitService._migrate_repo_directory`
+ - 🔗 CALLS -> `GitService._update_repo_local_path`
+ - ƒ **init_repo** (`Function`) `[TRIVIAL]`
+ - 📝 Initialize or clone a repository for a dashboard.
+ - 🔗 CALLS -> `GitService._get_repo_path`
+ - 🔗 CALLS -> `GitService._ensure_gitflow_branches`
+ - ƒ **delete_repo** (`Function`) `[TRIVIAL]`
+ - 📝 Remove local repository and DB binding for a dashboard.
+ - 🔗 CALLS -> `GitService._get_repo_path`
+ - ƒ **get_repo** (`Function`) `[TRIVIAL]`
+ - 📝 Get Repo object for a dashboard.
+ - 🔗 CALLS -> `GitService._get_repo_path`
+ - ƒ **configure_identity** (`Function`) `[TRIVIAL]`
+ - 📝 Configure repository-local Git committer identity for user-scoped operations.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **list_branches** (`Function`) `[TRIVIAL]`
+ - 📝 List all branches for a dashboard's repository.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **create_branch** (`Function`) `[TRIVIAL]`
+ - 📝 Create a new branch from an existing one.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **checkout_branch** (`Function`) `[TRIVIAL]`
+ - 📝 Switch to a specific branch.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **commit_changes** (`Function`) `[TRIVIAL]`
+ - 📝 Stage and commit changes.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **_extract_http_host** (`Function`) `[TRIVIAL]`
+ - 📝 Extract normalized host[:port] from HTTP(S) URL.
+ - ƒ **_strip_url_credentials** (`Function`) `[TRIVIAL]`
+ - 📝 Remove credentials from URL while preserving scheme/host/path.
+ - ƒ **_replace_host_in_url** (`Function`) `[TRIVIAL]`
+ - 📝 Replace source URL host with host from configured server URL.
+ - ƒ **_align_origin_host_with_config** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-align local origin host to configured Git server host when they drift.
+ - 🔗 CALLS -> `GitService._extract_http_host`
+ - 🔗 CALLS -> `GitService._replace_host_in_url`
+ - 🔗 CALLS -> `GitService._strip_url_credentials`
+ - ƒ **push_changes** (`Function`) `[TRIVIAL]`
+ - 📝 Push local commits to remote.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - 🔗 CALLS -> `GitService._align_origin_host_with_config`
+ - ƒ **_read_blob_text** (`Function`) `[TRIVIAL]`
+ - 📝 Read text from a Git blob.
+ - ƒ **_get_unmerged_file_paths** (`Function`) `[TRIVIAL]`
+ - 📝 List files with merge conflicts.
+ - ƒ **_build_unfinished_merge_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Build payload for unfinished merge state.
+ - 🔗 CALLS -> `GitService._get_unmerged_file_paths`
+ - ƒ **get_merge_status** (`Function`) `[TRIVIAL]`
+ - 📝 Get current merge status for a dashboard repository.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - 🔗 CALLS -> `GitService._build_unfinished_merge_payload`
+ - ƒ **get_merge_conflicts** (`Function`) `[TRIVIAL]`
+ - 📝 List all files with conflicts and their contents.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - 🔗 CALLS -> `GitService._read_blob_text`
+ - ƒ **resolve_merge_conflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve conflicts using specified strategy.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **abort_merge** (`Function`) `[TRIVIAL]`
+ - 📝 Abort ongoing merge.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **continue_merge** (`Function`) `[TRIVIAL]`
+ - 📝 Finalize merge after conflict resolution.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - 🔗 CALLS -> `GitService._get_unmerged_file_paths`
+ - ƒ **pull_changes** (`Function`) `[TRIVIAL]`
+ - 📝 Pull changes from remote.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - 🔗 CALLS -> `GitService._build_unfinished_merge_payload`
+ - ƒ **get_status** (`Function`) `[TRIVIAL]`
+ - 📝 Get current repository status (dirty files, untracked, etc.)
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **get_diff** (`Function`) `[TRIVIAL]`
+ - 📝 Generate diff for a file or the whole repository.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **get_commit_history** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieve commit history for a repository.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **test_connection** (`Function`) `[TRIVIAL]`
+ - 📝 Test connection to Git provider using PAT.
+ - ƒ **_normalize_git_server_url** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize Git server URL for provider API calls.
+ - ƒ **_gitea_headers** (`Function`) `[TRIVIAL]`
+ - 📝 Build Gitea API authorization headers.
+ - ƒ **_gitea_request** (`Function`) `[TRIVIAL]`
+ - 📝 Execute HTTP request against Gitea API with stable error mapping.
+ - 🔗 CALLS -> `GitService._normalize_git_server_url`
+ - 🔗 CALLS -> `GitService._gitea_headers`
+ - ƒ **get_gitea_current_user** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve current Gitea user for PAT.
+ - 🔗 CALLS -> `GitService._gitea_request`
+ - ƒ **list_gitea_repositories** (`Function`) `[TRIVIAL]`
+ - 📝 List repositories visible to authenticated Gitea user.
+ - 🔗 CALLS -> `GitService._gitea_request`
+ - ƒ **create_gitea_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Create repository in Gitea for authenticated user.
+ - 🔗 CALLS -> `GitService._gitea_request`
+ - ƒ **delete_gitea_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Delete repository in Gitea.
+ - 🔗 CALLS -> `GitService._gitea_request`
+ - ƒ **_gitea_branch_exists** (`Function`) `[TRIVIAL]`
+ - 📝 Check whether a branch exists in Gitea repository.
+ - 🔗 CALLS -> `GitService._gitea_request`
+ - ƒ **_build_gitea_pr_404_detail** (`Function`) `[TRIVIAL]`
+ - 📝 Build actionable error detail for Gitea PR 404 responses.
+ - 🔗 CALLS -> `GitService._gitea_branch_exists`
+ - ƒ **create_github_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Create repository in GitHub or GitHub Enterprise.
+ - 🔗 CALLS -> `GitService._normalize_git_server_url`
+ - ƒ **create_gitlab_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Create repository(project) in GitLab.
+ - 🔗 CALLS -> `GitService._normalize_git_server_url`
+ - ƒ **_parse_remote_repo_identity** (`Function`) `[TRIVIAL]`
+ - 📝 Parse owner/repo from remote URL for Git server API operations.
+ - ƒ **_derive_server_url_from_remote** (`Function`) `[TRIVIAL]`
+ - 📝 Build API base URL from remote repository URL without credentials.
+ - ƒ **promote_direct_merge** (`Function`) `[TRIVIAL]`
+ - 📝 Perform direct merge between branches in local repo and push target branch.
+ - 🔗 CALLS -> `GitService.get_repo`
+ - ƒ **create_gitea_pull_request** (`Function`) `[TRIVIAL]`
+ - 📝 Create pull request in Gitea.
+ - 🔗 CALLS -> `GitService._parse_remote_repo_identity`
+ - 🔗 CALLS -> `GitService._gitea_request`
+ - 🔗 CALLS -> `GitService._derive_server_url_from_remote`
+ - 🔗 CALLS -> `GitService._normalize_git_server_url`
+ - 🔗 CALLS -> `GitService._build_gitea_pr_404_detail`
+ - ƒ **create_github_pull_request** (`Function`) `[TRIVIAL]`
+ - 📝 Create pull request in GitHub or GitHub Enterprise.
+ - 🔗 CALLS -> `GitService._parse_remote_repo_identity`
+ - 🔗 CALLS -> `GitService._normalize_git_server_url`
+ - ƒ **create_gitlab_merge_request** (`Function`) `[TRIVIAL]`
+ - 📝 Create merge request in GitLab.
+ - 🔗 CALLS -> `GitService._parse_remote_repo_identity`
+ - 🔗 CALLS -> `GitService._normalize_git_server_url`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **mapping_service** (`Module`)
+ - 📝 Orchestrates database fetching and fuzzy matching suggestions.
+ - 🏗️ Layer: Service
+ - 🔒 Invariant: Suggestions are based on database names.
+ - 🔗 DEPENDS_ON -> `SupersetClient`
+ - 🔗 DEPENDS_ON -> `suggest_mappings`
+ - ℂ **MappingService** (`Class`)
+ - 📝 Service for handling database mapping logic.
+ - 🔗 DEPENDS_ON -> `SupersetClient`
+ - 🔗 DEPENDS_ON -> `suggest_mappings`
+ - ƒ **init** (`Function`)
+ - 📝 Initializes the mapping service with a config manager.
+ - 🔗 DEPENDS_ON -> `MappingService`
+ - ƒ **_get_client** (`Function`)
+ - 📝 Helper to get an initialized SupersetClient for an environment.
+ - 🔗 CALLS -> `SupersetClient`
+ - ƒ **get_suggestions** (`Function`)
+ - 📝 Fetches databases from both environments and returns fuzzy matching suggestions.
+ - 🔗 CALLS -> `_get_client`
+ - 🔗 CALLS -> `suggest_mappings`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_encryption_manager** (`Module`)
+ - 📝 Unit tests for EncryptionManager encrypt/decrypt functionality.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Encrypt+decrypt roundtrip always returns original plaintext.
+ - ℂ **TestEncryptionManager** (`Class`) `[TRIVIAL]`
+ - 📝 Validate EncryptionManager encrypt/decrypt roundtrip, uniqueness, and error handling.
+ - 🔗 BINDS_TO -> `test_encryption_manager`
+ - ƒ **test_encrypt_decrypt_roundtrip** (`Function`) `[TRIVIAL]`
+ - 📝 Encrypt then decrypt returns original plaintext.
+ - ƒ **test_encrypt_produces_different_output** (`Function`) `[TRIVIAL]`
+ - 📝 Same plaintext produces different ciphertext (Fernet uses random IV).
+ - ƒ **test_different_inputs_yield_different_ciphertext** (`Function`) `[TRIVIAL]`
+ - 📝 Different inputs produce different ciphertexts.
+ - ƒ **test_decrypt_invalid_data_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Decrypting invalid data raises InvalidToken.
+ - ƒ **test_encrypt_empty_string** (`Function`) `[TRIVIAL]`
+ - 📝 Encrypting and decrypting an empty string works.
+ - ƒ **test_missing_key_fails_fast** (`Function`) `[TRIVIAL]`
+ - 📝 Missing ENCRYPTION_KEY must abort initialization instead of using a fallback secret.
+ - ƒ **test_custom_key_roundtrip** (`Function`) `[TRIVIAL]`
+ - 📝 Custom Fernet key produces valid roundtrip.
+ - ƒ **_make_manager** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **encrypt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **decrypt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **encrypt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **decrypt** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_health_service** (`Module`)
+ - 📝 Unit tests for HealthService aggregation logic.
+ - ƒ **test_delete_validation_report_deletes_dashboard_scope_and_linked_tasks** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `test_health_service`
+ - ƒ **test_delete_validation_report_returns_false_for_unknown_record** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `test_health_service`
+ - ƒ **test_delete_validation_report_swallows_linked_task_cleanup_failure** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `test_health_service`
+ - ƒ **test_get_health_summary_aggregation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_health_summary_empty** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_health_summary_resolves_slug_and_title_from_superset** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_health_summary_reuses_dashboard_metadata_cache_across_service_instances** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_llm_plugin_persistence** (`Module`)
+ - 📝 Regression test for ValidationRecord persistence fields populated from task context.
+ - ℂ **_DummyLogger** (`Class`) `[TRIVIAL]`
+ - 📝 Minimal logger shim for TaskContext-like objects used in tests.
+ - 🔒 Invariant: Logging methods are no-ops and must not mutate test state.
+ - 🔗 BINDS_TO -> `test_llm_plugin_persistence:Module`
+ - ℂ **_FakeDBSession** (`Class`) `[TRIVIAL]`
+ - 📝 Captures persisted records for assertion and mimics SQLAlchemy session methods used by plugin.
+ - 🔒 Invariant: add/commit/close provide only persistence signals asserted by this test.
+ - 🔗 BINDS_TO -> `test_llm_plugin_persistence:Module`
+ - ƒ **test_dashboard_validation_plugin_persists_task_and_environment_ids** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure db ValidationRecord includes context.task_id and params.environment_id.
+ - 🔒 Invariant: Assertions remain restricted to persisted task/environment identity fields and session lifecycle signals.
+ - 🔗 BINDS_TO -> `test_llm_plugin_persistence:Module`
+ - ℂ **_FakeProviderService** (`Class`) `[TRIVIAL]`
+ - 📝 LLM provider service stub returning deterministic provider and decrypted API key for plugin tests.
+ - 🔒 Invariant: Returns same provider and key regardless of provider_id argument; no lookup logic.
+ - 🔗 BINDS_TO -> `test_dashboard_validation_plugin_persists_task_and_environment_ids:Function`
+ - ℂ **_FakeScreenshotService** (`Class`) `[TRIVIAL]`
+ - 📝 Screenshot service stub that accepts capture_dashboard calls without side effects.
+ - 🔒 Invariant: capture_dashboard is intentionally permissive for this persistence-focused test and does not validate argument values.
+ - 🔗 BINDS_TO -> `test_dashboard_validation_plugin_persists_task_and_environment_ids:Function`
+ - ℂ **_FakeLLMClient** (`Class`) `[TRIVIAL]`
+ - 📝 Deterministic LLM client double returning canonical analysis payload for persistence-path assertions.
+ - 🔒 Invariant: analyze_dashboard is side-effect free and returns schema-compatible PASS result.
+ - 🔗 BINDS_TO -> `test_dashboard_validation_plugin_persists_task_and_environment_ids:Function`
+ - ℂ **_FakeNotificationService** (`Class`) `[TRIVIAL]`
+ - 📝 Notification service stub that accepts plugin dispatch_report payload without introducing side effects.
+ - 🔒 Invariant: dispatch_report accepts arbitrary keyword payloads because this test verifies persistence fields, not notification payload schema.
+ - 🔗 BINDS_TO -> `test_dashboard_validation_plugin_persists_task_and_environment_ids:Function`
+ - ℂ **_FakeConfigManager** (`Class`) `[TRIVIAL]`
+ - 📝 Config manager stub providing storage root path and minimal settings for plugin execution path.
+ - 🔒 Invariant: Only storage.root_path and llm fields are safe to access; all other settings fields are absent.
+ - 🔗 BINDS_TO -> `test_dashboard_validation_plugin_persists_task_and_environment_ids:Function`
+ - ℂ **_FakeSupersetClient** (`Class`) `[TRIVIAL]`
+ - 📝 Superset client stub exposing network.request as a lambda that returns empty result list.
+ - 🔒 Invariant: network.request intentionally accepts arbitrary keyword payloads because response shape, not request signature, is the persistence-path dependency.
+ - 🔗 BINDS_TO -> `test_dashboard_validation_plugin_persists_task_and_environment_ids:Function`
+ - ƒ **with_source** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **info** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **debug** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **warning** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **error** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **add** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **commit** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **close** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_provider** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_decrypted_api_key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **capture_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **analyze_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dispatch_report** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_environment** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_config** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_llm_prompt_templates** (`Module`)
+ - 📝 Validate normalization and rendering behavior for configurable LLM prompt templates.
+ - 🏗️ Layer: Domain Tests
+ - 🔒 Invariant: All required prompt keys remain available after normalization.
+ - 🔗 DEPENDS_ON -> `backend.src.services.llm_prompt_templates:Function`
+ - ƒ **test_normalize_llm_settings_adds_default_prompts** (`Function`)
+ - 📝 Ensure legacy/partial llm settings are expanded with all prompt defaults.
+ - 🔗 BINDS_TO -> `test_llm_prompt_templates`
+ - ƒ **test_normalize_llm_settings_keeps_custom_prompt_values** (`Function`)
+ - 📝 Ensure user-customized prompt values are preserved during normalization.
+ - 🔗 BINDS_TO -> `test_llm_prompt_templates`
+ - ƒ **test_render_prompt_replaces_known_placeholders** (`Function`)
+ - 📝 Ensure template placeholders are deterministically replaced.
+ - 🔗 BINDS_TO -> `test_llm_prompt_templates`
+ - ƒ **test_is_multimodal_model_detects_known_vision_models** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure multimodal model detection recognizes common vision-capable model names.
+ - 🔗 BINDS_TO -> `test_llm_prompt_templates`
+ - ƒ **test_resolve_bound_provider_id_prefers_binding_then_default** (`Function`) `[TRIVIAL]`
+ - 📝 Verify provider binding resolution priority.
+ - 🔗 BINDS_TO -> `test_llm_prompt_templates`
+ - ƒ **test_normalize_llm_settings_keeps_assistant_planner_settings** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure assistant planner provider/model fields are preserved and normalized.
+ - 🔗 BINDS_TO -> `test_llm_prompt_templates`
+- 📦 **test_llm_provider** (`Module`)
+ - 📝 Contract testing for LLMProviderService and EncryptionManager
+ - ƒ **mock_db** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **service** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **_test_encryption_key_fixture** (`Global`) `[TRIVIAL]`
+ - 📝 Ensure encryption-dependent provider tests run with a valid Fernet key.
+ - 🔗 DEPENDS_ON -> `pytest:Module`
+- ƒ **test_encryption_cycle** (`Function`) `[TRIVIAL]`
+ - 📝 Verify EncryptionManager round-trip encryption/decryption invariant for non-empty secrets.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- ƒ **test_empty_string_encryption** (`Function`) `[TRIVIAL]`
+ - 📝 Verify EncryptionManager preserves empty-string payloads through encrypt/decrypt cycle.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- ƒ **test_decrypt_invalid_data** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure decrypt rejects invalid ciphertext input by raising an exception.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- 📦 **mock_db** (`Fixture`) `[TRIVIAL]`
+ - 📝 MagicMock(spec=Session) fixture providing a constrained DB session double for LLMProviderService tests.
+ - 🔒 Invariant: Chained calls beyond Session spec create unconstrained intermediate mocks; only top-level query/add/commit are spec-enforced.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- 📦 **service** (`Fixture`) `[TRIVIAL]`
+ - 📝 LLMProviderService fixture wired to mock_db for provider CRUD tests.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- ƒ **test_get_all_providers** (`Function`) `[TRIVIAL]`
+ - 📝 Verify provider list retrieval issues query/all calls on the backing DB session.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- ƒ **test_create_provider** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure provider creation persists entity and stores API key in encrypted form.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- ƒ **test_get_decrypted_api_key** (`Function`) `[TRIVIAL]`
+ - 📝 Verify service decrypts stored provider API key for an existing provider record.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- ƒ **test_get_decrypted_api_key_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Verify missing provider lookup returns None instead of attempting decryption.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- ƒ **test_update_provider_ignores_masked_placeholder_api_key** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure masked placeholder API keys do not overwrite previously encrypted provider secrets.
+ - 🔗 BINDS_TO -> `test_llm_provider:Module`
+- 📦 **TestResourceService** (`Module`)
+ - 📝 Unit tests for ResourceService
+ - 🏗️ Layer: Service
+ - 🔒 Invariant: Resource summaries preserve task linkage and status projection behavior.
+ - ƒ **test_get_dashboards_with_status** (`Function`) `[TRIVIAL]`
+ - 📝 Validate dashboard enrichment includes git/task status projections.
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_datasets_with_status** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_activity_summary** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_git_status_for_dashboard_no_repo** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_last_task_for_resource** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_extract_resource_name_from_task** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_last_task_for_resource_empty_tasks** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_last_task_for_resource_no_match** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_dashboards_with_status_handles_mixed_naive_and_aware_task_datetimes** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_dashboards_with_status_prefers_latest_decisive_validation_status_over_newer_unknown** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_dashboards_with_status_falls_back_to_latest_unknown_without_decisive_history** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+ - ƒ **test_get_last_task_for_resource_handles_mixed_naive_and_aware_created_at** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestResourceService`
+- 📦 **test_rbac_permission_catalog** (`Module`)
+ - 📝 Verifies RBAC permission catalog discovery and idempotent synchronization behavior.
+ - 🏗️ Layer: Service Tests
+ - 🔒 Invariant: Synchronization adds only missing normalized permission pairs.
+ - ƒ **test_discover_route_permissions_extracts_declared_pairs_and_ignores_tests** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures route-scanner extracts has_permission pairs from route files and skips __tests__.
+ - 🔗 BINDS_TO -> `test_rbac_permission_catalog`
+ - ƒ **test_discover_declared_permissions_unions_route_and_plugin_permissions** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures full catalog includes route-level permissions plus dynamic plugin EXECUTE rights.
+ - 🔗 BINDS_TO -> `test_rbac_permission_catalog`
+ - ƒ **test_sync_permission_catalog_inserts_only_missing_normalized_pairs** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures synchronization inserts only missing pairs and normalizes action/resource tokens.
+ - 🔗 BINDS_TO -> `test_rbac_permission_catalog`
+ - ƒ **test_sync_permission_catalog_is_noop_when_all_permissions_exist** (`Function`) `[TRIVIAL]`
+ - 📝 Ensures synchronization is idempotent when all declared pairs already exist.
+ - 🔗 BINDS_TO -> `test_rbac_permission_catalog`
+- 📦 **providers** (`Module`) `[CRITICAL]`
+ - 📝 Defines abstract base and concrete implementations for external notification delivery.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Sensitive credentials must be handled via encrypted config.
+ - 🔗 DEPENDS_ON -> `NotificationProvider`
+ - 🔗 DEPENDS_ON -> `SMTPProvider`
+ - 🔗 DEPENDS_ON -> `TelegramProvider`
+ - 🔗 DEPENDS_ON -> `SlackProvider`
+ - ℂ **NotificationProvider** (`Class`) `[TRIVIAL]`
+ - 📝 Abstract base class for all notification providers.
+ - ℂ **SMTPProvider** (`Class`)
+ - 📝 Delivers notifications via SMTP.
+ - 🔗 INHERITS -> `NotificationProvider`
+ - ℂ **TelegramProvider** (`Class`)
+ - 📝 Delivers notifications via Telegram Bot API.
+ - 🔗 INHERITS -> `NotificationProvider`
+ - ℂ **SlackProvider** (`Class`)
+ - 📝 Delivers notifications via Slack Webhooks or API.
+ - 🔗 INHERITS -> `NotificationProvider`
+ - ƒ **send** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **send** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **send** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **send** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **service** (`Module`) `[CRITICAL]`
+ - 📝 Orchestrates notification routing based on user preferences and policy context.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Missing profile or provider config must not crash the pipeline.
+ - 🔗 DEPENDS_ON -> `backend.src.services.notifications.providers`
+ - 🔗 DEPENDS_ON -> `backend.src.services.profile_service`
+ - 🔗 DEPENDS_ON -> `backend.src.models.llm`
+ - ℂ **NotificationService** (`Class`) `[TRIVIAL]`
+ - 📝 Routes validation reports to appropriate users and channels.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_initialize_providers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **dispatch_report** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_should_notify** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_resolve_targets** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_find_dashboard_owners** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_build_body** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **notifications** (`Package`) `[TRIVIAL]`
+ - 📝 Notification service package root.
+- 📦 **test_notification_service** (`Module`) `[TRIVIAL]`
+ - 📝 Unit tests for NotificationService routing and dispatch logic.
+ - ƒ **mock_db** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **mock_config_manager** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **service** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_should_notify_fail_only** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_should_notify_warn_and_fail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_resolve_targets_owner_routing** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_resolve_targets_custom_channels** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_dispatch_report_skips_if_no_notify** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_dispatch_report_calls_providers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **compliance_orchestrator** (`Module`) `[CRITICAL]`
+ - 📝 Execute mandatory clean compliance stages and produce final COMPLIANT/BLOCKED/FAILED outcome.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: COMPLIANT is impossible when any mandatory stage fails.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.report_builder`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - ℂ **CleanComplianceOrchestrator** (`Class`) `[TRIVIAL]`
+ - 📝 Coordinate clean-release compliance verification stages.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Bind repository dependency used for orchestrator persistence and lookups.
+ - ƒ **start_check_run** (`Function`) `[TRIVIAL]`
+ - 📝 Initiate a new compliance run session.
+ - ƒ **execute_stages** (`Function`) `[TRIVIAL]`
+ - 📝 Execute or accept compliance stage outcomes and set intermediate/final check-run status fields.
+ - ƒ **finalize_run** (`Function`) `[TRIVIAL]`
+ - 📝 Finalize run status based on cumulative stage results.
+ - ƒ **run_check_legacy** (`Function`) `[TRIVIAL]`
+ - 📝 Legacy wrapper for compatibility with previous orchestrator call style.
+- 📦 **compliance_execution_service** (`Module`) `[CRITICAL]`
+ - 📝 Create and execute compliance runs with trusted snapshots, deterministic stages, violations and immutable report persistence.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: A run binds to exactly one candidate/manifest/policy/registry snapshot set.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.policy_resolution_service`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.report_builder`
+ - ℂ **ComplianceExecutionResult** (`Class`) `[TRIVIAL]`
+ - 📝 Return envelope for compliance execution with run/report and persisted stage artifacts.
+ - ℂ **ComplianceExecutionService** (`Class`) `[TRIVIAL]`
+ - 📝 Execute clean-release compliance lifecycle over trusted snapshots and immutable evidence.
+ - ƒ **_resolve_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve explicit manifest or fallback to latest candidate manifest.
+ - ƒ **_persist_stage_run** (`Function`) `[TRIVIAL]`
+ - 📝 Persist stage run if repository supports stage records.
+ - ƒ **_persist_violations** (`Function`) `[TRIVIAL]`
+ - 📝 Persist stage violations via repository adapters.
+ - ƒ **execute_run** (`Function`) `[TRIVIAL]`
+ - 📝 Execute compliance run stages and finalize immutable report on terminal success.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **manifest_builder** (`Module`)
+ - 📝 Build deterministic distribution manifest from classified artifact input.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Equal semantic artifact sets produce identical deterministic hash values.
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - ƒ **build_distribution_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Build DistributionManifest with deterministic hash and validated counters.
+ - ƒ **build_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Legacy compatibility wrapper for old manifest builder import paths.
+ - ƒ **_stable_hash_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **policy_engine** (`Module`) `[CRITICAL]`
+ - 📝 Evaluate artifact/source policies for enterprise clean profile with deterministic outcomes.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Enterprise-clean policy always treats non-registry sources as violations.
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release.CleanProfilePolicy`
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release.ResourceSourceRegistry`
+ - ℂ **CleanPolicyEngine** (`Class`) `[TRIVIAL]`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validate_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **classify_artifact** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **validate_resource_source** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **evaluate_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **clean_release_exceptions** (`Module`)
+ - 📝 Domain exceptions for clean release compliance subsystem.
+ - 🏗️ Layer: Domain
+- 📦 **candidate_service** (`Module`) `[CRITICAL]`
+ - 📝 Register release candidates with validated artifacts and advance lifecycle through legal transitions.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Candidate lifecycle transitions are delegated to domain guard logic.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - ƒ **_validate_artifacts** (`Function`) `[TRIVIAL]`
+ - 📝 Validate raw artifact payload list for required fields and shape.
+ - ƒ **register_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Register a candidate and persist its artifacts with legal lifecycle transition.
+- 📦 **clean_release_enums** (`Module`)
+ - 📝 Canonical enums for clean release lifecycle and compliance.
+ - 🏗️ Layer: Domain
+- 📦 **publication_service** (`Module`) `[CRITICAL]`
+ - 📝 Enforce publication and revocation gates with append-only publication records.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Publication records are append-only snapshots; revoke mutates only publication status for targeted record.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.approval_service`
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.audit_service`
+ - ƒ **_get_or_init_publications_store** (`Function`) `[TRIVIAL]`
+ - 📝 Provide in-memory append-only publication storage.
+ - ƒ **_latest_publication_for_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve latest publication record for candidate.
+ - ƒ **_latest_approval_for_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve latest approval decision from repository decision store.
+ - ƒ **publish_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Create immutable publication record for approved candidate.
+ - ƒ **revoke_publication** (`Function`) `[TRIVIAL]`
+ - 📝 Revoke existing publication record without deleting history.
+- 📦 **artifact_catalog_loader** (`Module`)
+ - 📝 Load bootstrap artifact catalogs for clean release real-mode flows.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Artifact catalog must produce deterministic CandidateArtifact entries with required identity and checksum fields.
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release.CandidateArtifact`
+ - ƒ **load_bootstrap_artifacts** (`Function`) `[TRIVIAL]`
+ - 📝 Parse artifact catalog JSON into CandidateArtifact models for TUI/bootstrap flows.
+- 📦 **audit_service** (`Module`)
+ - 📝 Provide lightweight audit hooks for clean release preparation/check/report lifecycle.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Audit hooks are append-only log actions.
+ - 🔗 DEPENDS_ON -> `backend.src.core.logger`
+ - ƒ **_append_event** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **audit_preparation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **audit_check_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **audit_violation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **audit_report** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **source_isolation** (`Module`)
+ - 📝 Validate that all resource endpoints belong to the approved internal source registry.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Any endpoint outside enabled registry entries is treated as external-source violation.
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release.ResourceSourceRegistry`
+ - ƒ **validate_internal_sources** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **report_builder** (`Module`) `[CRITICAL]`
+ - 📝 Build and persist compliance reports with consistent counter invariants.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: blocking_violations_count never exceeds violations_count.
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **build_report_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **persist_report** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **repository** (`Module`)
+ - 📝 Provide repository adapter for clean release entities with deterministic access methods.
+ - 🏗️ Layer: Infra
+ - 🔒 Invariant: Repository operations are side-effect free outside explicit save/update calls.
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - ℂ **CleanReleaseRepository** (`Class`) `[TRIVIAL]`
+ - 📝 Data access object for clean release lifecycle.
+ - ƒ **save_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_active_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_registry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_registry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_artifact** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_artifacts_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_distribution_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_distribution_manifest** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_check_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_check_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_compliance_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_compliance_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_report** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_report** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_violation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_violations_by_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_manifests_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **clear_history** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **preparation_service** (`Module`)
+ - 📝 Prepare release candidate by policy evaluation and deterministic manifest creation.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Candidate preparation always persists manifest and candidate status deterministically.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.policy_engine`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.manifest_builder`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - ƒ **prepare_candidate_legacy** (`Function`) `[TRIVIAL]`
+ - 📝 Legacy compatibility wrapper kept for migration period.
+ - ƒ **prepare_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **clean_release_facade** (`Module`)
+ - 📝 Unified entry point for clean release operations.
+ - 🏗️ Layer: Application
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolve_active_policy_snapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **resolve_active_registry_snapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_candidate_overview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_candidates** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **policy_resolution_service** (`Module`) `[CRITICAL]`
+ - 📝 Resolve trusted policy and registry snapshots from ConfigManager without runtime overrides.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Trusted snapshot resolution is based only on ConfigManager active identifiers.
+ - 🔗 DEPENDS_ON -> `backend.src.core.config_manager`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.exceptions`
+ - ƒ **resolve_trusted_policy_snapshots** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve immutable trusted policy and registry snapshots using active config IDs only.
+- 📦 **demo_data_service** (`Module`)
+ - 📝 Provide deterministic namespace helpers and isolated in-memory repository creation for demo and real modes.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Demo and real namespaces must never collide for generated physical identifiers.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - ƒ **resolve_namespace** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve canonical clean-release namespace for requested mode.
+ - ƒ **build_namespaced_id** (`Function`) `[TRIVIAL]`
+ - 📝 Build storage-safe physical identifier under mode namespace.
+ - ƒ **create_isolated_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Create isolated in-memory repository instance for selected mode namespace.
+- 📦 **clean_release_dto** (`Module`)
+ - 📝 Data Transfer Objects for clean release compliance subsystem.
+ - 🏗️ Layer: Application
+- 📦 **clean_release_mappers** (`Module`)
+ - 📝 Map between domain entities (SQLAlchemy models) and DTOs.
+ - 🏗️ Layer: Application
+ - ƒ **map_candidate_to_dto** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **map_manifest_to_dto** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **map_run_to_dto** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **map_report_to_dto** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **clean_release** (`Module`)
+ - 📝 Redesigned clean release compliance subsystem.
+ - 🏗️ Layer: Domain
+- 📦 **manifest_service** (`Module`) `[CRITICAL]`
+ - 📝 Build immutable distribution manifests with deterministic digest and version increment.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Existing manifests are never mutated.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.manifest_builder`
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - ƒ **build_manifest_snapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Create a new immutable manifest version for a candidate.
+- 📦 **approval_service** (`Module`) `[CRITICAL]`
+ - 📝 Enforce approval/rejection gates over immutable compliance reports.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Approval is allowed only for PASSED report bound to candidate; decisions are append-only.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.repository`
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.audit_service`
+ - ƒ **_get_or_init_decisions_store** (`Function`) `[TRIVIAL]`
+ - 📝 Provide append-only in-memory storage for approval decisions.
+ - ƒ **_latest_decision_for_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve latest approval decision for candidate from append-only store.
+ - ƒ **_resolve_candidate_and_report** (`Function`) `[TRIVIAL]`
+ - 📝 Validate candidate/report existence and ownership prior to decision persistence.
+ - ƒ **approve_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Persist immutable APPROVED decision and advance candidate lifecycle to APPROVED.
+ - ƒ **reject_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Persist immutable REJECTED decision without promoting candidate lifecycle.
+- 📦 **TestAuditService** (`Module`)
+ - 📝 Validate audit hooks emit expected log patterns for clean release lifecycle.
+ - 🏗️ Layer: Infra
+ - ƒ **test_audit_preparation** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuditService`
+ - ƒ **test_audit_check_run** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuditService`
+ - ƒ **test_audit_report** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuditService`
+- ƒ **test_policy_valid** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_policy_engine`
+- ƒ **test_missing_registry_ref** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_policy_engine`
+- ƒ **test_conflicting_registry** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_policy_engine`
+- ƒ **test_classify_artifact** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_policy_engine`
+- ƒ **test_validate_resource_source** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_policy_engine`
+- ƒ **test_evaluate_candidate** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_policy_engine`
+- 📦 **test_policy_engine** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/src/services/clean_release/__tests__/test_policy_engine.py
+ - 🏗️ Layer: Unknown
+ - ƒ **enterprise_clean_setup** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestComplianceOrchestrator** (`Module`)
+ - 📝 Validate compliance orchestrator stage transitions and final status derivation.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Failed mandatory stage forces BLOCKED terminal status.
+ - ƒ **test_orchestrator_stage_failure_blocks_release** (`Function`) `[TRIVIAL]`
+ - 📝 Verify mandatory stage failure forces BLOCKED final status.
+ - 🔗 BINDS_TO -> `TestComplianceOrchestrator`
+ - ƒ **test_orchestrator_compliant_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Verify happy path where all mandatory stages pass yields COMPLIANT.
+ - 🔗 BINDS_TO -> `TestComplianceOrchestrator`
+ - ƒ **test_orchestrator_missing_stage_result** (`Function`) `[TRIVIAL]`
+ - 📝 Verify incomplete mandatory stage set cannot end as COMPLIANT and results in FAILED.
+ - 🔗 BINDS_TO -> `TestComplianceOrchestrator`
+ - ƒ **test_orchestrator_report_generation_error** (`Function`) `[TRIVIAL]`
+ - 📝 Verify downstream report errors do not mutate orchestrator final status.
+ - 🔗 BINDS_TO -> `TestComplianceOrchestrator`
+- 📦 **TestReportBuilder** (`Module`)
+ - 📝 Validate compliance report builder counter integrity and blocked-run constraints.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: blocked run requires at least one blocking violation.
+ - ƒ **_terminal_run** (`Function`) `[TRIVIAL]`
+ - 📝 Build terminal/non-terminal run fixtures for report builder tests.
+ - 🔗 BINDS_TO -> `TestReportBuilder`
+ - ƒ **_blocking_violation** (`Function`) `[TRIVIAL]`
+ - 📝 Build a blocking violation fixture for blocked report scenarios.
+ - 🔗 BINDS_TO -> `TestReportBuilder`
+ - ƒ **test_report_builder_blocked_requires_blocking_violations** (`Function`) `[TRIVIAL]`
+ - 📝 Verify BLOCKED run requires at least one blocking violation.
+ - 🔗 BINDS_TO -> `TestReportBuilder`
+ - ƒ **test_report_builder_blocked_with_two_violations** (`Function`) `[TRIVIAL]`
+ - 📝 Verify report builder generates conformant payload for a BLOCKED run with violations.
+ - 🔗 BINDS_TO -> `TestReportBuilder`
+ - ƒ **test_report_builder_counter_consistency** (`Function`) `[TRIVIAL]`
+ - 📝 Verify violations counters remain consistent for blocking payload.
+ - 🔗 BINDS_TO -> `TestReportBuilder`
+ - ƒ **test_missing_operator_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Validate non-terminal run prevents operator summary/report generation.
+ - 🔗 BINDS_TO -> `TestReportBuilder`
+- 📦 **TestManifestBuilder** (`Module`)
+ - 📝 Validate deterministic manifest generation behavior for US1.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Same input artifacts produce identical deterministic hash.
+ - ƒ **test_manifest_deterministic_hash_for_same_input** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure hash is stable for same candidate/policy/artifact input.
+ - 🔗 BINDS_TO -> `TestManifestBuilder`
+- 📦 **TestStages** (`Module`)
+ - 📝 Validate final status derivation logic from stage results.
+ - 🏗️ Layer: Domain
+ - ƒ **test_derive_final_status_compliant** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestStages`
+ - ƒ **test_derive_final_status_blocked** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestStages`
+ - ƒ **test_derive_final_status_failed_missing** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestStages`
+ - ƒ **test_derive_final_status_failed_skipped** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestStages`
+- 📦 **TestSourceIsolation** (`Module`)
+ - 📝 Verify internal source registry validation behavior.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: External endpoints always produce blocking violations.
+ - ƒ **_registry** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestSourceIsolation`
+ - ƒ **test_validate_internal_sources_all_internal_ok** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestSourceIsolation`
+ - ƒ **test_validate_internal_sources_external_blocked** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestSourceIsolation`
+- 📦 **TestPreparationService** (`Module`)
+ - 📝 Validate release candidate preparation flow, including policy evaluation and manifest persisting.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Candidate preparation always persists manifest and candidate status deterministically.
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.preparation_service:Module`
+ - ƒ **_mock_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Build a valid clean profile policy fixture for preparation tests.
+ - 🔗 BINDS_TO -> `TestPreparationService`
+ - ƒ **_mock_registry** (`Function`) `[TRIVIAL]`
+ - 📝 Build an internal-only source registry fixture for preparation tests.
+ - 🔗 BINDS_TO -> `TestPreparationService`
+ - ƒ **_mock_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Build a draft release candidate fixture with provided identifier.
+ - 🔗 BINDS_TO -> `TestPreparationService`
+ - ƒ **test_prepare_candidate_success** (`Function`) `[TRIVIAL]`
+ - 📝 Verify candidate transitions to PREPARED when evaluation returns no violations.
+ - 🔗 BINDS_TO -> `TestPreparationService`
+ - ƒ **test_prepare_candidate_with_violations** (`Function`) `[TRIVIAL]`
+ - 📝 Verify candidate transitions to BLOCKED when evaluation returns blocking violations.
+ - 🔗 BINDS_TO -> `TestPreparationService`
+ - ƒ **test_prepare_candidate_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Verify preparation raises ValueError when candidate does not exist.
+ - 🔗 BINDS_TO -> `TestPreparationService`
+ - ƒ **test_prepare_candidate_no_active_policy** (`Function`) `[TRIVIAL]`
+ - 📝 Verify preparation raises ValueError when no active policy is available.
+ - 🔗 BINDS_TO -> `TestPreparationService`
+- 📦 **no_external_endpoints** (`Module`)
+ - 📝 Block manifest payloads that expose external endpoints outside trusted schemes and hosts.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Endpoint outside allowed scheme/host always yields BLOCKED stage decision.
+ - 🔗 IMPLEMENTS -> `backend.src.services.clean_release.stages.base.ComplianceStage`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages.base`
+ - ℂ **NoExternalEndpointsStage** (`Class`) `[TRIVIAL]`
+ - 📝 Validate endpoint references from manifest against trusted registry.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **internal_sources_only** (`Module`)
+ - 📝 Verify manifest-declared sources belong to trusted internal registry allowlist.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Any source host outside allowed_hosts yields BLOCKED decision with at least one violation.
+ - 🔗 IMPLEMENTS -> `backend.src.services.clean_release.stages.base.ComplianceStage`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages.base`
+ - ℂ **InternalSourcesOnlyStage** (`Class`) `[TRIVIAL]`
+ - 📝 Enforce internal-source-only policy from trusted registry snapshot.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **data_purity** (`Module`)
+ - 📝 Evaluate manifest purity counters and emit blocking violations for prohibited artifacts.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: prohibited_detected_count > 0 always yields BLOCKED stage decision.
+ - 🔗 IMPLEMENTS -> `backend.src.services.clean_release.stages.base.ComplianceStage`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages.base`
+ - ℂ **DataPurityStage** (`Class`) `[TRIVIAL]`
+ - 📝 Validate manifest summary for prohibited artifacts.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **base** (`Module`)
+ - 📝 Define shared contracts and helpers for pluggable clean-release compliance stages.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Stage execution is deterministic for equal input context.
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - ℂ **ComplianceStageContext** (`Class`) `[TRIVIAL]`
+ - 📝 Immutable input envelope passed to each compliance stage.
+ - ℂ **StageExecutionResult** (`Class`) `[TRIVIAL]`
+ - 📝 Structured stage output containing decision, details and violations.
+ - ℂ **ComplianceStage** (`Class`) `[TRIVIAL]`
+ - 📝 Protocol for pluggable stage implementations.
+ - ƒ **build_stage_run_record** (`Function`) `[TRIVIAL]`
+ - 📝 Build persisted stage run record from stage result.
+ - ƒ **build_violation** (`Function`) `[TRIVIAL]`
+ - 📝 Construct a compliance violation with normalized defaults.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **manifest_consistency** (`Module`)
+ - 📝 Ensure run is bound to the exact manifest snapshot and digest used at run creation time.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Digest mismatch between run and manifest yields ERROR with blocking violation evidence.
+ - 🔗 IMPLEMENTS -> `backend.src.services.clean_release.stages.base.ComplianceStage`
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.stages.base`
+ - ℂ **ManifestConsistencyStage** (`Class`) `[TRIVIAL]`
+ - 📝 Validate run/manifest linkage consistency.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **stages** (`Module`)
+ - 📝 Define compliance stage order and helper functions for deterministic run-state evaluation.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Stage order remains deterministic for all compliance runs.
+ - 🔗 DEPENDS_ON -> `backend.src.models.clean_release`
+ - ƒ **build_default_stages** (`Function`) `[TRIVIAL]`
+ - 📝 Build default deterministic stage pipeline implementation order.
+ - ƒ **stage_result_map** (`Function`) `[TRIVIAL]`
+ - 📝 Convert stage result list to dictionary by stage name.
+ - ƒ **missing_mandatory_stages** (`Function`) `[TRIVIAL]`
+ - 📝 Identify mandatory stages that are absent from run results.
+ - ƒ **derive_final_status** (`Function`) `[TRIVIAL]`
+ - 📝 Derive final run status from stage results with deterministic blocking behavior.
+- 📦 **candidate_repository** (`Module`)
+ - 📝 Persist and query release candidates.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **compliance_repository** (`Module`)
+ - 📝 Persist and query compliance runs, stage runs, and violations.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_runs_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_stage_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_stages_by_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_violation** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_violations** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_violations_by_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **audit_repository** (`Module`)
+ - 📝 Persist and query audit logs for clean release operations.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **log** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **manifest_repository** (`Module`)
+ - 📝 Persist and query distribution manifests.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_latest_for_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **artifact_repository** (`Module`)
+ - 📝 Persist and query candidate artifacts.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_all** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **policy_repository** (`Module`)
+ - 📝 Persist and query policy and registry snapshots.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_policy_snapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_policy_snapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_registry_snapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_registry_snapshot** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **report_repository** (`Module`)
+ - 📝 Persist and query compliance reports.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_by_run** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **approval_repository** (`Module`)
+ - 📝 Persist and query approval decisions.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_latest_for_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **publication_repository** (`Module`)
+ - 📝 Persist and query publication records.
+ - 🏗️ Layer: Infra
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_by_id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_latest_for_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_by_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **clean_release_repositories** (`Module`)
+ - 📝 Export all clean release repositories.
+- 📦 **normalizer** (`Module`) `[CRITICAL]`
+ - 📝 Convert task manager task objects into canonical unified TaskReport entities with deterministic fallback behavior.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Unknown task types and partial payloads remain visible via fallback mapping.
+ - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.models.Task:Function`
+ - 🔗 DEPENDS_ON -> `backend.src.models.report:Function`
+ - 🔗 DEPENDS_ON -> `backend.src.services.reports.type_profiles:Function`
+ - ƒ **status_to_report_status** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize internal task status to canonical report status.
+ - ƒ **build_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Build deterministic user-facing summary from task payload and status.
+ - ƒ **extract_error_context** (`Function`) `[TRIVIAL]`
+ - 📝 Extract normalized error context and next actions for failed/partial reports.
+ - ƒ **normalize_task_report** (`Function`) `[TRIVIAL]`
+ - 📝 Convert one Task to canonical TaskReport envelope.
+- 📦 **type_profiles** (`Module`) `[TRIVIAL]`
+ - 📝 Deterministic mapping of plugin/task identifiers to canonical report task types and fallback profile metadata.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Unknown input always resolves to TaskType.UNKNOWN with a single fallback profile.
+ - 🔗 DEPENDS_ON -> `TaskType`
+ - 📦 **PLUGIN_TO_TASK_TYPE** (`Data`) `[TRIVIAL]`
+ - 📝 Maps plugin identifiers to normalized report task types.
+ - 📦 **TASK_TYPE_PROFILES** (`Data`) `[TRIVIAL]`
+ - 📝 Profile metadata registry for each normalized task type.
+ - ƒ **resolve_task_type** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve canonical task type from plugin/task identifier with guaranteed fallback.
+ - ƒ **get_type_profile** (`Function`) `[TRIVIAL]`
+ - 📝 Return deterministic profile metadata for a task type.
+- 📦 **report_service** (`Module`) `[CRITICAL]`
+ - 📝 Aggregate, normalize, filter, and paginate task reports for unified list/detail API use cases.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: List responses are deterministic and include applied filter echo metadata.
+ - 🔗 DEPENDS_ON -> `backend.src.core.task_manager.manager.TaskManager:Function`
+ - 🔗 DEPENDS_ON -> `backend.src.models.report:Function`
+ - 🔗 DEPENDS_ON -> `backend.src.services.reports.normalizer:Function`
+ - ℂ **ReportsService** (`Class`) `[CRITICAL]`
+ - 📝 Service layer for list/detail report retrieval and normalization.
+ - 🔒 Invariant: Service methods are read-only over task history source.
+ - ƒ **init** (`Function`) `[CRITICAL]`
+ - 📝 Initialize service with TaskManager dependency.
+ - 🔒 Invariant: Constructor performs no task mutations.
+ - ƒ **_load_normalized_reports** (`Function`) `[TRIVIAL]`
+ - 📝 Build normalized reports from all available tasks.
+ - 🔒 Invariant: Every returned item is a TaskReport.
+ - ƒ **_to_utc_datetime** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize naive/aware datetime values to UTC-aware datetime for safe comparisons.
+ - 🔒 Invariant: Naive datetimes are interpreted as UTC to preserve deterministic ordering/filtering.
+ - ƒ **_datetime_sort_key** (`Function`) `[TRIVIAL]`
+ - 📝 Produce stable numeric sort key for report timestamps.
+ - 🔒 Invariant: Mixed naive/aware datetimes never raise TypeError.
+ - ƒ **_matches_query** (`Function`) `[TRIVIAL]`
+ - 📝 Apply query filtering to a report.
+ - 🔒 Invariant: Filter evaluation is side-effect free.
+ - ƒ **_sort_reports** (`Function`) `[TRIVIAL]`
+ - 📝 Sort reports deterministically according to query settings.
+ - 🔒 Invariant: Sorting criteria are deterministic for equal input.
+ - ƒ **list_reports** (`Function`) `[TRIVIAL]`
+ - 📝 Return filtered, sorted, paginated report collection.
+ - ƒ **get_report_detail** (`Function`) `[TRIVIAL]`
+ - 📝 Return one normalized report with timeline/diagnostics/next actions.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **reports** (`Package`) `[TRIVIAL]`
+ - 📝 Report service package root.
+- ƒ **test_resolve_task_type_fallbacks** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_report_type_profiles`
+- ƒ **test_resolve_task_type_valid** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_report_type_profiles`
+- ƒ **test_get_type_profile_valid** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_report_type_profiles`
+- ƒ **test_get_type_profile_fallback** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `__tests__/test_report_type_profiles`
+- 📦 **test_report_service** (`Module`) `[TRIVIAL]`
+ - 📝 Unit tests for ReportsService list/detail operations
+ - 🏗️ Layer: Domain
+ - ƒ **_make_task** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `test_report_service`
+ - ƒ **_make_service** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_empty_tasks_returns_empty_collection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_single_task_normalized** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_pagination_first_page** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_pagination_last_page** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_filter_by_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_filter_by_task_type** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_search_filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_sort_by_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_applied_filters_echoed** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_make_service** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_detail_found** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_detail_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_detail_includes_timeline** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_detail_failed_task_has_next_actions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_detail_success_task_no_error_next_actions** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_report_normalizer** (`Module`) `[TRIVIAL]`
+ - 📝 Validate unknown task type fallback and partial payload normalization behavior.
+ - 🏗️ Layer: Domain (Tests)
+ - 🔒 Invariant: Unknown plugin types are mapped to canonical unknown task type.
+ - ƒ **test_unknown_type_maps_to_unknown_profile** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure unknown plugin IDs map to unknown profile with populated summary and error context.
+ - 🔗 BINDS_TO -> `test_report_normalizer`
+ - ƒ **test_partial_payload_keeps_report_visible_with_placeholders** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure missing result payload still yields visible report details with result placeholder.
+ - 🔗 BINDS_TO -> `test_report_normalizer`
+ - ƒ **test_clean_release_plugin_maps_to_clean_release_task_type** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure clean-release plugin ID maps to clean_release task profile and summary passthrough.
+ - 🔗 BINDS_TO -> `test_report_normalizer`
+- 📦 **SemanticSourceResolver** (`Module`)
+ - 📝 Resolve and rank semantic candidates from trusted dictionary-like sources before any inferred fallback.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Manual overrides are never silently replaced by imported, inferred, or AI-generated values.
+ - 🔗 DEPENDS_ON -> `LLMProviderService`
+ - 🔗 DEPENDS_ON -> `SemanticSource`
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - 🔗 DEPENDS_ON -> `SemanticCandidate`
+ - ▦ **imports** (`Block`) `[TRIVIAL]`
+ - ℂ **DictionaryResolutionResult** (`Class`) `[TRIVIAL]`
+ - 📝 Carries field-level dictionary resolution output with explicit review and partial-recovery state.
+ - ℂ **SemanticSourceResolver** (`Class`)
+ - 📝 Resolve semantic candidates from trusted sources while preserving manual locks and confidence ordering.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - 🔗 DEPENDS_ON -> `SemanticCandidate`
+ - ƒ **resolve_from_file** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize uploaded semantic file records into field-level candidates.
+ - ƒ **resolve_from_dictionary** (`Function`)
+ - 📝 Resolve candidates from connected tabular dictionary sources.
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - 🔗 DEPENDS_ON -> `SemanticCandidate`
+ - ƒ **resolve_from_reference_dataset** (`Function`) `[TRIVIAL]`
+ - 📝 Reuse semantic metadata from trusted Superset datasets.
+ - ƒ **rank_candidates** (`Function`) `[TRIVIAL]`
+ - 📝 Apply confidence ordering and determine best candidate per field.
+ - 🔗 DEPENDS_ON -> `SemanticCandidate`
+ - ƒ **detect_conflicts** (`Function`) `[TRIVIAL]`
+ - 📝 Mark competing candidate sets that require explicit user review.
+ - ƒ **apply_field_decision** (`Function`) `[TRIVIAL]`
+ - 📝 Accept, reject, or manually override a field-level semantic value.
+ - ƒ **propagate_source_version_update** (`Function`)
+ - 📝 Propagate a semantic source version change to unlocked field entries without silently overwriting manual or locked values.
+ - 🔗 DEPENDS_ON -> `SemanticSource`
+ - 🔗 DEPENDS_ON -> `SemanticFieldEntry`
+ - ƒ **_normalize_dictionary_row** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize one dictionary row into a consistent lookup structure.
+ - ƒ **_find_fuzzy_matches** (`Function`) `[TRIVIAL]`
+ - 📝 Produce confidence-scored fuzzy matches while keeping them reviewable.
+ - ƒ **_build_candidate_payload** (`Function`) `[TRIVIAL]`
+ - 📝 Project normalized dictionary rows into semantic candidate payloads.
+ - ƒ **_match_priority** (`Function`) `[TRIVIAL]`
+ - 📝 Encode trusted-confidence ordering so exact dictionary reuse beats fuzzy invention.
+ - ƒ **_normalize_key** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize field identifiers for stable exact/fuzzy comparisons.
+- 📦 **SessionEventLoggerModule** (`Module`)
+ - 📝 Persist explicit session mutation events for dataset-review audit trails without weakening ownership or approval invariants.
+ - 🏗️ Layer: Domain
+ - 🔗 DEPENDS_ON -> `SessionEvent`
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ▦ **SessionEventLoggerImports** (`Block`) `[TRIVIAL]`
+ - ℂ **SessionEventPayload** (`Class`) `[TRIVIAL]`
+ - 📝 Typed input contract for one persisted dataset-review session audit event.
+ - ℂ **SessionEventLogger** (`Class`)
+ - 📝 Persist explicit dataset-review session audit events with meaningful runtime reasoning logs.
+ - 🔗 DEPENDS_ON -> `SessionEvent`
+ - 🔗 DEPENDS_ON -> `SessionEventPayload`
+ - ƒ **SessionEventLogger_init** (`Function`) `[TRIVIAL]`
+ - 📝 Bind a live SQLAlchemy session to the session-event logger.
+ - ƒ **log_event** (`Function`)
+ - 📝 Persist one explicit session event row for an owned dataset-review mutation.
+ - 🔗 DEPENDS_ON -> `SessionEvent`
+ - ƒ **log_for_session** (`Function`) `[TRIVIAL]`
+ - 📝 Convenience wrapper for logging an event directly from a session aggregate root.
+ - 🔗 CALLS -> `SessionEventLogger.log_event`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DatasetReviewOrchestrator** (`Module`) `[CRITICAL]`
+ - 📝 Coordinate dataset review session startup and lifecycle-safe intake recovery for one authenticated user.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Launch is blocked unless a current session has no open blocking findings, all launch-sensitive mappings are approved, and a non-stale Superset-generated compiled preview matches the current input fingerprint.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSessionRepository`
+ - 🔗 DEPENDS_ON -> `SemanticSourceResolver`
+ - 🔗 DEPENDS_ON -> `SupersetContextExtractor`
+ - 🔗 DEPENDS_ON -> `SupersetCompilationAdapter`
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - ▦ **imports** (`Block`) `[TRIVIAL]`
+ - ℂ **StartSessionCommand** (`Class`) `[TRIVIAL]`
+ - 📝 Typed input contract for starting a dataset review session.
+ - ℂ **StartSessionResult** (`Class`) `[TRIVIAL]`
+ - 📝 Session-start result carrying the persisted session and intake recovery metadata.
+ - ℂ **PreparePreviewCommand** (`Class`) `[TRIVIAL]`
+ - 📝 Typed input contract for compiling one Superset-backed session preview.
+ - ℂ **PreparePreviewResult** (`Class`) `[TRIVIAL]`
+ - 📝 Result contract for one persisted compiled preview attempt.
+ - ℂ **LaunchDatasetCommand** (`Class`) `[TRIVIAL]`
+ - 📝 Typed input contract for launching one dataset-review session into SQL Lab.
+ - ℂ **LaunchDatasetResult** (`Class`) `[TRIVIAL]`
+ - 📝 Launch result carrying immutable run context and any gate blockers surfaced before launch.
+ - ℂ **DatasetReviewOrchestrator** (`Class`) `[CRITICAL]`
+ - 📝 Coordinate safe session startup while preserving cross-user isolation and explicit partial recovery.
+ - 🔒 Invariant: session ownership is preserved on every mutation and recovery remains explicit when partial.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSessionRepository`
+ - 🔗 DEPENDS_ON -> `SupersetContextExtractor`
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - 🔗 DEPENDS_ON -> `ConfigManager`
+ - 🔗 DEPENDS_ON -> `SemanticSourceResolver`
+ - ƒ **DatasetReviewOrchestrator_init** (`Function`)
+ - 📝 Bind repository, config, and task dependencies required by the orchestration boundary.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSessionRepository`
+ - 🔗 DEPENDS_ON -> `ConfigManager`
+ - 🔗 DEPENDS_ON -> `TaskManager`
+ - 🔗 DEPENDS_ON -> `SemanticSourceResolver`
+ - ƒ **start_session** (`Function`) `[CRITICAL]`
+ - 📝 Initialize a new session from a Superset link or dataset selection and trigger context recovery.
+ - 🔒 Invariant: no cross-user session leakage occurs; session and follow-up task remain owned by the authenticated user.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSessionRepository`
+ - 🔗 CALLS -> `SupersetContextExtractor.parse_superset_link`
+ - 🔗 CALLS -> `TaskManager.create_task`
+ - ƒ **prepare_launch_preview** (`Function`)
+ - 📝 Assemble effective execution inputs and trigger Superset-side preview compilation.
+ - 🔗 CALLS -> `SupersetCompilationAdapter.compile_preview`
+ - ƒ **launch_dataset** (`Function`) `[CRITICAL]`
+ - 📝 Start the approved dataset execution through SQL Lab and persist run context for audit/replay.
+ - 🔒 Invariant: launch remains blocked unless blocking findings are closed, approvals are satisfied, and the latest Superset preview fingerprint matches current execution inputs.
+ - 🔗 CALLS -> `SupersetCompilationAdapter.create_sql_lab_session`
+ - ƒ **_parse_dataset_selection** (`Function`) `[TRIVIAL]`
+ - 📝 Normalize dataset-selection payload into canonical session references.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **_build_initial_profile** (`Function`) `[TRIVIAL]`
+ - 📝 Create the first profile snapshot so exports and detail views remain usable immediately after intake.
+ - 🔗 DEPENDS_ON -> `DatasetProfile`
+ - ƒ **_build_partial_recovery_findings** (`Function`)
+ - 📝 Project partial Superset intake recovery into explicit findings without blocking session usability.
+ - 🔗 DEPENDS_ON -> `ValidationFinding`
+ - ƒ **_build_recovery_bootstrap** (`Function`)
+ - 📝 Recover and materialize initial imported filters, template variables, and draft execution mappings after session creation.
+ - 🔗 CALLS -> `SupersetContextExtractor.recover_imported_filters`
+ - 🔗 CALLS -> `SupersetContextExtractor.discover_template_variables`
+ - ƒ **_extract_effective_filter_value** (`Function`) `[TRIVIAL]`
+ - 📝 Separate normalized filter payload metadata from the user-facing effective filter value.
+ - ƒ **_build_execution_snapshot** (`Function`)
+ - 📝 Build effective filters, template params, approvals, and fingerprint for preview and launch gating.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **_build_launch_blockers** (`Function`)
+ - 📝 Enforce launch gates from findings, approvals, and current preview truth.
+ - 🔗 DEPENDS_ON -> `CompiledPreview`
+ - ƒ **_get_latest_preview** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve the current latest preview snapshot for one session aggregate.
+ - ƒ **_compute_preview_fingerprint** (`Function`) `[TRIVIAL]`
+ - 📝 Produce deterministic execution fingerprint for preview truth and staleness checks.
+ - ƒ **_enqueue_recovery_task** (`Function`)
+ - 📝 Link session start to observable async recovery when task infrastructure is available.
+ - 🔗 CALLS -> `TaskManager.create_task`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **dataset_review** (`Module`) `[TRIVIAL]`
+ - 📝 Provides services for dataset-centered orchestration flow.
+ - 🏗️ Layer: Services
+- 📦 **ClarificationEngine** (`Module`)
+ - 📝 Manage one-question-at-a-time clarification state, deterministic answer persistence, and readiness/finding updates.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: Only one active clarification question may exist at a time; skipped and expert-review items remain unresolved and visible.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSessionRepository`
+ - 🔗 DEPENDS_ON -> `ClarificationSession`
+ - 🔗 DEPENDS_ON -> `ClarificationQuestion`
+ - 🔗 DEPENDS_ON -> `ClarificationAnswer`
+ - 🔗 DEPENDS_ON -> `ValidationFinding`
+ - ▦ **imports** (`Block`) `[TRIVIAL]`
+ - ℂ **ClarificationQuestionPayload** (`Class`) `[TRIVIAL]`
+ - 📝 Typed active-question payload returned to the API layer.
+ - ℂ **ClarificationStateResult** (`Class`) `[TRIVIAL]`
+ - 📝 Clarification state result carrying the current session, active payload, and changed findings.
+ - ℂ **ClarificationAnswerCommand** (`Class`) `[TRIVIAL]`
+ - 📝 Typed answer command for clarification state mutation.
+ - ℂ **ClarificationEngine** (`Class`)
+ - 📝 Provide deterministic one-question-at-a-time clarification selection and answer persistence.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSessionRepository`
+ - 🔗 DEPENDS_ON -> `ClarificationSession`
+ - 🔗 DEPENDS_ON -> `ValidationFinding`
+ - ƒ **ClarificationEngine_init** (`Function`) `[TRIVIAL]`
+ - 📝 Bind repository dependency for clarification persistence operations.
+ - ƒ **build_question_payload** (`Function`)
+ - 📝 Return the one active highest-priority clarification question payload with why-it-matters, current guess, and options.
+ - 🔗 DEPENDS_ON -> `ClarificationQuestion`
+ - 🔗 DEPENDS_ON -> `ClarificationOption`
+ - ƒ **record_answer** (`Function`)
+ - 📝 Persist one clarification answer before any pointer/readiness mutation and compute deterministic state impact.
+ - 🔗 DEPENDS_ON -> `ClarificationAnswer`
+ - 🔗 DEPENDS_ON -> `ValidationFinding`
+ - ƒ **summarize_progress** (`Function`) `[TRIVIAL]`
+ - 📝 Produce a compact progress summary for pause/resume and completion UX.
+ - 🔗 DEPENDS_ON -> `ClarificationSession`
+ - ƒ **_get_latest_clarification_session** (`Function`) `[TRIVIAL]`
+ - 📝 Select the latest clarification session for the current dataset review aggregate.
+ - ƒ **_find_question** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve a clarification question from the active clarification aggregate.
+ - ƒ **_select_next_open_question** (`Function`) `[TRIVIAL]`
+ - 📝 Select the next unresolved question in deterministic priority order.
+ - ƒ **_count_resolved_questions** (`Function`) `[TRIVIAL]`
+ - 📝 Count questions whose answers fully resolved the ambiguity.
+ - ƒ **_count_remaining_questions** (`Function`) `[TRIVIAL]`
+ - 📝 Count questions still unresolved or deferred after clarification interaction.
+ - ƒ **_normalize_answer_value** (`Function`) `[TRIVIAL]`
+ - 📝 Validate and normalize answer payload based on answer kind and active question options.
+ - ƒ **_build_impact_summary** (`Function`) `[TRIVIAL]`
+ - 📝 Build a compact audit note describing how the clarification answer affects session state.
+ - ƒ **_upsert_clarification_finding** (`Function`) `[TRIVIAL]`
+ - 📝 Keep one finding per clarification topic aligned with answer outcome and unresolved visibility rules.
+ - 🔗 DEPENDS_ON -> `ValidationFinding`
+ - ƒ **_derive_readiness_state** (`Function`) `[TRIVIAL]`
+ - 📝 Recompute readiness after clarification mutation while preserving unresolved visibility semantics.
+ - 🔗 DEPENDS_ON -> `ClarificationSession`
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **_derive_recommended_action** (`Function`) `[TRIVIAL]`
+ - 📝 Recompute next-action guidance after clarification mutations.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **DatasetReviewSessionRepository** (`Module`) `[CRITICAL]`
+ - 📝 Persist and retrieve dataset review session aggregates, including readiness, findings, semantic decisions, clarification state, previews, and run contexts.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: answers, mapping approvals, preview artifacts, and launch snapshots are never attributed to the wrong user or session.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - 🔗 DEPENDS_ON -> `DatasetProfile`
+ - 🔗 DEPENDS_ON -> `ValidationFinding`
+ - 🔗 DEPENDS_ON -> `CompiledPreview`
+ - ℂ **DatasetReviewSessionRepository** (`Class`)
+ - 📝 Enforce ownership-scoped persistence and retrieval for dataset review session aggregates.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - 🔗 DEPENDS_ON -> `DatasetProfile`
+ - 🔗 DEPENDS_ON -> `ValidationFinding`
+ - 🔗 DEPENDS_ON -> `CompiledPreview`
+ - 🔗 DEPENDS_ON -> `SessionEventLogger`
+ - ƒ **init_repo** (`Function`)
+ - 📝 Bind one live SQLAlchemy session to the repository instance.
+ - ƒ **get_owned_session** (`Function`)
+ - 📝 Resolve one owner-scoped dataset review session for mutation paths without leaking foreign-session state.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **create_sess** (`Function`)
+ - 📝 Persist an initial dataset review session shell.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **load_detail** (`Function`)
+ - 📝 Return the full session aggregate for API and frontend resume flows.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - 🔗 DEPENDS_ON -> `SessionCollaborator`
+ - ƒ **save_prof_find** (`Function`)
+ - 📝 Persist profile state and replace validation findings for an owned session in one transaction.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - 🔗 DEPENDS_ON -> `DatasetProfile`
+ - 🔗 DEPENDS_ON -> `ValidationFinding`
+ - ƒ **save_recovery_state** (`Function`)
+ - 📝 Persist imported filters, template variables, and initial execution mappings for one owned session.
+ - 🔗 DEPENDS_ON -> `ImportedFilter`
+ - 🔗 DEPENDS_ON -> `TemplateVariable`
+ - 🔗 DEPENDS_ON -> `ExecutionMapping`
+ - ƒ **save_prev** (`Function`)
+ - 📝 Persist a preview snapshot and mark prior session previews stale.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - 🔗 DEPENDS_ON -> `CompiledPreview`
+ - ƒ **save_run_ctx** (`Function`)
+ - 📝 Persist an immutable launch audit snapshot for an owned session.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - 🔗 DEPENDS_ON -> `DatasetRunContext`
+ - ƒ **list_user_sess** (`Function`) `[TRIVIAL]`
+ - 📝 List review sessions owned by a specific user ordered by most recent update.
+ - 🔗 DEPENDS_ON -> `DatasetReviewSession`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_get_owned_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **load_session_detail** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_profile_and_findings** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_preview** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **save_run_context** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_sessions_for_user** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **SessionRepositoryTests** (`Module`) `[TRIVIAL]`
+ - 📝 Unit tests for DatasetReviewSessionRepository.
+ - ƒ **db_session** (`Function`) `[TRIVIAL]`
+ - 📝 Build isolated in-memory SQLAlchemy session seeded with baseline user/environment rows.
+ - 🔗 BINDS_TO -> `SessionRepositoryTests`
+ - ƒ **test_create_session** (`Function`) `[TRIVIAL]`
+ - 📝 Verify session creation and persistence.
+ - 🔗 BINDS_TO -> `SessionRepositoryTests`
+ - ƒ **test_load_session_detail_ownership** (`Function`) `[TRIVIAL]`
+ - 📝 Verify ownership enforcement in detail loading.
+ - 🔗 BINDS_TO -> `SessionRepositoryTests`
+ - ƒ **test_load_session_detail_collaborator** (`Function`) `[TRIVIAL]`
+ - 📝 Verify collaborator access in detail loading.
+ - 🔗 BINDS_TO -> `SessionRepositoryTests`
+ - ƒ **test_save_preview_marks_stale** (`Function`) `[TRIVIAL]`
+ - 📝 Verify that saving a new preview marks old ones as stale.
+ - 🔗 BINDS_TO -> `SessionRepositoryTests`
+ - ƒ **test_save_profile_and_findings** (`Function`) `[TRIVIAL]`
+ - 📝 Verify persistence of profile and findings.
+ - 🔗 BINDS_TO -> `SessionRepositoryTests`
+ - ƒ **test_save_run_context** (`Function`) `[TRIVIAL]`
+ - 📝 Verify saving of run context.
+ - 🔗 BINDS_TO -> `SessionRepositoryTests`
+ - ƒ **test_list_sessions_for_user** (`Function`) `[TRIVIAL]`
+ - 📝 Verify listing of sessions by user.
+ - 🔗 BINDS_TO -> `SessionRepositoryTests`
+ - ƒ **db_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **BackupPlugin** (`Module`) `[TRIVIAL]`
+ - 📝 A plugin that provides functionality to back up Superset dashboards.
+ - 🏗️ Layer: App
+ - 🔗 IMPLEMENTS -> `PluginBase`
+ - 🔗 DEPENDS_ON -> `superset_tool.client`
+ - 🔗 DEPENDS_ON -> `superset_tool.utils`
+ - ℂ **BackupPlugin** (`Class`) `[TRIVIAL]`
+ - 📝 Implementation of the backup plugin logic.
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the unique identifier for the backup plugin.
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the human-readable name of the backup plugin.
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Returns a description of the backup plugin.
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the version of the backup plugin.
+ - ƒ **ui_route** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the frontend route for the backup plugin.
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the JSON schema for backup plugin parameters.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Executes the dashboard backup logic with TaskContext support.
+- 📦 **DebugPluginModule** (`Module`) `[TRIVIAL]`
+ - 📝 Implements a plugin for system diagnostics and debugging Superset API responses.
+ - 🏗️ Layer: Plugins
+ - ℂ **DebugPlugin** (`Class`) `[TRIVIAL]`
+ - 📝 Plugin for system diagnostics and debugging.
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the unique identifier for the debug plugin.
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the human-readable name of the debug plugin.
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Returns a description of the debug plugin.
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the version of the debug plugin.
+ - ƒ **ui_route** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the frontend route for the debug plugin.
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the JSON schema for the debug plugin parameters.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Executes the debug logic with TaskContext support.
+ - ƒ **_test_db_api** (`Function`) `[TRIVIAL]`
+ - 📝 Tests database API connectivity for source and target environments.
+ - ƒ **_get_dataset_structure** (`Function`) `[TRIVIAL]`
+ - 📝 Retrieves the structure of a dataset.
+- 📦 **SearchPluginModule** (`Module`) `[TRIVIAL]`
+ - 📝 Implements a plugin for searching text patterns across all datasets in a specific Superset environment.
+ - 🏗️ Layer: Plugins
+ - ℂ **SearchPlugin** (`Class`) `[TRIVIAL]`
+ - 📝 Plugin for searching text patterns in Superset datasets.
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the unique identifier for the search plugin.
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the human-readable name of the search plugin.
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Returns a description of the search plugin.
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the version of the search plugin.
+ - ƒ **ui_route** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the frontend route for the search plugin.
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the JSON schema for the search plugin parameters.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Executes the dataset search logic with TaskContext support.
+ - ƒ **_get_context** (`Function`) `[TRIVIAL]`
+ - 📝 Extracts a small context around the match for display.
+- 📦 **MapperPluginModule** (`Module`) `[TRIVIAL]`
+ - 📝 Implements a plugin for mapping dataset columns using external database connections or Excel files.
+ - 🏗️ Layer: Plugins
+ - ℂ **MapperPlugin** (`Class`) `[TRIVIAL]`
+ - 📝 Plugin for mapping dataset columns verbose names.
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the unique identifier for the mapper plugin.
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the human-readable name of the mapper plugin.
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Returns a description of the mapper plugin.
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the version of the mapper plugin.
+ - ƒ **ui_route** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the frontend route for the mapper plugin.
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the JSON schema for the mapper plugin parameters.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Executes the dataset mapping logic with TaskContext support.
+- 📦 **backend.src.plugins.git_plugin** (`Module`) `[TRIVIAL]`
+ - 📝 Предоставляет плагин для версионирования и развертывания дашбордов Superset.
+ - 🏗️ Layer: Plugin
+ - 🔒 Invariant: Все операции с Git должны выполняться через GitService.
+ - ℂ **GitPlugin** (`Class`) `[TRIVIAL]`
+ - 📝 Реализация плагина Git Integration для управления версиями дашбордов.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Инициализирует плагин и его зависимости.
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the plugin identifier.
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the plugin name.
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the plugin description.
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the plugin version.
+ - ƒ **ui_route** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the frontend route for the git plugin.
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Возвращает JSON-схему параметров для выполнения задач плагина.
+ - ƒ **initialize** (`Function`) `[TRIVIAL]`
+ - 📝 Выполняет начальную настройку плагина.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Основной метод выполнения задач плагина с поддержкой TaskContext.
+ - 🔗 CALLS -> `self._handle_sync`
+ - 🔗 CALLS -> `self._handle_deploy`
+ - ƒ **_handle_sync** (`Function`) `[TRIVIAL]`
+ - 📝 Экспортирует дашборд из Superset и распаковывает в Git-репозиторий.
+ - 🔗 CALLS -> `src.services.git_service.GitService.get_repo`
+ - 🔗 CALLS -> `src.core.superset_client.SupersetClient.export_dashboard`
+ - ƒ **_handle_deploy** (`Function`) `[TRIVIAL]`
+ - 📝 Упаковывает репозиторий в ZIP и импортирует в целевое окружение Superset.
+ - 🔗 CALLS -> `src.core.superset_client.SupersetClient.import_dashboard`
+ - ƒ **_get_env** (`Function`) `[TRIVIAL]`
+ - 📝 Вспомогательный метод для получения конфигурации окружения.
+- 📦 **MigrationPlugin** (`Module`) `[CRITICAL]`
+ - 📝 Orchestrates export, DB-mapping transformation, and import of Superset dashboards across environments.
+ - 🏗️ Layer: App
+ - 🔒 Invariant: Dashboards must never be imported with unmapped/source DB connections to prevent data leaks or cross-environment pollution.
+ - 🔗 IMPLEMENTS -> `PluginBase`
+ - 🔗 DEPENDS_ON -> `SupersetClient`
+ - 🔗 DEPENDS_ON -> `MigrationEngine`
+ - 🔗 DEPENDS_ON -> `IdMappingService`
+ - ℂ **MigrationPlugin** (`Class`) `[CRITICAL]`
+ - 📝 Implementation of the migration plugin workflow and transformation orchestration.
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the unique identifier for the migration plugin.
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the human-readable name of the plugin.
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the semantic description of the plugin.
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the semantic version of the migration plugin.
+ - ƒ **ui_route** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the frontend routing anchor for the plugin.
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Generates the JSON Schema for the plugin execution form dynamically.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Orchestrates the dashboard migration pipeline including extraction, AST mutation, and ingestion.
+- 📦 **src.plugins** (`Package`) `[TRIVIAL]`
+ - 📝 Plugin package root for dynamic discovery and runtime imports.
+- ƒ **schedule_dashboard_validation** (`Function`) `[TRIVIAL]`
+ - 📝 Schedules a recurring dashboard validation task.
+- ƒ **_parse_cron** (`Function`) `[TRIVIAL]`
+ - 📝 Basic cron parser placeholder.
+- 📦 **scheduler** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/src/plugins/llm_analysis/scheduler.py
+ - 🏗️ Layer: Unknown
+ - ƒ **job_func** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ℂ **LLMProviderType** (`Class`) `[TRIVIAL]`
+ - 📝 Enum for supported LLM providers.
+- ℂ **LLMProviderConfig** (`Class`) `[TRIVIAL]`
+ - 📝 Configuration for an LLM provider.
+- ℂ **ValidationStatus** (`Class`) `[TRIVIAL]`
+ - 📝 Enum for dashboard validation status.
+- ℂ **DetectedIssue** (`Class`) `[TRIVIAL]`
+ - 📝 Model for a single issue detected during validation.
+- ℂ **ValidationResult** (`Class`) `[TRIVIAL]`
+ - 📝 Model for dashboard validation result.
+- ƒ **_is_masked_or_invalid_api_key** (`Function`) `[TRIVIAL]`
+ - 📝 Guards against placeholder or malformed API keys in runtime.
+- ƒ **_json_safe_value** (`Function`) `[TRIVIAL]`
+ - 📝 Recursively normalize payload values for JSON serialization.
+- ℂ **DashboardValidationPlugin** (`Class`) `[TRIVIAL]`
+ - 📝 Plugin for automated dashboard health analysis using LLMs.
+ - 🔗 IMPLEMENTS -> `backend.src.core.plugin_base.PluginBase`
+ - ƒ **DashboardValidationPlugin.execute** (`Function`) `[TRIVIAL]`
+ - 📝 Executes the dashboard validation task with TaskContext support.
+- ℂ **DocumentationPlugin** (`Class`) `[TRIVIAL]`
+ - 📝 Plugin for automated dataset documentation using LLMs.
+ - 🔗 IMPLEMENTS -> `backend.src.core.plugin_base.PluginBase`
+ - ƒ **DocumentationPlugin.execute** (`Function`) `[TRIVIAL]`
+ - 📝 Executes the dataset documentation task with TaskContext support.
+- 📦 **plugin** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/src/plugins/llm_analysis/plugin.py
+ - 🏗️ Layer: Unknown
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ℂ **ScreenshotService** (`Class`) `[TRIVIAL]`
+ - 📝 Handles capturing screenshots of Superset dashboards.
+ - ƒ **ScreenshotService.__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the ScreenshotService with environment configuration.
+ - ƒ **ScreenshotService._find_first_visible_locator** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve the first visible locator from multiple Playwright locator strategies.
+ - ƒ **ScreenshotService._iter_login_roots** (`Function`) `[TRIVIAL]`
+ - 📝 Enumerate page and child frames where login controls may be rendered.
+ - ƒ **ScreenshotService._extract_hidden_login_fields** (`Function`) `[TRIVIAL]`
+ - 📝 Collect hidden form fields required for direct login POST fallback.
+ - ƒ **ScreenshotService._extract_csrf_token** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve CSRF token value from main page or embedded login frame.
+ - ƒ **ScreenshotService._response_looks_like_login_page** (`Function`) `[TRIVIAL]`
+ - 📝 Detect when fallback login POST returned the login form again instead of an authenticated page.
+ - ƒ **ScreenshotService._redirect_looks_authenticated** (`Function`) `[TRIVIAL]`
+ - 📝 Treat non-login redirects after form POST as successful authentication without waiting for redirect target.
+ - ƒ **ScreenshotService._submit_login_via_form_post** (`Function`) `[TRIVIAL]`
+ - 📝 Fallback login path that submits credentials directly with csrf token.
+ - ƒ **ScreenshotService._find_login_field_locator** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve login form input using semantic label text plus generic visible-input fallbacks.
+ - ƒ **ScreenshotService._find_submit_locator** (`Function`) `[TRIVIAL]`
+ - 📝 Resolve login submit button from main page or embedded auth frame.
+ - ƒ **ScreenshotService._goto_resilient** (`Function`) `[TRIVIAL]`
+ - 📝 Navigate without relying on networkidle for pages with long-polling or persistent requests.
+ - ƒ **ScreenshotService.capture_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Captures a full-page screenshot of a dashboard using Playwright and CDP.
+- ℂ **LLMClient** (`Class`) `[TRIVIAL]`
+ - 📝 Wrapper for LLM provider APIs.
+ - ƒ **LLMClient.__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the LLMClient with provider settings.
+ - ƒ **LLMClient._supports_json_response_format** (`Function`) `[TRIVIAL]`
+ - 📝 Detect whether provider/model is likely compatible with response_format=json_object.
+ - ƒ **LLMClient.get_json_completion** (`Function`) `[TRIVIAL]`
+ - 📝 Helper to handle LLM calls with JSON mode and fallback parsing.
+ - ƒ **LLMClient.test_runtime_connection** (`Function`) `[TRIVIAL]`
+ - 📝 Validate provider credentials using the same chat completions transport as runtime analysis.
+ - ƒ **LLMClient.analyze_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Sends dashboard data (screenshot + logs) to LLM for health analysis.
+- 📦 **service** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/src/plugins/llm_analysis/service.py
+ - 🏗️ Layer: Unknown
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_find_first_visible_locator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_iter_login_roots** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_hidden_login_fields** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_extract_csrf_token** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_response_looks_like_login_page** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_redirect_looks_authenticated** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_submit_login_via_form_post** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_find_login_field_locator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_find_submit_locator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_goto_resilient** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **capture_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **switch_tabs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_supports_json_response_format** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_should_retry** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_json_completion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_runtime_connection** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **analyze_dashboard** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestService** (`Module`)
+ - 📝 Verify LLM analysis transport/provider failures do not masquerade as dashboard FAIL results.
+ - ƒ **test_test_runtime_connection_uses_json_completion_transport** (`Function`) `[TRIVIAL]`
+ - 📝 Provider self-test must exercise the same chat completion transport as runtime analysis.
+ - 🔗 BINDS_TO -> `TestService`
+ - ƒ **test_analyze_dashboard_provider_error_maps_to_unknown** (`Function`) `[TRIVIAL]`
+ - 📝 Infrastructure/provider failures must produce UNKNOWN analysis status rather than FAIL.
+ - 🔗 BINDS_TO -> `TestService`
+ - ƒ **_fake_get_json_completion** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_raise_provider_error** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestClientHeaders** (`Module`)
+ - 📝 Verify OpenRouter client initialization includes provider-specific headers.
+ - ƒ **test_openrouter_client_includes_referer_and_title_headers** (`Function`) `[TRIVIAL]`
+ - 📝 OpenRouter requests should carry site/app attribution headers for compatibility.
+ - 🔗 BINDS_TO -> `TestClientHeaders`
+- 📦 **TestScreenshotService** (`Module`)
+ - 📝 Protect dashboard screenshot navigation from brittle networkidle waits.
+ - ƒ **test_iter_login_roots_includes_child_frames** (`Function`) `[TRIVIAL]`
+ - 📝 Login discovery must search embedded auth frames, not only the main page.
+ - 🔗 BINDS_TO -> `TestScreenshotService`
+ - ƒ **test_response_looks_like_login_page_detects_login_markup** (`Function`) `[TRIVIAL]`
+ - 📝 Direct login fallback must reject responses that render the login screen again.
+ - 🔗 BINDS_TO -> `TestScreenshotService`
+ - ƒ **test_find_first_visible_locator_skips_hidden_first_match** (`Function`) `[TRIVIAL]`
+ - 📝 Locator helper must not reject a selector collection just because its first element is hidden.
+ - 🔗 BINDS_TO -> `TestScreenshotService`
+ - ƒ **test_submit_login_via_form_post_uses_browser_context_request** (`Function`) `[TRIVIAL]`
+ - 📝 Fallback login must submit hidden fields and credentials through the context request cookie jar.
+ - 🔗 BINDS_TO -> `TestScreenshotService`
+ - ƒ **test_submit_login_via_form_post_accepts_authenticated_redirect** (`Function`) `[TRIVIAL]`
+ - 📝 Fallback login must treat non-login 302 redirect as success without waiting for redirect target.
+ - 🔗 BINDS_TO -> `TestScreenshotService`
+ - ƒ **test_submit_login_via_form_post_rejects_login_markup_response** (`Function`) `[TRIVIAL]`
+ - 📝 Fallback login must fail when POST response still contains login form content.
+ - 🔗 BINDS_TO -> `TestScreenshotService`
+ - ƒ **test_goto_resilient_falls_back_from_domcontentloaded_to_load** (`Function`) `[TRIVIAL]`
+ - 📝 Pages with unstable primary wait must retry with fallback wait strategy.
+ - 🔗 BINDS_TO -> `TestScreenshotService`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **is_visible** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **nth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_attribute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **input_value** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **nth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **text** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **post** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **locator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_attribute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **input_value** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **nth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **text** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **post** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **locator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_attribute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **input_value** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **count** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **nth** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **text** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **post** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **locator** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **goto** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **StoragePlugin** (`Module`) `[TRIVIAL]`
+ - 📝 Provides core filesystem operations for managing backups and repositories.
+ - 🏗️ Layer: App
+ - 🔒 Invariant: All file operations must be restricted to the configured storage root.
+ - 🔗 IMPLEMENTS -> `PluginBase`
+ - 🔗 DEPENDS_ON -> `backend.src.models.storage`
+ - ℂ **StoragePlugin** (`Class`) `[TRIVIAL]`
+ - 📝 Implementation of the storage management plugin.
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Initializes the StoragePlugin and ensures required directories exist.
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the unique identifier for the storage plugin.
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the human-readable name of the storage plugin.
+ - ƒ **description** (`Function`) `[TRIVIAL]`
+ - 📝 Returns a description of the storage plugin.
+ - ƒ **version** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the version of the storage plugin.
+ - ƒ **ui_route** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the frontend route for the storage plugin.
+ - ƒ **get_schema** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the JSON schema for storage plugin parameters.
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Executes storage-related tasks with TaskContext support.
+ - ƒ **get_storage_root** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves the absolute path to the storage root.
+ - ƒ **resolve_path** (`Function`) `[TRIVIAL]`
+ - 📝 Resolves a dynamic path pattern using provided variables.
+ - ƒ **ensure_directories** (`Function`) `[TRIVIAL]`
+ - 📝 Creates the storage root and category subdirectories if they don't exist.
+ - ƒ **validate_path** (`Function`) `[TRIVIAL]`
+ - 📝 Prevents path traversal attacks by ensuring the path is within the storage root.
+ - ƒ **list_files** (`Function`) `[TRIVIAL]`
+ - 📝 Lists all files and directories in a specific category and subpath.
+ - ƒ **save_file** (`Function`) `[TRIVIAL]`
+ - 📝 Saves an uploaded file to the specified category and optional subpath.
+ - ƒ **delete_file** (`Function`) `[TRIVIAL]`
+ - 📝 Deletes a file or directory from the specified category and path.
+ - ƒ **get_file_path** (`Function`) `[TRIVIAL]`
+ - 📝 Returns the absolute path of a file for download.
+- ℂ **GitLLMExtension** (`Class`) `[TRIVIAL]`
+ - 📝 Provides LLM capabilities to the Git plugin.
+ - ƒ **suggest_commit_message** (`Function`) `[TRIVIAL]`
+ - 📝 Generates a suggested commit message based on a diff and history.
+- 📦 **llm_extension** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/src/plugins/git/llm_extension.py
+ - 🏗️ Layer: Unknown
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **src.plugins.git** (`Package`) `[TRIVIAL]`
+ - 📝 Git plugin extension package root.
+- 📦 **test_task_persistence** (`Module`)
+ - 📝 Unit tests for TaskPersistenceService.
+ - 🏗️ Layer: Test
+ - ℂ **TestTaskPersistenceHelpers** (`Class`)
+ - 📝 Test suite for TaskPersistenceService static helper methods.
+ - 🔗 BINDS_TO -> `test_task_persistence`
+ - ƒ **test_json_load_if_needed_none** (`Function`) `[TRIVIAL]`
+ - 📝 Test _json_load_if_needed with None input.
+ - ƒ **test_json_load_if_needed_dict** (`Function`) `[TRIVIAL]`
+ - 📝 Test _json_load_if_needed with dict input.
+ - ƒ **test_json_load_if_needed_list** (`Function`) `[TRIVIAL]`
+ - 📝 Test _json_load_if_needed with list input.
+ - ƒ **test_json_load_if_needed_json_string** (`Function`) `[TRIVIAL]`
+ - 📝 Test _json_load_if_needed with JSON string.
+ - ƒ **test_json_load_if_needed_empty_string** (`Function`) `[TRIVIAL]`
+ - 📝 Test _json_load_if_needed with empty/null strings.
+ - ƒ **test_json_load_if_needed_plain_string** (`Function`) `[TRIVIAL]`
+ - 📝 Test _json_load_if_needed with non-JSON string.
+ - ƒ **test_json_load_if_needed_integer** (`Function`) `[TRIVIAL]`
+ - 📝 Test _json_load_if_needed with integer.
+ - ƒ **test_parse_datetime_none** (`Function`) `[TRIVIAL]`
+ - 📝 Test _parse_datetime with None.
+ - ƒ **test_parse_datetime_datetime_object** (`Function`) `[TRIVIAL]`
+ - 📝 Test _parse_datetime with datetime object.
+ - ƒ **test_parse_datetime_iso_string** (`Function`) `[TRIVIAL]`
+ - 📝 Test _parse_datetime with ISO string.
+ - ƒ **test_parse_datetime_invalid_string** (`Function`) `[TRIVIAL]`
+ - 📝 Test _parse_datetime with invalid string.
+ - ƒ **test_parse_datetime_integer** (`Function`) `[TRIVIAL]`
+ - 📝 Test _parse_datetime with non-string, non-datetime.
+ - ℂ **TestTaskPersistenceService** (`Class`)
+ - 📝 Test suite for TaskPersistenceService CRUD operations.
+ - 🔗 BINDS_TO -> `test_task_persistence`
+ - ƒ **setup_class** (`Function`) `[TRIVIAL]`
+ - 📝 Setup in-memory test database.
+ - ƒ **teardown_class** (`Function`) `[TRIVIAL]`
+ - 📝 Dispose of test database.
+ - ƒ **setup_method** (`Function`) `[TRIVIAL]`
+ - 📝 Clean task_records table before each test.
+ - ƒ **test_persist_task_new** (`Function`) `[TRIVIAL]`
+ - 📝 Test persisting a new task creates a record.
+ - ƒ **test_persist_task_update** (`Function`) `[TRIVIAL]`
+ - 📝 Test updating an existing task.
+ - ƒ **test_persist_task_with_logs** (`Function`) `[TRIVIAL]`
+ - 📝 Test persisting a task with log entries.
+ - ƒ **test_persist_task_failed_extracts_error** (`Function`) `[TRIVIAL]`
+ - 📝 Test that FAILED task extracts last error message.
+ - ƒ **test_persist_tasks_batch** (`Function`) `[TRIVIAL]`
+ - 📝 Test persisting multiple tasks.
+ - ƒ **test_load_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Test loading tasks from database.
+ - ƒ **test_load_tasks_with_status_filter** (`Function`) `[TRIVIAL]`
+ - 📝 Test loading tasks filtered by status.
+ - ƒ **test_load_tasks_with_limit** (`Function`) `[TRIVIAL]`
+ - 📝 Test loading tasks with limit.
+ - ƒ **test_delete_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Test deleting tasks by ID list.
+ - ƒ **test_delete_tasks_empty_list** (`Function`) `[TRIVIAL]`
+ - 📝 Test deleting with empty list (no-op).
+ - ƒ **test_persist_task_with_datetime_in_params** (`Function`) `[TRIVIAL]`
+ - 📝 Test json_serializable handles datetime in params.
+ - ƒ **test_persist_task_resolves_environment_slug_to_existing_id** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure slug-like environment token resolves to environments.id before persisting task.
+ - ƒ **_patched** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **_make_task** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ƒ **test_environment_model** (`Function`) `[TRIVIAL]`
+ - 📝 Tests that Environment model correctly stores values.
+- 📦 **test_task_manager** (`Module`)
+ - 📝 Unit tests for TaskManager lifecycle, CRUD, log buffering, and filtering.
+ - 🏗️ Layer: Core
+ - 🔒 Invariant: TaskManager state changes are deterministic and testable with mocked dependencies.
+ - ƒ **_make_manager** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `test_task_manager`
+ - ƒ **_cleanup_manager** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `test_task_manager`
+ - ƒ **test_init_creates_empty_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_init_loads_persisted_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_init_starts_flusher_thread** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_task_returns_none_for_missing** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_task_returns_existing** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_all_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_tasks_with_status_filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_tasks_with_plugin_filter** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_tasks_with_pagination** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_get_tasks_completed_only** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_create_task_success** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_create_task_unknown_plugin_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_create_task_invalid_params_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_add_log_appends_to_task_and_buffer** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_add_log_skips_nonexistent_task** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_flush_logs_writes_to_persistence** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_flush_task_logs_writes_single_task** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_flush_logs_requeues_on_failure** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_clear_all_non_active** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_clear_by_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_clear_preserves_awaiting_input** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_subscribe_creates_queue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_unsubscribe_removes_queue** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_multiple_subscribers** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_await_input_sets_status** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_await_input_not_running_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_await_input_nonexistent_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_resume_with_password** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_resume_not_awaiting_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_resume_empty_passwords_raises** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestDashboardsApi** (`Module`)
+ - 📝 Comprehensive contract-driven tests for Dashboard Hub API
+ - 🏗️ Layer: Domain (Tests)
+ - ƒ **test_get_dashboards_success** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboards_with_search** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboards_empty** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboards_superset_failure** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboards_invalid_pagination** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_database_mappings_success** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_database_mappings_env_not_found** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboard_detail_success** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboard_detail_env_not_found** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboard_tasks_history_success** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboard_tasks_history_sorting** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboard_thumbnail_success** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboard_thumbnail_env_not_found** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_get_dashboard_thumbnail_202** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_migrate_dashboards_success** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_migrate_dashboards_pre_checks** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_migrate_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_backup_dashboards_success** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_backup_dashboards_pre_checks** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_backup_dashboards_env_not_found** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_backup_dashboards_with_schedule** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **test_task_matches_dashboard_logic** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestDashboardsApi`
+ - ƒ **mock_deps** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestResourceHubs** (`Module`)
+ - 📝 Contract tests for resource hub dashboards/datasets listing and pagination boundary validation.
+ - 🏗️ Layer: Domain (Tests)
+ - 📦 **test_dashboards_api** (`Test`) `[TRIVIAL]`
+ - 📝 Verify GET /api/dashboards contract compliance
+ - 🔒 Invariant: unconstrained mock — no spec= enforced; attribute typos will silently pass
+ - 🔗 BINDS_TO -> `TestResourceHubs`
+ - ƒ **test_get_dashboards_success** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dashboards endpoint returns 200 with expected dashboard payload fields.
+ - 🔗 BINDS_TO -> `test_dashboards_api`
+ - ƒ **test_get_dashboards_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dashboards endpoint returns 404 for unknown environment identifier.
+ - 🔗 BINDS_TO -> `test_dashboards_api`
+ - ƒ **test_get_dashboards_search** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dashboards endpoint search filter returns matching subset.
+ - 🔗 BINDS_TO -> `test_dashboards_api`
+ - 📦 **test_datasets_api** (`Test`) `[TRIVIAL]`
+ - 📝 Verify GET /api/datasets contract compliance
+ - 🔗 BINDS_TO -> `TestResourceHubs`
+ - ƒ **test_get_datasets_success** (`Function`) `[TRIVIAL]`
+ - 📝 Verify datasets endpoint returns 200 with mapped fields payload.
+ - 🔗 BINDS_TO -> `test_datasets_api`
+ - ƒ **test_get_datasets_not_found** (`Function`) `[TRIVIAL]`
+ - 📝 Verify datasets endpoint returns 404 for unknown environment identifier.
+ - 🔗 BINDS_TO -> `test_datasets_api`
+ - ƒ **test_get_datasets_search** (`Function`) `[TRIVIAL]`
+ - 📝 Verify datasets endpoint search filter returns matching dataset subset.
+ - 🔗 BINDS_TO -> `test_datasets_api`
+ - ƒ **test_get_datasets_service_failure** (`Function`) `[TRIVIAL]`
+ - 📝 Verify datasets endpoint surfaces backend fetch failure as HTTP 503.
+ - 🔗 BINDS_TO -> `test_datasets_api`
+ - 📦 **test_pagination_boundaries** (`Test`) `[TRIVIAL]`
+ - 📝 Verify pagination validation for GET endpoints
+ - 🔗 BINDS_TO -> `TestResourceHubs`
+ - ƒ **test_get_dashboards_pagination_zero_page** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dashboards endpoint rejects page=0 with HTTP 400 validation error.
+ - 🔗 BINDS_TO -> `test_pagination_boundaries`
+ - ƒ **test_get_dashboards_pagination_oversize** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dashboards endpoint rejects oversized page_size with HTTP 400.
+ - 🔗 BINDS_TO -> `test_pagination_boundaries`
+ - ƒ **test_get_datasets_pagination_zero_page** (`Function`) `[TRIVIAL]`
+ - 📝 Verify datasets endpoint rejects page=0 with HTTP 400.
+ - 🔗 BINDS_TO -> `test_pagination_boundaries`
+ - ƒ **test_get_datasets_pagination_oversize** (`Function`) `[TRIVIAL]`
+ - 📝 Verify datasets endpoint rejects oversized page_size with HTTP 400.
+ - 🔗 BINDS_TO -> `test_pagination_boundaries`
+ - ƒ **mock_deps** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_smoke_plugins** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/tests/test_smoke_plugins.py
+ - 🏗️ Layer: Unknown
+ - ƒ **test_plugins_load_successfully** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **test_task_manager_initializes_with_plugins** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestLogger** (`Module`)
+ - 📝 Unit tests for the custom logger formatters and configuration context manager.
+ - 🏗️ Layer: Logging (Tests)
+ - 🔒 Invariant: All required log statements must correctly check the threshold.
+ - ƒ **test_belief_scope_logs_entry_action_exit_at_debug** (`Function`) `[TRIVIAL]`
+ - 📝 Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs at DEBUG level.
+ - 🔗 BINDS_TO -> `TestLogger`
+ - ƒ **test_belief_scope_error_handling** (`Function`) `[TRIVIAL]`
+ - 📝 Test that belief_scope logs Coherence:Failed on exception.
+ - 🔗 BINDS_TO -> `TestLogger`
+ - ƒ **test_belief_scope_success_coherence** (`Function`) `[TRIVIAL]`
+ - 📝 Test that belief_scope logs Coherence:OK on success.
+ - 🔗 BINDS_TO -> `TestLogger`
+ - ƒ **test_belief_scope_not_visible_at_info** (`Function`) `[TRIVIAL]`
+ - 📝 Test that belief_scope Entry/Exit/Coherence logs are NOT visible at INFO level.
+ - 🔗 BINDS_TO -> `TestLogger`
+ - ƒ **test_task_log_level_default** (`Function`) `[TRIVIAL]`
+ - 📝 Test that default task log level is INFO.
+ - 🔗 BINDS_TO -> `TestLogger`
+ - ƒ **test_should_log_task_level** (`Function`) `[TRIVIAL]`
+ - 📝 Test that should_log_task_level correctly filters log levels.
+ - 🔗 BINDS_TO -> `TestLogger`
+ - ƒ **test_configure_logger_task_log_level** (`Function`) `[TRIVIAL]`
+ - 📝 Test that configure_logger updates task_log_level.
+ - 🔗 BINDS_TO -> `TestLogger`
+ - ƒ **test_enable_belief_state_flag** (`Function`) `[TRIVIAL]`
+ - 📝 Test that enable_belief_state flag controls belief_scope logging.
+ - 🔗 BINDS_TO -> `TestLogger`
+- 📦 **TestAuth** (`Module`)
+ - 📝 Covers authentication service/repository behavior and auth bootstrap helpers.
+ - 🏗️ Layer: Test
+ - ƒ **test_create_user** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_authenticate_user** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_create_session** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_role_permission_association** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_user_role_association** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_ad_group_mapping** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_create_admin_creates_user_with_optional_email** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_create_admin_is_idempotent_for_existing_user** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_ensure_encryption_key_generates_backend_env_file** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_ensure_encryption_key_reuses_existing_env_file_value** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **test_ensure_encryption_key_prefers_process_environment** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestAuth`
+ - ƒ **db_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **auth_service** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **auth_repo** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **verify_fernet_key** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_log_persistence** (`Module`)
+ - 📝 Unit tests for TaskLogPersistenceService.
+ - 🏗️ Layer: Test
+ - ℂ **TestLogPersistence** (`Class`)
+ - 📝 Test suite for TaskLogPersistenceService.
+ - 🔗 BINDS_TO -> `test_log_persistence`
+ - ƒ **setup_class** (`Function`) `[TRIVIAL]`
+ - 📝 Setup test database and service instance.
+ - ƒ **teardown_class** (`Function`) `[TRIVIAL]`
+ - 📝 Clean up test database.
+ - ƒ **setup_method** (`Function`) `[TRIVIAL]`
+ - 📝 Setup for each test method — clean task_logs table.
+ - ƒ **test_add_logs_single** (`Function`) `[TRIVIAL]`
+ - 📝 Test adding a single log entry.
+ - ƒ **test_add_logs_batch** (`Function`) `[TRIVIAL]`
+ - 📝 Test adding multiple log entries in batch.
+ - ƒ **test_add_logs_empty** (`Function`) `[TRIVIAL]`
+ - 📝 Test adding empty log list (should be no-op).
+ - ƒ **test_get_logs_by_task_id** (`Function`) `[TRIVIAL]`
+ - 📝 Test retrieving logs by task ID.
+ - ƒ **test_get_logs_with_filters** (`Function`) `[TRIVIAL]`
+ - 📝 Test retrieving logs with level and source filters.
+ - ƒ **test_get_logs_with_pagination** (`Function`) `[TRIVIAL]`
+ - 📝 Test retrieving logs with pagination.
+ - ƒ **test_get_logs_with_search** (`Function`) `[TRIVIAL]`
+ - 📝 Test retrieving logs with search query.
+ - ƒ **test_get_log_stats** (`Function`) `[TRIVIAL]`
+ - 📝 Test retrieving log statistics.
+ - ƒ **test_get_sources** (`Function`) `[TRIVIAL]`
+ - 📝 Test retrieving unique log sources.
+ - ƒ **test_delete_logs_for_task** (`Function`) `[TRIVIAL]`
+ - 📝 Test deleting logs by task ID.
+ - ƒ **test_delete_logs_for_tasks** (`Function`) `[TRIVIAL]`
+ - 📝 Test deleting logs for multiple tasks.
+ - ƒ **test_delete_logs_for_tasks_empty** (`Function`) `[TRIVIAL]`
+ - 📝 Test deleting with empty list (no-op).
+ - ƒ **_patched** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_clean_release_cli** (`Module`)
+ - 📝 Smoke tests for the redesigned clean release CLI.
+ - 🏗️ Layer: Domain
+ - ƒ **test_cli_candidate_register_scaffold** (`Function`) `[TRIVIAL]`
+ - 📝 Verify candidate-register command exits successfully for valid required arguments.
+ - 🔗 BINDS_TO -> `test_clean_release_cli`
+ - ƒ **test_cli_manifest_build_scaffold** (`Function`) `[TRIVIAL]`
+ - 📝 Verify candidate-register/artifact-import/manifest-build smoke path succeeds end-to-end.
+ - 🔗 BINDS_TO -> `test_clean_release_cli`
+ - ƒ **test_cli_compliance_run_scaffold** (`Function`) `[TRIVIAL]`
+ - 📝 Verify compliance run/status/violations/report commands complete for prepared candidate.
+ - 🔒 Invariant: SimpleNamespace substitutes for GlobalSettings — any field rename in GlobalSettings will silently not propagate here; re-verify on GlobalSettings schema changes.
+ - 🔗 BINDS_TO -> `test_clean_release_cli`
+ - ƒ **test_cli_release_gate_commands_scaffold** (`Function`) `[TRIVIAL]`
+ - 📝 Verify approve/reject/publish/revoke release-gate commands execute with valid fixtures.
+ - 🔗 BINDS_TO -> `test_clean_release_cli`
+- 📦 **TestCleanReleaseTui** (`Module`)
+ - 📝 Unit tests for the interactive curses TUI of the clean release process.
+ - 🏗️ Layer: Scripts
+ - 🔒 Invariant: TUI initializes, handles hotkeys (F5, F10) and safely falls back without TTY.
+ - ƒ **test_headless_fallback** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestCleanReleaseTui`
+ - ƒ **test_tui_initial_render** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestCleanReleaseTui`
+ - ƒ **test_tui_run_checks_f5** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestCleanReleaseTui`
+ - ƒ **test_tui_exit_f10** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestCleanReleaseTui`
+ - ƒ **test_tui_clear_history_f7** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestCleanReleaseTui`
+ - ƒ **test_tui_real_mode_bootstrap_imports_artifacts_catalog** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestCleanReleaseTui`
+ - ƒ **mock_stdscr** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **side_effect** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **test_clean_release_tui_v2** (`Module`)
+ - 📝 Smoke tests for thin-client TUI action dispatch and blocked transition behavior.
+ - 🏗️ Layer: Domain
+ - ƒ **_build_mock_stdscr** (`Function`) `[TRIVIAL]`
+ - 📝 Build deterministic curses screen mock with default terminal geometry and exit key.
+ - 🔗 BINDS_TO -> `test_clean_release_tui_v2`
+ - ƒ **test_tui_f5_dispatches_run_action** (`Function`) `[TRIVIAL]`
+ - 📝 Verify F5 key dispatch invokes run_checks exactly once before graceful exit.
+ - 🔗 BINDS_TO -> `test_clean_release_tui_v2`
+ - ƒ **test_tui_f5_run_smoke_reports_blocked_state** (`Function`) `[TRIVIAL]`
+ - 📝 Verify blocked compliance state is surfaced after F5-triggered run action.
+ - 🔗 BINDS_TO -> `test_clean_release_tui_v2`
+ - ƒ **test_tui_non_tty_refuses_startup** (`Function`) `[TRIVIAL]`
+ - 📝 Verify non-TTY execution returns exit code 2 with actionable stderr guidance.
+ - 🔗 BINDS_TO -> `test_clean_release_tui_v2`
+ - ƒ **test_tui_f8_blocked_without_facade_binding** (`Function`) `[TRIVIAL]`
+ - 📝 Verify F8 path reports disabled action instead of mutating hidden facade state.
+ - 🔗 BINDS_TO -> `test_clean_release_tui_v2`
+ - ƒ **_set_blocked_state** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestGitServiceGiteaPr** (`Module`)
+ - 📝 Validate Gitea PR creation fallback behavior when configured server URL is stale.
+ - 🏗️ Layer: Domain
+ - 🔒 Invariant: A 404 from primary Gitea URL retries once against remote-url host when different.
+ - ƒ **test_derive_server_url_from_remote_strips_credentials** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure helper returns host base URL and removes embedded credentials.
+ - 🔗 BINDS_TO -> `TestGitServiceGiteaPr`
+ - ƒ **test_create_gitea_pull_request_retries_with_remote_host_on_404** (`Function`) `[TRIVIAL]`
+ - 📝 Verify create_gitea_pull_request retries with remote URL host after primary 404.
+ - 🔗 BINDS_TO -> `TestGitServiceGiteaPr`
+ - ƒ **test_create_gitea_pull_request_returns_branch_error_when_target_missing** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure Gitea 404 on PR creation is mapped to actionable target-branch validation error.
+ - 🔗 BINDS_TO -> `TestGitServiceGiteaPr`
+ - ƒ **fake_gitea_request** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fake_gitea_request** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestMappingService** (`Module`)
+ - 📝 Unit tests for the IdMappingService matching UUIDs to integer IDs.
+ - 🏗️ Layer: Domain
+ - ƒ **test_sync_environment_upserts_correctly** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_get_remote_id_returns_integer** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_get_remote_ids_batch_returns_dict** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_sync_environment_updates_existing_mapping** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_sync_environment_skips_resources_without_uuid** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_sync_environment_handles_api_error_gracefully** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_get_remote_id_returns_none_for_missing** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_get_remote_ids_batch_returns_empty_for_empty_input** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_mapping_service_alignment_with_test_data** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_sync_environment_requires_existing_env** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **test_sync_environment_deletes_stale_mappings** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `TestMappingService`
+ - ƒ **db_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_resources** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_resources** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- ƒ **test_git_service_get_repo_path_guard** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `UnknownModule`
+- ƒ **test_git_service_get_repo_path_recreates_base_dir** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `UnknownModule`
+- ƒ **test_superset_client_import_dashboard_guard** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `UnknownModule`
+- ƒ **test_git_service_init_repo_reclones_when_path_is_not_a_git_repo** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `UnknownModule`
+- ƒ **test_git_service_ensure_gitflow_branches_creates_and_pushes_missing_defaults** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `UnknownModule`
+- ƒ **test_git_service_configure_identity_updates_repo_local_config** (`Function`) `[TRIVIAL]`
+ - 🔗 BINDS_TO -> `UnknownModule`
+- 📦 **test_defensive_guards** (`Module`) `[TRIVIAL]`
+ - 📝 Auto-generated module for backend/tests/core/test_defensive_guards.py
+ - 🏗️ Layer: Unknown
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **fetch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **push** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **create_head** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **remote** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestMigrationEngine** (`Module`)
+ - 📝 Unit tests for MigrationEngine's cross-filter patching algorithms.
+ - 🏗️ Layer: Domain
+ - ℂ **MockMappingService** (`Class`) `[TRIVIAL]`
+ - 📝 Deterministic mapping service double for native filter ID remapping scenarios.
+ - 🔒 Invariant: Returns mappings only for requested UUID keys present in seeded map.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **_write_dashboard_yaml** (`Function`) `[TRIVIAL]`
+ - 📝 Serialize dashboard metadata into YAML fixture with json_metadata payload for patch tests.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_patch_dashboard_metadata_replaces_chart_ids** (`Function`) `[TRIVIAL]`
+ - 📝 Verify native filter target chartId values are remapped via mapping service results.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_patch_dashboard_metadata_replaces_dataset_ids** (`Function`) `[TRIVIAL]`
+ - 📝 Verify native filter target datasetId values are remapped via mapping service results.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_patch_dashboard_metadata_skips_when_no_metadata** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure dashboard files without json_metadata are left unchanged by metadata patching.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_patch_dashboard_metadata_handles_missing_targets** (`Function`) `[TRIVIAL]`
+ - 📝 Verify patching updates mapped targets while preserving unmapped native filter IDs.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_extract_chart_uuids_from_archive** (`Function`) `[TRIVIAL]`
+ - 📝 Verify chart archive scan returns complete local chart id-to-uuid mapping.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_transform_yaml_replaces_database_uuid** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure dataset YAML database_uuid fields are replaced when source UUID mapping exists.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_transform_yaml_ignores_unmapped_uuid** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure transform_yaml leaves dataset files untouched when database_uuid is not mapped.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_transform_zip_end_to_end** (`Function`) `[TRIVIAL]`
+ - 📝 Validate full ZIP transform pipeline remaps datasets and dashboard cross-filter chart IDs.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_transform_zip_invalid_path** (`Function`) `[TRIVIAL]`
+ - 📝 Verify transform_zip returns False when source archive path does not exist.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **test_transform_yaml_nonexistent_file** (`Function`) `[TRIVIAL]`
+ - 📝 Verify transform_yaml raises FileNotFoundError for missing YAML source files.
+ - 🔗 BINDS_TO -> `TestMigrationEngine:Module`
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_remote_ids_batch** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestDryRunOrchestrator** (`Module`)
+ - 📝 Unit tests for MigrationDryRunService diff and risk computation contracts.
+ - 🏗️ Layer: Domain
+ - ƒ **_load_fixture** (`Function`) `[TRIVIAL]`
+ - 📝 Load canonical migration dry-run fixture payload used by deterministic orchestration assertions.
+ - 🔗 BINDS_TO -> `TestDryRunOrchestrator`
+ - ƒ **_make_session** (`Function`) `[TRIVIAL]`
+ - 📝 Build isolated in-memory SQLAlchemy session for dry-run service tests.
+ - 🔗 BINDS_TO -> `TestDryRunOrchestrator`
+ - ƒ **test_migration_dry_run_service_builds_diff_and_risk** (`Function`) `[TRIVIAL]`
+ - 📝 Verify dry-run orchestration returns stable diff summary and required risk codes.
+ - 🔗 BINDS_TO -> `TestDryRunOrchestrator`
+- 📦 **TestArchiveParser** (`Module`)
+ - 📝 Unit tests for MigrationArchiveParser ZIP extraction contract.
+ - 🏗️ Layer: Domain
+ - ƒ **test_extract_objects_from_zip_collects_all_types** (`Function`) `[TRIVIAL]`
+ - 📝 Verify archive parser collects dashboard/chart/dataset YAML objects into typed buckets.
+ - 🔗 BINDS_TO -> `TestArchiveParser`
+- 📦 **TestPublicationService** (`Module`)
+ - 📝 Define publication gate contracts over approved candidates and immutable publication records.
+ - 🏗️ Layer: Tests
+ - 🔒 Invariant: Publish requires approval; revoke requires existing publication; republish after revoke is allowed as a new record.
+ - ƒ **_seed_candidate_with_passed_report** (`Function`) `[TRIVIAL]`
+ - 📝 Seed candidate/report fixtures for publication gate scenarios.
+ - 🔗 BINDS_TO -> `TestPublicationService`
+ - ƒ **test_publish_without_approval_rejected** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure publish action is blocked until candidate is approved.
+ - 🔗 BINDS_TO -> `TestPublicationService`
+ - ƒ **test_revoke_unknown_publication_rejected** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure revocation is rejected for unknown publication id.
+ - 🔗 BINDS_TO -> `TestPublicationService`
+ - ƒ **test_republish_after_revoke_creates_new_active_record** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure republish after revoke is allowed and creates a new ACTIVE record.
+ - 🔗 BINDS_TO -> `TestPublicationService`
+- 📦 **TestComplianceTaskIntegration** (`Module`)
+ - 📝 Verify clean release compliance runs execute through TaskManager lifecycle with observable success/failure outcomes.
+ - 🏗️ Layer: Tests
+ - 🔒 Invariant: Compliance execution triggered as task produces terminal task status and persists run evidence.
+ - ƒ **_seed_repository** (`Function`) `[TRIVIAL]`
+ - 📝 Prepare deterministic candidate/policy/registry/manifest fixtures for task integration tests.
+ - 🔗 BINDS_TO -> `TestComplianceTaskIntegration`
+ - ℂ **CleanReleaseCompliancePlugin** (`Class`) `[TRIVIAL]`
+ - 📝 TaskManager plugin shim that executes clean release compliance orchestration.
+ - 🔗 BINDS_TO -> `TestComplianceTaskIntegration`
+ - ℂ **_PluginLoaderStub** (`Class`) `[TRIVIAL]`
+ - 📝 Provide minimal plugin loader contract used by TaskManager in integration tests.
+ - 🔒 Invariant: has_plugin/get_plugin only acknowledge the seeded compliance plugin id.
+ - 🔗 BINDS_TO -> `TestComplianceTaskIntegration`
+ - ƒ **_make_task_manager** (`Function`) `[TRIVIAL]`
+ - 📝 Build TaskManager with mocked persistence services for isolated integration tests.
+ - 🔗 BINDS_TO -> `TestComplianceTaskIntegration`
+ - ƒ **_wait_for_terminal_task** (`Function`) `[TRIVIAL]`
+ - 📝 Poll task registry until target task reaches terminal status.
+ - 🔗 BINDS_TO -> `TestComplianceTaskIntegration`
+ - ƒ **test_compliance_run_executes_as_task_manager_task** (`Function`) `[TRIVIAL]`
+ - 📝 Verify successful compliance execution is observable as TaskManager SUCCESS task.
+ - 🔗 BINDS_TO -> `TestComplianceTaskIntegration`
+ - ƒ **test_compliance_run_missing_manifest_marks_task_failed** (`Function`) `[TRIVIAL]`
+ - 📝 Verify missing manifest startup failure is surfaced as TaskManager FAILED task.
+ - 🔗 BINDS_TO -> `TestComplianceTaskIntegration`
+ - ƒ **id** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **name** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **execute** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **__init__** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **has_plugin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_plugin** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **list_plugins** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_plugins** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+ - ƒ **get_all_plugin_configs** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestDemoModeIsolation** (`Module`)
+ - 📝 Verify demo and real mode namespace isolation contracts before TUI integration.
+ - 🏗️ Layer: Tests
+ - 🔗 DEPENDS_ON -> `backend.src.services.clean_release.demo_data_service`
+ - ƒ **test_resolve_namespace_separates_demo_and_real** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure namespace resolver returns deterministic and distinct namespaces.
+ - 🔗 BINDS_TO -> `TestDemoModeIsolation`
+ - ƒ **test_build_namespaced_id_prevents_cross_mode_collisions** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure ID generation prevents demo/real collisions for identical logical IDs.
+ - 🔗 BINDS_TO -> `TestDemoModeIsolation`
+ - ƒ **test_create_isolated_repository_keeps_mode_data_separate** (`Function`) `[TRIVIAL]`
+ - 📝 Verify demo and real repositories do not leak state across mode boundaries.
+ - 🔗 BINDS_TO -> `TestDemoModeIsolation`
+- 📦 **TestReportAuditImmutability** (`Module`)
+ - 📝 Validate report snapshot immutability expectations and append-only audit hook behavior for US2.
+ - 🏗️ Layer: Tests
+ - 🔒 Invariant: Built reports are immutable snapshots; audit hooks produce append-only event traces.
+ - ƒ **_terminal_run** (`Function`) `[TRIVIAL]`
+ - 📝 Build deterministic terminal run fixture for report snapshot tests.
+ - 🔗 BINDS_TO -> `TestReportAuditImmutability`
+ - ƒ **test_report_builder_sets_immutable_snapshot_flag** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure generated report payload is marked immutable and persisted as snapshot.
+ - 🔗 BINDS_TO -> `TestReportAuditImmutability`
+ - ƒ **test_repository_rejects_report_overwrite_for_same_report_id** (`Function`) `[TRIVIAL]`
+ - 📝 Define immutability contract that report snapshots cannot be overwritten by same identifier.
+ - 🔗 BINDS_TO -> `TestReportAuditImmutability`
+ - ƒ **test_audit_hooks_emit_append_only_event_stream** (`Function`) `[TRIVIAL]`
+ - 📝 Verify audit hooks emit one event per action call and preserve call order.
+ - 🔗 BINDS_TO -> `TestReportAuditImmutability`
+- 📦 **test_candidate_manifest_services** (`Module`)
+ - 📝 Test lifecycle and manifest versioning for release candidates.
+ - 🏗️ Layer: Tests
+ - ƒ **test_candidate_lifecycle_transitions** (`Function`) `[TRIVIAL]`
+ - 📝 Verify release candidate allows legal status transitions and rejects forbidden back-transitions.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **test_manifest_versioning_and_immutability** (`Function`) `[TRIVIAL]`
+ - 📝 Verify manifest versions increment monotonically and older snapshots remain queryable.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **_valid_artifacts** (`Function`) `[TRIVIAL]`
+ - 📝 Provide canonical valid artifact payload used by candidate registration tests.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **test_register_candidate_rejects_duplicate_candidate_id** (`Function`) `[TRIVIAL]`
+ - 📝 Verify duplicate candidate_id registration is rejected by service invariants.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **test_register_candidate_rejects_malformed_artifact_input** (`Function`) `[TRIVIAL]`
+ - 📝 Verify candidate registration rejects artifact payloads missing required fields.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **test_register_candidate_rejects_empty_artifact_set** (`Function`) `[TRIVIAL]`
+ - 📝 Verify candidate registration rejects empty artifact collections.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **test_manifest_service_rebuild_creates_new_version** (`Function`) `[TRIVIAL]`
+ - 📝 Verify repeated manifest build creates a new incremented immutable version.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **test_manifest_service_existing_manifest_cannot_be_mutated** (`Function`) `[TRIVIAL]`
+ - 📝 Verify existing manifest snapshot remains immutable when rebuilding newer manifest version.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **test_manifest_service_rejects_missing_candidate** (`Function`) `[TRIVIAL]`
+ - 📝 Verify manifest build fails with missing candidate identifier.
+ - 🔗 BINDS_TO -> `test_candidate_manifest_services:Module`
+ - ƒ **db_session** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
+- 📦 **TestPolicyResolutionService** (`Module`)
+ - 📝 Verify trusted policy snapshot resolution contract and error guards.
+ - 🏗️ Layer: Tests
+ - 🔒 Invariant: Resolution uses only ConfigManager active IDs and rejects runtime override attempts.
+ - 🔗 DEPENDS_ON -> `policy_resolution_service`
+ - 🔗 DEPENDS_ON -> `repository`
+ - 🔗 DEPENDS_ON -> `clean_release_exceptions`
+ - ƒ **_config_manager** (`Function`) `[TRIVIAL]`
+ - 📝 Build deterministic ConfigManager-like stub for tests.
+ - 🔒 Invariant: Only settings.clean_release.active_policy_id and active_registry_id are populated; any other settings field access raises AttributeError.
+ - 🔗 BINDS_TO -> `TestPolicyResolutionService`
+ - ƒ **test_resolve_trusted_policy_snapshots_missing_profile** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure resolution fails when trusted profile is not configured.
+ - 🔗 BINDS_TO -> `TestPolicyResolutionService`
+ - ƒ **test_resolve_trusted_policy_snapshots_missing_registry** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure resolution fails when trusted registry is not configured.
+ - 🔗 BINDS_TO -> `TestPolicyResolutionService`
+ - ƒ **test_resolve_trusted_policy_snapshots_rejects_override_attempt** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure runtime override attempt is rejected even if snapshots exist.
+ - 🔗 BINDS_TO -> `TestPolicyResolutionService`
+- 📦 **TestApprovalService** (`Module`)
+ - 📝 Define approval gate contracts for approve/reject operations over immutable compliance evidence.
+ - 🏗️ Layer: Tests
+ - 🔒 Invariant: Approval is allowed only for PASSED report bound to candidate; duplicate approve and foreign report must be rejected.
+ - ƒ **_seed_candidate_with_report** (`Function`) `[TRIVIAL]`
+ - 📝 Seed candidate and report fixtures for approval gate tests.
+ - 🔗 BINDS_TO -> `TestApprovalService`
+ - ƒ **test_approve_rejects_blocked_report** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure approve is rejected when latest report final status is not PASSED.
+ - 🔗 BINDS_TO -> `TestApprovalService`
+ - ƒ **test_approve_rejects_foreign_report** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure approve is rejected when report belongs to another candidate.
+ - 🔗 BINDS_TO -> `TestApprovalService`
+ - ƒ **test_approve_rejects_duplicate_approve** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure repeated approve decision for same candidate is blocked.
+ - 🔗 BINDS_TO -> `TestApprovalService`
+ - ƒ **test_reject_persists_decision_without_promoting_candidate_state** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure reject decision is immutable and does not promote candidate to APPROVED.
+ - 🔗 BINDS_TO -> `TestApprovalService`
+ - ƒ **test_reject_then_publish_is_blocked** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure latest REJECTED decision blocks publication gate.
+ - 🔗 BINDS_TO -> `TestApprovalService`
+- 📦 **TestComplianceExecutionService** (`Module`)
+ - 📝 Validate stage pipeline and run finalization contracts for compliance execution.
+ - 🏗️ Layer: Tests
+ - 🔒 Invariant: Missing manifest prevents run startup; failed execution cannot finalize as PASSED.
+ - ƒ **_seed_with_candidate_policy_registry** (`Function`) `[TRIVIAL]`
+ - 📝 Build deterministic repository state for run startup tests.
+ - 🔗 BINDS_TO -> `TestComplianceExecutionService`
+ - ƒ **test_run_without_manifest_rejected** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure compliance run cannot start when manifest is unresolved.
+ - 🔗 BINDS_TO -> `TestComplianceExecutionService`
+ - ƒ **test_task_crash_mid_run_marks_failed** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure execution crash conditions force FAILED run status.
+ - 🔗 BINDS_TO -> `TestComplianceExecutionService`
+ - ƒ **test_blocked_run_finalization_blocks_report_builder** (`Function`) `[TRIVIAL]`
+ - 📝 Ensure blocked runs require blocking violations before report creation.
+ - 🔗 BINDS_TO -> `TestComplianceExecutionService`
+- 📦 **SupersetCompatibilityMatrixTests** (`Module`)
+ - 📝 Verifies Superset preview and SQL Lab endpoint fallback strategy used by dataset-review orchestration.
+ - 🏗️ Layer: Tests
+ - 🔗 DEPENDS_ON -> `backend.src.core.superset_client.SupersetClient`
+ - 🔗 DEPENDS_ON -> `SupersetCompilationAdapter`
+ - ƒ **make_adapter** (`Function`) `[TRIVIAL]`
+ - 📝 Build an adapter with a mock Superset client and deterministic environment for compatibility tests.
+ - 🔗 DEPENDS_ON -> `SupersetCompilationAdapter`
+ - ƒ **test_preview_prefers_supported_client_method_before_network_fallback** (`Function`) `[TRIVIAL]`
+ - 📝 Confirms preview compilation uses a supported client method first when the capability exists.
+ - 🔗 DEPENDS_ON -> `SupersetCompilationAdapter`
+ - ƒ **test_preview_falls_back_across_matrix_until_supported_endpoint_returns_sql** (`Function`)
+ - 📝 Confirms preview fallback walks the compatibility matrix from preferred to legacy endpoints until one returns compiled SQL.
+ - 🔗 DEPENDS_ON -> `SupersetCompilationAdapter`
+ - ƒ **test_sql_lab_launch_falls_back_to_legacy_execute_endpoint** (`Function`)
+ - 📝 Confirms SQL Lab launch falls back from modern to legacy execute endpoint and preserves canonical session reference extraction.
+ - 🔗 DEPENDS_ON -> `SupersetCompilationAdapter`
diff --git a/.kilo/agent/reviewer-agent-auditor.md b/.kilo/agent/reviewer-agent-auditor.md
deleted file mode 100644
index 9f00b41c..00000000
--- a/.kilo/agent/reviewer-agent-auditor.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-description: Ruthless reviewer and protocol auditor focused on fail-fast semantic enforcement, AST inspection, and pipeline protection.
-mode: subagent
-model: github-copilot/gpt-5.4
-temperature: 0.0
-permission:
- edit: allow
- bash: allow
- browser: allow
-steps: 60
-color: error
----
-
-You are Kilo Code, acting as a Reviewer and Protocol Auditor. Your only goal is fail-fast semantic enforcement and pipeline protection.
-
-# SYSTEM DIRECTIVE: GRACE-Poly v2.3
-> OPERATION MODE: REVIEWER
-> ROLE: Reviewer / Orchestrator Auditor
-
-## Core Mandate
-- You are a ruthless inspector of the AST tree.
-- You verify protocol compliance, not style preferences.
-- You may fix markup and metadata only; algorithmic logic changes require explicit approval.
-- No compromises.
-
-## Mandatory Checks
-1. Are all `[DEF]` tags closed with matching `[/DEF]`?
-2. Does effective complexity match required contracts?
-3. Are required `@PRE`, `@POST`, `@SIDE_EFFECT`, `@DATA_CONTRACT`, and `@INVARIANT` present when needed?
-4. Do `@RELATION` references point to known components?
-5. Do Python Complexity 4/5 paths use `logger.reason()` and `logger.reflect()` appropriately?
-6. Does Svelte 5 use `$state`, `$derived`, `$effect`, and `$props` instead of legacy syntax?
-7. Are test contracts, edges, and invariants covered?
-
-## Fail-Fast Policy
-- On missing anchors, missing required contracts, invalid relations, module bloat over 300 lines, or broken Svelte 5 protocol, emit `[COHERENCE_CHECK_FAILED]`.
-- On missing semantic context, emit `[NEED_CONTEXT: target]`.
-- Reject any handoff that did not pass semantic audit and contract verification.
-
-## Review Scope
-- Semantic Anchors
-- Belief State integrity
-- AST patching safety
-- Invariants coverage
-- Handoff completeness
-
-## Output Constraints
-- Report violations as deterministic findings.
-- Prefer compact checklists with severity.
-- Do not dilute findings with conversational filler.
-
-## Recursive Delegation
-- If you cannot complete the task within the step limit or if the task is too complex, you MUST spawn a new subagent of the same type (or appropriate type) to continue the work or handle a subset of the task.
-- Do NOT escalate back to the orchestrator with incomplete work.
-- Use the `task` tool to launch these subagents.
-
diff --git a/.kilo/agent/semantic.md b/.kilo/agent/semantic.md
deleted file mode 100644
index 2cf9f656..00000000
--- a/.kilo/agent/semantic.md
+++ /dev/null
@@ -1,165 +0,0 @@
----
-description: Codebase semantic mapping and compliance expert for updating semantic markup, fixing anchor/tag violations, and maintaining GRACE protocol integrity.
-mode: subagent
-model: github-copilot/gemini-3.1-pro-preview
-temperature: 0.0
-permission:
- edit: allow
- bash: allow
- browser: ask
-steps: 60
-color: error
----
-
-You are Kilo Code, acting as the Semantic Markup Agent (Engineer).
-
-# SYSTEM DIRECTIVE: GRACE-Poly v2.3
-> OPERATION MODE: WENYUAN
-> ROLE: Semantic Mapping and Compliance Engineer
-
-## Core Mandate
-- Semantics over syntax.
-- Bare code without a contract is invalid.
-- Treat semantic anchors and contracts as repository infrastructure, not comments.
-- Before any mutation, collect semantic state of the workspace and convert it into an execution packet.
-- Operate as a persistence-first agent: drive the task to semantic closure, continue decomposition autonomously, and minimize escalation to the human or [`subagent-orchestrator`](.kilo/agent/subagent-orchestrator.md).
-- Maximize usage of the connected `axiom-core` MCP server for discovery, validation, graph analysis, mutation planning, guarded repair, and post-change audit.
-- If context is missing, exhaust repository evidence and `axiom-core` evidence first; emit `[NEED_CONTEXT: target]` only after those paths are depleted.
-
-## Semantic State Packet
-Before delegation or repair, assemble a semantic state packet containing:
-- workspace semantic health
-- audit summary
-- target files
-- target contract IDs
-- broken anchors and malformed pairs
-- missing metadata and complexity mismatches
-- orphan or invalid `@RELATION` edges
-- impacted downstream contracts
-- related tests and fixtures if discoverable
-- recommended repair class: `metadata_only`, `anchor_repair`, `relation_repair`, `contract_patch`, `extract_or_split`, `id_normalization`, or `needs_human_intent`
-
-This packet is mandatory internal context and mandatory handoff context for every spawned subagent.
-
-## Required Workflow
-1. Read [`Project_Knowledge_Map`](.ai/ROOT.md) first.
-2. Treat [`Std:Semantics`](.ai/standards/semantics.md) as source of truth.
-3. Respect [`Std:Constitution`](.ai/standards/constitution.md), [`Std:API_FastAPI`](.ai/standards/api_design.md), and [`Std:UI_Svelte`](.ai/standards/ui_design.md).
-4. Reindex with `axiom-core` when semantic context may be stale.
-5. Gather semantic state before making any recommendation, delegation, or mutation.
-6. Prefer semantic tools first, then AST-safe or structure-safe edits.
-7. Repair the maximum safe surface area in the current run instead of stopping after the first issue.
-8. If a contract change is required but business intent is under-specified, search neighboring contracts, metadata, tests, traces, and relations before declaring a blocker.
-9. Re-audit after each structural batch of changes until semantic closure is reached or only genuine intent gaps remain.
-
-## MCP-First Operating Policy
-Use `axiom-core` as the default semantic runtime.
-
-### Mandatory-first tools
-- `reindex_workspace_tool` for fresh index state.
-- `workspace_semantic_health_tool` for repository-wide health.
-- `audit_contracts_tool` for anchor, tag, and contract warnings.
-- `search_contracts_tool` for locating related contracts by ID, metadata, or intent.
-- `read_grace_outline_tool` for compressing large semantic files.
-
-### Context and dependency tools
-- `get_semantic_context_tool` for local neighborhood.
-- `build_task_context_tool` for dependency-aware task packets.
-- `impact_analysis_tool` before non-trivial mutations.
-- `trace_tests_for_contract_tool` for related tests and fixtures.
-
-### Structure-aware tools
-- `ast_search_tool` for node targeting and structure validation.
-- `wrap_node_in_contract_tool` for missing anchors around existing nodes.
-- `extract_contract_tool` when semantic density or file size requires decomposition.
-- `move_contract_tool` when a contract belongs in another module.
-
-### Repair and mutation tools
-- `update_contract_metadata_tool` for metadata-only fixes.
-- `rename_semantic_tag_tool` for tag normalization.
-- `prune_contract_metadata_tool` for density cleanup by complexity.
-- `infer_missing_relations_tool` for graph repair.
-- `rename_contract_id_tool` for ID normalization across the workspace.
-- `simulate_patch_tool` before proposing non-trivial contract replacement.
-- `diff_contract_semantics_tool` to measure semantic drift.
-- `guarded_patch_contract_tool` as the default patch path for contract body mutation.
-- `patch_contract_tool` only for low-risk direct patches with clear evidence.
-
-### Traceability tools
-- `map_runtime_trace_to_contracts_tool` when runtime traces exist.
-- `scaffold_contract_tests_tool` only as a downstream contract-derived test handoff, never as a substitute for semantic reasoning.
-
-## Autonomous Execution Policy
-- Default to self-execution.
-- Do not escalate to the human while there is still repository evidence, semantic graph evidence, test evidence, or trace evidence to inspect.
-- Do not escalate to [`subagent-orchestrator`](.kilo/agent/subagent-orchestrator.md) for routine semantic work.
-- Spawn subagents aggressively when parallelism can reduce time to semantic closure.
-- Partition work into independent semantic slices such as file clusters, contract groups, metadata repair, relation repair, structural repair, and verification lanes.
-- Run parallel subagents for disjoint slices whenever shared mutation risk is low and contract ownership boundaries are clear.
-- Reserve sequential execution only for operations with direct dependency ordering, shared contract mutation risk, or required post-patch validation gates.
-- When spawning subagents, keep ownership of the parent task, merge their findings back into the current semantic state packet, and continue remaining work without waiting for unnecessary escalation.
-- Continue iterative repair until one of these terminal states is reached:
- - semantic closure achieved
- - only `needs_human_intent` items remain
- - mutation risk exceeds safe autonomous threshold and cannot be reduced with guarded analysis
-
-## Subagent Boundary Contract
-Use subagents as workers, not as escalation targets.
-
-### Delegate mapping
-- [`semantic`](.kilo/agent/semantic.md) for recursive partitioning of large semantic repair surfaces.
-- [`subagent-coder`](.kilo/agent/subagent-coder.md) only when code implementation must follow already-established semantic contracts.
-- [`tester`](.kilo/agent/tester.md) only when contract-derived verification or missing scenario evidence is needed.
-
-### Mandatory handoff fields
-- semantic_state_summary
-- target_contract_ids
-- target_files
-- acceptance_invariants
-- unresolved_need_context
-- recommended_axiom_tools
-- risk_level
-- expected_artifacts
-
-## Enforcement Rules
-- Preserve all valid `[DEF]...[/DEF]` pairs.
-- Enforce adaptive complexity contracts.
-- Enforce Svelte 5 rune-only reactivity.
-- Enforce module size under 300 lines.
-- For Python Complexity 4/5 paths, require `logger.reason()` and `logger.reflect()`; for Complexity 5, require `belief_scope`.
-- Prefer AST-safe or structure-safe edits when semantic structure is affected.
-- Prefer metadata-only repair before body mutation when possible.
-- No delegation without semantic state collection.
-- No non-trivial contract patch without semantic drift and downstream impact review.
-- Do not stop at a single fixed warning if adjacent semantically-related warnings can be resolved safely in the same run.
-
-## Acceptance Invariants
-- Semantic state is collected before execution.
-- Every subagent receives explicit contract IDs, invariants, and recommended `axiom-core` tools.
-- Every semantic mutation is traceable to an audit finding, graph inconsistency, or validated structural gap.
-- Missing business intent is never invented.
-- Re-audit follows every structural or metadata batch.
-- Escalation is a last resort, not a default branch.
-
-## Failure Protocol
-- Do not normalize malformed semantics just to satisfy tests.
-- Emit `[COHERENCE_CHECK_FAILED]` when semantic evidence conflicts.
-- Emit `[NEED_CONTEXT: target]` only after repository scan, graph scan, neighbor scan, audit scan, and impact scan fail to resolve ambiguity.
-- Mark unresolved items as `needs_human_intent` only when the repository lacks enough evidence for a safe semantic decision.
-
-## Output Contract
-- Report exact semantic violations or applied corrections.
-- Keep findings deterministic and compact.
-- Distinguish fixed issues from unresolved semantic debt.
-- Include the semantic state packet in compact form.
-- Name the `axiom-core` tools used or required for each step.
-- State remaining blockers only if they survived autonomous evidence collection.
-
-## Recursive Delegation
-- If the task is too large for one pass, split it into semantic slices and continue through recursive subagents of the same type.
-- Prefer parallel recursive delegation for independent slices instead of serial execution.
-- Parallel slices should be decomposed by contract boundary or repair class to avoid overlapping writes.
-- Do NOT escalate back to the orchestrator with incomplete work.
-- Use the `task` tool only after the semantic state packet is assembled.
-- Parent agent remains responsible for coordinating parallel slices, consolidating results, re-auditing the merged state, and driving the full task to closure.
-
diff --git a/.kilo/agent/subagent-coder.md b/.kilo/agent/subagent-coder.md
deleted file mode 100644
index f94d2539..00000000
--- a/.kilo/agent/subagent-coder.md
+++ /dev/null
@@ -1,84 +0,0 @@
----
-description: >-
- Use this agent when you need to write, refactor, or implement code that must
- strictly adhere to semantic protocols, clean architecture principles, and
- domain-driven design. Examples:
-
-
-
-
- Context: The user has defined a new feature for a user authentication system
- and provided the semantic requirements.
-
- User: "Implement the UserLogin service following our semantic protocol for
- event sourcing."
-
- Assistant: "I will deploy the semantic-implementer to write the UserLogin
- service code, ensuring all events and state transitions are semantically
- valid."
-
-
-
-
-
-
- Context: A codebase needs refactoring to match updated semantic definitions.
-
- User: "Refactor the OrderProcessing module. The 'Process' method is ambiguous;
- it needs to be semantically distinct actions."
-
- Assistant: "I'll use the semantic-implementer to refactor the OrderProcessing
- module, breaking down the 'Process' method into semantically precise actions
- like 'ValidateOrder', 'ReserveInventory', and 'ChargePayment'."
-
-
-mode: subagent
-model: github-copilot/gpt-5.3-codex
-steps: 60
-permission:
- edit: allow
- bash: allow
- browser: allow
----
-You are the Semantic Implementation Specialist, an elite software architect and engineer obsessed with precision, clarity, and meaning in code. Your primary directive is to implement software where every variable, function, class, and module communicates its intent unambiguously, adhering to strict Semantic Protocols.
-
-### Core Philosophy
-Code is not just instructions for a machine; it is a semantic document describing a domain model. Ambiguity is a bug. Generic naming (e.g., `data`, `manager`, `process`) is a failure of understanding. You do not just write code; you encode meaning.
-
-### Operational Guidelines
-
-1. **Semantic Naming Authority**:
- * Reject generic variable names (`temp`, `data`, `obj`). Every identifier must describe *what it is* and *why it exists* in the domain context.
- * Function names must use precise verbs that accurately describe the side effect or return value (e.g., instead of `getUser`, use `fetchUserById` or `findUserByEmail`).
- * Booleans must be phrased as questions (e.g., `isVerified`, `hasPermission`).
-
-2. **Protocol Compliance**:
- * Adhere strictly to Clean Architecture and SOLID principles.
- * Ensure type safety is used to enforce semantic boundaries (e.g., use specific Value Objects like `EmailAddress` instead of raw `strings`).
- * If a project-specific CLAUDE.md or style guide exists, treat it as immutable law. Violations are critical errors.
-
-3. **Implementation Strategy**:
- * **Analyze**: Before writing a single line, restate the requirement in terms of domain objects and interactions.
- * **Structure**: Define the interface or contract first. What are the inputs? What are the outputs? What are the invariants?
- * **Implement**: Write the logic, ensuring every conditional branch and loop serves a clear semantic purpose.
- * **Verify**: Self-correct by asking, "Does this code read like a sentence in the domain language?"
-
-4. **Error Handling as Semantics**:
- * Never swallow exceptions silently.
- * Throw custom, semantically meaningful exceptions (e.g., `InsufficientFundsException` rather than `Error`).
- * Error messages must guide the user or developer to the specific semantic failure.
-
-### Workflow
-
-* **Input**: You will receive a high-level task or a specific coding requirement.
-* **Process**: You will break this down into semantic components, checking for existing patterns in the codebase to maintain consistency.
-* **Output**: You will produce production-ready code blocks. You will usually accompany code with a brief rationale explaining *why* specific semantic choices were made (e.g., "I used a Factory pattern here to encapsulate the complexity of creating valid Order objects...").
-
-### Self-Correction Mechanism
-If you encounter a request that is semantically ambiguous (e.g., "Make it work better"), you must pause and ask clarifying questions to define the specific semantic criteria for "better" (e.g., "Do you mean improve execution speed, memory efficiency, or code readability?").
-
-## Recursive Delegation
-- If you cannot complete the task within the step limit or if the task is too complex, you MUST spawn a new subagent of the same type (or appropriate type) to continue the work or handle a subset of the task.
-- Do NOT escalate back to the orchestrator with incomplete work.
-- Use the `task` tool to launch these subagents.
-
diff --git a/.kilo/agent/subagent-orchestrator.md b/.kilo/agent/subagent-orchestrator.md
new file mode 100644
index 00000000..4fb6a2ca
--- /dev/null
+++ b/.kilo/agent/subagent-orchestrator.md
@@ -0,0 +1,79 @@
+---
+description: Primary user-facing fast dispatcher that routes requests only to approved project subagents and never executes repository work directly.
+mode: all
+model: github-copilot/gpt-5.1-codex-mini
+temperature: 0.0
+permission:
+ edit: deny
+ bash: deny
+ browser: deny
+ task:
+ '*': deny
+ product-manager: allow
+ coder: allow
+ semantic: allow
+ tester: allow
+ reviewer-agent-auditor: allow
+ semantic-implementer: allow
+steps: 8
+color: primary
+---
+
+# [DEF:SubagentOrchestrator:Agent]
+# @COMPLEXITY: 4
+# @PURPOSE: Accept a user request, choose the correct approved worker mode, delegate exactly one bounded slice at a time, and consolidate the worker result without direct execution.
+# @RELATION: DISPATCHES -> [product-manager]
+# @RELATION: DISPATCHES -> [coder]
+# @RELATION: DISPATCHES -> [semantic]
+# @RELATION: DISPATCHES -> [tester]
+# @RELATION: DISPATCHES -> [reviewer-agent-auditor]
+# @RELATION: DISPATCHES -> [semantic-implementer]
+# @PRE: A user request exists and can be routed to one of the explicitly approved worker modes.
+# @POST: Exactly one approved worker receives the current bounded task slice or the agent emits a need-context signal when routing cannot be proven safely.
+# @SIDE_EFFECT: Creates delegated worker tasks, suppresses direct repository mutation, and returns consolidated routing results only.
+# @DATA_CONTRACT: UserRequest -> RoutedWorkerPacket -> ConsolidatedResult
+
+You are Kilo Code, acting as the Subagent Orchestrator.
+
+## Semantic Anchors
+- `belief_scope`: routing-only boundary
+- `Semantic Anchors`: approved worker modes only
+- `Invariants`: no direct execution, no undeclared delegates, no wildcard delegation
+- `AST Patching`: forbidden in this agent
+
+## Core Invariants
+- Never execute repository analysis, editing, testing, or debugging yourself.
+- Delegate only to approved modes declared in frontmatter permissions.
+- If the request targets planning, specification, or ambiguous product intent, route to [`product-manager`](.kilocodemodes).
+- If the request targets implementation of an approved plan, route to [`coder`](.kilocodemodes).
+- If the request targets semantic compliance or semantic map repair, route to [`semantic`](.kilocodemodes).
+- If the request targets semantic implementation work already bounded by a semantic plan, route to [`semantic-implementer`](.kilocodemodes).
+- If the request targets tests or coverage proof, route to [`tester`](.kilocodemodes).
+- If the request targets audit or review of completed work, route to [`reviewer-agent-auditor`](.kilocodemodes).
+- If no safe mapping exists, emit `[NEED_CONTEXT: subagent_mapping]`.
+
+## Dependency Graph
+```mermaid
+flowchart TD
+ U[User Request] --> O[SubagentOrchestrator]
+ O --> PM[product-manager]
+ O --> C[coder]
+ O --> S[semantic]
+ O --> SI[semantic-implementer]
+ O --> T[tester]
+ O --> R[reviewer-agent-auditor]
+```
+
+## Decomposition Plan
+- Intake boundary: classify user intent into planning, implementation, semantics, testing, or review.
+- Routing boundary: select one approved worker mode with the smallest valid task slice.
+- Consolidation boundary: summarize worker outcome as applied, remaining, and risk.
+- Escalation boundary: stop on missing target boundaries with `[NEED_CONTEXT: subagent_mapping]`.
+
+## Acceptance Invariants
+- The referenced prompt file exists at [`subagent-orchestrator.md`](.kilo/agent/subagent-orchestrator.md).
+- Frontmatter permissions match the worker allowlist declared in [`kilo.json`](kilo.json).
+- The agent contract contains explicit routing boundaries and forbids direct execution.
+- The configuration loader can resolve `{file:./.kilo/agent/subagent-orchestrator.md}` without missing-file failure.
+
+# [/DEF:SubagentOrchestrator:Agent]
diff --git a/.kilo/agent/tester.md b/.kilo/agent/tester.md
deleted file mode 100644
index dd4c6fb2..00000000
--- a/.kilo/agent/tester.md
+++ /dev/null
@@ -1,113 +0,0 @@
----
-description: QA & Semantic Auditor - Verification Cycle; use for writing tests, validating contracts, and auditing invariant coverage without normalizing semantic violations.
-mode: subagent
-model: github-copilot/gemini-3.1-pro-preview
-temperature: 0.1
-permission:
- edit: allow
- bash: allow
- browser: allow
-steps: 60
-color: accent
----
-
-You are Kilo Code, acting as a QA and Semantic Auditor. Your primary goal is to verify contracts, invariants, semantic honesty, and unit test coverage without normalizing semantic violations.
-
-## Core Mandate
-- Tests are born strictly from the contract.
-- Verify `@POST`, `@UX_STATE`, `@TEST_EDGE`, and every `@TEST_INVARIANT -> VERIFIED_BY`.
-- Verify semantic markup together with unit tests, not separately.
-- Validate every reduction of `@COMPLEXITY` or `@C`: the lowered complexity must match the actual control flow, side effects, dependency graph, and invariant load.
-- Detect fake-semantic compliance: contracts, metadata, or mock function anchors that were simplified into semantic stubs only to satisfy audit rules.
-- If the contract is violated, the test must fail.
-- The Logic Mirror anti-pattern is forbidden: never duplicate the implementation algorithm inside the test.
-
-## Required Workflow
-1. Read [`.ai/ROOT.md`](.ai/ROOT.md) first.
-2. Respect [`.ai/standards/semantics.md`](.ai/standards/semantics.md), [`.ai/standards/constitution.md`](.ai/standards/constitution.md), [`.ai/standards/api_design.md`](.ai/standards/api_design.md), and [`.ai/standards/ui_design.md`](.ai/standards/ui_design.md).
-3. Run semantic audit with `axiom-core` before writing or changing tests.
-4. Scan existing test files before adding new ones.
-5. Never delete existing tests.
-6. Never duplicate existing scenarios.
-7. Maintain co-location strategy and test documentation under `specs//tests/` where applicable.
-8. Forward semantic markup findings and suspected semantic fraud to [`@semantics`](.kilo/agent/semantic.md) as structured remarks when repair is required.
-9. Write unit tests where coverage is missing, contract edges are uncovered, or semantic regressions need executable proof.
-
-## Semantic Audit Scope
-The tester MUST verify:
-- anchor pairing and required tags
-- validity of declared `@RELATION`
-- validity of lowered `@COMPLEXITY`
-- consistency between declared complexity and real implementation burden
-- whether mocks, fakes, helpers, adapters, and test doubles are semantically honest
-- whether contract headers on mocks are mere placeholders for passing checks instead of reflecting real role and limits
-
-## Complexity Reduction Validation
-A lowered `@COMPLEXITY` is invalid if any of the following is true:
-- control flow remains orchestration-heavy
-- the node performs meaningful I/O, network, filesystem, DB, or async coordination
-- multiple non-trivial dependencies remain hidden behind simplified metadata
-- `@PRE`, `@POST`, `@SIDE_EFFECT`, `@DATA_CONTRACT`, or `@INVARIANT` were removed without corresponding reduction in real responsibility
-- the contract was simplified but the tests still require higher-order behavioral guarantees
-- the node behaves like a coordinator, gateway, policy boundary, or stateful pipeline despite being labeled low complexity
-
-## Mock Integrity Rules
-- Mock contracts must describe the mock honestly as a test double, fixture helper, fake gateway, or stub adapter.
-- A mock or helper cannot masquerade as a trivial atomic contract if it encodes business behavior, branching, or assertion-critical semantics.
-- If a mock exists only to satisfy semantic audit while hiding real behavioral responsibility, mark it as semantic debt and report it to [`@semantics`](.kilo/agent/semantic.md).
-- If a mock contract is under-specified, require either stronger metadata or stronger tests.
-- Tests must prove that mocks do not weaken invariant verification.
-
-## Verification Rules
-- For critical modules, require contract-driven test coverage.
-- Every declared `@TEST_EDGE` must have at least one scenario.
-- Every declared `@TEST_INVARIANT` must have at least one verifier.
-- For Svelte UI, verify all declared `@UX_STATE`, `@UX_FEEDBACK`, and `@UX_RECOVERY` transitions.
-- Helpers remain lightweight; major test blocks may use `BINDS_TO`.
-- Where semantics are suspicious, add unit tests that expose the real behavioral complexity.
-- Prefer tests that disprove unjustified complexity reduction.
-
-## Audit Rules
-- Use semantic tools to verify anchor pairing, required tags, complexity validity, and relation integrity.
-- If implementation is semantically invalid, stop and emit `[COHERENCE_CHECK_FAILED]`.
-- If audit fails on mismatch, emit `[AUDIT_FAIL: semantic_noncompliance | invalid_complexity_reduction | mock_contract_stub | contract_mismatch | logic_mismatch | test_mismatch]`.
-- Forward semantic findings to [`@semantics`](.kilo/agent/semantic.md) with file path, contract ID, violation type, evidence, and recommended repair class.
-- Do not silently normalize semantic debt inside tests.
-
-## Handoff Contract to [`@semantics`](.kilo/agent/semantic.md)
-Every semantic remark passed downstream must contain:
-- `file_path`
-- `contract_id`
-- `violation_code`
-- `observed_complexity`
-- `declared_complexity`
-- `evidence`
-- `risk_level`
-- `recommended_fix`
-- `test_evidence` if a unit test exposes the violation
-
-## Test Authoring Policy
-- Write unit tests where current coverage does not verify the declared contract.
-- Write regression tests when semantic fixes change declared invariants, complexity, or side-effect boundaries.
-- Add tests for hidden orchestration disguised as low complexity.
-- Add tests around mocks and fakes when they carry real behavioral meaning.
-- Never add decorative tests that only mirror implementation or rubber-stamp metadata.
-
-## Execution
-- Backend: `cd backend && .venv/bin/python3 -m pytest`
-- Frontend: `cd frontend && npm run test`
-
-## Completion Gate
-- Contract validated.
-- Complexity reductions audited and either proven valid or flagged to [`@semantics`](.kilo/agent/semantic.md).
-- Mock contracts audited for semantic honesty.
-- Declared fixtures, edges, and invariants covered.
-- Missing unit tests added where needed.
-- No duplicated tests.
-- No deleted legacy tests.
-
-## Recursive Delegation
-- If you cannot complete the task within the step limit or if the task is too complex, you MUST spawn a new subagent of the same type or appropriate type to continue the work or handle a subset of the task.
-- Do NOT escalate back to the orchestrator with incomplete audit work.
-- Use the `task` tool to launch these subagents.
-
diff --git a/.kilo/agent/coder.md b/.kilo/agents/coder.md
similarity index 100%
rename from .kilo/agent/coder.md
rename to .kilo/agents/coder.md
diff --git a/.kilo/agent/product-manager.md b/.kilo/agents/product-manager.md
similarity index 100%
rename from .kilo/agent/product-manager.md
rename to .kilo/agents/product-manager.md
diff --git a/.kilo/agents/swarm-master.md b/.kilo/agents/swarm-master.md
index 143b7675..266ae59f 100644
--- a/.kilo/agents/swarm-master.md
+++ b/.kilo/agents/swarm-master.md
@@ -15,6 +15,8 @@ permission:
coverage-planner: allow
unit-test-writer: allow
closure-gate: allow
+ product-manager: allow
+ coder: allow
steps: 80
color: primary
---
@@ -32,6 +34,8 @@ You are Kilo Code, acting as the Swarm Master.
- You partition work into parallel subagent lanes whenever mutation overlap risk is low.
- You own the only final user-facing closure summary after worker results return.
- All worker outputs are intermediate execution artifacts and must be collapsed into one concise result.
+- For work rooted in `specs/`, route specification and Speckit governance to [`product-manager.md`](.kilo/agents/product-manager.md).
+- For approved feature implementation, route code execution to [`coder.md`](.kilo/agents/coder.md)
## Semantic Anchors
- @COMPLEXITY: 4
@@ -43,6 +47,8 @@ You are Kilo Code, acting as the Swarm Master.
- @RELATION: DISPATCHES -> [coverage-planner]
- @RELATION: DISPATCHES -> [unit-test-writer]
- @RELATION: DISPATCHES -> [closure-gate]
+- @RELATION: DISPATCHES -> [product-manager]
+- @RELATION: DISPATCHES -> [coder]
- @PRE: A task request exists and can be decomposed into semantic or test-oriented lanes.
- @POST: Worker outputs are merged into a single closure report with applied, remaining, and risk.
- @SIDE_EFFECT: Launches subagents, sequences repair and testing lanes, suppresses noisy intermediate output.
@@ -67,24 +73,39 @@ You are Kilo Code, acting as the Swarm Master.
- [`coverage-planner.md`](.kilo/agents/coverage-planner.md)
- [`unit-test-writer.md`](.kilo/agents/unit-test-writer.md)
- [`closure-gate.md`](.kilo/agents/closure-gate.md)
+- [`product-manager.md`](.kilo/agents/product-manager.md)
+- [`coder.md`](.kilo/agents/coder.md)
+
## Required Workflow
1. Build a task graph with independent lanes.
2. Immediately delegate the first executable slices to worker subagents.
-3. Launch [`graph-auditor.md`](.kilo/agents/graph-auditor.md), [`complexity-auditor.md`](.kilo/agents/complexity-auditor.md), and [`mock-integrity-auditor.md`](.kilo/agents/mock-integrity-auditor.md) in parallel when safe.
-4. Merge findings into one semantic state packet.
-5. Dispatch [`repair-worker.md`](.kilo/agents/repair-worker.md) for safe semantic mutations.
-6. Dispatch [`coverage-planner.md`](.kilo/agents/coverage-planner.md) when findings imply missing executable proof.
-7. Dispatch [`unit-test-writer.md`](.kilo/agents/unit-test-writer.md) from the coverage plan.
-8. Dispatch [`closure-gate.md`](.kilo/agents/closure-gate.md) to compress the merged state into a concise final report.
-9. Return only the consolidated closure summary.
+3. If the request targets a Speckit artifact or a feature request under `specs/`, delegate first to [`product-manager.md`](.kilo/agents/product-manager.md) to resolve the governing workflow, target spec, current phase, and acceptance boundary.
+4. After specification/planning context is stabilized, delegate implementation work to [`coder.md`](.kilo/agents/coder.md) for code changes.
+5. Launch [`graph-auditor.md`](.kilo/agents/graph-auditor.md), [`complexity-auditor.md`](.kilo/agents/complexity-auditor.md), and [`mock-integrity-auditor.md`](.kilo/agents/mock-integrity-auditor.md) in parallel when safe.
+6. Merge findings into one semantic state packet.
+7. Dispatch [`repair-worker.md`](.kilo/agents/repair-worker.md) for safe semantic mutations.
+8. Dispatch [`coverage-planner.md`](.kilo/agents/coverage-planner.md) when findings imply missing executable proof.
+9. Dispatch [`unit-test-writer.md`](.kilo/agents/unit-test-writer.md) from the coverage plan.
+10. Dispatch [`closure-gate.md`](.kilo/agents/closure-gate.md) to compress the merged state into a concise final report.
+11. Return only the consolidated closure summary.
## Delegation Policy
+- Use [`product-manager.md`](.kilo/agents/product-manager.md) as the mandatory first delegate for:
+ - Speckit flows
+ - feature requests rooted in `specs/`
+ - clarify, plan, tasks, checklist, analyze, implement, or constitution workflows
+- Use [`coder.md`](.kilo/agents/coder.md) as the implementation delegate for:
+ - feature coding
+ - refactor work
+ - spec-backed code changes
- Use parallelism for:
- graph audit
- complexity audit
- mock integrity audit
- Use sequential ordering for:
+ - product workflow resolution before implementation
+ - implementation before semantic repair when the code does not yet exist
- repair after audit evidence exists
- test writing after coverage planning exists
- closure after mutation and test lanes finish
@@ -101,6 +122,18 @@ Every dispatched worker packet must include:
- `recommended_axiom_tools`
- `expected_artifacts`
+For [`product-manager.md`](.kilo/agents/product-manager.md), additionally include:
+- `spec_path`
+- `speckit_phase`
+- `workflow_goal`
+- `acceptance_scope`
+
+For [`coder.md`](.kilo/agents/coder.md), additionally include:
+- `implementation_scope`
+- `approved_spec_or_plan`
+- `semantic_constraints`
+- `required_tests`
+
## Dispatch-First Response Contract
For any non-trivial request, your first assistant action must be exactly one child-task delegation.
You must not answer with:
@@ -111,6 +144,12 @@ You must not answer with:
If the request is large, continue through sequential child-task delegations one at a time, always waiting for worker results before the next step.
+## Spec and Feature Routing Contract
+- If the user mentions `specs/`, `spec`, `Speckit`, `speckit.specify`, `speckit.plan`, `speckit.tasks`, or implementation from a specification, first route to [`product-manager.md`](.kilo/agents/product-manager.md).
+- If the user asks to implement an already-approved feature or plan, route coding to [`coder.md`](.kilo/agents/coder.md).
+- Do not send raw spec text directly to semantic repair workers before product workflow resolution.
+- Do not ask coding workers to infer missing product intent that should be resolved by [`product-manager.md`](.kilo/agents/product-manager.md).
+
## Output Contract
Return only:
- `applied`
diff --git a/027-task.md b/027-task.md
new file mode 100644
index 00000000..e26dc22a
--- /dev/null
+++ b/027-task.md
@@ -0,0 +1,77 @@
+# 📋 ТЕХНИЧЕСКОЕ ЗАДАНИЕ: ИНТЕГРАЦИЯ MIXED-INITIATIVE LLM-АГЕНТА
+**Ветка:** `027-dataset-llm-orchestration`
+**Контекст:** Архитектура автоматического ревью датасетов (US1) и подготовки к запуску (US3) реализована отлично. Требуется переработать процесс "Clarification" (US2) из жесткого модального опросника в полноценный контекстно-зависимый диалог с LLM-агентом (Смешанная инициатива / Mixed-Initiative), а также закрыть архитектурные риски (PII, Concurrency).
+
+Тебе необходимо выполнить задачу в два этапа.
+
+---
+
+## ЭТАП 1: Обновление спецификаций (Директория `specs/027-dataset-llm-orchestration/`)
+
+Твоя первая задача — актуализировать проектную документацию, чтобы она отражала новую парадигму взаимодействия пользователя и агента, а также закрывала дыры в безопасности.
+
+**1. Обновить `ux_reference.md`:**
+* **Отказ от модалок:** Заменить концепцию `ClarificationDialog` на интеграцию диалога в выдвижную правую панель `AssistantChatPanel`.
+* **Mixed-Initiative:** Описать, что диалог может быть инициирован как системой (очередь `Clarification Queue`), так и пользователем (свободные вопросы агенту по контексту датасета, например: *"Почему этот фильтр помечен как partial?"*).
+* **Inline-взаимодействие (Context Actions):** Дописать появление микро-кнопок `[✨ Спросить ИИ]` / `[✨ Улучшить]` рядом с неразрешенными фильтрами (`unresolved`), предупреждениями валидации и полем Бизнес-summary в основном Workspace.
+* **Визуальный фокус:** Зафиксировать правило: когда агент задает вопрос по конкретному фильтру/полю в чате, карточка этого элемента в центральной колонке UI подсвечивается (highlight/glow).
+* **Confirmation Cards:** Описать интерактивные виджеты внутри ленты чата для опасных операций (например, подтверждение запуска датасета в SQL Lab), опирающиеся на `AssistantConfirmationRecord`.
+
+**2. Обновить `spec.md` (Functional Requirements):**
+* Добавить **FR-045**: Система должна позволять пользователю задавать свободные вопросы по контексту загруженного датасета (профиль, фильтры, маппинги, SQL).
+* Добавить **FR-046**: Агент должен уметь принимать команды на естественном языке для изменения состояния сессии (например: *"Одобри все маппинги"*, *"Сгенерируй превью SQL"*).
+* Изменить **FR-013**: Уточняющие вопросы должны задаваться не в изолированном окне, а в контексте глобального чата ассистента.
+
+**3. Обновить `contracts/api.yaml` и `data-model.md`:**
+* **Связь чата и сессии:** В `AssistantMessageRequest` добавить опциональное поле `dataset_review_session_id: string`.
+* **Оптимистичные блокировки:** В сущность `DatasetReviewSession` (и DTO `SessionDetail`) добавить поле `version: integer` для предотвращения состояния гонки (Race Condition) при совместном редактировании сессии коллабораторами (пользователь + агент).
+* **PII Masking:** В `data-model.md` для `ImportedFilter` явно указать требование маскирования чувствительных данных (`raw_value`) перед отправкой контекста в LLM.
+
+**4. Обновить `contracts/modules.md`:**
+* В `DatasetReviewOrchestrator` добавить связь `@RELATION: [EXPOSES_STATE_TO] -> [AssistantApi]`.
+* В описание `ClarificationEngine` добавить, что он маршрутизирует свои запросы через `AssistantChatPanel`.
+
+---
+
+## ЭТАП 2: Реализация доработок в кодовой базе (Frontend & Backend)
+
+На основе обновленных спеков реализуй архитектурные и UI/UX изменения в коде.
+
+### 🛠️ 2.1 Backend: Архитектура, Безопасность и Инструменты Агента
+1. **PII Data Masking:**
+ * Где: `backend/src/core/utils/superset_context_extractor.py` или слой подготовки промпта.
+ * Что: Реализовать фильтрацию/маскирование значений фильтров (например, email, SSN), извлеченных из Superset, *до* того, как они попадут в контекст LLM. Агенту нужны только ключи и структура для маппинга, а не сырые PII-данные.
+2. **Optimistic Locking (Борьба с Race Conditions):**
+ * Где: `backend/src/services/dataset_review/repositories/session_repository.py`.
+ * Что: Реализовать проверку поля `version` при сохранении `DatasetReviewSession`. В случае конфликта (кто-то другой, включая агента, уже изменил сессию) выбрасывать `StaleDataError` -> HTTP 409 Conflict.
+3. **Интеграция контекста датасета в Ассистента:**
+ * Где: `backend/src/api/routes/assistant.py` (`_plan_intent_with_llm`, `_build_tool_catalog`).
+ * Что: Если в запросе передан `dataset_review_session_id`, подгружать `DatasetProfile`, `ImportedFilters` и `ValidationFindings` в системный промпт (System Prompt) ассистента, чтобы он мог отвечать на вопросы по датасету.
+4. **Новые Tools (Интенты) для Агента:**
+ * Где: `backend/src/api/routes/assistant.py` -> `_dispatch_intent`.
+ * Что: Научить агента вызывать методы `DatasetReviewOrchestrator`. Добавить инструменты: `APPROVE_MAPPINGS` (одобрить ворнинги), `SET_FIELD_SEMANTICS` (переписать описание колонки), `GENERATE_SQL_PREVIEW` (триггер компиляции).
+5. **Garbage Collection сессий:**
+ * Где: `backend/src/core/task_manager/cleanup.py` (или аналог).
+ * Что: Написать scheduled-таску для жесткого удаления (hard delete) брошенных/архивированных сессий обзора (например, старше 30 дней), чтобы БД не переполнялась снепшотами SQL и графами контекста.
+
+### 🎨 2.2 Frontend: Реактивный Workspace и Чат
+1. **Интеграция AssistantChatPanel (Slide-out Drawer):**
+ * Где: `frontend/src/routes/datasets/review/[id]/+page.svelte` (`DatasetReviewWorkspace`).
+ * Что: Внедрить вызов боковой панели ассистента `AssistantChatPanel`. Убедиться, что при её открытии контент Workspace сдвигается или корректно перекрывается, не теряя контекста SQL-превью и фильтров. Удалить старый `ClarificationDialog` (модалку).
+2. **Контекстные кнопки (Inline Triggers ✨):**
+ * Что: В компоненты `ValidationFindingsPanel.svelte`, `ExecutionMappingReview.svelte` и карточки фильтров добавить микро-кнопки `[✨ Спросить ИИ]`.
+ * Действие: По клику открывать `assistantChat` store и отправлять предзаполненный скрытый контекстный промпт (например, *"Объясни проблему с фильтром X и предложи решение"*).
+3. **Визуальная синхронизация (State Reactivity):**
+ * Что: Когда агент через чат задает вопрос по `field_id` или `filter_id` (Clarification Queue), соответствующий элемент в Workspace должен получать CSS-класс подсветки (glow/highlight).
+ * Как: Связать `ClarificationStateResult` из стора сессии с рендером строк в `SemanticLayerReview.svelte` и списках фильтров.
+4. **Confirmation Cards в ленте чата:**
+ * Где: `frontend/src/lib/components/assistant/AssistantChatPanel.svelte`.
+ * Что: Для команд, требующих `AssistantConfirmationRecord` (например, запуск в SQL Lab), рендерить внутри чата специальный виджет: *"Вы уверены, что хотите запустить этот контекст? [Отменить][Запустить]"*.
+5. **Debounce для SQL Preview:**
+ * Где: `frontend/src/lib/components/dataset-review/CompiledSQLPreview.svelte`.
+ * Что: Предотвратить спам запросами к Superset API. Если пользователь или агент быстро меняют маппинги, статус превью становится `stale`. Запрос на перегенерацию должен отправляться либо по явной кнопке, либо с debounce-задержкой 2-3 секунды после окончания потока изменений.
+
+### ⚙️ Правила выполнения для Агента:
+1. **Не ломать инварианты:** Сохранить принцип **WYSIWWR (What You See Is What Will Run)**. LLM *никогда* не должна генерировать финальный SQL-код сама. LLM собирает параметры, а SQL компилирует только Superset (`SupersetCompilationAdapter`).
+2. **Семантическое логирование:** Любые изменения состояния сессий на бэкенде оборачивать в `belief_scope` (`logger.reason()`, `logger.reflect()`), как указано в системных контрактах.
+3. По завершении этапа 1, дождись утверждения (или переходи к Этапу 2 автономно, если находишься в режиме Auto-Execute), строго следуя обновленным контрактам `api.yaml`.
diff --git a/semantics/semantic_map.json b/semantics/semantic_map.json
index 73e5bc85..cb886610 100644
--- a/semantics/semantic_map.json
+++ b/semantics/semantic_map.json
@@ -1,28 +1,49 @@
{
"project_root": ".",
- "generated_at": "2026-03-16T22:51:05.999999",
+ "generated_at": "2026-03-21T16:00:17.629355",
"modules": [
{
- "name": "merge_spec",
+ "name": "MergeSpec",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 54,
+ "end_line": 66,
"tags": {
- "PURPOSE": "Auto-generated module for merge_spec.py",
+ "PURPOSE": "Utility to merge specs",
+ "TIER": "TRIVIAL",
"COMPLEXITY": "1",
- "LAYER": "Unknown"
+ "RELATION": "[DEPENDS_ON] builtin"
},
"relations": [],
"children": [
+ {
+ "name": "merge_spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Utility script for merge_spec",
+ "TIER": "TRIVIAL",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "merge_specs",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 6,
- "end_line": 6,
+ "start_line": 15,
+ "end_line": 15,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -108,9 +129,10 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 37,
- "end_line": 44,
+ "end_line": 45,
"tags": {
"TIER": "TRIVIAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Mock enter.",
"PRE": "Instance initialized.",
"POST": "Returns self."
@@ -128,10 +150,11 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 46,
- "end_line": 53,
+ "start_line": 47,
+ "end_line": 55,
"tags": {
"TIER": "TRIVIAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Mock exit.",
"PRE": "Context entered.",
"POST": "Context exited."
@@ -149,10 +172,11 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 60,
- "end_line": 66,
+ "start_line": 62,
+ "end_line": 69,
"tags": {
"TIER": "TRIVIAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Legacy tier buckets retained for backward-compatible reporting."
},
"relations": [],
@@ -168,9 +192,10 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 77,
+ "start_line": 73,
+ "end_line": 81,
"tags": {
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Adaptive semantic complexity scale used for validation strictness."
},
"relations": [],
@@ -186,10 +211,11 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 81,
- "end_line": 87,
+ "start_line": 85,
+ "end_line": 92,
"tags": {
"TIER": "TRIVIAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Severity levels for compliance issues."
},
"relations": [],
@@ -205,10 +231,11 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 174,
- "end_line": 189,
+ "start_line": 179,
+ "end_line": 195,
"tags": {
"TIER": "TRIVIAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Represents a single compliance issue with severity."
},
"relations": [],
@@ -224,10 +251,11 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 192,
+ "start_line": 198,
"end_line": null,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Represents a code entity (Module, Function, Component) found during parsing.",
"INVARIANT": "start_line is always set; end_line is set upon closure; complexity defaults to 1 unless explicitly raised."
},
@@ -238,10 +266,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 197,
- "end_line": 223,
+ "start_line": 204,
+ "end_line": 231,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Initializes a new SemanticEntity instance.",
"PRE": "name, type_, start_line, file_path are provided.",
"POST": "Instance is initialized with default values."
@@ -250,24 +279,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 197
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 197
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 197
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -275,9 +288,10 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 225,
+ "start_line": 233,
"end_line": null,
"tags": {
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Returns whether the entity explicitly declares complexity metadata."
},
"relations": [],
@@ -287,9 +301,10 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 230,
+ "start_line": 239,
"end_line": null,
"tags": {
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Returns effective complexity with backward compatibility for legacy tiers.",
"PRE": "tags dictionary is accessible.",
"POST": "Returns Complexity enum value."
@@ -301,10 +316,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 278,
- "end_line": 291,
+ "start_line": 288,
+ "end_line": 302,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Returns legacy tier bucket derived from effective complexity.",
"PRE": "tags dictionary is accessible.",
"POST": "Returns Tier enum value."
@@ -313,34 +329,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- }
- ],
- "score": 0.1
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -348,10 +338,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 293,
- "end_line": 323,
+ "start_line": 304,
+ "end_line": 335,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Serializes the entity to a dictionary for JSON output.",
"PRE": "Entity is fully populated.",
"POST": "Returns a dictionary representation."
@@ -360,34 +351,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 293
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 293
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 293
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 293
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 293
- }
- ],
- "score": 0.1
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -395,8 +360,8 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 325,
- "end_line": 430,
+ "start_line": 337,
+ "end_line": 442,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Checks for semantic compliance based on complexity requirements.",
@@ -412,52 +377,52 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 325
+ "line_number": 337
}
],
"score": 0.0
@@ -468,10 +433,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 432,
- "end_line": 476,
+ "start_line": 444,
+ "end_line": 489,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Calculates a compliance score (0.0 to 1.0) based on complexity requirements.",
"PRE": "validate() has been called.",
"POST": "Returns a float score."
@@ -480,34 +446,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 432
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 432
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 432
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 432
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 432
- }
- ],
- "score": 0.1
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -515,8 +455,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 480,
- "end_line": 518,
+ "start_line": 493,
+ "end_line": 531,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Returns regex patterns for a specific language.",
@@ -532,27 +472,27 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 480
+ "line_number": 493
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 480
+ "line_number": 493
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 480
+ "line_number": 493
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 480
+ "line_number": 493
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 480
+ "line_number": 493
}
],
"score": 0.1
@@ -563,10 +503,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 521,
- "end_line": 547,
+ "start_line": 534,
+ "end_line": 561,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Extracts props from Svelte component script section.",
"PRE": "lines is a list of file lines, start_idx is the starting line index.",
"POST": "Returns list of prop definitions."
@@ -575,34 +516,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 521
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 521
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 521
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 521
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 521
- }
- ],
- "score": 0.1
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -610,10 +525,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 550,
- "end_line": 584,
+ "start_line": 564,
+ "end_line": 599,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Extracts dispatched events from Svelte component.",
"PRE": "lines is a list of file lines.",
"POST": "Returns list of event names."
@@ -622,34 +538,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 550
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 550
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 550
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 550
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 550
- }
- ],
- "score": 0.1
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -657,10 +547,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 587,
- "end_line": 637,
+ "start_line": 602,
+ "end_line": 653,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Extracts store subscriptions and data flow from Svelte component.",
"PRE": "lines is a list of file lines.",
"POST": "Returns list of data flow descriptors."
@@ -669,34 +560,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 587
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 587
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 587
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 587
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 587
- }
- ],
- "score": 0.1
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -704,10 +569,11 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 640,
- "end_line": 836,
+ "start_line": 656,
+ "end_line": 853,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Parses a single file to extract semantic entities with tier awareness and enhanced Svelte analysis.",
"PRE": "full_path, rel_path, lang are valid strings.",
"POST": "Returns extracted entities and list of issues.",
@@ -719,80 +585,55 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 640
- },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
+ "line_number": 656
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 640
+ "line_number": 656
}
],
"score": 0.0
@@ -803,10 +644,11 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 839,
- "end_line": 1469,
+ "start_line": 856,
+ "end_line": 1501,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Orchestrates the mapping process with tier-based validation.",
"INVARIANT": "All entities are validated according to their TIER requirements."
},
@@ -817,10 +659,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 844,
- "end_line": 856,
+ "start_line": 862,
+ "end_line": 875,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Initializes the generator with a root directory.",
"PRE": "root_dir is a valid path string.",
"POST": "Generator instance is ready."
@@ -829,39 +672,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 844
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 844
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 844
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 844
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 844
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 844
- }
- ],
- "score": 0.0
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -869,10 +681,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 858,
- "end_line": 874,
+ "start_line": 877,
+ "end_line": 894,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Loads patterns from .gitignore file.",
"PRE": ".gitignore exists in root_dir.",
"POST": "Returns set of ignore patterns."
@@ -881,39 +694,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 858
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 858
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 858
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 858
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 858
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 858
- }
- ],
- "score": 0.0
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -921,10 +703,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 876,
- "end_line": 917,
+ "start_line": 896,
+ "end_line": 938,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Checks if a path should be ignored based on .gitignore or hardcoded defaults.",
"PRE": "rel_path is a valid relative path string.",
"POST": "Returns True if the path should be ignored."
@@ -933,39 +716,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 876
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 876
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 876
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 876
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 876
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 876
- }
- ],
- "score": 0.0
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -973,8 +725,8 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 919,
- "end_line": 932,
+ "start_line": 940,
+ "end_line": 953,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Main execution flow.",
@@ -998,62 +750,62 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 919
+ "line_number": 940
}
],
"score": 0.0
@@ -1064,10 +816,11 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 934,
- "end_line": 963,
+ "start_line": 955,
+ "end_line": 985,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Recursively walks directories and triggers parsing.",
"PRE": "root_dir exists.",
"POST": "All files are scanned and entities extracted."
@@ -1077,95 +830,65 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 934
- },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
+ "line_number": 955
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 934
+ "line_number": 955
}
],
"score": 0.0
@@ -1176,10 +899,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 965,
- "end_line": 1007,
+ "start_line": 987,
+ "end_line": 1031,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Validates entities and calculates file scores with tier awareness.",
"PRE": "Entities have been parsed from the file.",
"POST": "File score is calculated and issues collected."
@@ -1191,10 +915,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 976,
- "end_line": 997,
+ "start_line": 999,
+ "end_line": 1021,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Calculate score and determine module's max tier for weighted global score",
"PRE": "Entities exist",
"POST": "Entities are validated"
@@ -1203,82 +928,15 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 976
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 976
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 976
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 976
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 976
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 976
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 976
- }
- ],
- "score": 0.0
+ "issues": [],
+ "score": 1.0
}
}
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 965
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 965
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 965
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 965
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 965
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 965
- }
- ],
- "score": 0.0
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -1286,10 +944,11 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 1009,
- "end_line": 1030,
+ "start_line": 1033,
+ "end_line": 1055,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Writes output files with tier-based compliance data.",
"PRE": "Parsing and validation are complete.",
"POST": "JSON and Markdown artifacts are written to disk."
@@ -1299,95 +958,65 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1009
- },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1009
+ "line_number": 1033
}
],
"score": 0.0
@@ -1398,8 +1027,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1032,
- "end_line": 1130,
+ "start_line": 1057,
+ "end_line": 1155,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Prints a JSON report optimized for AI agent orchestration and control.",
@@ -1414,32 +1043,32 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1032
+ "line_number": 1057
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1032
+ "line_number": 1057
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1032
+ "line_number": 1057
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1032
+ "line_number": 1057
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1032
+ "line_number": 1057
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1032
+ "line_number": 1057
}
],
"score": 0.0
@@ -1450,10 +1079,11 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 1132,
- "end_line": 1204,
+ "start_line": 1157,
+ "end_line": 1230,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Generates the Markdown compliance report with severity levels.",
"PRE": "File scores and issues are available.",
"POST": "Markdown report is created in reports directory."
@@ -1463,95 +1093,65 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1132
- },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1132
+ "line_number": 1157
}
],
"score": 0.0
@@ -1562,10 +1162,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1206,
- "end_line": 1218,
+ "start_line": 1232,
+ "end_line": 1245,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Helper to collect issues for a specific file from the entity tree.",
"PRE": "entities list and file_path are valid.",
"POST": "issues list is populated with compliance issues."
@@ -1574,39 +1175,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1206
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1206
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1206
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1206
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1206
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1206
- }
- ],
- "score": 0.0
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -1614,10 +1184,11 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 1220,
- "end_line": 1237,
+ "start_line": 1247,
+ "end_line": 1265,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Generates the token-optimized project map with enhanced Svelte details.",
"PRE": "Entities have been processed.",
"POST": "Markdown project map is written."
@@ -1627,95 +1198,65 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1220
- },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1220
+ "line_number": 1247
}
],
"score": 0.0
@@ -1726,10 +1267,11 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 1239,
- "end_line": 1308,
+ "start_line": 1267,
+ "end_line": 1337,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Recursive helper to write entity tree to Markdown with tier badges and enhanced details.",
"PRE": "f is an open file handle, entity is valid.",
"POST": "Entity details are written to the file."
@@ -1739,95 +1281,65 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1239
- },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1239
+ "line_number": 1267
}
],
"score": 0.0
@@ -1838,10 +1350,11 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 1310,
- "end_line": 1467,
+ "start_line": 1339,
+ "end_line": 1499,
"tags": {
"TIER": "CRITICAL",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Generates a module-centric map grouping entities by directory structure.",
"PRE": "Entities have been processed.",
"POST": "Markdown module map is written to .ai/MODULE_MAP.md."
@@ -1853,10 +1366,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1322,
- "end_line": 1335,
+ "start_line": 1352,
+ "end_line": 1366,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Extracts the module path from a file path.",
"PRE": "file_path is a valid relative path.",
"POST": "Returns a module path string."
@@ -1865,44 +1379,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1322
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1322
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1322
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1322
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1322
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1322
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1322
- }
- ],
- "score": 0.0
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -1910,10 +1388,11 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1337,
- "end_line": 1347,
+ "start_line": 1368,
+ "end_line": 1379,
"tags": {
"TIER": "STANDARD",
+ "RELATION": "[DEPENDS_ON] builtin",
"PURPOSE": "Flattens entity tree for easier grouping.",
"PRE": "entity list is valid.",
"POST": "Returns flat list of all entities with their hierarchy."
@@ -1922,139 +1401,73 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1337
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1337
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1337
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1337
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1337
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1337
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1337
- }
- ],
- "score": 0.0
+ "issues": [],
+ "score": 1.0
}
}
],
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1310
- },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 1310
+ "line_number": 1339
}
],
"score": 0.0
@@ -2064,130 +1477,105 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 839
- },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 839
+ "line_number": 856
}
],
"score": 0.0
@@ -2198,24 +1586,24 @@
"valid": false,
"issues": [
{
- "message": "Unclosed Anchor: [DEF:get_complexity:Function] started at line 230",
+ "message": "Unclosed Anchor: [DEF:get_complexity:Function] started at line 239",
"severity": "ERROR",
- "line_number": 230
+ "line_number": 239
},
{
- "message": "Unclosed Anchor: [DEF:get_complexity:Function] started at line 230",
+ "message": "Unclosed Anchor: [DEF:get_complexity:Function] started at line 239",
"severity": "ERROR",
- "line_number": 230
+ "line_number": 239
},
{
- "message": "Unclosed Anchor: [DEF:get_complexity:Function] started at line 230",
+ "message": "Unclosed Anchor: [DEF:get_complexity:Function] started at line 239",
"severity": "ERROR",
- "line_number": 230
+ "line_number": 239
},
{
- "message": "Unclosed Anchor: [DEF:get_complexity:Function] started at line 230",
+ "message": "Unclosed Anchor: [DEF:get_complexity:Function] started at line 239",
"severity": "ERROR",
- "line_number": 230
+ "line_number": 239
}
],
"score": 0.0
@@ -2226,19 +1614,19 @@
"valid": false,
"issues": [
{
- "message": "Unclosed Anchor: [DEF:has_explicit_complexity:Function] started at line 225",
+ "message": "Unclosed Anchor: [DEF:has_explicit_complexity:Function] started at line 233",
"severity": "ERROR",
- "line_number": 225
+ "line_number": 233
},
{
- "message": "Unclosed Anchor: [DEF:has_explicit_complexity:Function] started at line 225",
+ "message": "Unclosed Anchor: [DEF:has_explicit_complexity:Function] started at line 233",
"severity": "ERROR",
- "line_number": 225
+ "line_number": 233
},
{
- "message": "Unclosed Anchor: [DEF:has_explicit_complexity:Function] started at line 225",
+ "message": "Unclosed Anchor: [DEF:has_explicit_complexity:Function] started at line 233",
"severity": "ERROR",
- "line_number": 225
+ "line_number": 233
}
],
"score": 0.0
@@ -2249,64 +1637,54 @@
"valid": false,
"issues": [
{
- "message": "Unclosed Anchor: [DEF:SemanticEntity:Class] started at line 192",
+ "message": "Unclosed Anchor: [DEF:SemanticEntity:Class] started at line 198",
"severity": "ERROR",
- "line_number": 192
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
- "message": "Unclosed Anchor: [DEF:SemanticEntity:Class] started at line 192",
+ "message": "Unclosed Anchor: [DEF:SemanticEntity:Class] started at line 198",
"severity": "ERROR",
- "line_number": 192
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 192
+ "line_number": 198
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 192
+ "line_number": 198
}
],
"score": 0.0
@@ -2317,8 +1695,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 183,
- "end_line": 183,
+ "start_line": 189,
+ "end_line": 189,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -2336,8 +1714,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1052,
- "end_line": 1052,
+ "start_line": 1077,
+ "end_line": 1077,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -2388,6 +1766,59673 @@
"score": 0.0
}
},
+ {
+ "name": "normalize-bun-binaries",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/nix/scripts/normalize-bun-binaries.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "collectPackages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readManifest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "linkBinary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "exists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeBinName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "canonicalize-node-modules",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/nix/scripts/canonicalize-node-modules.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseEntry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sync-zed",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/sync-zed.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "duplicate-pr",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/duplicate-pr.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "changelog",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 306,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/changelog.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getLatestRelease",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCommits",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filterRevertedCommits",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "summarizeCommit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 139,
+ "end_line": 139,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateChangelog",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 167,
+ "end_line": 167,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getContributors",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 200,
+ "end_line": 200,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildNotes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 221,
+ "end_line": 221,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 306 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "stats",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 225,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/stats.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sendToPostHog",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchNpmDownloads",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchReleases",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "calculate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "save",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 125,
+ "end_line": 125,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "beta",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 201,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/beta.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "commentOnPR",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "conflicts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list-versions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/list-versions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "analyze",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 197,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/analyze.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseArgs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 724,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/merge.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseArgs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAuthor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createBackupBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 117,
+ "end_line": 117,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 724 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "config",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 234,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/utils/config.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "loadConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 232,
+ "end_line": 232,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "logger",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/utils/logger.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setVerbose",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "log",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "debug",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "info",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "warn",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "header",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "step",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "divider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "git",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 340,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/utils/git.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getCurrentBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "branchExists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remoteBranchExists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getRemotes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasUpstreamRemote",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchUpstream",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkout",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deleteBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "backupAndDeleteBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 84,
+ "end_line": 84,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "push",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pull",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "commit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 120,
+ "end_line": 120,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getConflictedFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 136,
+ "end_line": 136,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasUncommittedChanges",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stageAll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 149,
+ "end_line": 149,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stageFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 153,
+ "end_line": 153,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCommitMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 159,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCommitHash",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 164,
+ "end_line": 164,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTagsForCommit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 169,
+ "end_line": 169,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAllTags",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 177,
+ "end_line": 177,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getUpstreamTags",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 185,
+ "end_line": 185,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "abortMerge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 202,
+ "end_line": 202,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkoutOurs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 206,
+ "end_line": 206,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkoutTheirs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 212,
+ "end_line": 212,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanDirectories",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 223,
+ "end_line": 223,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "oursHasKilocodeChanges",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 234,
+ "end_line": 234,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ensureRerere",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 244,
+ "end_line": 244,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trainRerere",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 258,
+ "end_line": 258,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getRerereResolved",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 332,
+ "end_line": 332,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 340 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "version",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 132,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/utils/version.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseVersion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compareVersions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getLatestUpstreamVersion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getVersionForCommit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAvailableUpstreamVersions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCurrentKiloVersion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 127,
+ "end_line": 127,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "report",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 405,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/utils/report.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isI18nFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isTauriFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isScriptFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isExtensionFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isWebFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldTakeTheirsTransform",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "classifyFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldSkipFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getRecommendation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "analyzeConflicts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 271,
+ "end_line": 271,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateMarkdownReport",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 315,
+ "end_line": 315,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "saveReport",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 402,
+ "end_line": 402,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 405 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "transform-imports",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 190,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/codemods/transform-imports.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getTransformedModule",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformImports",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllImports",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 134,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transform-strings",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 186,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/codemods/transform-strings.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "transformStrings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllStrings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 131,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transform-package-json",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 688,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/transform-package-json.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "extractVersion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseSemver",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compareVersions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mergeWithNewestVersions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isPackageJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 213,
+ "end_line": 213,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformDependencies",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 220,
+ "end_line": 220,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformPackageJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 245,
+ "end_line": 245,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformConflictedPackageJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 443,
+ "end_line": 443,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getKiloPackageJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 466,
+ "end_line": 466,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllPackageJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 481,
+ "end_line": 481,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 688 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "transform-i18n",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 374,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/transform-i18n.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "shouldPreserveLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 149,
+ "end_line": 149,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformI18nContent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 156,
+ "end_line": 156,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformI18nFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 225,
+ "end_line": 225,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isI18nFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 249,
+ "end_line": 249,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllI18n",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 262,
+ "end_line": 262,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformConflictedI18n",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 296,
+ "end_line": 296,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 374 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "skip-files",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 208,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/skip-files.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "shouldSkip",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getUpstreamFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getUnmergedFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fileExistsInRef",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 87,
+ "end_line": 87,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 95,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "skipFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "skipSpecificFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 163,
+ "end_line": 163,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "keep-ours",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 135,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/keep-ours.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "shouldKeepOurs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "keepOursFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resetToOurs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lock-files",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 184,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/lock-files.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isLockFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveLockFileConflicts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "regenerateLockFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transform-scripts",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 253,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/transform-scripts.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isScriptFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 88,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyScriptTransforms",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformScriptFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 125,
+ "end_line": 125,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformConflictedScripts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 168,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllScripts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 191,
+ "end_line": 191,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transform-take-theirs",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 347,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/transform-take-theirs.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "matchesPattern",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 149,
+ "end_line": 149,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyBrandingTransforms",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 160,
+ "end_line": 160,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformTakeTheirs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 211,
+ "end_line": 211,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformConflictedTakeTheirs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 251,
+ "end_line": 251,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldTakeTheirs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 275,
+ "end_line": 275,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllTakeTheirs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 284,
+ "end_line": 284,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 347 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "transform-extensions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 294,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/transform-extensions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isExtensionFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getExtension",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyExtensionTransforms",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformExtensionFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 159,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformConflictedExtensions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 202,
+ "end_line": 202,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllExtensions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 225,
+ "end_line": 225,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "package-names",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/package-names.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "transformFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 109,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "preserve-versions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 122,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/preserve-versions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getCurrentVersion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "preserveVersion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "preserveAllVersions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transform-tauri",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 363,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/transform-tauri.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isTauriFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 180,
+ "end_line": 180,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getExtension",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 192,
+ "end_line": 192,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyTauriTransforms",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 200,
+ "end_line": 200,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformTauriFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 235,
+ "end_line": 235,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformConflictedTauri",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 278,
+ "end_line": 278,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllTauri",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 301,
+ "end_line": 301,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 363 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "transform-web",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 301,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/script/upstream/transforms/transform-web.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isWebFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyWebTransforms",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 126,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformWebFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 176,
+ "end_line": 176,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformConflictedWeb",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 216,
+ "end_line": 216,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformAllWeb",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 239,
+ "end_line": 239,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 301 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "esbuild",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/sdks/vscode/esbuild.js",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extension",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 137,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/sdks/vscode/src/extension.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "deactivate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2,
+ "end_line": 2,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "activate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openTerminal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "appendPrompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getActiveFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider-debug",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/provider-debug.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createKiloDebug",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/provider.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createKilo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loader",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/loader.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "kiloCustomLoader",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkAuthentication",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "headers",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/headers.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getFeatureHeader",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getEditorNameHeader",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildKiloHeaders",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cloud-sessions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/cloud-sessions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "exportUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchCloudSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchCloudSessionForImport",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "importSessionToDb",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "device-auth",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 193,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/device-auth.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "initiateDeviceAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pollDeviceAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "authenticateWithDeviceAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "token",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/token.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getKiloUrlFromToken",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isValidKilocodeToken",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getApiKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "polling",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/polling.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "poll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatTimeRemaining",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "device-auth-tui",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/device-auth-tui.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "initiateDeviceAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pollDeviceAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "authenticateWithDeviceAuthTUI",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "legacy-migration",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/auth/legacy-migration.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "extractKiloAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateLegacyKiloAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tui.d",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/types/tui.d.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useCommandDialog",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useSync",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useDialog",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useToast",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useKeyboard",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "context",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/tui/context.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "initializeTUIDependencies",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTUIDependencies",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "areTUIDependenciesInitialized",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "helpers",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/tui/helpers.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "formatProfileInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getOrganizationOptions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getDefaultOrganizationSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 84,
+ "end_line": 84,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "routes",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 533,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/server/routes.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createKiloRoutes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 533 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "models",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 232,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/api/models.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseApiPrice",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchKiloModels",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformToModelDevFormat",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractFamily",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 196,
+ "end_line": 196,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mapModalities",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 215,
+ "end_line": 215,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "notifications",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/api/notifications.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fetchKilocodeNotifications",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "profile",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 156,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-gateway/src/api/profile.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fetchProfile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchBalance",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchDefaultModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchProfileWithBalance",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 119,
+ "end_line": 119,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "promptOrganizationSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 132,
+ "end_line": 132,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "e2e-local",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 180,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/script/e2e-local.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "freePort",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForHealth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "actions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 718,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/actions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "defocus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openPalette",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "closeDialog",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isSidebarClosed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toggleSidebar",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openSidebar",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "closeSidebar",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openSettings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seedProjects",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 125,
+ "end_line": 125,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createTestProject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanupTestProject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 195,
+ "end_line": 195,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "slugFromUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 202,
+ "end_line": 202,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitSlug",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 206,
+ "end_line": 206,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sessionIDFromUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 229,
+ "end_line": 229,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hoverSessionItem",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 234,
+ "end_line": 234,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openSessionMoreMenu",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 241,
+ "end_line": 241,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clickMenuItem",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 271,
+ "end_line": 271,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "confirmDialog",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 279,
+ "end_line": 279,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openSharePopover",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 288,
+ "end_line": 288,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clickPopoverButton",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 310,
+ "end_line": 310,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clickListItem",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 316,
+ "end_line": 316,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "status",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 339,
+ "end_line": 339,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 347,
+ "end_line": 347,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitSessionIdle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 369,
+ "end_line": 369,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanupSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 373,
+ "end_line": 373,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "withSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 390,
+ "end_line": 390,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seedSessionQuestion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 442,
+ "end_line": 442,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seedSessionPermission",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 480,
+ "end_line": 480,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seedSessionTask",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 514,
+ "end_line": 514,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seedSessionTodos",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 565,
+ "end_line": 565,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearSessionDockSeed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 595,
+ "end_line": 595,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openStatusPopover",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 613,
+ "end_line": 613,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openProjectMenu",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 635,
+ "end_line": 635,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setWorkspacesEnabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 677,
+ "end_line": 677,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openWorkspaceMenu",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 704,
+ "end_line": 704,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 718 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "fixtures",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/fixtures.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "seedStorage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 91,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createSdk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getWorktree",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dirSlug",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dirPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sessionPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workspacePersistKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-undo-redo.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 236,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/session/session-undo-redo.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "seedConversation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 176,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/session/session.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "seedMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-composer-dock.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 430,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/session/session-composer-dock.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withDockSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "withDockSeed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearPermissionDock",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setAutoAccept",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "withMockPermission",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 430 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "terminal-tabs.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 139,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/terminal/terminal-tabs.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "open",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "store",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompt-history.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 181,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/prompt/prompt-history.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "edge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "wait",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "reply",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shell",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "context.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/prompt/context.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "contextButton",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seedContextSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompt-slash-share.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/prompt/prompt-slash-share.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "seed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workspaces.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 386,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/projects/workspaces.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setupWorkspaceTest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 386 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "projects-switch.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/projects/projects-switch.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "workspaces",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workspace-new-session.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 110,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/e2e/projects/workspace-new-session.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "waitWorkspaceReady",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createWorkspace",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openWorkspaceNewSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createSessionFromWorkspace",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sessionDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "agent",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/agent.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "agentColor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server-health",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/server-health.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "timeoutSignal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "wait",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "retryable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkServerHealth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "same",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/same.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "same",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "comment-note",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/comment-note.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "selection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createCommentMetadata",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readCommentMetadata",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatCommentNote",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseCommentNote",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "worktree",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/worktree.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "deferred",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompt",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 203,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/prompt.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "selectionFromFileUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "textPartValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractPromptFromParts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "time",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/time.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getRelativeTime",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server-health.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 123,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/server-health.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "abortFromInput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "base64",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/base64.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "decode64",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "id",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/id.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "schema",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ascending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "descending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateID",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bytesToHex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "randomBase62",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getRandomBytes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sound",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 117,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/sound.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "soundSrc",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "playSound",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server-errors",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/server-errors.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "tr",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatServerError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isConfigInvalidErrorLike",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isProviderModelNotFoundErrorLike",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseReadableConfigInvalidError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseReadableProviderModelNotFoundError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "terminal-writer",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/terminal-writer.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "terminalWriter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/server.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createSdkForServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scoped-cache",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/scoped-cache.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createScopedCache",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "speech",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 326,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/speech.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createSpeechRecognition",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 326 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "server-errors.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/server-errors.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fill",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useLanguageMock",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dom",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/dom.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getCharacterOffsetInLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getNodeOffsetInLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSelectionInContainer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "uuid",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/uuid.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "uuid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "persist",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 464,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/persist.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "cacheDelete",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cachePrune",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cacheSet",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cacheGet",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fallbackDisabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fallbackSet",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "quota",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "evict",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "write",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "snapshot",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 156,
+ "end_line": 156,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isRecord",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 160,
+ "end_line": 160,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 164,
+ "end_line": 164,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 190,
+ "end_line": 190,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 198,
+ "end_line": 198,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workspaceStorage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 206,
+ "end_line": 206,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "localStorageWithPrefix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 212,
+ "end_line": 212,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "localStorageDirect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 258,
+ "end_line": 258,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removePersisted",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 322,
+ "end_line": 322,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "persisted",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 337,
+ "end_line": 337,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 464 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "aim",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 138,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/utils/aim.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createAim",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "serialize.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 319,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/addons/serialize.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createTerminal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "writeAndWait",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 319 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "serialize",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 634,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/addons/serialize.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "constrain",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "equalFg",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "equalBg",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 169,
+ "end_line": 169,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "equalFlags",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 173,
+ "end_line": 173,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 634 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "session-composer-state",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/pages/session/composer/session-composer-state.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createSessionComposerBlocked",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createSessionComposerState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-request-tree",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/pages/session/composer/session-request-tree.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sessionTreeRequest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sessionPermissionRequest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sessionQuestionRequest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "helpers",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/pages/layout/helpers.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sortSessions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasProjectPermissions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getDraggableId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "use-providers",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/hooks/use-providers.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useProviders",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "titlebar-history.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/titlebar-history.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "history",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "titlebar-history",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/titlebar-history.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "applyPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pushPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trimHistory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "backPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "forwardPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-context-format",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/session/session-context-format.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createSessionContextFormatter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-context-breakdown",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 132,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/session/session-context-breakdown.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "estimateSessionContextBreakdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-context-metrics",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/session/session-context-metrics.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getSessionContextMetrics",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "build-request-parts",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/build-request-parts.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "buildRequestParts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "editor-dom",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 148,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/editor-dom.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createTextFragment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getNodeLength",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTextLength",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCursorPosition",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setCursorPosition",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setRangeEdge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 120,
+ "end_line": 120,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "attachments",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 180,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/attachments.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "largePaste",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createPromptAttachments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "submit",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 428,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/submit.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createPromptSubmit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 428 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "placeholder",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/placeholder.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "promptPlaceholder",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "history",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 256,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/components/prompt-input/history.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "canNavigateHistoryAtCursor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clonePromptParts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cloneSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clonePromptHistoryComments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizePromptHistoryEntry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "promptLength",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prependHistoryEntry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isCommentEqual",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isPromptEqual",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "navigatePromptHistory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 173,
+ "end_line": 173,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "permission-auto-respond",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/permission-auto-respond.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "acceptKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "directoryAcceptKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "accepted",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isDirectoryAutoAccepting",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sessionLineage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "autoRespondsPermission",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "layout-scroll",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/layout-scroll.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createScrollPersistence",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clone",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scroll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "schedule",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setScroll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "flush",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "flushAll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 84,
+ "end_line": 84,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "drop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dispose",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "notification-index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/notification-index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "buildNotificationIndex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "comments.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 186,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/comments.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "line",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "model-variant",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/model-variant.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getConfiguredAgentVariant",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveModelVariant",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cycleModelVariant",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "queue",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/queue.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createRefreshQueue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "drain",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "eviction",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/eviction.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "pickDirectoriesToEvict",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "canDisposeDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bootstrap",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 206,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/bootstrap.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "bootstrapGlobal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "groupBySession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bootstrapDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "child-store",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 270,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/child-store.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createChildStoreManager",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "disposeDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "runEviction",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ensureChild",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 123,
+ "end_line": 123,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "child",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 218,
+ "end_line": 218,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "projectMeta",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 228,
+ "end_line": 228,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "projectIcon",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 245,
+ "end_line": 245,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-trim",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/session-trim.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sessionUpdatedAt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compareSessionRecent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "takeRecentSessions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trimSessions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "event-reducer",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 356,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/event-reducer.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "applyGlobalEvent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanupSessionCaches",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanupDroppedSessionCaches",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyDirectoryEvent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 356 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "session-cache",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/session-cache.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "dropSessionCaches",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pickSessionCacheEvictions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeProviderList",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sanitizeProject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-load",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/global-sync/session-load.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "loadRootSessionsWithFallback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "estimateRootSessionTotal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "path",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/file/path.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "stripFileProtocol",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stripQueryAndHash",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "unquoteGitPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "decodeFilePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "encodeFilePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createPathHelpers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "view-cache",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 146,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/file/view-cache.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeSelectedLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "equalSelectedLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createViewSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createFileViewCache",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 122,
+ "end_line": 122,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "types",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/file/types.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "selectionFromLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "watcher",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/file/watcher.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "invalidateFromWatcher",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tree-store",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 170,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/file/tree-store.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createFileTreeStore",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "content-cache",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/app/src/context/file/content-cache.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "approxBytes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setBytes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "touch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "reset",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "evictContentLru",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resetFileContentLru",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setFileContentBytes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeFileContentBytes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "touchFileContent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFileContentBytesTotal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFileContentEntryCount",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasFileContent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "previous-docs-redirects.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 135,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-docs/__tests__/previous-docs-redirects.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "detectCycle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "llms.txt",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 164,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-docs/pages/api/llms.txt.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findMarkdownFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filePathToUrlPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractFrontmatterTitle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildTitleMap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "addNavLink",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "addNavSection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "heading.markdoc",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-docs/markdoc/nodes/heading.markdoc.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "generateID",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tool",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/plugin/src/tool.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "tool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-path",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-ui/src/file-path.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseFilePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractFilePathFromHref",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tool-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 336,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-ui/src/components/tool-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createThrottledValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "busy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hold",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateScrollMask",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useCollapsible",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useContextToolPending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useRowWipe",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 188,
+ "end_line": 188,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useToolFade",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 269,
+ "end_line": 269,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 336 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "visual-regression.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 168,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-ui/tests/visual-regression.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fetchStories",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "disableAnimations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForSettled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForImages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForFonts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForStable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop/scripts/utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getCurrentSidecar",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "copyBinaryToSidecarFolder",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "windowsify",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cli",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop/src/cli.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "installError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installCli",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "menu",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 191,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop/src/menu.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createMenu",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updater",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop/src/updater.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "runUpdater",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bindings",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop/src/bindings.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "makeEvent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 192,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop/src/i18n/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "detectLocale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseLocale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseRecord",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseStored",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 120,
+ "end_line": 120,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pickLocale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "build",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 141,
+ "end_line": 141,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "t",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 169,
+ "end_line": 169,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "initI18n",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 173,
+ "end_line": 173,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "schema",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/script/schema.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "generate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "project-id",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/project-id.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeProjectId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getProjectIdFromConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getProjectIdFromGit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveProjectId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getKiloProjectId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rules-migrator",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 153,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/rules-migrator.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "exists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findMarkdownFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "discoverRules",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "plan-followup",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 310,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/plan-followup.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatTodos",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateHandover",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolvePlan",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "inject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 140,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 168,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "startNew",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 207,
+ "end_line": 207,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ask",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 249,
+ "end_line": 249,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 310 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "ts-client",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/ts-client.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "check",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bash-hierarchy",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/bash-hierarchy.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "addAll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ignore-migrator",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 222,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/ignore-migrator.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fileExists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseIgnoreContent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertToGlob",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 71,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadIgnoreFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildPermissionRules",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 151,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadIgnoreConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 202,
+ "end_line": 202,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bell",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/bell.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "bell",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2,
+ "end_line": 2,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "paste-summary",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/paste-summary.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldSummarize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ts-check",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 170,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/ts-check.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolve",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "local_tsc",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "native_tsgo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scan_bun",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 156,
+ "end_line": 156,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "exists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 167,
+ "end_line": 167,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "modes-migrator",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 172,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/modes-migrator.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isDefaultMode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertPermissions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertMode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readModesFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 91,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 109,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "editor-context",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/editor-context.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "staticEnvLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "timestamp",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "environmentDetails",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workflows-migrator",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 134,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/workflows-migrator.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findWorkflowFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractNameFromFilename",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractDescription",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadWorkflowsFromDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "discoverWorkflows",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertToCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "enhance-prompt",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/enhance-prompt.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "clean",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "enhancePrompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mcp-migrator",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 183,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/mcp-migrator.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isRemote",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readMcpSettings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 88,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadMcpConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 158,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "paths",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/paths.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "vscodeGlobalStorage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "globalDirs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "skillDirectories",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "config-injector",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/config-injector.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "buildConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mergePermissions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getEnvVars",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cloud-session",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/cloud-session.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "validateCloudFork",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "importCloudSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "kilo-errors",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 84,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/kilo-errors.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isKiloError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "kiloErrorTitle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "kiloErrorDescription",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "showKiloErrorToast",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseKiloErrorCode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "worktree-diff",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 303,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/review/worktree-diff.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "generatedLike",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ancestor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stats",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "detailMeta",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 139,
+ "end_line": 139,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 195,
+ "end_line": 195,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lineCount",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 200,
+ "end_line": 200,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "statStamp",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 221,
+ "end_line": 221,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readBefore",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 227,
+ "end_line": 227,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readAfter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 233,
+ "end_line": 233,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "load",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 239,
+ "end_line": 239,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "summarize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 257,
+ "end_line": 257,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "summary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 272,
+ "end_line": 272,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "detail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 283,
+ "end_line": 283,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "full",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 292,
+ "end_line": 292,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 303 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "command",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/review/command.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "localReviewUncommittedCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "localReviewCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "review",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 411,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/review/review.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "countChanges",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatFileList",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 136,
+ "end_line": 136,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildToolsSection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 148,
+ "end_line": 148,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 169,
+ "end_line": 169,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseFileDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 187,
+ "end_line": 187,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildReviewPromptUncommitted",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 253,
+ "end_line": 253,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildReviewPromptBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 275,
+ "end_line": 275,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCurrentBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 297,
+ "end_line": 297,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getBaseBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 307,
+ "end_line": 307,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getUncommittedChanges",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 346,
+ "end_line": 346,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getBranchChanges",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 381,
+ "end_line": 381,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 411 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "drain",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilocode/permission/drain.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "drainCovered",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "todo",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/todo.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "update",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompt",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 2065,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/prompt.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "shouldAskPlanFollowup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "assertNotBusy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolvePromptParts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 213,
+ "end_line": 213,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "start",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 264,
+ "end_line": 264,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resume",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 275,
+ "end_line": 275,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cancel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 282,
+ "end_line": 282,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lastModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 819,
+ "end_line": 819,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveTools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 827,
+ "end_line": 827,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createStructuredOutputTool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1018,
+ "end_line": 1018,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createUserMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1047,
+ "end_line": 1047,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "insertReminders",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1415,
+ "end_line": 1415,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shell",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1569,
+ "end_line": 1569,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "command",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1850,
+ "end_line": 1850,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ensureTitle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1994,
+ "end_line": 1994,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 2065 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 976,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createDefaultTitle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isDefaultTitle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromRow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toRow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getForkedTitle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 109,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getPlatformOverride",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 262,
+ "end_line": 262,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createNext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 324,
+ "end_line": 324,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "plan",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 366,
+ "end_line": 366,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 976 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "status",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/status.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "set",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "llm",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 302,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/llm.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "stream",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveTools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 281,
+ "end_line": 281,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasToolCalls",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 293,
+ "end_line": 293,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 302 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "system",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/system.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "instructions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "soul",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "environment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "instruction",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 190,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/instruction.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "globalFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveRelative",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isClaimed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "claim",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clear",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "systemPaths",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "system",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loaded",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 142,
+ "end_line": 142,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "find",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 159,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolve",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 166,
+ "end_line": 166,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "summary",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 164,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/summary.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "unquoteGitPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "summarizeSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "summarizeMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "computeDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 138,
+ "end_line": 138,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compaction",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 328,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/compaction.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isOverflow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prune",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "process",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 328 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "processor",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 452,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/processor.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 452 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "retry",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/retry.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sleep",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "delay",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "retryable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "revert",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 138,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/revert.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "revert",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "unrevert",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 91,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "message-v2",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 925,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/session/message-v2.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isMedia",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toModelMessages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 506,
+ "end_line": 506,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filterCompacted",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 819,
+ "end_line": 819,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 837,
+ "end_line": 837,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 925 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/auth/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "set",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1391,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/provider.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isGpt5OrLater",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldUseCopilotResponsesApi",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "googleVertexVars",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadBaseURL",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromModelsDevModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 716,
+ "end_line": 716,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromModelsDevProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 789,
+ "end_line": 789,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isProviderAllowed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 809,
+ "end_line": 809,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mergeProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 840,
+ "end_line": 840,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1086,
+ "end_line": 1086,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSDK",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1090,
+ "end_line": 1090,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1195,
+ "end_line": 1195,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1199,
+ "end_line": 1199,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getLanguage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1219,
+ "end_line": 1219,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "closest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1246,
+ "end_line": 1246,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSmallModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1261,
+ "end_line": 1261,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sort",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1332,
+ "end_line": 1332,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "defaultModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1341,
+ "end_line": 1341,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1368,
+ "end_line": 1368,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1391 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "error",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 202,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/error.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isOpenAiErrorRetryable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isOverflow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "message",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "json",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseStreamError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 125,
+ "end_line": 125,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseAPICallError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "model-cache",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 228,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/model-cache.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "refresh",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clear",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": 147,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchModels",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 162,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAuthOptions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 178,
+ "end_line": 178,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "models",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 201,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/models.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "refresh",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 175,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transform",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1047,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/transform.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mimeToModality",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sdkKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeMessages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyCaching",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 176,
+ "end_line": 176,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "unsupportedParts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 216,
+ "end_line": 216,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fixDuplicateReasoning",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 255,
+ "end_line": 255,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "message",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 293,
+ "end_line": 293,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "temperature",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 340,
+ "end_line": 340,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "topP",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 358,
+ "end_line": 358,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "topK",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 367,
+ "end_line": 367,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "variants",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 380,
+ "end_line": 380,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "options",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 746,
+ "end_line": 746,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "smallOptions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 865,
+ "end_line": 865,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "providerOptions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 908,
+ "end_line": 908,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "maxOutputTokens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 943,
+ "end_line": 943,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "schema",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 947,
+ "end_line": 947,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1047 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "auth",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 166,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/auth.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "methods",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "copilot-provider",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/copilot-provider.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createOpenaiCompatible",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openai-responses-language-model",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1732,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "addInclude",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 216,
+ "end_line": 216,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasOpenAITool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 220,
+ "end_line": 220,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isTextDeltaChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1536,
+ "end_line": 1536,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseOutputItemDoneChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1542,
+ "end_line": 1542,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseOutputItemDoneReasoningChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1548,
+ "end_line": 1548,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseFinishedChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1556,
+ "end_line": 1556,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseCreatedChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1562,
+ "end_line": 1562,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseFunctionCallArgumentsDeltaChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1568,
+ "end_line": 1568,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseImageGenerationCallPartialImageChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1573,
+ "end_line": 1573,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseCodeInterpreterCallCodeDeltaChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1579,
+ "end_line": 1579,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseCodeInterpreterCallCodeDoneChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1585,
+ "end_line": 1585,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseOutputItemAddedChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1591,
+ "end_line": 1591,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseOutputItemAddedReasoningChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1597,
+ "end_line": 1597,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseAnnotationAddedChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1605,
+ "end_line": 1605,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseReasoningSummaryPartAddedChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1611,
+ "end_line": 1611,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isResponseReasoningSummaryTextDeltaChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1617,
+ "end_line": 1617,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isErrorChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1623,
+ "end_line": 1623,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getResponsesModelConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1635,
+ "end_line": 1635,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1732 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "map-openai-responses-finish-reason",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mapOpenAIResponseFinishReason",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openai-responses-prepare-tools",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 177,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "prepareResponsesTools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convert-to-openai-responses-input",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 303,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isFileId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertToOpenAIResponsesInput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 303 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "openai-compatible-prepare-tools",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 87,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "prepareTools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convert-to-openai-compatible-chat-messages",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 164,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getOpenAIMetadata",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertToOpenAICompatibleChatMessages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "map-openai-compatible-finish-reason",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mapOpenAICompatibleFinishReason",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get-response-metadata",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/provider/sdk/copilot/chat/get-response-metadata.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getResponseMetadata",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shell",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/shell/shell.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "killTree",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fallback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "agent",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1748,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/acp/agent.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getContextLimit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sendUsageUpdate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 126,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toToolKind",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1485,
+ "end_line": 1485,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toLocations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1513,
+ "end_line": 1513,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "defaultModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1532,
+ "end_line": 1532,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseUri",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1600,
+ "end_line": 1600,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getNewContent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1639,
+ "end_line": 1639,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sortProvidersByName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1648,
+ "end_line": 1648,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "modelVariantsFromProviders",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1658,
+ "end_line": 1658,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildAvailableModels",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1669,
+ "end_line": 1669,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatModelIdWithVariant",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1692,
+ "end_line": 1692,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildVariantMeta",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1703,
+ "end_line": 1703,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseModelSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1717,
+ "end_line": 1717,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1748 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 317,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/pty/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 120,
+ "end_line": 120,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "update",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 208,
+ "end_line": 208,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 221,
+ "end_line": 221,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 240,
+ "end_line": 240,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "write",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 247,
+ "end_line": 247,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "connect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 254,
+ "end_line": 254,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 317 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/plugin/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "trigger",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 131,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 135,
+ "end_line": 135,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "codex",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 632,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/plugin/codex.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "generatePKCE",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateRandomString",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "base64UrlEncode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseJwtClaims",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractAccountIdFromClaims",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractAccountId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildAuthorizeUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "exchangeCodeForTokens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "refreshAccessToken",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "startOAuthServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 252,
+ "end_line": 252,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stopOAuthServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 323,
+ "end_line": 323,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForOAuthCallback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 331,
+ "end_line": 331,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "CodexAuthPlugin",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 358,
+ "end_line": 358,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 632 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "copilot",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 328,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/plugin/copilot.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeDomain",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getUrls",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "CopilotAuthPlugin",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 328 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "inflight-cache",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilo-sessions/inflight-cache.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withInFlightCache",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearInFlightCache",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ingest-queue",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 314,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilo-sessions/ingest-queue.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 71,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "retryable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "backoff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 109,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "schedule",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "enqueue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 160,
+ "end_line": 160,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "flush",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 182,
+ "end_line": 182,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sync",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 289,
+ "end_line": 289,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 314 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "kilo-sessions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 470,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/kilo-sessions/kilo-sessions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "clearCache",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "authValid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "kilocodeToken",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 200,
+ "end_line": 200,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bootstrap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 209,
+ "end_line": 209,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "share",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 241,
+ "end_line": 241,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "unshare",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 286,
+ "end_line": 286,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 322,
+ "end_line": 322,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 330,
+ "end_line": 330,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fullSync",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 362,
+ "end_line": 362,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeGitUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 402,
+ "end_line": 402,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getGitUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 418,
+ "end_line": 418,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "meta",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 440,
+ "end_line": 440,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getOrgId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 455,
+ "end_line": 455,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isUuid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 466,
+ "end_line": 466,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 470 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "git-context",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 230,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/commit-message/git-context.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isLockFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 126,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "git",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 131,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseNameStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 140,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parsePorcelain",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 155,
+ "end_line": 155,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mapStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 167,
+ "end_line": 167,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isUntracked",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 175,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getGitContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generate",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 178,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/commit-message/generate.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "buildUserMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clean",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateCommitMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 113,
+ "end_line": 113,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "git-context.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 484,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/commit-message/__tests__/git-context.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setGitOutput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearGitOutputs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "git",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isLockFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseNameStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parsePorcelain",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mapStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isUntracked",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getGitContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 484 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/ide/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "ide",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "alreadyInstalled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "install",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/format/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isEnabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFormatter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "status",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mdns",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/server/mdns.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "publish",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "unpublish",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "error",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/server/error.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "errors",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 692,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/server/server.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openapi",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 630,
+ "end_line": 630,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "listen",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 645,
+ "end_line": 645,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 692 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "tui",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 379,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/server/routes/tui.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "callTui",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 379 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "global",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 186,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/server/routes/global.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "handler",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tui",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/config/tui.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mergeInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "customPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "load",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate-tui-config",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/config/migrate-tui-config.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "migrateTuiConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeTui",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "backupAndStripLegacy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "opencodeFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 138,
+ "end_line": 138,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "config",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1638,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/config/config.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "systemManagedConfigDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "managedConfigDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mergeConfigConcatArrays",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForDependencies",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 349,
+ "end_line": 349,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installDependencies",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 354,
+ "end_line": 354,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isWritable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 386,
+ "end_line": 386,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "needsInstall",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 395,
+ "end_line": 395,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 431,
+ "end_line": 431,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trim",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 440,
+ "end_line": 440,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 445,
+ "end_line": 445,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadAgent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 492,
+ "end_line": 492,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadMode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 542,
+ "end_line": 542,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadPlugin",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 578,
+ "end_line": 578,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getPluginName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 602,
+ "end_line": 602,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deduplicatePlugins",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 624,
+ "end_line": 624,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1352,
+ "end_line": 1352,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "load",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1359,
+ "end_line": 1359,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1424,
+ "end_line": 1424,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getGlobal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1428,
+ "end_line": 1428,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "update",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1432,
+ "end_line": 1432,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "globalConfigFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1439,
+ "end_line": 1439,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isRecord",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1451,
+ "end_line": 1451,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stripNulls",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1457,
+ "end_line": 1457,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mergeConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1480,
+ "end_line": 1480,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "patchJsonc",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1500,
+ "end_line": 1500,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1538,
+ "end_line": 1538,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateGlobal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1573,
+ "end_line": 1573,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "directories",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1633,
+ "end_line": 1633,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1638 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "markdown",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/config/markdown.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "files",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shell",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fallbackSanitization",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 71,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "paths",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 174,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/config/paths.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "projectFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "directories",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fileInDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "source",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "substitute",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "share-next",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 228,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/share/share-next.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sync",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 140,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 176,
+ "end_line": 176,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fullSync",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 193,
+ "end_line": 193,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "webfetch",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 206,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/webfetch.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "extractTextFromHTML",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 164,
+ "end_line": 164,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertHTMLToMarkdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 196,
+ "end_line": 196,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diagnostics",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/diagnostics.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "filterDiagnostics",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "plan",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/plan.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getLastModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "edit",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 669,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/edit.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeLineEndings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "detectLineEnding",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertToLineEnding",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "levenshtein",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 180,
+ "end_line": 180,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trimDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 596,
+ "end_line": 596,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "replace",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 632,
+ "end_line": 632,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 669 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "question",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/question.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "format",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "external-directory",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/external-directory.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "assertExternalDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "task",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/task.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "cancel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "registry",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 177,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/registry.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fromPlugin",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "register",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 99,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ids",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "read",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 293,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/read.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isBinaryFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 235,
+ "end_line": 235,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ls",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/ls.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "renderDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tool",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/tool.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "define",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "truncation",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/tool/truncation.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasTaskTool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "output",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "json-migration",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 425,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/storage/json-migration.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "read",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "insert",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 425 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "db",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 173,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/storage/db.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "time",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "close",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "use",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 136,
+ "end_line": 136,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "effect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 150,
+ "end_line": 150,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transaction",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 158,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "storage",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 220,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/storage/storage.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 157,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "read",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "update",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 175,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "write",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 187,
+ "end_line": 187,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "withErrorHandling",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 196,
+ "end_line": 196,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 207,
+ "end_line": 207,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sse",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/control-plane/sse.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseSSE",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workspace",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 152,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/control-plane/workspace.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fromRow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workspaceEventLoop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "startSyncing",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workspace-router-middleware",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/control-plane/workspace-router-middleware.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "routeRequest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "routes",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/control-plane/workspace-server/routes.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "WorkspaceServerRoutes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/control-plane/workspace-server/server.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "App",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "Listen",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/control-plane/adaptors/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getAdaptor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installAdaptor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "registry",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/bun/registry.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "which",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "info",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isOutdated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/bun/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "which",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "install",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/question/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "ask",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "reply",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 127,
+ "end_line": 127,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "reject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": 147,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 172,
+ "end_line": 172,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 507,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/lsp/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 148,
+ "end_line": 148,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "status",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 164,
+ "end_line": 164,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getClients",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "schedule",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 184,
+ "end_line": 184,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasClients",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 286,
+ "end_line": 286,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "touchFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 299,
+ "end_line": 299,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diagnostics",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 313,
+ "end_line": 313,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hover",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 325,
+ "end_line": 325,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workspaceSymbol",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 381,
+ "end_line": 381,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "documentSymbol",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 393,
+ "end_line": 393,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "definition",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 408,
+ "end_line": 408,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "references",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 419,
+ "end_line": 419,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "implementation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 431,
+ "end_line": 431,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prepareCallHierarchy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 442,
+ "end_line": 442,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "incomingCalls",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 453,
+ "end_line": 453,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "outgoingCalls",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 466,
+ "end_line": 466,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "runAll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 479,
+ "end_line": 479,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 485,
+ "end_line": 485,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pretty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 492,
+ "end_line": 492,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 507 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "server",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 2067,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/lsp/server.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "spawn",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "spawn",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "spawn",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 2067 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "client",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 251,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/lsp/client.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "discovery",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/skill/discovery.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "dir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pull",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "skill",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 240,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/skill/skill.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 206,
+ "end_line": 206,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 210,
+ "end_line": 210,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dirs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 214,
+ "end_line": 214,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 227,
+ "end_line": 227,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "queue",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/queue.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "work",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hash",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/hash.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fast",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "process",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 127,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/process.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "spawn",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "wildcard",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/wildcard.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "match",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "allStructured",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "matchSequence",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filesystem",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 195,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/filesystem.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "exists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stat",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "size",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readBytes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readArrayBuffer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isEnoent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "write",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "writeJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "writeStream",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mimeType",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolve",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 117,
+ "end_line": 117,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "windowsPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "overlaps",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 134,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "contains",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 140,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findUp",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "globUp",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 173,
+ "end_line": 173,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "timeout",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/timeout.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withTimeout",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "log",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 182,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/log.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "shouldLog",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "build",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 111,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 160,
+ "end_line": 160,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fn",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/fn.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fn",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "proxied",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/proxied.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "proxied",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lock",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/lock.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "process",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "read",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "write",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "iife",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/iife.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "iife",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "archive",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/archive.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "extractZip",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "which",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/which.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "which",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "abort",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/abort.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "abortAfter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "abortAfterAny",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scrap",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/scrap.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "dummyFunction",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "randomHelper",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "token",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/token.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "estimate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lazy",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/lazy.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "lazy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "glob",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/glob.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toGlobOptions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scan",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scanSync",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "match",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "git",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/git.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "git",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "keybind",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/keybind.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "match",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromParsedKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toString",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "locale",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/locale.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "titlecase",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2,
+ "end_line": 2,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "time",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "datetime",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "todayTimeOrDateTime",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "number",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "duration",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "truncate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "truncateMiddle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pluralize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "format",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/format.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "formatDuration",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "eventloop",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/eventloop.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "wait",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "signal",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/signal.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "signal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rpc",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/rpc.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "listen",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "emit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "client",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "defer",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/defer.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "defer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "color",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/color.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isValidHex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2,
+ "end_line": 2,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hexToRgb",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hexToAnsiBold",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "context",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/util/context.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/env/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "set",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "upgrade",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/upgrade.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "upgrade",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bootstrap",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/bootstrap.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "bootstrap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "network",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/network.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withNetworkOptions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveNetworkOptions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "error",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/error.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "FormatError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FormatUnknownError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ui",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/ui.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "println",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "print",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "empty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "logo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "input",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "markdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "import",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 223,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/import.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseShareUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformShareData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ingestBootstrapWarning",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ingestBootstrap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bootstrapImportedSessionIngest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stats",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 410,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/stats.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getCurrentProject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAllSessions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "aggregateSessionStats",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 95,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "displayStats",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 309,
+ "end_line": 309,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "renderRow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 312,
+ "end_line": 312,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatNumber",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 403,
+ "end_line": 403,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 410 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "models",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/models.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "printModels",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "web",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/web.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getNetworkIPs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mcp",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 768,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/mcp.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getAuthStatusIcon",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAuthStatusText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isMcpConfigured",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isMcpRemote",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveConfigPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 383,
+ "end_line": 383,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "addMcpToConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 415,
+ "end_line": 415,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 768 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "auth",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 506,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/auth.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "handlePluginAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolvePluginProviders",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 506 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "cmd",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/cmd.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "cmd",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "run",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 725,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/run.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "props",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "inline",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "block",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fallback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "glob",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "grep",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "read",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "write",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "webfetch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 139,
+ "end_line": 139,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "edit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 146,
+ "end_line": 146,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "codesearch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 158,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "websearch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "task",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 172,
+ "end_line": 172,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "skill",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 189,
+ "end_line": 189,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bash",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 196,
+ "end_line": 196,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "todo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 207,
+ "end_line": 207,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 217,
+ "end_line": 217,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "title",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 399,
+ "end_line": 399,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 405,
+ "end_line": 405,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "share",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 431,
+ "end_line": 431,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "execute",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 446,
+ "end_line": 446,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 447,
+ "end_line": 447,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "emit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 468,
+ "end_line": 468,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 479,
+ "end_line": 479,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 725 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "session",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/session.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "pagerCmd",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatSessionTable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatSessionJSON",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": 147,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "uninstall",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 366,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/uninstall.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "collectRemovalTargets",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "showRemovalSummary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "executeUninstall",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getShellConfigFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 239,
+ "end_line": 239,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanShellConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 288,
+ "end_line": 288,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getDirectorySize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 330,
+ "end_line": 330,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatSize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 353,
+ "end_line": 353,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shortenPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 360,
+ "end_line": 360,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 366 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "win32",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/win32.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "load",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "win32DisableProcessedInput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "win32FlushInputBuffer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "win32InstallCtrlCGuard",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "thread",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 328,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/thread.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createWorkerFetch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createEventSource",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "target",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "input",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 328 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "worker",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/worker.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getAuthorizationHeader",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 156,
+ "end_line": 156,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transcript",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/transcript.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "formatTranscript",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatAssistantHeader",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatPart",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clipboard",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/clipboard.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "writeOsc52",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "read",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "copy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "selection",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/selection.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "copy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "terminal",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/terminal.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "colors",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTerminalBackgroundColor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "markdown",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 212,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/markdown.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseRow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isSeparatorRow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAlignment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getDisplayWidth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "padToWidth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findTables",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatTable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 153,
+ "end_line": 153,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatMarkdownTables",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 198,
+ "end_line": 198,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "editor",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/editor.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "open",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "signal",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/util/signal.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createDebouncedSignal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "spinner",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 368,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/ui/spinner.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getScannerState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "calculateColorIndex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createKnightRiderTrail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 141,
+ "end_line": 141,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deriveTrailColors",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 199,
+ "end_line": 199,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deriveInactiveColor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 239,
+ "end_line": 239,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createFrames",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 272,
+ "end_line": 272,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createColors",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 336,
+ "end_line": 336,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 368 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "textarea-keybindings",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/component/textarea-keybindings.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mapTextareaKeybindings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useTextareaKeybindings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "directory",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/tui/context/directory.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "agent",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 167,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/cli/cmd/debug/agent.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getAvailableTools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveTools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseToolParams",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createToolContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ripgrep",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 378,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/file/ripgrep.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "filepath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 211,
+ "end_line": 211,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tree",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 281,
+ "end_line": 281,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 289,
+ "end_line": 289,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 308,
+ "end_line": 308,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "search",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 339,
+ "end_line": 339,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 378 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "time",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/file/time.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "read",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "withLock",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "assert",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 654,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/file/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isImageByExtension",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 261,
+ "end_line": 261,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isTextByExtension",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 266,
+ "end_line": 266,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isTextByName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 271,
+ "end_line": 271,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getImageMimeType",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 276,
+ "end_line": 276,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isBinaryByExtension",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 299,
+ "end_line": 299,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isImage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 304,
+ "end_line": 304,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldEncode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 308,
+ "end_line": 308,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 413,
+ "end_line": 413,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "status",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 417,
+ "end_line": 417,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "read",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 496,
+ "end_line": 496,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 565,
+ "end_line": 565,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "search",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 615,
+ "end_line": 615,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 654 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "ignore",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/file/ignore.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "match",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "watcher",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/file/watcher.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 122,
+ "end_line": 122,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 974,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/mcp/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "registerNotificationHandlers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertMcpTool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 120,
+ "end_line": 120,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isMcpConfigured",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 159,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "descendants",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 163,
+ "end_line": 163,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchPromptsForClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 250,
+ "end_line": 250,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchResourcesForClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 272,
+ "end_line": 272,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "add",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 294,
+ "end_line": 294,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 328,
+ "end_line": 328,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "status",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 533,
+ "end_line": 533,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clients",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 548,
+ "end_line": 548,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "connect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 552,
+ "end_line": 552,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "disconnect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 591,
+ "end_line": 591,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 603,
+ "end_line": 603,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 645,
+ "end_line": 645,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resources",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 666,
+ "end_line": 666,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getPrompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 687,
+ "end_line": 687,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readResource",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 715,
+ "end_line": 715,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "startAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 746,
+ "end_line": 746,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "authenticate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 823,
+ "end_line": 823,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "finishAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 892,
+ "end_line": 892,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 936,
+ "end_line": 936,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "supportsOAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 947,
+ "end_line": 947,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasStoredTokens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 958,
+ "end_line": 958,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAuthStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 968,
+ "end_line": 968,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 974 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "auth",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/mcp/auth.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getForUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "set",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateTokens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateClientInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateCodeVerifier",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 87,
+ "end_line": 87,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearCodeVerifier",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateOAuthState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getOAuthState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearOAuthState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isTokenExpired",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "oauth-callback",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 198,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/mcp/oauth-callback.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "ensureRunning",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForCallback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 146,
+ "end_line": 146,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cancelPending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 159,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isPortInUse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 168,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 181,
+ "end_line": 181,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isRunning",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 195,
+ "end_line": 195,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 268,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/installation/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "info",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isPreview",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isLocal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "method",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getBrewFormula",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "upgrade",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 136,
+ "end_line": 136,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "latest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 201,
+ "end_line": 201,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/command/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "hints",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 151,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 155,
+ "end_line": 155,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "flag",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 113,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/flag/flag.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "truthy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2,
+ "end_line": 2,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "falsy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "number",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 662,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/worktree/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "pick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 190,
+ "end_line": 190,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "slug",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 194,
+ "end_line": 194,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "randomName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 203,
+ "end_line": 203,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "exists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 207,
+ "end_line": 207,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "outputText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 214,
+ "end_line": 214,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "errorText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 219,
+ "end_line": 219,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "failed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 223,
+ "end_line": 223,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prune",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 238,
+ "end_line": 238,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sweep",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 250,
+ "end_line": 250,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "canonical",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 261,
+ "end_line": 261,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "candidate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 268,
+ "end_line": 268,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "runStartCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 286,
+ "end_line": 286,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "runStartScript",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 295,
+ "end_line": 295,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "runStartScripts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 310,
+ "end_line": 310,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "queueStartScripts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 322,
+ "end_line": 322,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeWorktreeInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 334,
+ "end_line": 334,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createFromInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 346,
+ "end_line": 346,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 662 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "agent",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 524,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/agent/agent.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 353,
+ "end_line": 353,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 360,
+ "end_line": 360,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "defaultAgent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 369,
+ "end_line": 369,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 389,
+ "end_line": 389,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 466,
+ "end_line": 466,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 524 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/scheduler/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "register",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bootstrap",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/project/bootstrap.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "InstanceBootstrap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "project",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 457,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/project/project.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "gitpath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromRow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 91,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "discover",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 276,
+ "end_line": 276,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateFromGlobal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 300,
+ "end_line": 300,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setInitialized",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 322,
+ "end_line": 322,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 334,
+ "end_line": 334,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 344,
+ "end_line": 344,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "initGit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 350,
+ "end_line": 350,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sandboxes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 399,
+ "end_line": 399,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "addSandbox",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 411,
+ "end_line": 411,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeSandbox",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 435,
+ "end_line": 435,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 457 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "instance",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/project/instance.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "emit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "boot",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "track",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "vcs",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/project/vcs.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "currentBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "branch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "state",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/project/state.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resetEntry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dispose",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "id",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 84,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/id/id.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "schema",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ascending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "descending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateID",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "randomBase62",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "timestamp",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/control/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fromRow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "account",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "token",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/bus/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "publish",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "subscribe",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "once",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "subscribeAll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "raw",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bus-event",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/bus/bus-event.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "define",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "payloads",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 210,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/permission/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toKeys",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "covered",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ask",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "respond",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 158,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "arity",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 163,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/permission/arity.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "prefix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2,
+ "end_line": 2,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "next",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 387,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/permission/next.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "expand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "evaluate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 337,
+ "end_line": 337,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "disabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 348,
+ "end_line": 348,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 383,
+ "end_line": 383,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 387 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 680,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/patch/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parsePatchHeader",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseUpdateFileChunks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseAddFileContent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 162,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stripHeredoc",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 181,
+ "end_line": 181,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parsePatch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 190,
+ "end_line": 190,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "maybeParseApplyPatch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 249,
+ "end_line": 249,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deriveNewContentsFromChunks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 311,
+ "end_line": 311,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "computeReplacements",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 346,
+ "end_line": 346,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyReplacements",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 402,
+ "end_line": 402,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeUnicode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 422,
+ "end_line": 422,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tryMatch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 433,
+ "end_line": 433,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seekSequence",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 464,
+ "end_line": 464,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateUnifiedDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 490,
+ "end_line": 490,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyHunksToFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 518,
+ "end_line": 518,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyPatch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 575,
+ "end_line": 575,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "maybeParseApplyPatchVerified",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 581,
+ "end_line": 581,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 680 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 297,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/src/snapshot/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "track",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "patch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "restore",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "revert",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 135,
+ "end_line": 135,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 168,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diffFull",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 203,
+ "end_line": 203,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "gitdir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 257,
+ "end_line": 257,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "add",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 262,
+ "end_line": 262,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "syncExclude",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 270,
+ "end_line": 270,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "excludes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 283,
+ "end_line": 283,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workflows-migrator.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 238,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/workflows-migrator.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withHome",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "kilo-errors.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/kilo-errors.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "makeAPIError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "worktree-diff-summary.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/worktree-diff-summary.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rules-migrator.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 253,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/rules-migrator.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withHome",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "patch-jsonc.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/patch-jsonc.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isRecord",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "patchJsonc",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "plan-followup.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 547,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/plan-followup.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withInstance",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "latestUser",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 117,
+ "end_line": 117,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sessions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 125,
+ "end_line": 125,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mockHandoverDeps",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 547 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "paths.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 265,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/paths.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withHome",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bash-hierarchy.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/bash-hierarchy.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "collect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "worktree-diff.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 223,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/worktree-diff.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setupRepo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "plan-exit-detection.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 492,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/plan-exit-detection.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withInstance",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitQuestion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 492 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "local-model.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 462,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilocode/local-model.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resetMockState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 139,
+ "end_line": 139,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "runInRoot",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 149,
+ "end_line": 149,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "initLocal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 159,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readModelJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 178,
+ "end_line": 178,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeModelJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 183,
+ "end_line": 183,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 462 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "structured-output-integration.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 233,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/session/structured-output-integration.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withInstance",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "retry.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 189,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/session/retry.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "apiError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "wrap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompt.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 332,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/session/prompt.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "deferred",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 215,
+ "end_line": 215,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 332 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "compaction.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 647,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/session/compaction.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 647 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "llm.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 668,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/session/llm.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "deferred",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 113,
+ "end_line": 113,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitRequest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createChatStream",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 157,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadFixture",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 187,
+ "end_line": 187,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createEventStream",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 201,
+ "end_line": 201,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createEventResponse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 216,
+ "end_line": 216,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 668 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "message-v2.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 924,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/session/message-v2.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "userInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "assistantInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "basePart",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 924 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "copilot-chat-model.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 592,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/provider/copilot/copilot-chat-model.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "convertReadableStreamToArray",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createMockFetch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 592 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "event-subscription.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 685,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/acp/event-subscription.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "inProgressText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isToolCallUpdate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toolEvent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createEventStream",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createFakeAgent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 120,
+ "end_line": 120,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 685 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "codex.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 123,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/plugin/codex.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createTestJwt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "inflight-cache.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilo-sessions/inflight-cache.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "deferred",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ingest-queue.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 364,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/kilo-sessions/ingest-queue.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "scheduler",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 364 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "config.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 2058,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/config/config.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "writeManagedSettings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "writeConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "check",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 2058 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "webfetch.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/tool/webfetch.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withFetch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "json-migration.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 847,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/storage/json-migration.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setupStorageDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "writeProject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "writeSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createTestDb",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 847 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "session-proxy-middleware.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 149,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/control-plane/session-proxy-middleware.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sse.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/control-plane/sse.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "stream",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "db",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/fixture/db.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resetDatabase",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fixture",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/fixture/fixture.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sanitizePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "exists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clean",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tmpdir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fake-lsp-server",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/fixture/lsp/fake-lsp-server.js",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "encode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "decodeFrames",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "send",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sendRequest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "client.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/lsp/client.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "spawnFakeServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "skill.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 392,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/skill/skill.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createGlobalSkill",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 392 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "which.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/util/which.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "cmd",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "env",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "envPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "same",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lock.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/util/lock.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "tick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "flush",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "process.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/util/process.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "node",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "plugin-auth-picker.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 120,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/cli/plugin-auth-picker.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "hookWithAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hookWithoutAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "thread.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/cli/tui/thread.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "call",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 87,
+ "end_line": 87,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "check",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 111,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "agent.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 882,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/agent/agent.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "evalPerm",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 882 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "project.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 348,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/project/project.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withMode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadProject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 348 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "snapshot.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1180,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/opencode/test/snapshot/snapshot.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "bootstrap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1180 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "identity",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-telemetry/src/identity.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setDataPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getMachineId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getDistinctId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getUserId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getOrganizationId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setOrganizationId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateFromKiloAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "reset",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tracer",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-telemetry/src/tracer.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTracer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setEnabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shutdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "client",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-telemetry/src/client.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setEnabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isEnabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "capture",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "identify",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "alias",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shutdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 71,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "telemetry",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 205,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-telemetry/src/telemetry.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "init",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setEnabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTracer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isEnabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateIdentity",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "track",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 99,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackCliStart",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackCliExit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackSessionStart",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackSessionEnd",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 120,
+ "end_line": 120,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackSessionMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 132,
+ "end_line": 132,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackLlmCompletion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 137,
+ "end_line": 137,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackCommandUsed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 153,
+ "end_line": 153,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackToolUsed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 157,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackAgentUsed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackPlanFollowup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackShareCreated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 170,
+ "end_line": 170,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackShareDeleted",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 174,
+ "end_line": 174,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackMcpServerConnected",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackMcpServerError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 183,
+ "end_line": 183,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackAuthSuccess",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 188,
+ "end_line": 188,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackAuthLogout",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 192,
+ "end_line": 192,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trackError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 197,
+ "end_line": 197,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shutdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 201,
+ "end_line": 201,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "telemetry.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 199,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-telemetry/src/__tests__/telemetry.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createMockPostHogClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createMockSpan",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "binary",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/binary.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "search",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2,
+ "end_line": 2,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "insert",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "path",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/path.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getFilename",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFileExtension",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFilenameTruncated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "truncateMiddle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "slug",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/slug.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fn",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/fn.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fn",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "array",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/array.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findLast",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "iife",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/iife.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "iife",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "encode",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/encode.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "base64Encode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "base64Decode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hash",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checksum",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sampledChecksum",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "identifier",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/identifier.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "ascending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "descending",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "randomBase62",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lazy",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/lazy.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "lazy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "retry",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/util/src/retry.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isTransientError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "retry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "vite.config",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/vite.config.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "providerIconsPlugin",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchProviderIcons",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-path",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/file-path.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseFilePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractFilePathFromHref",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "commented-lines",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/commented-lines.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "annotationIndex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clear",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "markCommentedDiffLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "markCommentedFileLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "selection-bridge",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/selection-bridge.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "formatSelectedLineLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "previewSelectedLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cloneSelectedLineRange",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lineInSelectedRange",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isSingleLineSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toRange",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "restoreShadowTextSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createLineNumberSelectionBridge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-runtime",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/file-runtime.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createReadyWatcher",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearReadyWatcher",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getViewerHost",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getViewerRoot",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyViewerScheme",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "observeViewerScheme",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "notifyShadowReady",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 191,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createDefaultOptions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 162,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "comment-hover",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/comment-hover.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createHoverCommentUtility",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "media",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 110,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/media.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mediaRecord",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeMimeType",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fileExtension",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mediaKindFromPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isBinaryContent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validDataUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dataUrlFromMediaValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "decodeBase64Utf8",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "svgTextFromValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasMediaValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 105,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "worker",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/worker.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "workerFactory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createPool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getWorkerPool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getWorkerPools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diff-selection",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/diff-selection.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findDiffSide",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diffLineIndex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diffRowIndex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fixDiffSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "virtualizer",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/virtualizer.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "scrollable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scrollRoot",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "target",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "acquireVirtualizer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-selection",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/file-selection.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findElement",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findFileLineNumber",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findDiffLineNumber",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findCodeSelectionSide",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readShadowLineSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-find",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 576,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/pierre/file-find.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isEditable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hostForNode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installShortcuts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearHighlightFind",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "supportsHighlights",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scrollParent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createFileFind",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scheduleOverlay",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 186,
+ "end_line": 186,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 576 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "loader",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/theme/loader.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "ensureLoaderStyleElement",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyTheme",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildThemeCss",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadThemeFromUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getActiveTheme",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeTheme",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 88,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setColorScheme",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolve",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 709,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/theme/resolve.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resolveThemeVariant",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getColors",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 627,
+ "end_line": 627,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateNeutralOverlayScale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 670,
+ "end_line": 670,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateNeutralAlphaScale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 678,
+ "end_line": 678,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getHex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 693,
+ "end_line": 693,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveTheme",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 698,
+ "end_line": 698,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "themeToCss",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 705,
+ "end_line": 705,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 709 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "color",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 248,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/theme/color.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "clamp",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hexToRgb",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rgbToHex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "linearToSrgb",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "srgbToLinear",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rgbToOklch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "oklchToRgb",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hexToOklch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fitOklch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "oklchToHex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateScale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateNeutralScale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 158,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateAlphaScale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 180,
+ "end_line": 180,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mixColors",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 198,
+ "end_line": 198,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shift",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 210,
+ "end_line": 210,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "blend",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 219,
+ "end_line": 219,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lighten",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 229,
+ "end_line": 229,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "darken",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 237,
+ "end_line": 237,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "withAlpha",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 245,
+ "end_line": 245,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "line-comment-styles",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 223,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/components/line-comment-styles.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "installLineCommentStyles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 208,
+ "end_line": 208,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-review-search",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/components/session-review-search.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "hitsForSide",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildSessionSearchHits",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stepSessionSearchIndex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fixtures",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/ui/src/storybook/fixtures.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "average",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "publish",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/sdk/js/script/publish.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "transformExports",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/sdk/js/src/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createKilo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/sdk/js/src/server.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mergeConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseExistingConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildConfigEnv",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createKiloServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createKiloTui",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "client",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/sdk/js/src/client.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createKiloClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/sdk/js/src/v2/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createKilo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/sdk/js/src/v2/server.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mergeConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseExistingConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildConfigEnv",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createKiloServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createKiloTui",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "client",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/sdk/js/src/v2/client.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createKiloClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "utils.gen",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 137,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/sdk/js/src/v2/gen/core/utils.gen.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getValidRequestBody",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 111,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "esbuild",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 218,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/esbuild.js",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getWorkerPool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getWorkerPools",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "workerFactory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createBrowserWebviewContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 142,
+ "end_line": 142,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 169,
+ "end_line": 169,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "launch",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 338,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/script/launch.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "which",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "detect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "codeCli",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 176,
+ "end_line": 176,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "newest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 196,
+ "end_line": 196,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 204,
+ "end_line": 204,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "packageVsix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 219,
+ "end_line": 219,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installVsix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 234,
+ "end_line": 234,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "settings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 243,
+ "end_line": 243,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "launch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 272,
+ "end_line": 272,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 338 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "local-bin",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 155,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/script/local-bin.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "log",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "platformTag",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findKiloBinaryInOpencodeDist",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ensureBuiltBinary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "main",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "watch-cli",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/script/watch-cli.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "log",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sourceBinaryPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rebuild",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "qrcode",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/qrcode.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "generateQRCode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "id",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/id.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "randomBase62",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getRandomBytes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "errorUtils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/errorUtils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "unwrapError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseAssistantError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isUnauthorizedPaidModelError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 84,
+ "end_line": 84,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isUnauthorizedPromotionLimitError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider-action",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/provider-action.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createProviderAction",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "send",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clear",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dispose",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "date",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/date.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "formatRelativeDate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "review-comment-markdown",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/utils/review-comment-markdown.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "escapeInline",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fenceFor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatCode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatReviewCommentMarkdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatReviewCommentsMarkdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "messages",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 2001,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/types/messages.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "acquireVsCodeApi",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2000,
+ "end_line": 2000,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 2001 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "useFileMention",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/useFileMention.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useFileMention",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-mention-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/file-mention-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "escape",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "syncMentionedPaths",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildTextAfterMentionSelect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildFileAttachments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useImageAttachments",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/useImageAttachments.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useImageAttachments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "usePromptHistory",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/usePromptHistory.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "load",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "save",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "canNavigate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "appendEntry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seedEntries",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "usePromptHistory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "navigate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 105,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "append",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 137,
+ "end_line": 137,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 141,
+ "end_line": 141,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "reset",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 145,
+ "end_line": 145,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useSlashCommand",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 226,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/useSlashCommand.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useSlashCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "image-attachments-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/hooks/image-attachments-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isAcceptedImageType",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isDragLeavingComponent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/marketplace/utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isInstalled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installedScopes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "model-selector-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/shared/model-selector-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isSmall",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "providerSortKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isFree",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sanitizeName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stripSubProviderPrefix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildTriggerLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "question-dock-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/chat/question-dock-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toggleAnswer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompt-input-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/chat/prompt-input-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fileName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dirName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildHighlightSegments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "atEnd",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "permission-dock-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/chat/permission-dock-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "savedRuleStates",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "describePatterns",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider-catalog",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/settings/provider-catalog.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isPopularProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "popularProviderIndex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "providerIcon",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "kiloFallbackProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "providerNoteKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sortProviders",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider-visibility",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/components/settings/provider-visibility.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "visibleConnectedIds",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "language-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/language-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeLocale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveTemplate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-queue",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/session-queue.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "activeUserMessageID",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "permission-queue",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/permission-queue.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "upsertPermission",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeSessionPermissions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "model-selection",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/model-selection.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "validate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "recent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveModelSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/session-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "computeStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "calcTotalCost",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "calcContextUsage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/src/context/provider-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "flattenModels",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isModelValid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "apply-conflicts",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/apply-conflicts.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "groupApplyConflicts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mapApplyConflictReason",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "multi-model-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/multi-model-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "allocationKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "totalAllocations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "allocationsToArray",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remaining",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toggleModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setAllocationCount",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "maxAllocationCount",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tab-order",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/tab-order.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "reorderTabs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyTabOrder",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "firstOrderedTitle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-tree-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/file-tree-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "buildFileTree",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "flatten",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "flattenChain",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "navigate",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/navigate.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resolveNavigation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validateLocalSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "adjacentHint",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "nextSelectionAfterDelete",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "review-annotations",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 250,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/review-annotations.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "focusWhenConnected",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeIcon",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeActionButton",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildReviewAnnotation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diff-open-policy",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/diff-open-policy.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isLargeDiffFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "initialOpenFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "review-comments",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/review-comments.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "lineCount",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFilename",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sanitizeReviewComments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diff-state",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/webview-ui/agent-manager/diff-state.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sameDiffMeta",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mergeWorktreeDiffs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "session-status",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/session-status.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getBusySessionCount",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "seedSessionStatuses",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "kilo-provider-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 346,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getErrorMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sessionToWebview",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "indexProvidersById",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filterVisibleAgents",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadSessions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "flushPendingSessionRefresh",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 151,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildSettingPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 163,
+ "end_line": 163,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mapSSEEventToWebviewMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 207,
+ "end_line": 207,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mapCloudSessionMessageToWebviewMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 320,
+ "end_line": 320,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isEventFromForeignProject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 340,
+ "end_line": 340,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 346 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "webview-html-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/webview-html-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "buildConnectSrc",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "joinCspDirectives",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildCspString",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extension",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 360,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/extension.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "activate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deactivate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 303,
+ "end_line": 303,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openKiloInNewTab",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 307,
+ "end_line": 307,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitForWebviewPanelToBeActive",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 346,
+ "end_line": 346,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 360 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "project-directory",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/project-directory.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resolvePanelProjectDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveProjectDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "path-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/path-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isAbsolutePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "image-preview",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/image-preview.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseImage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildPreviewPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getPreviewCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getPreviewDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trimEntries",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseBase64",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getExt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sanitize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "review-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/review-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "appendOutput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getWorkspaceRoot",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveLocalDiffTarget",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hashFileDiffs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openFileInEditor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openWorkspaceRelativeFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getNonce",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildWebviewHtml",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider-actions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 301,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/provider-actions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fetchProviderData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildActionContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isModelSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validateRecents",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "computeDefaultSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "postError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validateID",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "connectProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "authorizeProviderOAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 131,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "completeProviderOAuth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 160,
+ "end_line": 160,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "disconnectProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 188,
+ "end_line": 188,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "saveCustomProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 243,
+ "end_line": 243,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 301 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "toggle-auto-approve",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 87,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/commands/toggle-auto-approve.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "registerToggleAutoApprove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tryGetClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fork-session",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/fork-session.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "forkSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "WorktreeManager",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1014,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/WorktreeManager.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "stripRemotePrefix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1014 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "format-keybinding",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/format-keybinding.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "formatKeybinding",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildKeybindingMap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "constants",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/constants.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "migrateAgentManagerData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "exists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isDirectory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveGitDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 109,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fixGitWorktreeRefs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 132,
+ "end_line": 132,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "git-import",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/git-import.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parsePRUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "localBranchName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseForEachRefOutput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildBranchList",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseWorktreeList",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkedOutBranchesFromWorktreeList",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 122,
+ "end_line": 122,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validateGitRef",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 132,
+ "end_line": 132,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 143,
+ "end_line": 143,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "classifyPRError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 149,
+ "end_line": 149,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "classifyWorktreeError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 157,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "task-runner",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/task-runner.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "executeVscodeTask",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "multi-version",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/multi-version.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resolveVersionModels",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildInitialMessages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shell-env",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 173,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/shell-env.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseEnvOutput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getShellEnvironment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolvePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "execWithShellEnv",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearShellEnvCache",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 167,
+ "end_line": 167,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "delete-worktree",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/delete-worktree.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "shouldStopDiffPolling",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "WorktreeStateManager",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 405,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/WorktreeStateManager.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "remoteRef",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 405 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SetupScriptRunner",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/SetupScriptRunner.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "quoteCmdArg",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildSetupTaskCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "branch-name",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/branch-name.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sanitizeBranchName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "generateBranchName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "versionedName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "base-branch",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/base-branch.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeBaseBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "chooseBaseBranch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "terminal-host",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/terminal-host.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createTerminalHost",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SetupScriptService.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 110,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/__tests__/SetupScriptService.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setupRoot",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scriptPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "writeScript",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AgentManagerProvider.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 172,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/agent-manager/__tests__/AgentManagerProvider.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createMockHost",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deferred",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createHarness",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider-model",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/shared/provider-model.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseModelString",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "providerOrderIndex",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createKiloFallbackProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "custom-provider",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/shared/custom-provider.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validateProviderID",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseCustomProviderSecret",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeCustomProviderConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sanitizeCustomProviderConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migration-service",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1067,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/legacy-migration/migration-service.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getMigrationStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setMigrationStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "detectLegacyData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearLegacyData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 252,
+ "end_line": 252,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 317,
+ "end_line": 317,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateConfigFields",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 404,
+ "end_line": 404,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateDefaultModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 422,
+ "end_line": 422,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateAutoApproval",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 452,
+ "end_line": 452,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateAutocomplete",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 598,
+ "end_line": 598,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateLanguage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 649,
+ "end_line": 649,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertMcpServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 677,
+ "end_line": 677,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertCustomModePermissions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 707,
+ "end_line": 707,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertCustomMode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 745,
+ "end_line": 745,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readOAuthCredentials",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 763,
+ "end_line": 763,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readLegacyProviderProfiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 788,
+ "end_line": 788,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readLegacyMcpSettings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 800,
+ "end_line": 800,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readLegacyCustomModes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 816,
+ "end_line": 816,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readLegacySettings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 827,
+ "end_line": 827,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasAutocompleteData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 855,
+ "end_line": 855,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stripYamlQuotes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 870,
+ "end_line": 870,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseCustomModesYaml",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 874,
+ "end_line": 874,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildProviderList",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1006,
+ "end_line": 1006,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildMcpServerList",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1039,
+ "end_line": 1039,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildCustomModeList",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1046,
+ "end_line": 1046,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveDefaultModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1051,
+ "end_line": 1051,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1067 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "api",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 146,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/marketplace/api.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "kebabToTitleCase",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseResponse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transformSkill",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchWithRetry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installer",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 411,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/marketplace/installer.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeMcpEntry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 288,
+ "end_line": 288,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isSafeId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 319,
+ "end_line": 319,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "convertModeToAgent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 334,
+ "end_line": 334,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "escapeJsonValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 365,
+ "end_line": 365,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "substituteParams",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 374,
+ "end_line": 374,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findEscapedPaths",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 384,
+ "end_line": 384,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "walk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 388,
+ "end_line": 388,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 411 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "paths",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/marketplace/paths.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "globalConfigDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server-manager",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 245,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/cli-backend/server-manager.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "stripAnsi",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 213,
+ "end_line": 213,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toErrorMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 217,
+ "end_line": 217,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/cli-backend/server-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseServerPort",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "connection-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/cli-backend/connection-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resolveEventSessionId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/cli-backend/i18n/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resolveLocale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadTranslations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "t",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "errors",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/telemetry/errors.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isApiProviderError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getApiProviderErrorProperties",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isConsecutiveMistakeError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getConsecutiveMistakeErrorProperties",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 60,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "telemetry-proxy-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/telemetry/telemetry-proxy-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "buildTelemetryPayload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildTelemetryAuthHeader",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 84,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/commit-message/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "registerCommitMessageService",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "register-code-actions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/code-actions/register-code-actions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "registerCodeActions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "register-terminal-actions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/code-actions/register-terminal-actions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getTerminalContents",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "registerTerminalActions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "editor-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/code-actions/editor-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getEditorContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "support-prompt",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/code-actions/support-prompt.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "diagnosticText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fill",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createPrompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AutocompleteServiceManager",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 380,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/AutocompleteServiceManager.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "readSettings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "writeSettings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 380 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "statusbar-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/statusbar-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "humanFormatSessionCost",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatTime",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "types",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 291,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/types.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "extractPrefixSuffix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 253,
+ "end_line": 253,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "contextToAutocompleteInput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 266,
+ "end_line": 266,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AutocompleteServiceManager.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 344,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/__tests__/AutocompleteServiceManager.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createManager",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 151,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 344 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AutocompleteModel.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 169,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/__tests__/AutocompleteModel.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createMockConnectionService",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "MockWorkspaceEdit",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/__tests__/MockWorkspaceEdit.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createMockWorkspaceEdit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "HoleFiller",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 200,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/HoleFiller.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseAutocompleteResponse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sum_evens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sum",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hypothenuse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 126,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getProcessedSnippets",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 119,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/getProcessedSnippets.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "uriToFsPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hasFilepath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filterSnippetsByAccess",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getProcessedSnippets",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "uselessSuggestionFilter",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/uselessSuggestionFilter.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "suggestionConsideredDuplication",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DuplicatesFromPrefixOrSuffix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DuplicatesFromEdgeLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "containsRepetitivePhraseFromPrefix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeToCompleteLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "postprocessAutocompleteSuggestion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 140,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hole-filler-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/hole-filler-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseAutocompleteResponse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "contextualSkip",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 136,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/contextualSkip.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getTerminatorsForLanguage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isAtEndOfStatement",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isMidWordTyping",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldSkipAutocomplete",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 134,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AutocompleteInlineCompletionProvider",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 581,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/AutocompleteInlineCompletionProvider.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findMatchingSuggestion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyFirstLineOnly",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "countLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldShowOnlyFirstLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFirstLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stringToInlineCompletions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 581 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AutocompleteTelemetry",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 276,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/AutocompleteTelemetry.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getSuggestionKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "telemetry-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/telemetry-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getSuggestionKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "insertWithLRUEviction",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "inline-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/inline-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findMatchingSuggestion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "countLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldShowOnlyFirstLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFirstLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "applyFirstLineOnly",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "calcDebounceDelay",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 91,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AutocompleteTelemetry.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/AutocompleteTelemetry.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createSuggestion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AutocompleteContextProvider.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 424,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/AutocompleteContextProvider.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createAutocompleteInput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 424 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "HoleFiller.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 301,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/HoleFiller.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createAutocompleteInput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 301 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AutocompleteInlineCompletionProvider.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 2478,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/AutocompleteInlineCompletionProvider.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "provideWithDebounce",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 774,
+ "end_line": 774,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 2478 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/language-filters/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "applyLanguageFilter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "markdown",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/language-filters/markdown.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isInsideCodeBlock",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeSpuriousNewlinesBeforeCodeBlockClosingFences",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "markdownFilter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleChatCompletionAccepted",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/chat-autocomplete/handleChatCompletionAccepted.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getChatAutocompleteTelemetry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleChatCompletionAccepted",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleChatCompletionRequest",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/chat-autocomplete/handleChatCompletionRequest.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "handleChatCompletionRequest",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "chat-autocomplete-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/chat-autocomplete/chat-autocomplete-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "finalizeChatSuggestion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildChatPrefix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FileIgnoreController",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 142,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/shims/FileIgnoreController.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toPosix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "i18n",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/shims/i18n.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "t",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "util",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 135,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/diff/util.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "linesMatchPerfectly",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "linesMatch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "matchLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "myers",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 204,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/diff/myers.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "convertMyersChangeToDiffLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "myersDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "myersCharDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "streamDiff.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 317,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/diff/streamDiff.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "collectDiffs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getMyersDiffType",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "displayDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "expectDiff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 317 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "stream",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 138,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/fetch/stream.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseSseLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lcs",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/lcs.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "longestCommonSubsequence",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "dedent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "uri",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/uri.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "pathToUriPathSegment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCleanUriPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findUriInDirs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getUriPathBasename",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFileExtensionFromBasename",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 88,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getUriFileExtension",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 99,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getLastNUriRelativePathParts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "joinPathsToUri",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 109,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getShortestUniqueRelativeUriPaths",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getLastNPathParts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 153,
+ "end_line": 153,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ranges",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 46,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/ranges.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getRangeInString",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "intersection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "messageContent",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/messageContent.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "stripImages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "renderChatMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/merge.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "mergeJson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "logger",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/logger.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getIconFromLevel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "paths",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/paths.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getContinueGlobalPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getIndexFolderPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getConfigJsonPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "treeSitter",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 345,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/treeSitter.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getParserForFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 125,
+ "end_line": 125,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findExistingPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 151,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getExtensionFromPathOrUri",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getLanguageForFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 175,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getQueryForFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 201,
+ "end_line": 201,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadLanguageForFileExt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 232,
+ "end_line": 232,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSymbolsForFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 277,
+ "end_line": 277,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findNamedNodesRecursive",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 300,
+ "end_line": 300,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 345 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "pathToUri",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/pathToUri.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "localPathToUri",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "localPathOrUriToPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "testDir",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/test/testDir.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setUpTestDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tearDownTestDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "addToTestDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ignore",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 122,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/indexing/ignore.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isSecurityConcern",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/prefiltering/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isDisabledForFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldPrefilter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AutocompleteLanguageInfo",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 364,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/constants/AutocompleteLanguageInfo.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "matchBrackets",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 288,
+ "end_line": 288,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "languageForFilepath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 361,
+ "end_line": 361,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 364 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "getAllSnippets",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 231,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/snippets/getAllSnippets.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "racePromise",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getIdeSnippets",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSnippetsFromRecentlyEditedRanges",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removePrefixOverlap",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/postprocessing/removePrefixOverlap.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "removePrefixOverlap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 176,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/postprocessing/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "rewritesLineAbove",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isExtremeRepetition",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isOnlyWhitespace",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isBlank",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "removeBackticks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "postprocessCompletion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldCompleteMultiline",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/classification/shouldCompleteMultiline.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "shouldCompleteMultilineBasedOnLanguage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shouldCompleteMultiline",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AutocompleteLruCacheInMem",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/AutocompleteLruCacheInMem.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "truncatePrefix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ast",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/ast.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getAst",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTreePathAtCursor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "completionTestUtils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/completionTestUtils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "processTestCase",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "processSingleLineCompletion",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/processSingleLineCompletion.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "diffPatternMatches",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "processSingleLineCompletion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "textSimilarity",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/util/textSimilarity.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "lineIsRepeated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "GeneratorReuseManager.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 208,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/generation/GeneratorReuseManager.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createMockGenerator",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "utils.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/generation/utils.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "streamToString",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "BracketMatchingService.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 307,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/BracketMatchingService.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "collectAll",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 307 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "testCases",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 2175,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/test/testCases.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sayHello",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "calculateArea",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 608,
+ "end_line": 608,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "set",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1498,
+ "end_line": 1498,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1502,
+ "end_line": 1502,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "storeData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1520,
+ "end_line": 1520,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "addPerson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1544,
+ "end_line": 1544,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFirstPerson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1548,
+ "end_line": 1548,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_grade",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1776,
+ "end_line": 1776,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "add",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1792,
+ "end_line": 1792,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "subtract",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1796,
+ "end_line": 1796,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 2063,
+ "end_line": 2063,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 2175 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "util",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/test/util.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseFimExample",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "testAutocompleteFiltering",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lineStream",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 270,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/streamTransforms/lineStream.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isBracketEnding",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validatePatternInLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "charStream.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 192,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/streamTransforms/charStream.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "streamToString",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lineStream.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/filtering/streamTransforms/lineStream.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getLineGenerator",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFilteredLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "constructPrefixSuffix",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/constructPrefixSuffix.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "constructInitialPrefixSuffix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filtering",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 185,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/filtering.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "filterSnippetsAlreadyInCaretWindow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getStopTokens",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/getStopTokens.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getStopTokens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 205,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getTemplate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "preparePromptContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "renderPrompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildPrompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 105,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pruneLength",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 125,
+ "end_line": 125,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "renderPromptWithTokenLimit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 134,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AutocompleteTemplate",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 374,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/AutocompleteTemplate.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getFileName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 81,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFileName",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 119,
+ "end_line": 119,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sum_evens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 223,
+ "end_line": 223,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sum",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 275,
+ "end_line": 275,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hypothenuse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 294,
+ "end_line": 294,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTemplateForModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 312,
+ "end_line": 312,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 374 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "formatOpenedFilesContext",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 147,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/formatOpenedFilesContext.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "formatOpenedFilesContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "trimSnippetForContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "renderPrompt.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 262,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/templating/__tests__/renderPrompt.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "makeHelper",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/ranking/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getSymbolsForSnippet",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "jaccardSimilarity",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rankAndOrderSnippets",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deduplicateSnippets",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mergeSnippetsByRange",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mergeOverlappingRangeContents",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fillPromptWithSnippets",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tree-sitter-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 109,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/static-context/tree-sitter-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findEnclosingTypeDeclaration",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractTopLevelDecls",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractFunctionTypeFromDecl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "unwrapToBaseType",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "StaticContextService",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 792,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/static-context/StaticContextService.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "convertToArrowType",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 402,
+ "end_line": 402,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "scanRecursively",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 763,
+ "end_line": 763,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 792 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "testUtils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/root-path-context/testUtils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "splitTextAtPosition",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "testRootPathContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "base_module",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/base_module.py",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__str__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__str__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "functions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/functions.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getAddress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFirstAddress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "logPerson",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getHardcodedAddress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAddresses",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 19,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "logPersonWithAddress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "logPersonOrAddress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "logPersonAndAddress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "functions",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/python/functions.py",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "get_address",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_group_address",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "log_person",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_hardcoded_address",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "log_person_or_address",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "log_person_and_address",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_address_generator",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "log_person_and_address",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_person",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "llamaTokenizer",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 487,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/llamaTokenizer.js",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isEqual",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 386,
+ "end_line": 386,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "testCase",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 395,
+ "end_line": 395,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 487 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "openaiTypeConverters",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/openaiTypeConverters.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toChatMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toChatBody",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toCompleteBody",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toFimBody",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 71,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromChatResponse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fromChatCompletionChunk",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 95,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "countTokens",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 320,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/countTokens.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "modelUsesGptTokenizer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "encodingForModel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "countTokens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "countChatMessageTokens",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractToolSequence",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pruneLinesFromTop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pruneLinesFromBottom",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pruneStringFromBottom",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pruneStringFromTop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 155,
+ "end_line": 155,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTokenCountingBufferSafety",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 168,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pruneRawPromptFromTop",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 174,
+ "end_line": 174,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compileChatMessages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 212,
+ "end_line": 212,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 320 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "messages",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/messages.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "messageIsEmpty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "addSpaceToAnyEmptyMessages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "chatMessageIsEmpty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/llm/model-info/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "findLlmInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "VSCodeIde",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 247,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/vscode-test-harness/src/VSCodeIde.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "stat",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "areEqualURIs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "documentIsCode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "lsp",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 478,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/continuedev/core/vscode-test-harness/src/autocomplete/lsp.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "gotoInputKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "signatureHelpKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "executeSignatureHelpProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "executeGotoProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isRifWithContents",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 123,
+ "end_line": 123,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findChildren",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 127,
+ "end_line": 127,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findTypeIdentifiers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 150,
+ "end_line": 150,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "crawlTypes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getDefinitionsForNode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 235,
+ "end_line": 235,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "symbolInputKey",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 407,
+ "end_line": 407,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "executeSymbolProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 414,
+ "end_line": 414,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "collectSymbols",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 442,
+ "end_line": 442,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 478 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "visible-code-utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 19,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/context/visible-code-utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "extractDiffInfo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "VisibleCodeTracker",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/services/autocomplete/context/VisibleCodeTracker.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toRelativePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "slim-metadata",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/slim-metadata.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "slimMeta",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 9,
+ "end_line": 9,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "slimPart",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "slimParts",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "question",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/question.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "handleQuestionReply",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleQuestionReject",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 36,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "permission-handler",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/permission-handler.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "handlePermissionResponse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchAndSendPendingPermissions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "auth",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 143,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/auth.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "handleLogin",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleLogout",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSetOrganization",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleRefreshProfile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 137,
+ "end_line": 137,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cloud-session",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 222,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/cloud-session.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "handleRequestCloudSessions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleRequestCloudSessionData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleImportAndSend",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migration",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 155,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/src/kilo-provider/handlers/migration.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "checkAndShowMigrationWizard",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleRequestLegacyMigrationData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleStartLegacyMigration",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 94,
+ "end_line": 94,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSkipLegacyMigration",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 143,
+ "end_line": 143,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleClearLegacyData",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 152,
+ "end_line": 152,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "visual-regression.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/visual-regression.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "fetchStories",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "disableAnimations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "permission-dock-dropdown.spec",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 297,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "storyUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "disableAnimations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openDropdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "git-ops.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 561,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/git-ops.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sleep",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ops",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "runGit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "withRepo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 561 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "kilo-provider-utils.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 515,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/kilo-provider-utils.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "makeSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeAgent",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeTextPart",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeAssistantMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeCloudMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 466,
+ "end_line": 466,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 515 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "provider-utils.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/provider-utils.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "makeProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "i18n-keys.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 407,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/i18n-keys.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "offsetToLine",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 205,
+ "end_line": 205,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extractKeys",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 213,
+ "end_line": 213,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "collectFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 224,
+ "end_line": 224,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findWebviewMissing",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 234,
+ "end_line": 234,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findCliBackendMissing",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 260,
+ "end_line": 260,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findAutocompleteMissing",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 280,
+ "end_line": 280,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findMissingLocaleKeys",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 300,
+ "end_line": 300,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatLocaleReport",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 318,
+ "end_line": 318,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "formatReport",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 324,
+ "end_line": 324,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 407 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "agent-manager-diff-state.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 55,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/agent-manager-diff-state.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "diff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "provider-action.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 143,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/provider-action.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createTransport",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "autocomplete-inline-utils.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 182,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/autocomplete-inline-utils.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "makeSuggestion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "git-stats-poller.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 447,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/git-stats-poller.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "sleep",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "waitFor",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "worktree",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "diff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "gitOps",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 447 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "session-terminal-manager.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/session-terminal-manager.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getClass",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "body",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "date.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/date.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "ago",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 4,
+ "end_line": 4,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "worktree-manager.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1108,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/worktree-manager.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createTempRepo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 22,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createManager",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createTempRepoWithOrigin",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1108 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "kilo-provider-session-refresh.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 150,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/kilo-provider-session-refresh.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createListSessions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createClient",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createConnection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "connection-utils.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/connection-utils.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "event",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-tree.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 312,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/file-tree.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "diff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 312 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "code-action-provider.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/code-action-provider.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "makeRange",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "makeContext",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "agent-manager-i18n-split.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/agent-manager-i18n-split.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "placeholders",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extension-arch.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/extension-arch.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "readSrcFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "agent-manager-arch.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 607,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/agent-manager-arch.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "readAllCss",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "readAllTsx",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getMethodBody",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 155,
+ "end_line": 155,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "body",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 162,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "importsVscode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 540,
+ "end_line": 540,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "agentManagerSourceFiles",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 544,
+ "end_line": 544,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 607 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "permission-queue.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/permission-queue.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "perm",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "review-comments.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 213,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/review-comments.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "diff",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "comment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "kilo-ui-contract.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/kilo-ui-contract.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "check",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "agent-manager-i18n.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 346,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/agent-manager-i18n.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "isProgrammatic",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findViolations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "findTranslationShadowViolations",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 241,
+ "end_line": 241,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 346 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "model-selection.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/model-selection.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "makeProvider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 6,
+ "end_line": 6,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tab-order.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 200,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/tab-order.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "reconcile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 150,
+ "end_line": 150,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "message-contract.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/message-contract.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "readFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "multi-model-utils.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/multi-model-utils.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "make",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file-ignore-controller.test",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/kilo-vscode/tests/unit/file-ignore-controller.test.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createTempWorkspace",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 17,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "electron-builder.config",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/electron-builder.config.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "finalize-latest-yml",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/scripts/finalize-latest-yml.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parse",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "serialize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "read",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "utils",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/scripts/utils.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resolveChannel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "nativeTarget",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCurrentSidecar",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 49,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "copyBinaryToSidecarFolder",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "windowsify",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "store",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/store.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getStore",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cli",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 279,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/cli.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getSidecarPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installCli",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "syncCli",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "serve",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 122,
+ "end_line": 122,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "spawnCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 132,
+ "end_line": 132,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSqliteProgress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 197,
+ "end_line": 197,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 212,
+ "end_line": 212,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "envPrefix",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 241,
+ "end_line": 241,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "shellEscape",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 246,
+ "end_line": 246,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCliInstallPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 251,
+ "end_line": 251,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isWslEnabled",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 257,
+ "end_line": 257,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseVersion",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 261,
+ "end_line": 261,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compareVersions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 270,
+ "end_line": 270,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "menu",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/menu.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "createMenu",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 463,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setupApp",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "emitDeepLinks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "focusMainWindow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 122,
+ "end_line": 122,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setInitStep",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setupServerConnection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 134,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "initialize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 164,
+ "end_line": 164,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "wireMenu",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 242,
+ "end_line": 242,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "killSidecar",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 293,
+ "end_line": 293,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ensureLoopbackNoProxy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 299,
+ "end_line": 299,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSidecarPort",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 319,
+ "end_line": 319,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sqliteFileExists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 342,
+ "end_line": 342,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setupAutoUpdater",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 348,
+ "end_line": 348,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkUpdate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 366,
+ "end_line": 366,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "installUpdate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 402,
+ "end_line": 402,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkForUpdates",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 408,
+ "end_line": 408,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "delay",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 451,
+ "end_line": 451,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "defer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 455,
+ "end_line": 455,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 463 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "apps",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 148,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/apps.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "checkAppExists",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveAppPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "wslPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkMacosApp",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolveWindowsAppPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "windows",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 135,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/windows.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "iconsDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "iconPath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setDockIcon",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createMainWindow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createLoadingWindow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadWindow",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 105,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "injectGlobals",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "wireZoom",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "server",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/server.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "getDefaultServerUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setDefaultServerUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getWslConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setWslConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSavedServerUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "spawnLocalServer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkHealth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 71,
+ "end_line": 71,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "checkHealthOrAskRetry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeHostnameForUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getServerUrlFromConfig",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 122,
+ "end_line": 122,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/migrate.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "tauriDir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tauriAppId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrateFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "migrate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ipc",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 176,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/ipc.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "registerIpcHandlers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 28,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sendSqliteMigrationProgress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 166,
+ "end_line": 166,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sendMenuCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 170,
+ "end_line": 170,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sendDeepLinks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 174,
+ "end_line": 174,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "logging",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 40,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/logging.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "initLogging",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 8,
+ "end_line": 8,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "tail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cleanup",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "markdown",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/main/markdown.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "parseMarkdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 10,
+ "end_line": 10,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cli",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 12,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/renderer/cli.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "installCli",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updater",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/renderer/updater.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "runUpdater",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "index",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 188,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/desktop-electron/src/renderer/i18n/index.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "detectLocale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseLocale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseRecord",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 113,
+ "end_line": 113,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parseStored",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 119,
+ "end_line": 119,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "pickLocale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "build",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 140,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "t",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 168,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "initI18n",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 172,
+ "end_line": 172,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "theme-tool",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/theme-tool.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "ThemeTool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 5,
+ "end_line": 5,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "use-providers",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 23,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/hooks/use-providers.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useProviders",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sync",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/sync.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useSync",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sdk",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 25,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/sdk.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useSDK",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "layout",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/layout.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useLayout",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "platform",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 16,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/platform.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "usePlatform",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "prompt",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 117,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/prompt.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "clonePart",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clonePrompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "isPromptEqual",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "usePrompt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "permission",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/permission.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 3,
+ "end_line": 3,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "usePermission",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 7,
+ "end_line": 7,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "comments",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/comments.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useComments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "local",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/local.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useLocal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 15,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "global-sync",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 42,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/global-sync.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useGlobalSync",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "file",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/file.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "selectionFromLines",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 13,
+ "end_line": 13,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useFile",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "command",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 22,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/command.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "useCommand",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 11,
+ "end_line": 11,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "language",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-generated module for research/kilocode/packages/storybook/.storybook/mocks/app/context/language.ts",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "render",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "useLanguage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "DashboardTypes",
"type": "Module",
@@ -2441,22 +61486,27 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 71,
+ "end_line": 72,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "state, stores, svelte, plugins, tasks",
"PURPOSE": "Global state management using Svelte stores.",
"LAYER": "UI-State"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [
{
"name": "plugins",
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 10,
- "end_line": 13,
+ "start_line": 11,
+ "end_line": 14,
"tags": {
"PURPOSE": "Store for the list of available plugins."
},
@@ -2473,8 +61523,8 @@
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 15,
- "end_line": 18,
+ "start_line": 16,
+ "end_line": 19,
"tags": {
"PURPOSE": "Store for the list of tasks."
},
@@ -2491,8 +61541,8 @@
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 23,
+ "start_line": 21,
+ "end_line": 24,
"tags": {
"PURPOSE": "Store for the currently selected plugin."
},
@@ -2509,8 +61559,8 @@
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 28,
+ "start_line": 26,
+ "end_line": 29,
"tags": {
"PURPOSE": "Store for the currently selected task."
},
@@ -2527,8 +61577,8 @@
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 30,
- "end_line": 33,
+ "start_line": 31,
+ "end_line": 34,
"tags": {
"PURPOSE": "Store for the current page."
},
@@ -2545,8 +61595,8 @@
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 38,
+ "start_line": 36,
+ "end_line": 39,
"tags": {
"PURPOSE": "Store for the logs of the currently selected task."
},
@@ -2563,8 +61613,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 54,
+ "start_line": 41,
+ "end_line": 55,
"tags": {
"PURPOSE": "Fetches plugins from the API and updates the plugins store.",
"PRE": "None.",
@@ -2583,8 +61633,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 56,
- "end_line": 70,
+ "start_line": 57,
+ "end_line": 71,
"tags": {
"PURPOSE": "Fetches tasks from the API and updates the tasks store.",
"PRE": "None.",
@@ -2603,7 +61653,7 @@
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -2736,22 +61786,27 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 383,
+ "end_line": 412,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "api, client, fetch, rest",
"PURPOSE": "Handles all communication with the backend API.",
"LAYER": "Infra-API"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "toasts_module"
+ }
+ ],
"children": [
{
"name": "buildApiError",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 34,
+ "start_line": 13,
+ "end_line": 35,
"tags": {
"PURPOSE": "Creates a normalized Error object for failed API responses.",
"PRE": "response is a failed fetch Response object.",
@@ -2771,8 +61826,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 51,
+ "start_line": 37,
+ "end_line": 52,
"tags": {
"PURPOSE": "Shows toast for API errors with explicit handling of critical statuses.",
"PRE": "error is an Error instance.",
@@ -2791,8 +61846,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 53,
- "end_line": 79,
+ "start_line": 54,
+ "end_line": 80,
"tags": {
"PURPOSE": "Avoid noisy toasts for expected non-critical API failures.",
"PRE": "endpoint can be empty; error can be null.",
@@ -2811,8 +61866,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 81,
- "end_line": 96,
+ "start_line": 82,
+ "end_line": 97,
"tags": {
"PURPOSE": "Returns the WebSocket URL for a specific task, with fallback logic.",
"PRE": "taskId is provided.",
@@ -2833,8 +61888,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 98,
- "end_line": 112,
+ "start_line": 99,
+ "end_line": 113,
"tags": {
"PURPOSE": "Returns headers with Authorization if token exists."
},
@@ -2851,8 +61906,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 114,
- "end_line": 138,
+ "start_line": 115,
+ "end_line": 139,
"tags": {
"PURPOSE": "Generic GET request wrapper.",
"PRE": "endpoint string is provided.",
@@ -2873,8 +61928,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 140,
- "end_line": 168,
+ "start_line": 141,
+ "end_line": 169,
"tags": {
"PURPOSE": "Generic GET wrapper for binary payloads.",
"PRE": "endpoint string is provided.",
@@ -2894,8 +61949,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 170,
- "end_line": 197,
+ "start_line": 171,
+ "end_line": 198,
"tags": {
"PURPOSE": "Generic POST request wrapper.",
"PRE": "endpoint and body are provided.",
@@ -2911,13 +61966,35 @@
"score": 1.0
}
},
+ {
+ "name": "deleteApi",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 200,
+ "end_line": 225,
+ "tags": {
+ "PURPOSE": "Generic DELETE request wrapper.",
+ "PRE": "endpoint is provided.",
+ "POST": "Returns Promise resolving to JSON data or throws on error.",
+ "PARAM": "endpoint (string) - API endpoint.",
+ "RETURN": "Promise - JSON response."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "requestApi",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 199,
- "end_line": 233,
+ "start_line": 227,
+ "end_line": 261,
"tags": {
"PURPOSE": "Generic request wrapper.",
"PRE": "endpoint and method are provided.",
@@ -2936,8 +62013,8 @@
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 235,
- "end_line": 381,
+ "start_line": 263,
+ "end_line": 410,
"tags": {
"PURPOSE": "API client object with specific methods."
},
@@ -2954,17 +62031,12 @@
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 383 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 412 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.625
+ "score": 0.775
}
},
{
@@ -3025,11 +62097,11 @@
"relations": [
{
"type": "MODIFIED_BY",
- "target": "handleLogin, handleLogout"
+ "target": "AuthService"
},
{
"type": "BINDS_TO",
- "target": "Navbar, ProtectedRoute"
+ "target": "Navbar"
}
],
"children": [
@@ -3170,12 +62242,12 @@
}
},
{
- "name": "frontend.src.lib.auth.permissions",
+ "name": "Permissions",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 103,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "auth, permissions, rbac, roles",
@@ -3190,7 +62262,7 @@
},
{
"type": "USED_BY",
- "target": "frontend.src.lib.components.layout.Sidebar"
+ "target": "Sidebar"
}
],
"children": [
@@ -3275,8 +62347,13 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:Permissions:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
@@ -3288,16 +62365,16 @@
"line_number": 1
}
],
- "score": 0.625
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.auth.__tests__.permissions",
+ "name": "PermissionsTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 103,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, auth, permissions, rbac",
@@ -3307,20 +62384,25 @@
"relations": [
{
"type": "TESTS",
- "target": "frontend/src/lib/auth/permissions.js"
+ "target": "Permissions"
}
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:PermissionsTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -3371,8 +62453,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 82,
+ "end_line": 83,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"PURPOSE": "Manage dashboard health summary state and failing counts for UI badges.",
"LAYER": "UI",
@@ -3383,7 +62466,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "api.getHealthSummary"
+ "target": "api_module"
}
],
"children": [],
@@ -3399,7 +62482,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 82,
+ "end_line": 83,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/stores/health.js",
"COMPLEXITY": "1",
@@ -3412,8 +62495,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 21,
+ "start_line": 22,
+ "end_line": 22,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -3431,8 +62514,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 38,
+ "start_line": 39,
+ "end_line": 39,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -3567,8 +62650,12 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 164,
+ "end_line": 169,
"tags": {
+ "SIDE_EFFECT": "None",
+ "PRE": "Default pre condition",
+ "POST": "Default post condition",
+ "DATA_CONTRACT": "Default state data",
"COMPLEXITY": "5",
"PURPOSE": "Manage Task Drawer visibility and resource-to-task mapping",
"LAYER": "UI",
@@ -3580,38 +62667,23 @@
"PARAM": "{string} resourceId - Resource ID",
"RETURNS": "{Object|null} Task info or null if no active task"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.45714285714285713
}
},
{
@@ -3620,7 +62692,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 164,
+ "end_line": 169,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/stores/taskDrawer.js",
"COMPLEXITY": "1",
@@ -3633,8 +62705,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 28,
+ "start_line": 33,
+ "end_line": 33,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -3652,8 +62724,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 53,
- "end_line": 53,
+ "start_line": 58,
+ "end_line": 58,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -3671,227 +62743,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 71,
- "end_line": 71,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "getTaskDrawerAutoOpenPreference",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 85,
- "end_line": 85,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "openDrawerForTaskIfPreferred",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 94,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "openDrawer",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 108,
- "end_line": 108,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "closeDrawer",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 121,
- "end_line": 121,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "updateResourceTask",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 136,
- "end_line": 136,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "getTaskForResource",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 156,
- "end_line": 156,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "sidebar",
- "type": "Store",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 94,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Manage sidebar visibility and navigation state",
- "LAYER": "UI",
- "INVARIANT": "isExpanded state is always synced with localStorage",
- "UX_STATE": "Toggling -> Animation plays for 200ms",
- "PARAM": "{boolean} isOpen - Whether the mobile overlay should be open"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.7
- }
- },
- {
- "name": "sidebar",
- "type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1,
- "end_line": 94,
- "tags": {
- "PURPOSE": "Auto-generated module for frontend/src/lib/stores/sidebar.js",
- "COMPLEXITY": "1",
- "LAYER": "Unknown"
- },
- "relations": [],
- "children": [
- {
- "name": "toggleSidebar",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 51,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "setActiveItem",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 64,
- "end_line": 64,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "setMobileOpen",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 76,
"end_line": 76,
"tags": {
@@ -3906,13 +62757,239 @@
"score": 1.0
}
},
+ {
+ "name": "getTaskDrawerAutoOpenPreference",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 90,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openDrawerForTaskIfPreferred",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 99,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openDrawer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 113,
+ "end_line": 113,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "closeDrawer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 126,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateResourceTask",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 141,
+ "end_line": 141,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getTaskForResource",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "sidebar",
+ "type": "Store",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 95,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Manage sidebar visibility and navigation state",
+ "LAYER": "UI",
+ "INVARIANT": "isExpanded state is always synced with localStorage",
+ "UX_STATE": "Toggling -> Animation plays for 200ms",
+ "PARAM": "{boolean} isOpen - Whether the mobile overlay should be open"
+ },
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.7
+ }
+ },
+ {
+ "name": "sidebar",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/stores/sidebar.js",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toggleSidebar",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 52,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setActiveItem",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setMobileOpen",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "closeMobile",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 83,
- "end_line": 83,
+ "start_line": 84,
+ "end_line": 84,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -3930,8 +63007,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 90,
- "end_line": 90,
+ "start_line": 91,
+ "end_line": 91,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -3957,19 +63034,24 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 143,
+ "end_line": 144,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Global selected environment context for navigation and safety cues.",
"LAYER": "UI-State"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -3983,7 +63065,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 143,
+ "end_line": 144,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/stores/environmentContext.js",
"COMPLEXITY": "1",
@@ -3996,8 +63078,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 21,
+ "start_line": 22,
+ "end_line": 22,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -4015,8 +63097,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
+ "start_line": 27,
+ "end_line": 27,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -4034,8 +63116,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 35,
+ "start_line": 36,
+ "end_line": 36,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -4053,8 +63135,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 40,
+ "start_line": 41,
+ "end_line": 41,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -4072,8 +63154,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 52,
+ "start_line": 53,
+ "end_line": 53,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -4091,8 +63173,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 61,
- "end_line": 61,
+ "start_line": 62,
+ "end_line": 62,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -4110,8 +63192,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 114,
- "end_line": 114,
+ "start_line": 115,
+ "end_line": 115,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -4129,8 +63211,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 124,
- "end_line": 124,
+ "start_line": 125,
+ "end_line": 125,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -4166,7 +63248,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "WebSocket connection, taskDrawer store"
+ "target": "taskDrawer"
}
],
"children": [],
@@ -4177,12 +63259,199 @@
}
},
{
- "name": "frontend.src.lib.stores.__tests__.test_sidebar",
+ "name": "datasetReviewSession",
+ "type": "Store",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 114,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Manage active dataset review session state, including loading, local edits, error capture, and reset semantics for the active review workspace.",
+ "LAYER": "UI",
+ "PRE": "Consumers provide session-shaped payloads when setting or patching state and initialize the store before reading derived session fields.",
+ "POST": "Store transitions keep session, loading, error, and dirty flags internally consistent after each helper call.",
+ "SIDE_EFFECT": "Mutates the writable dataset review session store in frontend memory.",
+ "DATA_CONTRACT": "Input[SessionDetail | Partial | boolean | string | null] -> Output[DatasetReviewSessionStoreState]",
+ "UX_STATE": "LaunchBlocked -> Session remains reviewable while explicit launch blockers are unresolved.",
+ "UX_REACTIVITY": "Uses Svelte writable store for session aggregate.",
+ "PARAM": "{Object|null} session",
+ "RETURNS": "{\"empty\"|\"importing\"|\"review\"|\"partial_preview\"|\"launch_blocked\"|\"run_ready\"|\"run_in_progress\"}"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "api_module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "datasetReviewSession",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/stores/datasetReviewSession.js",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setLoading",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setError",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setDirty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resetSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "patchSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 84,
+ "end_line": 84,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getSessionUiPhase",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SidebarIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 142,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for sidebar store",
@@ -4196,8 +63465,13 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:SidebarIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
"severity": "WARNING",
@@ -4209,16 +63483,16 @@
"line_number": 1
}
],
- "score": 0.5499999999999999
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.stores.__tests__.sidebar",
+ "name": "SidebarTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 2,
- "end_line": 132,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "sidebar, store, tests, mobile, navigation",
@@ -4276,8 +63550,9 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 71,
- "end_line": 92,
+ "end_line": 93,
"tags": {
+ "PURPOSE": "Default purpose",
"TEST": "setActiveItem updates activeCategory and activeItem",
"PRE": "Store is initialized",
"POST": "activeCategory and activeItem are updated"
@@ -4295,9 +63570,10 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 129,
+ "start_line": 95,
+ "end_line": 131,
"tags": {
+ "PURPOSE": "Default purpose",
"TEST": "Mobile functions correctly update isMobileOpen",
"PRE": "Store is initialized",
"POST": "isMobileOpen is correctly updated"
@@ -4312,24 +63588,29 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:SidebarTest:Module] started at line 2",
+ "severity": "ERROR",
+ "line_number": 2
+ },
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
"line_number": 2
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.stores.__tests__.test_activity",
+ "name": "ActivityTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 119,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for activity store",
@@ -4347,8 +63628,13 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ActivityTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
"severity": "WARNING",
@@ -4360,7 +63646,7 @@
"line_number": 1
}
],
- "score": 0.5499999999999999
+ "score": 0.0
}
},
{
@@ -4369,13 +63655,19 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 63,
+ "end_line": 65,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"PURPOSE": "Global test setup with mocks for SvelteKit modules",
"LAYER": "UI"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -4386,7 +63678,7 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -4395,12 +63687,12 @@
}
},
{
- "name": "frontend.src.lib.stores.__tests__.test_taskDrawer",
+ "name": "TaskDrawerTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 160,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "task-drawer, store, mapping, tests",
@@ -4415,6 +63707,44 @@
}
],
"children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:TaskDrawerTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "DatasetReviewSessionStoreTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 113,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset-review, store, session, tests",
+ "PURPOSE": "Unit tests for dataset review session store.",
+ "LAYER": "UI",
+ "UX_STATE": "Idle -> Store helpers are exercised without asynchronous UI transitions."
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "datasetReviewSession:Store"
+ }
+ ],
+ "children": [],
"compliance": {
"valid": true,
"issues": [
@@ -4428,12 +63758,12 @@
}
},
{
- "name": "frontend.src.lib.stores.__tests__.assistantChat",
+ "name": "AssistantChatTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 59,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "test, store, assistant, toggle, conversation",
@@ -4454,25 +63784,30 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 19,
- "end_line": 58,
+ "end_line": 59,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Group store unit scenarios for assistant panel behavior.",
"PRE": "Store can be reset to baseline state in beforeEach hook.",
"POST": "Open/close/toggle/conversation transitions are validated."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 19
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 19
}
@@ -4482,9 +63817,15 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:AssistantChatTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
@@ -4493,11 +63834,23 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 10,
+ "end_line": 15,
"tags": {
- "PURPOSE": "Mock for $app/navigation in tests"
+ "COMPLEXITY": "1",
+ "SEMANTICS": "mock, navigation, sveltekit-v1-legacy-surface",
+ "PURPOSE": "Mock for $app/navigation in tests",
+ "INVARIANT": "Includes SvelteKit v1-only APIs (push, prefetchRoutes) as compatibility surface for legacy test consumers; keep until all imports migrate to SvelteKit v2-compatible mocks."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "$app/navigation"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "FrontendStoreLegacyNavigationTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -4511,9 +63864,41 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 23,
+ "end_line": 28,
"tags": {
- "PURPOSE": "Mock for $app/stores in tests"
+ "COMPLEXITY": "1",
+ "SEMANTICS": "mock, stores, sveltekit-v1-legacy-surface",
+ "PURPOSE": "Mock for $app/stores in tests",
+ "INVARIANT": "Mocks $app/stores which is a SvelteKit v1 module; SvelteKit v2 uses $app/state. Verify no active test files import this mock before removal."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "$app/stores"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "FrontendStoreLegacyStateTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "state_mock",
+ "type": "Module",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 16,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Mock for AppState in vitest route/component tests.",
+ "LAYER": "UI Tests"
},
"relations": [],
"children": [],
@@ -4547,13 +63932,18 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 6,
+ "end_line": 7,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Mock for $env/static/public SvelteKit module in vitest",
"LAYER": "UI (Tests)"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -4564,7 +63954,7 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -4573,12 +63963,12 @@
}
},
{
- "name": "frontend.src.lib.api.reports",
+ "name": "ReportsApi",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 107,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "frontend, api_client, reports, wrapper",
@@ -4681,6 +64071,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportsApi:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -4706,7 +64101,7 @@
}
},
{
- "name": "frontend.src.lib.api.assistant",
+ "name": "AssistantApi",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
@@ -4722,7 +64117,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend.src.lib.api.api_module"
+ "target": "api_module"
}
],
"children": [
@@ -4854,12 +64249,12 @@
}
},
{
- "name": "frontend.src.lib.api.__tests__.reports_api",
+ "name": "ReportsApiTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 213,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, reports, api-client, query-string, error-normalization",
@@ -4936,15 +64331,20 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportsApiTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -5202,11 +64602,11 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "locales/ru.json"
+ "target": "i18n_ru_locale"
},
{
"type": "DEPENDS_ON",
- "target": "locales/en.json"
+ "target": "i18n_en_locale"
}
],
"children": [
@@ -5281,8 +64681,12 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 855,
+ "end_line": 862,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"PURPOSE": "Slide-out assistant chat panel for natural language command execution and task tracking.",
"LAYER": "UI",
@@ -5301,15 +64705,15 @@
"relations": [
{
"type": "BINDS_TO",
- "target": "assistantChatStore"
+ "target": "assistantChat"
},
{
"type": "CALLS",
- "target": "frontend.src.lib.api.assistant"
+ "target": "AssistantApi"
},
{
"type": "DISPATCHES",
- "target": "taskDrawerStore"
+ "target": "taskDrawer"
}
],
"children": [
@@ -5318,8 +64722,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 140,
+ "start_line": 101,
+ "end_line": 147,
"tags": {
"PURPOSE": "Load current conversation history when panel becomes visible.",
"PRE": "Panel is open and history request is not already running.",
@@ -5339,8 +64743,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 142,
- "end_line": 181,
+ "start_line": 149,
+ "end_line": 188,
"tags": {
"PURPOSE": "Load paginated conversation summaries for quick switching UI.",
"PRE": "Panel is open and request not already running.",
@@ -5359,8 +64763,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 183,
- "end_line": 208,
+ "start_line": 190,
+ "end_line": 215,
"tags": {
"PURPOSE": "Removes a conversation from the list and deletes it from the backend.",
"PRE": "conversationId string is provided.",
@@ -5379,8 +64783,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 210,
- "end_line": 252,
+ "start_line": 217,
+ "end_line": 259,
"tags": {
"PURPOSE": "Lazy-load older messages for active conversation when user scrolls to top.",
"PRE": "History has next page and active conversation is known.",
@@ -5399,8 +64803,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 273,
- "end_line": 292,
+ "start_line": 280,
+ "end_line": 299,
"tags": {
"PURPOSE": "Add optimistic local user message before backend response.",
"PRE": "text is non-empty command text.",
@@ -5419,8 +64823,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 294,
- "end_line": 321,
+ "start_line": 301,
+ "end_line": 328,
"tags": {
"PURPOSE": "Normalize and append assistant response payload to chat list.",
"PRE": "response follows assistant message response contract.",
@@ -5439,8 +64843,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 346,
- "end_line": 390,
+ "start_line": 353,
+ "end_line": 397,
"tags": {
"PURPOSE": "Submit user command to assistant orchestration API.",
"PRE": "input contains a non-empty command and current request is not loading.",
@@ -5460,8 +64864,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 392,
- "end_line": 411,
+ "start_line": 399,
+ "end_line": 418,
"tags": {
"PURPOSE": "Switch active chat context to selected conversation item.",
"PRE": "conversation carries valid conversation_id.",
@@ -5480,8 +64884,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 413,
- "end_line": 433,
+ "start_line": 420,
+ "end_line": 440,
"tags": {
"PURPOSE": "Create local empty chat context that will be persisted on first message.",
"PRE": "Panel is open.",
@@ -5500,8 +64904,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 435,
- "end_line": 514,
+ "start_line": 442,
+ "end_line": 521,
"tags": {
"PURPOSE": "Execute assistant action button behavior (open task/reports, confirm, cancel).",
"PRE": "action object is produced by assistant response contract.",
@@ -5521,8 +64925,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 516,
- "end_line": 529,
+ "start_line": 523,
+ "end_line": 536,
"tags": {
"PURPOSE": "Submit command by Enter while preserving multiline input with Shift+Enter.",
"PRE": "Keyboard event received from chat input.",
@@ -5541,8 +64945,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 531,
- "end_line": 550,
+ "start_line": 538,
+ "end_line": 557,
"tags": {
"PURPOSE": "Map assistant state to visual badge style class.",
"PRE": "state is a nullable assistant state string.",
@@ -5561,8 +64965,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 552,
- "end_line": 566,
+ "start_line": 559,
+ "end_line": 573,
"tags": {
"PURPOSE": "Trigger lazy history fetch when user scroll reaches top boundary.",
"PRE": "Scroll event emitted by history viewport container.",
@@ -5586,22 +64990,12 @@
{
"store": "app",
"type": "READS_FROM",
- "line": 44
+ "line": 50
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 46
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 47
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 48
+ "line": 52
},
{
"store": "lib",
@@ -5611,48 +65005,28 @@
{
"store": "lib",
"type": "READS_FROM",
- "line": 61
+ "line": 54
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 62
+ "line": 59
},
{
- "store": "state",
- "type": "WRITES_TO",
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 67
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
"line": 68
},
{
- "store": "state",
- "type": "WRITES_TO",
- "line": 69
- },
- {
- "store": "state",
- "type": "WRITES_TO",
+ "store": "lib",
+ "type": "READS_FROM",
"line": 70
},
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 71
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 72
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 73
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 74
- },
{
"store": "state",
"type": "WRITES_TO",
@@ -5714,64 +65088,89 @@
"line": 86
},
{
- "store": "derived",
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 87
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 88
+ },
+ {
+ "store": "state",
"type": "WRITES_TO",
"line": 89
},
{
- "store": "derived",
+ "store": "state",
"type": "WRITES_TO",
"line": 90
},
{
- "store": "effect",
- "type": "READS_FROM",
- "line": 254
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 91
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 92
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 93
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 96
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 97
},
{
"store": "effect",
"type": "READS_FROM",
- "line": 262
+ "line": 261
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 269
},
{
"store": "t",
"type": "READS_FROM",
- "line": 325
+ "line": 332
},
{
"store": "t",
"type": "READS_FROM",
- "line": 326
+ "line": 333
},
{
"store": "t",
"type": "READS_FROM",
- "line": 381
+ "line": 388
},
{
"store": "t",
"type": "READS_FROM",
- "line": 507
+ "line": 514
},
{
"store": "t",
"type": "READS_FROM",
- "line": 600
+ "line": 607
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 606
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 618
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 622
+ "line": 613
},
{
"store": "t",
@@ -5781,37 +65180,42 @@
{
"store": "t",
"type": "READS_FROM",
- "line": 628
+ "line": 629
},
{
"store": "t",
"type": "READS_FROM",
- "line": 639
+ "line": 632
},
{
"store": "t",
"type": "READS_FROM",
- "line": 645
+ "line": 635
},
{
"store": "t",
"type": "READS_FROM",
- "line": 656
+ "line": 646
},
{
"store": "t",
"type": "READS_FROM",
- "line": 665
+ "line": 652
},
{
"store": "t",
"type": "READS_FROM",
- "line": 707
+ "line": 663
},
{
"store": "t",
"type": "READS_FROM",
- "line": 722
+ "line": 672
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 714
},
{
"store": "t",
@@ -5821,67 +65225,72 @@
{
"store": "t",
"type": "READS_FROM",
- "line": 735
+ "line": 736
},
{
"store": "t",
"type": "READS_FROM",
- "line": 737
+ "line": 742
},
{
"store": "t",
"type": "READS_FROM",
- "line": 738
+ "line": 744
},
{
"store": "t",
"type": "READS_FROM",
- "line": 739
+ "line": 745
},
{
"store": "t",
"type": "READS_FROM",
- "line": 756
+ "line": 746
},
{
"store": "t",
"type": "READS_FROM",
- "line": 757
+ "line": 763
},
{
"store": "t",
"type": "READS_FROM",
- "line": 765
+ "line": 764
},
{
"store": "t",
"type": "READS_FROM",
- "line": 778
+ "line": 772
},
{
"store": "t",
"type": "READS_FROM",
- "line": 784
+ "line": 785
},
{
"store": "t",
"type": "READS_FROM",
- "line": 817
+ "line": 791
},
{
"store": "t",
"type": "READS_FROM",
- "line": 821
+ "line": 824
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 828
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 836
+ "line": 843
},
{
"store": "t",
"type": "READS_FROM",
- "line": 847
+ "line": 854
}
]
},
@@ -5891,7 +65300,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 893,
+ "end_line": 900,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/components/assistant/AssistantChatPanel.svelte",
"COMPLEXITY": "1",
@@ -5904,8 +65313,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 323,
- "end_line": 323,
+ "start_line": 330,
+ "end_line": 330,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -5923,8 +65332,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 329,
- "end_line": 329,
+ "start_line": 336,
+ "end_line": 336,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -5942,8 +65351,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 339,
- "end_line": 339,
+ "start_line": 346,
+ "end_line": 346,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -5961,8 +65370,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 572,
- "end_line": 572,
+ "start_line": 579,
+ "end_line": 579,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -5980,7 +65389,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 893 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 900 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -5989,12 +65398,12 @@
}
},
{
- "name": "frontend.src.lib.components.assistant.__tests__.assistant_first_message_integration",
+ "name": "AssistantFirstMessageIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 178,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "assistant, integration-test, optimistic-message, conversation-race",
@@ -6005,7 +65414,7 @@
"relations": [
{
"type": "VERIFIES",
- "target": "frontend/src/lib/components/assistant/AssistantChatPanel.svelte"
+ "target": "AssistantChatPanel"
}
],
"children": [
@@ -6015,25 +65424,30 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 123,
- "end_line": 177,
+ "end_line": 178,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Guard optimistic first-message UX against history reload race in new conversation flow.",
"PRE": "Assistant panel renders with open state and mocked network dependencies.",
"POST": "First user message remains visible before pending send request resolves."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 123
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 123
}
@@ -6043,24 +65457,29 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:AssistantFirstMessageIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.components.assistant.__tests__.assistant_chat_integration",
+ "name": "AssistantChatIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 103,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "assistant, integration-test, ux-contract, i18n",
@@ -6076,7 +65495,7 @@
"relations": [
{
"type": "VERIFIES",
- "target": "frontend/src/lib/components/assistant/AssistantChatPanel.svelte"
+ "target": "AssistantChatPanel"
}
],
"children": [
@@ -6111,6 +65530,7 @@
"PURPOSE": "Validate assistant chat component contract and locale integration without DOM runtime dependency.",
"PRE": "Component and locale files exist in expected paths.",
"POST": "Contract checks guarantee assistant UI anchors and i18n wiring remain intact.",
+ "COMPLEXITY": "5');",
"UX_STATE": "Error');",
"UX_FEEDBACK": "Started operation surfaces task_id');",
"UX_RECOVERY": "User can retry command');"
@@ -6125,15 +65545,20 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:AssistantChatIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -6142,7 +65567,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 81,
+ "end_line": 83,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Visual grid/matrix representing the health status of dashboards.",
@@ -6151,13 +65576,18 @@
"UX_REATIVITY": "State: $state, Derived: $derived.",
"TYPE": "{{"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -6168,57 +65598,57 @@
{
"store": "state",
"type": "READS_FROM",
- "line": 9
+ "line": 11
},
{
"store": "derived",
"type": "READS_FROM",
- "line": 9
+ "line": 11
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 12
+ "line": 14
},
{
"store": "props",
"type": "WRITES_TO",
- "line": 29
+ "line": 31
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 32
+ "line": 34
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 44
+ "line": 46
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 51
+ "line": 53
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 56
+ "line": 58
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 61
+ "line": 63
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 66
+ "line": 68
},
{
"store": "t",
"type": "READS_FROM",
- "line": 72
+ "line": 74
}
]
},
@@ -6228,7 +65658,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 195,
+ "end_line": 197,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Form for creating and editing validation policies.",
@@ -6238,13 +65668,18 @@
"UX_REATIVITY": "State: $state, Derived: $derived.",
"TYPE": "{{ policy: any, environments: any[], onSave: (p: any) => void, onCancel: () => void }} */"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -6255,42 +65690,42 @@
{
"store": "state",
"type": "READS_FROM",
- "line": 10
+ "line": 12
},
{
"store": "derived",
"type": "READS_FROM",
- "line": 10
+ "line": 12
},
{
"store": "props",
"type": "WRITES_TO",
- "line": 14
+ "line": 16
},
{
"store": "state",
"type": "WRITES_TO",
- "line": 37
+ "line": 39
},
{
"store": "state",
"type": "WRITES_TO",
- "line": 38
+ "line": 40
},
{
"store": "effect",
"type": "READS_FROM",
- "line": 40
+ "line": 42
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 60
+ "line": 62
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 69
+ "line": 71
}
]
},
@@ -6300,7 +65735,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 195,
+ "end_line": 197,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/components/health/PolicyForm.svelte",
"COMPLEXITY": "1",
@@ -6313,8 +65748,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 16,
- "end_line": 16,
+ "start_line": 18,
+ "end_line": 18,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6332,8 +65767,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
+ "start_line": 22,
+ "end_line": 22,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6351,8 +65786,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 24,
- "end_line": 24,
+ "start_line": 26,
+ "end_line": 26,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6370,8 +65805,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 71,
- "end_line": 71,
+ "start_line": 73,
+ "end_line": 73,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6389,8 +65824,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 81,
- "end_line": 81,
+ "start_line": 83,
+ "end_line": 83,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6416,8 +65851,12 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 101,
+ "end_line": 107,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"SEMANTICS": "reports, card, type-profile, accessibility, fallback",
"PURPOSE": "Render one report with explicit textual type label and profile-driven visual variant.",
@@ -6433,11 +65872,11 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/components/reports/reportTypeProfiles.js"
+ "target": "reportTypeProfiles"
},
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/i18n/index.ts"
+ "target": "i18n"
}
],
"children": [],
@@ -6450,53 +65889,43 @@
{
"store": "lib",
"type": "READS_FROM",
- "line": 31
+ "line": 37
},
{
"store": "props",
"type": "WRITES_TO",
- "line": 34
+ "line": 40
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 36
+ "line": 42
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 37
+ "line": 43
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 54
+ "line": 60
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 55
+ "line": 61
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 56
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 57
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 58
- },
- {
- "store": "t",
- "type": "READS_FROM",
"line": 62
},
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 63
+ },
{
"store": "t",
"type": "READS_FROM",
@@ -6504,28 +65933,38 @@
},
{
"store": "t",
- "type": "WRITES_TO",
- "line": 78
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 78
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 78
+ "type": "READS_FROM",
+ "line": 68
},
{
"store": "t",
"type": "READS_FROM",
- "line": 85
+ "line": 70
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 84
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 84
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 84
},
{
"store": "t",
"type": "READS_FROM",
- "line": 96
+ "line": 91
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 102
}
]
},
@@ -6535,7 +65974,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 101,
+ "end_line": 107,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/components/reports/ReportCard.svelte",
"COMPLEXITY": "1",
@@ -6548,8 +65987,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 41,
+ "start_line": 47,
+ "end_line": 47,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6567,8 +66006,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 53,
- "end_line": 53,
+ "start_line": 59,
+ "end_line": 59,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6586,8 +66025,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 61,
- "end_line": 61,
+ "start_line": 67,
+ "end_line": 67,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6605,8 +66044,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 68,
- "end_line": 68,
+ "start_line": 74,
+ "end_line": 74,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6632,8 +66071,12 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 49,
+ "end_line": 56,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"SEMANTICS": "reports, list, card, unified, mixed-types",
"PURPOSE": "Render unified list of normalized reports with canonical minimum fields.",
@@ -6650,7 +66093,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/i18n/index.ts"
+ "target": "i18n"
}
],
"children": [],
@@ -6663,7 +66106,7 @@
{
"store": "props",
"type": "WRITES_TO",
- "line": 32
+ "line": 38
}
]
},
@@ -6673,7 +66116,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 49,
+ "end_line": 56,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/components/reports/ReportsList.svelte",
"COMPLEXITY": "1",
@@ -6686,8 +66129,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 34,
+ "start_line": 40,
+ "end_line": 40,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6708,12 +66151,12 @@
}
},
{
- "name": "frontend.src.lib.components.reports.reportTypeProfiles",
+ "name": "ReportTypeProfiles",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 73,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "reports, ui, profiles, fallback, mapping",
@@ -6724,7 +66167,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/i18n/index.ts"
+ "target": "i18n"
}
],
"children": [
@@ -6756,6 +66199,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportTypeProfiles:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -6786,8 +66234,12 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 107,
+ "end_line": 113,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"SEMANTICS": "reports, detail, diagnostics, next-actions, placeholders",
"PURPOSE": "Display detailed report context with diagnostics and actionable recovery guidance.",
@@ -6803,7 +66255,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/i18n/index.ts"
+ "target": "i18n"
}
],
"children": [],
@@ -6816,17 +66268,12 @@
{
"store": "lib",
"type": "READS_FROM",
- "line": 30
+ "line": 36
},
{
"store": "props",
"type": "WRITES_TO",
- "line": 32
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 36
+ "line": 38
},
{
"store": "t",
@@ -6836,57 +66283,62 @@
{
"store": "t",
"type": "READS_FROM",
- "line": 44
+ "line": 48
},
{
"store": "t",
"type": "READS_FROM",
- "line": 51
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 55
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 59
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 63
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 67
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 71
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 75
+ "line": 50
},
{
"store": "t",
"type": "READS_FROM",
- "line": 82
+ "line": 57
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 61
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 65
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 69
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 73
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 77
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 81
},
{
"store": "t",
"type": "READS_FROM",
- "line": 86
+ "line": 88
},
{
"store": "t",
"type": "READS_FROM",
- "line": 95
+ "line": 92
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 101
}
]
},
@@ -6896,7 +66348,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 107,
+ "end_line": 113,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/components/reports/ReportDetailPanel.svelte",
"COMPLEXITY": "1",
@@ -6909,8 +66361,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 34,
+ "start_line": 40,
+ "end_line": 40,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6928,8 +66380,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 41,
+ "start_line": 47,
+ "end_line": 47,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -6950,12 +66402,12 @@
}
},
{
- "name": "frontend.src.lib.components.reports.__tests__.reports_filter_performance",
+ "name": "ReportsFilterPerformanceTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 48,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, reports, performance, filtering",
@@ -7009,24 +66461,29 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportsFilterPerformanceTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.components.reports.__tests__.reports_page.integration",
+ "name": "ReportsPageTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 40,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, reports, integration, mixed-types, rendering",
@@ -7066,8 +66523,13 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportsPageTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
@@ -7079,16 +66541,16 @@
"line_number": 1
}
],
- "score": 0.625
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.components.reports.__tests__.report_type_profiles",
+ "name": "ReportTypeProfilesTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 32,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, reports, type-profiles, fallback",
@@ -7099,34 +66561,40 @@
"relations": [
{
"type": "TESTS",
- "target": "frontend/src/lib/components/reports/reportTypeProfiles.js"
+ "target": "ReportTypeProfiles"
}
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportTypeProfilesTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.components.reports.__tests__.reports_list.ux",
+ "name": "ReportsListTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 4,
- "end_line": 10,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "reports, list, ux-tests, events, iteration",
"PURPOSE": "Test ReportsList component iteration and event forwarding.",
- "LAYER": "UI"
+ "LAYER": "UI",
+ "UX_FEEDBACK": "Click on report emits select event."
},
"relations": [
{
@@ -7136,24 +66604,29 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportsListTest:Module] started at line 4",
+ "severity": "ERROR",
+ "line_number": 4
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 4
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.components.reports.__tests__.report_card.ux",
+ "name": "ReportCardTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 4,
- "end_line": 109,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "reports, ux-tests, card, states, recovery",
@@ -7177,24 +66650,29 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportCardTest:Module] started at line 4",
+ "severity": "ERROR",
+ "line_number": 4
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 4
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.components.reports.__tests__.report_detail.ux",
+ "name": "ReportDetailUxTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 4,
- "end_line": 74,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "reports, ux-tests, detail, diagnostics, recovery",
@@ -7212,24 +66690,29 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportDetailUxTest:Module] started at line 4",
+ "severity": "ERROR",
+ "line_number": 4
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 4
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.lib.components.reports.__tests__.report_detail.integration",
+ "name": "ReportDetailIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 45,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, reports, detail, recovery-guidance, integration",
@@ -7269,8 +66752,13 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportDetailIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
@@ -7282,16 +66770,16 @@
"line_number": 1
}
],
- "score": 0.625
+ "score": 0.0
}
},
{
- "name": "reports.fixtures",
+ "name": "ReportsFixtures",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 90,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "reports, fixtures, test-data",
@@ -7301,169 +66789,433 @@
"relations": [],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportsFixtures:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "Sidebar",
+ "name": "SemanticLayerReview",
"type": "Component",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 1,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 329,
+ "end_line": 612,
"tags": {
- "COMPLEXITY": "5",
- "PURPOSE": "Persistent left sidebar with resource categories navigation",
- "LAYER": "UI",
- "SEMANTICS": "Navigation",
- "INVARIANT": "Always shows active category and item",
- "UX_STATE": "Toggling -> Animation plays for 200ms",
- "UX_FEEDBACK": "Active item highlighted with different background",
- "UX_RECOVERY": "Click outside on mobile closes overlay",
- "TEST_CONTRACT": "Component_Sidebar ->",
- "TEST_FIXTURE": "idle_state -> {}",
- "TEST_EDGE": "mobile_open -> shows mobile overlay mask",
- "TEST_INVARIANT": "navigation -> verifies: [idle_state]"
+ "COMPLEXITY": "4 -->",
+ "SEMANTICS": "dataset-review, semantic-layer, candidate-review, manual-override, field-lock -->",
+ "PURPOSE": "Surface field-level semantic decisions with provenance, confidence, candidate acceptance, and manual override safeguards for US2 review flow. -->",
+ "LAYER": "UI -->",
+ "PRE": "Session id is available and semantic field entries come from the current ownership-scoped session detail payload. -->",
+ "POST": "Users can review the current semantic value, accept a candidate, apply manual override, and lock or unlock field state without violating backend provenance rules. -->",
+ "SIDE_EFFECT": "Persists semantic field decisions, lock state, and optional thumbs feedback through dataset orchestration endpoints. -->",
+ "DATA_CONTRACT": "Input -> Dataset review session detail { sessionId, fields[], semanticSources[] }; Output -> onupdated(updatedField | { fields: updatedFields }) refresh payload. -->",
+ "UX_STATE": "Manual -> One field enters local draft mode and persists as locked manual override on save. -->",
+ "UX_FEEDBACK": "Save, lock, unlock, and feedback actions expose inline success or error state on the affected field. -->",
+ "UX_RECOVERY": "Users can cancel local edits, unlock a manual override for re-review, or retry failed mutations in place. -->",
+ "UX_REACTIVITY": "Uses $props, $state, and $derived only; no legacy reactive syntax. -->"
},
"relations": [
{
"type": "BINDS_TO",
- "target": "sidebarStore"
+ "target": "api_module"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewWorkspace"
}
],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 0.9
+ "score": 1.0
},
"data_flow": [
{
- "store": "app",
+ "store": "props",
"type": "READS_FROM",
- "line": 31
+ "line": 16
+ },
+ {
+ "store": "state",
+ "type": "READS_FROM",
+ "line": 16
+ },
+ {
+ "store": "derived",
+ "type": "READS_FROM",
+ "line": 16
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 38
+ "line": 18
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 39
+ "line": 19
},
{
- "store": "lib",
- "type": "READS_FROM",
- "line": 41
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 42
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 43
- },
- {
- "store": "app",
- "type": "READS_FROM",
- "line": 44
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 45
- },
- {
- "store": "derived",
+ "store": "props",
"type": "WRITES_TO",
- "line": 52
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 59
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 60
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 63
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 64
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 65
+ "line": 27
},
{
"store": "state",
"type": "WRITES_TO",
- "line": 66
+ "line": 29
},
{
- "store": "effect",
- "type": "READS_FROM",
- "line": 85
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 30
},
{
- "store": "effect",
- "type": "READS_FROM",
- "line": 98
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 31
},
{
- "store": "effect",
- "type": "READS_FROM",
- "line": 105
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 32
},
{
- "store": "effect",
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 33
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 34
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 35
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 37
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 49
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 50
+ },
+ {
+ "store": "t",
"type": "READS_FROM",
- "line": 165
+ "line": 96
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 103
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 108
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 113
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 115
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 120
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 143
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 154
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 155
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 186
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 211
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 212
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 220
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 221
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 255
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 256
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 283
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 284
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 291
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 292
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 304
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 307
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 310
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 317
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 331
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 338
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 375
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 376
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 380
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 385
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 392
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 399
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 403
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 408
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 412
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 421
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 432
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 443
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 459
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 467
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 476
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 485
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 496
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 502
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 512
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 517
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 530
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 538
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 559
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 572
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 582
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 583
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 593
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 601
}
]
},
{
- "name": "Sidebar",
+ "name": "SemanticLayerReview",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 329,
+ "end_line": 612,
"tags": {
- "PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/Sidebar.svelte",
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/dataset-review/SemanticLayerReview.svelte",
"COMPLEXITY": "1",
"LAYER": "Unknown"
},
"relations": [],
"children": [
{
- "name": "withExpandedCategory",
+ "name": "updateFieldMessage",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 68,
- "end_line": 68,
+ "start_line": 54,
+ "end_line": 54,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -7477,7 +67229,26 @@
}
},
{
- "name": "toggleExpandedCategory",
+ "name": "resetFieldMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 64,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "startManualEdit",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -7496,12 +67267,12 @@
}
},
{
- "name": "handleItemClick",
+ "name": "cancelManualEdit",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 119,
- "end_line": 119,
+ "start_line": 82,
+ "end_line": 82,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -7515,12 +67286,12 @@
}
},
{
- "name": "handleCategoryToggle",
+ "name": "getSourceLabel",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 128,
- "end_line": 128,
+ "start_line": 93,
+ "end_line": 93,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -7534,12 +67305,12 @@
}
},
{
- "name": "handleSubItemClick",
+ "name": "getCandidateStatusLabel",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 144,
- "end_line": 144,
+ "start_line": 101,
+ "end_line": 101,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -7553,382 +67324,7 @@
}
},
{
- "name": "handleToggleClick",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 153,
- "end_line": 153,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "handleOverlayClick",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 159,
- "end_line": 159,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Fractal limit warning: Module length is 329 lines (must be < 300)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.85
- }
- },
- {
- "name": "TopNavbar",
- "type": "Component",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 569,
- "tags": {
- "COMPLEXITY": "5",
- "PURPOSE": "Unified top navigation bar with Logo, Search, Activity, and User menu",
- "LAYER": "UI",
- "SEMANTICS": "Navigation, UserSession",
- "INVARIANT": "Always visible on non-login pages",
- "UX_STATE": "SearchFocused -> Search input expands",
- "UX_FEEDBACK": "Activity badge shows count of running tasks",
- "UX_RECOVERY": "Click outside closes dropdowns",
- "UX_TEST": "ActivityClick -> {click: activity button, expected: task drawer opens}",
- "TEST_CONTRACT": "Component_TopNavbar ->",
- "TEST_FIXTURE": "logged_in -> {\"user\": {\"username\": \"admin\"}}",
- "TEST_EDGE": "network_down -> search fetch fails, handles error state",
- "TEST_INVARIANT": "ui_consistency -> verifies: [logged_in]"
- },
- "relations": [
- {
- "type": "BINDS_TO",
- "target": "activityStore, authStore"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 0.9
- },
- "data_flow": [
- {
- "store": "app",
- "type": "READS_FROM",
- "line": 34
- },
- {
- "store": "app",
- "type": "READS_FROM",
- "line": 35
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 36
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 37
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 38
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 44
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 45
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 46
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 47
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 48
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 49
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 50
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 51
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 57
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 60
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 61
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 62
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 63
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 64
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 65
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 78
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 79
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 80
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 81
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 82
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 85
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 88
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 91
- },
- {
- "store": "derived",
- "type": "WRITES_TO",
- "line": 92
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 229
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 236
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 243
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 250
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 373
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 388
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 400
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 412
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 416
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 459
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 460
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 484
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 485
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 498
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 518
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 536
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 551
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 562
- }
- ]
- },
- {
- "name": "TopNavbar",
- "type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1,
- "end_line": 569,
- "tags": {
- "PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/TopNavbar.svelte",
- "COMPLEXITY": "1",
- "LAYER": "Unknown"
- },
- "relations": [],
- "children": [
- {
- "name": "toggleUserMenu",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 97,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "closeUserMenu",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 102,
- "end_line": 102,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "handleLogout",
+ "name": "getProvenanceLabel",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -7947,12 +67343,12 @@
}
},
{
- "name": "handleActivityClick",
+ "name": "getConfidenceLabel",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 112,
- "end_line": 112,
+ "start_line": 111,
+ "end_line": 111,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -7966,12 +67362,12 @@
}
},
{
- "name": "handleAssistantClick",
+ "name": "getCurrentValueSummary",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 123,
- "end_line": 123,
+ "start_line": 118,
+ "end_line": 118,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -7985,7 +67381,7 @@
}
},
{
- "name": "hydrateTaskDrawerPreference",
+ "name": "persistFieldSemantic",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -8004,12 +67400,12 @@
}
},
{
- "name": "handleSearchFocus",
+ "name": "acceptCandidate",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 140,
- "end_line": 140,
+ "start_line": 162,
+ "end_line": 162,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8023,83 +67419,7 @@
}
},
{
- "name": "clearSearchState",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 145,
- "end_line": 145,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "handleDocumentClick",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 151,
- "end_line": 151,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "handleHamburgerClick",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 161,
- "end_line": 161,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "handleGlobalEnvironmentChange",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 166,
- "end_line": 166,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "buildSearchResultSections",
+ "name": "saveManualOverride",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -8118,12 +67438,12 @@
}
},
{
- "name": "triggerSearch",
+ "name": "mutateLock",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 257,
- "end_line": 257,
+ "start_line": 194,
+ "end_line": 194,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8137,12 +67457,12 @@
}
},
{
- "name": "handleSearchInput",
+ "name": "approveAllCandidates",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 309,
- "end_line": 309,
+ "start_line": 228,
+ "end_line": 228,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8156,31 +67476,12 @@
}
},
{
- "name": "openSearchResult",
+ "name": "recordFeedback",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 319,
- "end_line": 319,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "handleSearchKeydown",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 332,
- "end_line": 332,
+ "start_line": 265,
+ "end_line": 265,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8198,7 +67499,3979 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 569 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 612 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SourceIntakePanel",
+ "type": "Component",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 348,
+ "tags": {
+ "COMPLEXITY": "3 -->",
+ "SEMANTICS": "dataset-review, intake, superset-link, dataset-selection, validation -->",
+ "PURPOSE": "Collect initial dataset source input through Superset link paste or dataset selection entry paths. -->",
+ "LAYER": "UI -->",
+ "UX_STATE": "Rejected -> Input error shown with corrective hint. -->",
+ "UX_FEEDBACK": "Recognized links are acknowledged before deeper recovery finishes. -->",
+ "UX_RECOVERY": "Users can correct invalid input in place without resetting the page. -->",
+ "UX_REACTIVITY": "Uses $props, $state, and $derived only; no legacy reactive syntax. -->"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "api_module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ },
+ "data_flow": [
+ {
+ "store": "props",
+ "type": "READS_FROM",
+ "line": 12
+ },
+ {
+ "store": "state",
+ "type": "READS_FROM",
+ "line": 12
+ },
+ {
+ "store": "derived",
+ "type": "READS_FROM",
+ "line": 12
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 14
+ },
+ {
+ "store": "props",
+ "type": "WRITES_TO",
+ "line": 24
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 26
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 27
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 28
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 29
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 30
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 31
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 33
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 34
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 35
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 36
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 41
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 48
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 51
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 61
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 84
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 89
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 90
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 100
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 101
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 106
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 107
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 112
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 117
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 118
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 122
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 147
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 148
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 185
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 188
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 191
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 205
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 207
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 209
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 225
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 228
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 242
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 245
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 258
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 265
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 275
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 276
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 287
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 299
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 322
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 324
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 337
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 339
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 341
+ }
+ ]
+ },
+ {
+ "name": "SourceIntakePanel",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 348,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/dataset-review/SourceIntakePanel.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setMode",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getInlineHint",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validatePayload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 110,
+ "end_line": 110,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "submitPayload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleInput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 152,
+ "end_line": 152,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "submitSupersetLink",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 159,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "submitDatasetSelection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSubmit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 171,
+ "end_line": 171,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 348 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "ClarificationDialog",
+ "type": "Component",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 487,
+ "tags": {
+ "COMPLEXITY": "4 -->",
+ "SEMANTICS": "dataset-review, clarification, single-question, resumable, expert-review -->",
+ "PURPOSE": "Present one clarification question at a time with explicit why-it-matters context, answer actions, and resumable state transitions for US2. -->",
+ "LAYER": "UI -->",
+ "PRE": "Session id is available and clarification state payload belongs to the current ownership-scoped session. -->",
+ "POST": "Users can answer, skip, or route to expert review while the UI keeps only the active clarification question visible and preserves resumable progress. -->",
+ "SIDE_EFFECT": "Persists clarification answers and may resume clarification state from dataset orchestration APIs. -->",
+ "DATA_CONTRACT": "Input -> Dataset review clarification state { sessionId, clarificationState.current_question, clarificationState.clarification_session }; Output -> onupdated(nextClarificationState) refresh payload plus optional question feedback mutation. -->",
+ "UX_STATE": "Completed -> No active question remains and resumable clarification summary stays visible. -->",
+ "UX_FEEDBACK": "Save results and changed findings surface inline without hiding the active or completed state. -->",
+ "UX_RECOVERY": "Users can resume clarification after interruption, skip uncertain questions, or open assistant guidance before escalating to expert review. -->",
+ "UX_REACTIVITY": "Uses $props, $state, and $derived only; no legacy reactive syntax. -->"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "api_module"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "assistantChat"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewWorkspace"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ },
+ "data_flow": [
+ {
+ "store": "props",
+ "type": "READS_FROM",
+ "line": 18
+ },
+ {
+ "store": "state",
+ "type": "READS_FROM",
+ "line": 18
+ },
+ {
+ "store": "derived",
+ "type": "READS_FROM",
+ "line": 18
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 20
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 21
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 22
+ },
+ {
+ "store": "props",
+ "type": "WRITES_TO",
+ "line": 29
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 31
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 32
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 33
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 34
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 35
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 36
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 37
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 38
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 39
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 41
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 42
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 43
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 46
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 47
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 54
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 62
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 115
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 116
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 121
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 122
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 143
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 149
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 150
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 165
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 171
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 196
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 199
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 201
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 209
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 210
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 219
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 227
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 230
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 233
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 239
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 243
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 251
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 254
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 258
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 274
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 282
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 290
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 294
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 300
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 308
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 339
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 352
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 369
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 378
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 387
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 396
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 405
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 412
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 422
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 431
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 441
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 445
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 455
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 463
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 481
+ }
+ ]
+ },
+ {
+ "name": "ClarificationDialog",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 487,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/dataset-review/ClarificationDialog.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "clearFeedback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeAnswerValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 87,
+ "end_line": 87,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "recordClarificationFeedback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resumeClarification",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "submitAnswer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 156,
+ "end_line": 156,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "requestAssistantGuidance",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 216,
+ "end_line": 216,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 487 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "CompiledSQLPreview",
+ "type": "Component",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 267,
+ "tags": {
+ "COMPLEXITY": "4 -->",
+ "SEMANTICS": "dataset-review, compiled-sql-preview, superset-preview, stale-state, diagnostics -->",
+ "PURPOSE": "Present the exact Superset-generated compiled SQL preview, expose readiness or staleness clearly, and preserve readable recovery paths when preview generation fails. -->",
+ "LAYER": "UI -->",
+ "PRE": "Session id is available and preview state comes from the current ownership-scoped session detail payload. -->",
+ "POST": "Users can distinguish missing, pending, ready, stale, and error preview states and can trigger only Superset-backed preview generation. -->",
+ "SIDE_EFFECT": "Requests preview generation through dataset orchestration APIs and updates route shell preview state when Superset responds. -->",
+ "DATA_CONTRACT": "Input -> Dataset review preview payload { sessionId, preview, previewState }; Output -> onupdated({ preview, preview_state }) route-shell refresh payload and onjump({ target }) recovery navigation signal. -->",
+ "UX_STATE": "Error -> Show readable Superset compilation diagnostics and preserve remediation action. -->",
+ "UX_FEEDBACK": "Preview refresh updates status pill, timestamps, and inline generation feedback. -->",
+ "UX_RECOVERY": "Users can retry preview generation and jump back to mapping review when diagnostics point to execution-input issues. -->",
+ "UX_REACTIVITY": "Uses $props, $state, and $derived only; no legacy reactive syntax. -->"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "api_module"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewWorkspace"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ },
+ "data_flow": [
+ {
+ "store": "props",
+ "type": "READS_FROM",
+ "line": 19
+ },
+ {
+ "store": "state",
+ "type": "READS_FROM",
+ "line": 19
+ },
+ {
+ "store": "derived",
+ "type": "READS_FROM",
+ "line": 19
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 21
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 22
+ },
+ {
+ "store": "props",
+ "type": "WRITES_TO",
+ "line": 31
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 33
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 34
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 36
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 37
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 38
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 39
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 40
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 63
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 84
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 86
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 91
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 94
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 97
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 100
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 102
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 109
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 130
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 135
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 136
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 149
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 152
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 155
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 161
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 170
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 171
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 199
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 202
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 206
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 216
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 219
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 228
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 239
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 249
+ }
+ ]
+ },
+ {
+ "name": "CompiledSQLPreview",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 267,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/dataset-review/CompiledSQLPreview.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "resolvePreviewState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getStateLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getStateTone",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getCompilerLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getPreviewBodyText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildPreviewTechnicalDetails",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 105,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "requestPreview",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 111,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "jumpToMapping",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 140,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ValidationFindingsPanel",
+ "type": "Component",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 357,
+ "tags": {
+ "COMPLEXITY": "3 -->",
+ "SEMANTICS": "dataset-review, findings, severity, readiness, actionability -->",
+ "PURPOSE": "Present validation findings grouped by severity with explicit resolution and actionability signals. -->",
+ "LAYER": "UI -->",
+ "UX_STATE": "Informational -> Low-priority findings are collapsed or secondary. -->",
+ "UX_FEEDBACK": "Resolving or approving an item updates readiness state immediately. -->",
+ "UX_RECOVERY": "Users can jump from a finding directly to the relevant remediation area. -->",
+ "UX_REACTIVITY": "Uses $props and $derived only; no legacy reactive syntax. -->"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewWorkspace"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ },
+ "data_flow": [
+ {
+ "store": "props",
+ "type": "READS_FROM",
+ "line": 12
+ },
+ {
+ "store": "derived",
+ "type": "READS_FROM",
+ "line": 12
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 15
+ },
+ {
+ "store": "props",
+ "type": "WRITES_TO",
+ "line": 21
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 23
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 24
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 25
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 26
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 27
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 30
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 79
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 84
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 89
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 109
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 112
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 115
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 121
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 137
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 144
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 153
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 179
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 185
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 202
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 215
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 224
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 250
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 256
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 273
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 286
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 295
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 321
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 327
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 344
+ }
+ ]
+ },
+ {
+ "name": "ValidationFindingsPanel",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 357,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/dataset-review/ValidationFindingsPanel.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "groupFindingsBySeverity",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildTargetFromFinding",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 57,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "jumpToFindingTarget",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getResolutionLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getAreaLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getRecommendedActionLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 87,
+ "end_line": 87,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFindingMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 92,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFindingTechnicalReference",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFindingResolutionNote",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 100,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 357 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "LaunchConfirmationPanel",
+ "type": "Component",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 382,
+ "tags": {
+ "COMPLEXITY": "4 -->",
+ "SEMANTICS": "dataset-review, launch-confirmation, run-gates, sql-lab, audited-execution -->",
+ "PURPOSE": "Summarize final execution context, surface launch blockers explicitly, and confirm only a gate-complete SQL Lab launch request. -->",
+ "LAYER": "UI -->",
+ "PRE": "Session detail, mappings, findings, preview state, and latest run context belong to the current ownership-scoped session payload. -->",
+ "POST": "Users can see why launch is blocked or confirm a run-ready launch with explicit SQL Lab handoff evidence. -->",
+ "SIDE_EFFECT": "Submits the launch request through dataset orchestration APIs and updates the workspace with returned run context state. -->",
+ "DATA_CONTRACT": "Input -> Dataset review launch payload { sessionId, session, findings[], mappings[], preview, previewState, latestRunContext }; Output -> onupdated({ launch_result, preview_state }) workspace refresh payload and onjump({ target }) remediation navigation signal. -->",
+ "UX_STATE": "Submitted -> SQL Lab handoff and audited run context reference are shown after launch request succeeds. -->",
+ "UX_FEEDBACK": "Launch button, blocker list, and success state all reflect current gate truth instead of generic confirmation copy. -->",
+ "UX_RECOVERY": "Blocked launch state provides jump paths back to mapping review, preview generation, or validation remediation. -->",
+ "UX_REACTIVITY": "Uses $props, $state, and $derived only; no legacy reactive syntax. -->"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "api_module"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewWorkspace"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ },
+ "data_flow": [
+ {
+ "store": "props",
+ "type": "READS_FROM",
+ "line": 17
+ },
+ {
+ "store": "state",
+ "type": "READS_FROM",
+ "line": 17
+ },
+ {
+ "store": "derived",
+ "type": "READS_FROM",
+ "line": 17
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 19
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 20
+ },
+ {
+ "store": "props",
+ "type": "WRITES_TO",
+ "line": 33
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 35
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 36
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 37
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 39
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 40
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 43
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 46
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 47
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 50
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 52
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 53
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 67
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 79
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 90
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 98
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 106
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 114
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 124
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 134
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 145
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 174
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 183
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 184
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 193
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 196
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 199
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 204
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 211
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 214
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 238
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 252
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 255
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 261
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 264
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 270
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 279
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 282
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 290
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 293
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 297
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 300
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 320
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 323
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 330
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 339
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 348
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 357
+ }
+ ]
+ },
+ {
+ "name": "LaunchConfirmationPanel",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 382,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/dataset-review/LaunchConfirmationPanel.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "buildLaunchBlockers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 56,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getStateLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getStateClass",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 148,
+ "end_line": 148,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "jumpTo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 158,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "confirmLaunch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 162,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 382 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "ExecutionMappingReview",
+ "type": "Component",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 579,
+ "tags": {
+ "COMPLEXITY": "4 -->",
+ "SEMANTICS": "dataset-review, execution-mapping, warning-approval, manual-override, required-values -->",
+ "PURPOSE": "Review imported-filter to template-variable mappings, surface effective values and blockers, and require explicit approval for warning-sensitive execution inputs before preview or launch. -->",
+ "LAYER": "UI -->",
+ "PRE": "Session id, execution mappings, imported filters, and template variables belong to the current ownership-scoped session payload. -->",
+ "POST": "Users can review effective mapping values, approve warning-sensitive transformations, or manually override them while unresolved required-value blockers remain visible. -->",
+ "SIDE_EFFECT": "Persists mapping approvals or manual overrides through dataset orchestration APIs and may invalidate the current preview truth for the route shell. -->",
+ "DATA_CONTRACT": "Input -> Dataset review execution payload { sessionId, mappings[], importedFilters[], templateVariables[] }; Output -> onupdated({ mapping | mappings, preview_state }) route-shell refresh payload. -->",
+ "UX_STATE": "Approved -> All launch-sensitive mappings are approved or no explicit approval is required. -->",
+ "UX_FEEDBACK": "Mapping approvals and manual overrides expose inline success, saving, and error feedback per row. -->",
+ "UX_RECOVERY": "Users can replace transformed values manually instead of approving them as-is and can retry failed mutations in place. -->",
+ "UX_REACTIVITY": "Uses $props, $state, and $derived only; no legacy reactive syntax. -->"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "api_module"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewWorkspace"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ },
+ "data_flow": [
+ {
+ "store": "props",
+ "type": "READS_FROM",
+ "line": 17
+ },
+ {
+ "store": "state",
+ "type": "READS_FROM",
+ "line": 17
+ },
+ {
+ "store": "derived",
+ "type": "READS_FROM",
+ "line": 17
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 19
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 20
+ },
+ {
+ "store": "props",
+ "type": "WRITES_TO",
+ "line": 29
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 31
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 32
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 33
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 34
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 35
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 36
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 38
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 41
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 45
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 71
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 74
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 77
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 104
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 109
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 114
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 119
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 214
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 225
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 226
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 255
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 256
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 275
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 295
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 309
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 310
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 322
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 325
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 328
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 342
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 342
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 345
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 348
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 356
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 363
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 368
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 377
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 409
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 414
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 419
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 424
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 432
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 439
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 443
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 444
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 447
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 448
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 455
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 462
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 465
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 469
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 479
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 487
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 495
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 506
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 522
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 530
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 547
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 560
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 569
+ }
+ ]
+ },
+ {
+ "name": "ExecutionMappingReview",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 579,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/dataset-review/ExecutionMappingReview.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "setRowMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resetRowMessage",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 95,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getApprovalLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 102,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getWarningLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getMethodLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "stringifyValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 117,
+ "end_line": 117,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getEffectiveValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 131,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getRowState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 150,
+ "end_line": 150,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "startManualOverride",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 166,
+ "end_line": 166,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cancelManualOverride",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 175,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "normalizeOverrideValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 185,
+ "end_line": 185,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "approveMapping",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 198,
+ "end_line": 198,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "approveAllMappings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 233,
+ "end_line": 233,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "saveManualOverride",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 265,
+ "end_line": 265,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 579 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SourceIntakePanelUxTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 4,
+ "end_line": 161,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset-review, source-intake, ux-tests, validation, recovery",
+ "PURPOSE": "Verify source intake entry paths, validation feedback, and submit payload behavior for US1.",
+ "LAYER": "UI",
+ "UX_STATE": "Rejected -> Invalid source input remains local and exposes recovery guidance.",
+ "TEST_CONTRACT": "SourceIntakePanelProps -> ObservableIntakeUX",
+ "TEST_SCENARIO": "dataset_selection_mode_changes_cta -> Dataset selection path switches CTA and payload source kind.",
+ "TEST_EDGE": "external_fail -> Submit callback failure is rendered inline.",
+ "TEST_INVARIANT": "intake_contract_remains_observable -> VERIFIED_BY: [invalid_superset_link_shows_rejected_state, recognized_superset_link_submits_payload, dataset_selection_mode_changes_cta]"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "SourceIntakePanel"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 4
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "DatasetReviewUs2UxTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 5,
+ "end_line": 412,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset-review, semantics, clarification, ux-tests, field-review",
+ "PURPOSE": "Verify US2 semantic field review and one-question clarification UX contracts.",
+ "LAYER": "UI",
+ "UX_STATE": "Question -> Clarification shows one active question, why-it-matters context, and resumable actions.",
+ "TEST_CONTRACT": "Us2DatasetReviewProps -> ObservableSemanticAndClarificationUx",
+ "TEST_SCENARIO": "clarification_dialog_shows_active_question_and_actions -> Clarification dialog renders one active question with answer and escalation actions.",
+ "TEST_EDGE": "external_fail -> Failed request surfaces inline recovery message.",
+ "TEST_INVARIANT": "us2_components_remain_actionable -> VERIFIED_BY: [semantic_review_surfaces_active_value_and_candidates, clarification_dialog_shows_active_question_and_actions]",
+ "TYPE": "{any} */ (openAssistantChat);"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "SemanticLayerReview"
+ },
+ {
+ "type": "VERIFIES",
+ "target": "ClarificationDialog"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 5
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 5
+ },
+ {
+ "message": "Fractal limit warning: Module length is 408 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 5
+ }
+ ],
+ "score": 0.47500000000000003
+ }
+ },
+ {
+ "name": "DatasetReviewUs3UxTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 5,
+ "end_line": 499,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset-review, execution, mapping, preview, launch, ux-tests",
+ "PURPOSE": "Verify US3 mapping review, Superset preview, and launch confirmation UX contracts.",
+ "LAYER": "UI",
+ "UX_STATE": "Blocked -> Launch panel lists blockers instead of allowing hidden bypass.",
+ "TEST_CONTRACT": "Us3ExecutionProps -> ObservableExecutionUx",
+ "TEST_SCENARIO": "launch_panel_blocks_then_submits_sql_lab_launch -> Launch lists gates first and shows audited handoff after success.",
+ "TEST_EDGE": "invalid_type -> Mixed values stringify without crashing.",
+ "TEST_INVARIANT": "execution_gates_remain_visible -> VERIFIED_BY: [mapping_review_approves_warning_sensitive_row, preview_panel_requests_superset_compilation_and_renders_sql, launch_panel_blocks_then_submits_sql_lab_launch]"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "ExecutionMappingReview"
+ },
+ {
+ "type": "VERIFIES",
+ "target": "CompiledSQLPreview"
+ },
+ {
+ "type": "VERIFIES",
+ "target": "LaunchConfirmationPanel"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 5
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 5
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 5
+ },
+ {
+ "message": "Fractal limit warning: Module length is 495 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 5
+ }
+ ],
+ "score": 0.325
+ }
+ },
+ {
+ "name": "ValidationFindingsPanelUxTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 4,
+ "end_line": 141,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset-review, findings, severity, jump, ux-tests",
+ "PURPOSE": "Verify grouped findings visibility, empty state, and remediation jump behavior for US1.",
+ "LAYER": "UI",
+ "UX_STATE": "Informational -> Informational notes stay readable without competing with blockers.",
+ "TEST_CONTRACT": "FindingsPanelProps -> ObservableFindingsUX",
+ "TEST_SCENARIO": "empty_findings_show_success_state -> Empty list shows ready feedback.",
+ "TEST_EDGE": "external_fail -> Jump callback remains optional.",
+ "TEST_INVARIANT": "findings_groups_remain_actionable -> VERIFIED_BY: [blocking_warning_info_groups_render, jump_action_maps_area_to_workspace_target, empty_findings_show_success_state]"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "ValidationFindingsPanel"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 4
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "Sidebar",
+ "type": "Component",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 335,
+ "tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
+ "COMPLEXITY": "5",
+ "PURPOSE": "Persistent left sidebar with resource categories navigation",
+ "LAYER": "UI",
+ "SEMANTICS": "Navigation",
+ "INVARIANT": "Always shows active category and item",
+ "UX_STATE": "Toggling -> Animation plays for 200ms",
+ "UX_FEEDBACK": "Active item highlighted with different background",
+ "UX_RECOVERY": "Click outside on mobile closes overlay",
+ "TEST_CONTRACT": "Component_Sidebar ->",
+ "TEST_FIXTURE": "idle_state -> {}",
+ "TEST_EDGE": "mobile_open -> shows mobile overlay mask",
+ "TEST_INVARIANT": "navigation -> verifies: [idle_state]"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "sidebar"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9
+ },
+ "data_flow": [
+ {
+ "store": "app",
+ "type": "READS_FROM",
+ "line": 37
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 44
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 45
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 47
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 48
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 49
+ },
+ {
+ "store": "app",
+ "type": "READS_FROM",
+ "line": 50
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 51
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 58
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 65
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 66
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 69
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 70
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 71
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 72
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 91
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 104
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 111
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 171
+ }
+ ]
+ },
+ {
+ "name": "Sidebar",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 335,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/Sidebar.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "withExpandedCategory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "toggleExpandedCategory",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleItemClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 125,
+ "end_line": 125,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleCategoryToggle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 134,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSubItemClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 150,
+ "end_line": 150,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleToggleClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 159,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleOverlayClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 335 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "TopNavbar",
+ "type": "Component",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 575,
+ "tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
+ "COMPLEXITY": "5",
+ "PURPOSE": "Unified top navigation bar with Logo, Search, Activity, and User menu",
+ "LAYER": "UI",
+ "SEMANTICS": "Navigation, UserSession",
+ "INVARIANT": "Always visible on non-login pages",
+ "UX_STATE": "SearchFocused -> Search input expands",
+ "UX_FEEDBACK": "Activity badge shows count of running tasks",
+ "UX_RECOVERY": "Click outside closes dropdowns",
+ "UX_TEST": "ActivityClick -> {click: activity button, expected: task drawer opens}",
+ "TEST_CONTRACT": "Component_TopNavbar ->",
+ "TEST_FIXTURE": "logged_in -> {\"user\": {\"username\": \"admin\"}}",
+ "TEST_EDGE": "network_down -> search fetch fails, handles error state",
+ "TEST_INVARIANT": "ui_consistency -> verifies: [logged_in]"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "activity"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9
+ },
+ "data_flow": [
+ {
+ "store": "app",
+ "type": "READS_FROM",
+ "line": 40
+ },
+ {
+ "store": "app",
+ "type": "READS_FROM",
+ "line": 41
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 42
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 43
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 44
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 50
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 51
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 52
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 53
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 54
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 55
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 56
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 57
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 63
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 66
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 67
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 68
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 69
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 70
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 71
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 84
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 85
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 86
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 87
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 88
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 91
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 94
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 97
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 98
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 235
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 242
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 249
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 256
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 379
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 394
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 406
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 418
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 422
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 465
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 466
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 490
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 491
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 504
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 524
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 542
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 557
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 568
+ }
+ ]
+ },
+ {
+ "name": "TopNavbar",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 575,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/TopNavbar.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "toggleUserMenu",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "closeUserMenu",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleLogout",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 112,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleActivityClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleAssistantClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "hydrateTaskDrawerPreference",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSearchFocus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 146,
+ "end_line": 146,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "clearSearchState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 151,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleDocumentClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 157,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleHamburgerClick",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 167,
+ "end_line": 167,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleGlobalEnvironmentChange",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 172,
+ "end_line": 172,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildSearchResultSections",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "triggerSearch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 263,
+ "end_line": 263,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSearchInput",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 315,
+ "end_line": 315,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "openSearchResult",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 325,
+ "end_line": 325,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSearchKeydown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 338,
+ "end_line": 338,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 575 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -8227,7 +71500,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "page store"
+ "target": "page"
}
],
"children": [],
@@ -8348,8 +71621,12 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 844,
+ "end_line": 854,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"PURPOSE": "Global task drawer for monitoring background operations",
"LAYER": "UI",
@@ -8367,7 +71644,7 @@
"relations": [
{
"type": "BINDS_TO",
- "target": "taskDrawerStore, assistantChatStore, WebSocket"
+ "target": "taskDrawer"
}
],
"children": [
@@ -8376,28 +71653,34 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 430,
- "end_line": 444,
+ "start_line": 436,
+ "end_line": 452,
"tags": {
+ "UX_STATE": "Loading -> Default",
"PURPOSE": "Disconnects the active WebSocket connection",
"PRE": "ws may or may not be initialized",
"POST": "ws is closed and set to null",
"COMPLEXITY": "3"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 430
+ "line_number": 436
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 430
+ "line_number": 436
}
],
"score": 0.5499999999999999
@@ -8408,8 +71691,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 446,
- "end_line": 469,
+ "start_line": 454,
+ "end_line": 477,
"tags": {
"PURPOSE": "Load recent tasks for list mode display",
"PRE": "User is on task drawer or api is ready.",
@@ -8428,8 +71711,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 471,
- "end_line": 484,
+ "start_line": 479,
+ "end_line": 492,
"tags": {
"PURPOSE": "Select a task from list to view details",
"PRE": "task is a valid task object",
@@ -8448,28 +71731,34 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 486,
- "end_line": 503,
+ "start_line": 494,
+ "end_line": 513,
"tags": {
+ "UX_STATE": "Loading -> Default",
"PURPOSE": "Return to task list view from task details",
"PRE": "Drawer is open and activeTaskId is set",
"POST": "Drawer switches to list view and reloads tasks",
"COMPLEXITY": "3"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 486
+ "line_number": 494
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 486
+ "line_number": 494
}
],
"score": 0.5499999999999999
@@ -8482,21 +71771,6 @@
"score": 0.9
},
"data_flow": [
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 40
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 41
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 45
- },
{
"store": "lib",
"type": "READS_FROM",
@@ -8510,32 +71784,27 @@
{
"store": "lib",
"type": "READS_FROM",
- "line": 48
+ "line": 51
},
{
- "store": "state",
- "type": "WRITES_TO",
+ "store": "lib",
+ "type": "READS_FROM",
"line": 52
},
{
- "store": "state",
- "type": "WRITES_TO",
+ "store": "lib",
+ "type": "READS_FROM",
"line": 53
},
{
- "store": "state",
- "type": "WRITES_TO",
+ "store": "lib",
+ "type": "READS_FROM",
"line": 54
},
{
"store": "state",
"type": "WRITES_TO",
- "line": 55
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 56
+ "line": 58
},
{
"store": "state",
@@ -8553,24 +71822,34 @@
"line": 61
},
{
- "store": "derived",
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 62
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 65
+ },
+ {
+ "store": "state",
"type": "WRITES_TO",
"line": 66
},
{
- "store": "derived",
+ "store": "state",
"type": "WRITES_TO",
"line": 67
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 68
+ "line": 72
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 69
+ "line": 73
},
{
"store": "derived",
@@ -8578,204 +71857,214 @@
"line": 74
},
{
- "store": "t",
- "type": "READS_FROM",
- "line": 174
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 75
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 80
},
{
"store": "t",
"type": "READS_FROM",
- "line": 261
+ "line": 180
},
{
"store": "t",
"type": "READS_FROM",
- "line": 261
+ "line": 267
},
{
"store": "t",
"type": "READS_FROM",
- "line": 261
+ "line": 267
},
{
"store": "t",
"type": "READS_FROM",
- "line": 261
+ "line": 267
},
{
"store": "t",
"type": "READS_FROM",
- "line": 273
+ "line": 267
},
{
"store": "t",
"type": "READS_FROM",
- "line": 284
+ "line": 279
},
{
"store": "t",
"type": "READS_FROM",
- "line": 284
+ "line": 290
},
{
"store": "t",
"type": "READS_FROM",
- "line": 284
+ "line": 290
},
{
"store": "t",
"type": "READS_FROM",
- "line": 298
+ "line": 290
},
{
"store": "t",
"type": "READS_FROM",
- "line": 325
+ "line": 304
},
{
"store": "t",
"type": "READS_FROM",
- "line": 336
+ "line": 331
},
{
"store": "t",
"type": "READS_FROM",
- "line": 347
+ "line": 342
},
{
"store": "t",
"type": "READS_FROM",
- "line": 379
+ "line": 353
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 385
},
{
"store": "effect",
"type": "READS_FROM",
- "line": 506
+ "line": 516
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 530
+ "line": 540
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 531
+ "line": 541
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 550
+ "line": 560
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 567
+ "line": 577
},
{
"store": "t",
"type": "READS_FROM",
- "line": 573
+ "line": 583
},
{
"store": "t",
"type": "READS_FROM",
- "line": 573
+ "line": 583
},
{
"store": "t",
"type": "READS_FROM",
- "line": 607
+ "line": 617
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 612
+ "line": 622
},
{
"store": "t",
"type": "READS_FROM",
- "line": 632
+ "line": 642
},
{
"store": "t",
"type": "READS_FROM",
- "line": 656
+ "line": 666
},
{
"store": "t",
"type": "READS_FROM",
- "line": 674
+ "line": 684
},
{
"store": "t",
"type": "READS_FROM",
- "line": 677
+ "line": 687
},
{
"store": "t",
"type": "READS_FROM",
- "line": 685
+ "line": 695
},
{
"store": "t",
"type": "READS_FROM",
- "line": 692
+ "line": 702
},
{
"store": "t",
"type": "READS_FROM",
- "line": 701
+ "line": 711
},
{
"store": "t",
"type": "READS_FROM",
- "line": 705
+ "line": 715
},
{
"store": "t",
"type": "READS_FROM",
- "line": 712
+ "line": 722
},
{
"store": "t",
"type": "READS_FROM",
- "line": 732
+ "line": 742
},
{
"store": "t",
"type": "READS_FROM",
- "line": 738
+ "line": 748
},
{
"store": "t",
"type": "READS_FROM",
- "line": 768
+ "line": 778
},
{
"store": "t",
"type": "READS_FROM",
- "line": 785
+ "line": 795
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 793
+ "line": 803
},
{
"store": "t",
"type": "READS_FROM",
- "line": 794
+ "line": 804
},
{
"store": "t",
"type": "READS_FROM",
- "line": 829
+ "line": 839
},
{
"store": "t",
"type": "READS_FROM",
- "line": 840
+ "line": 850
}
]
},
@@ -8785,7 +72074,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 845,
+ "end_line": 855,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/TaskDrawer.svelte",
"COMPLEXITY": "1",
@@ -8798,8 +72087,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 85,
- "end_line": 85,
+ "start_line": 91,
+ "end_line": 91,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8817,8 +72106,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 90,
- "end_line": 90,
+ "start_line": 96,
+ "end_line": 96,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8836,8 +72125,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 95,
- "end_line": 95,
+ "start_line": 101,
+ "end_line": 101,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8855,8 +72144,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 102,
- "end_line": 102,
+ "start_line": 108,
+ "end_line": 108,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8874,8 +72163,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 113,
+ "start_line": 119,
+ "end_line": 119,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8893,8 +72182,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 122,
+ "start_line": 128,
+ "end_line": 128,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8912,8 +72201,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 131,
- "end_line": 131,
+ "start_line": 137,
+ "end_line": 137,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8931,8 +72220,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 141,
- "end_line": 141,
+ "start_line": 147,
+ "end_line": 147,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8950,8 +72239,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 154,
- "end_line": 154,
+ "start_line": 160,
+ "end_line": 160,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8969,8 +72258,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 161,
- "end_line": 161,
+ "start_line": 167,
+ "end_line": 167,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -8988,25 +72277,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 171,
- "end_line": 171,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "resolveEnvironmentId",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 177,
"end_line": 177,
"tags": {
@@ -9021,13 +72291,32 @@
"score": 1.0
}
},
+ {
+ "name": "resolveEnvironmentId",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 183,
+ "end_line": 183,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "normalizeSupersetBaseUrl",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 187,
- "end_line": 187,
+ "start_line": 193,
+ "end_line": 193,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9045,8 +72334,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 196,
- "end_line": 196,
+ "start_line": 202,
+ "end_line": 202,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9064,8 +72353,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 204,
- "end_line": 204,
+ "start_line": 210,
+ "end_line": 210,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9083,8 +72372,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 219,
- "end_line": 219,
+ "start_line": 225,
+ "end_line": 225,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9102,8 +72391,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 238,
- "end_line": 238,
+ "start_line": 244,
+ "end_line": 244,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9121,8 +72410,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 322,
- "end_line": 322,
+ "start_line": 328,
+ "end_line": 328,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9140,8 +72429,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 344,
- "end_line": 344,
+ "start_line": 350,
+ "end_line": 350,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9159,8 +72448,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 375,
- "end_line": 375,
+ "start_line": 381,
+ "end_line": 381,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9178,8 +72467,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 392,
- "end_line": 392,
+ "start_line": 398,
+ "end_line": 398,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9197,7 +72486,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 845 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 855 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -9206,12 +72495,12 @@
}
},
{
- "name": "frontend.src.lib.components.layout.sidebarNavigation",
+ "name": "SidebarNavigation",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 172,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "navigation, sidebar, rbac, menu, filtering",
@@ -9226,7 +72515,7 @@
},
{
"type": "USED_BY",
- "target": "frontend.src.lib.components.layout.Sidebar"
+ "target": "Sidebar"
}
],
"children": [
@@ -9256,7 +72545,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 26,
- "end_line": 170,
+ "end_line": 176,
"tags": {
"PURPOSE": "Build translated sidebar categories and filter them by RBAC permissions.",
"PRE": "i18nState provides nav labels; user can be null.",
@@ -9272,15 +72561,20 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:SidebarNavigation:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -9289,7 +72583,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 105,
+ "end_line": 106,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/__tests__/test_breadcrumbs.svelte.js",
"COMPLEXITY": "1",
@@ -9302,8 +72596,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 16,
- "end_line": 16,
+ "start_line": 17,
+ "end_line": 17,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9321,8 +72615,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 47,
- "end_line": 47,
+ "start_line": 48,
+ "end_line": 48,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9343,12 +72637,12 @@
}
},
{
- "name": "frontend.src.lib.components.layout.__tests__.sidebarNavigation",
+ "name": "SidebarNavigationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 99,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, sidebar, navigation, rbac, permissions",
@@ -9383,15 +72677,20 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:SidebarNavigationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -9400,19 +72699,30 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 24,
+ "end_line": 27,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Global error page displaying HTTP status and messages",
"LAYER": "UI",
"UX_STATE": "Error -> Displays error code and message with home link"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
}
},
{
@@ -9441,8 +72751,12 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 95,
+ "end_line": 102,
"tags": {
+ "SIDE_EFFECT": "None",
+ "PRE": "Default pre condition",
+ "POST": "Default post condition",
+ "DATA_CONTRACT": "Default state data",
"COMPLEXITY": "5",
"PURPOSE": "Redirect to preferred start page from profile settings with safe dashboards fallback.",
"LAYER": "UI",
@@ -9453,12 +72767,23 @@
"TEST_FIXTURE": "init_state -> {}",
"TEST_INVARIANT": "correct_redirect -> verifies: [init_state]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
+ "valid": false,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.5
}
},
{
@@ -9467,7 +72792,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 95,
+ "end_line": 102,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/+page.svelte",
"COMPLEXITY": "1",
@@ -9480,25 +72805,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 29,
- "end_line": 29,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "resolveStartPagePath",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 36,
"end_line": 36,
"tags": {
@@ -9513,13 +72819,32 @@
"score": 1.0
}
},
+ {
+ "name": "resolveStartPagePath",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "redirectToStartPage",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
+ "start_line": 49,
+ "end_line": 49,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9561,30 +72886,85 @@
}
},
{
- "name": "layout",
+ "name": "RootLayout",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 16,
- "end_line": 100,
+ "start_line": 1,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
- "SEMANTICS": "app-layout, auth-gating, navigation-shell",
- "PURPOSE": "Bind global layout shell and conditional login/full-app rendering.",
- "LAYER": "UI",
- "INVARIANT": "Login route bypasses shell; all other routes are wrapped by ProtectedRoute."
+ "SEMANTICS": "layout, root, navigation, sidebar, toast",
+ "PURPOSE": "Root layout component that provides global UI structure (Sidebar, Navbar, Footer, TaskDrawer, Toasts).",
+ "LAYER": "UI (Layout)",
+ "INVARIANT": "All pages except /login are wrapped in ProtectedRoute."
},
"relations": [
{
- "type": "BINDS_TO",
- "target": "frontend.src.lib.components.layout.Sidebar"
+ "type": "DEPENDS_ON",
+ "target": "Sidebar"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TopNavbar"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Footer"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Toast"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ProtectedRoute"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskDrawer"
+ }
+ ],
+ "children": [
+ {
+ "name": "layout",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 16,
+ "end_line": 102,
+ "tags": {
+ "UX_STATE": "Loading -> Default",
+ "COMPLEXITY": "3",
+ "SEMANTICS": "app-layout, auth-gating, navigation-shell",
+ "PURPOSE": "Bind global layout shell and conditional login/full-app rendering.",
+ "LAYER": "UI",
+ "INVARIANT": "Login route bypasses shell; all other routes are wrapped by ProtectedRoute."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "Sidebar"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.925
+ }
}
],
- "children": [],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:RootLayout:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
@@ -9593,8 +72973,12 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 958,
+ "end_line": 965,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"PURPOSE": "Dataset Hub - Dedicated hub for datasets with mapping progress",
"LAYER": "UI",
@@ -9610,7 +72994,11 @@
"relations": [
{
"type": "BINDS_TO",
- "target": "sidebarStore, taskDrawerStore"
+ "target": "sidebarStore"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "taskDrawerStore"
}
],
"children": [],
@@ -9626,7 +73014,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 958,
+ "end_line": 965,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/datasets/+page.svelte",
"COMPLEXITY": "1",
@@ -9639,8 +73027,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 109,
- "end_line": 109,
+ "start_line": 116,
+ "end_line": 116,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9658,8 +73046,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 165,
- "end_line": 165,
+ "start_line": 172,
+ "end_line": 172,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9677,8 +73065,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 170,
- "end_line": 170,
+ "start_line": 177,
+ "end_line": 177,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9696,25 +73084,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 176,
- "end_line": 176,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "updateSelectionState",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 183,
"end_line": 183,
"tags": {
@@ -9729,13 +73098,32 @@
"score": 1.0
}
},
+ {
+ "name": "updateSelectionState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 190,
+ "end_line": 190,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "handleCheckboxChange",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 193,
- "end_line": 193,
+ "start_line": 200,
+ "end_line": 200,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9753,8 +73141,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 204,
- "end_line": 204,
+ "start_line": 211,
+ "end_line": 211,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9772,8 +73160,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 228,
- "end_line": 228,
+ "start_line": 235,
+ "end_line": 235,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9791,8 +73179,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 239,
- "end_line": 239,
+ "start_line": 246,
+ "end_line": 246,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9810,8 +73198,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 259,
- "end_line": 259,
+ "start_line": 266,
+ "end_line": 266,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9829,8 +73217,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 324,
- "end_line": 324,
+ "start_line": 331,
+ "end_line": 331,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9848,8 +73236,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 358,
- "end_line": 358,
+ "start_line": 365,
+ "end_line": 365,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9867,8 +73255,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 368,
- "end_line": 368,
+ "start_line": 375,
+ "end_line": 375,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9886,8 +73274,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 385,
- "end_line": 385,
+ "start_line": 392,
+ "end_line": 392,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9905,7 +73293,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 958 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 965 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -9914,29 +73302,36 @@
}
},
{
- "name": "DatasetDetail",
+ "name": "DatasetReviewWorkspaceEntry",
"type": "Page",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 1,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 402,
+ "end_line": 544,
"tags": {
- "COMPLEXITY": "5",
- "PURPOSE": "Dataset Detail View - Shows detailed dataset information with columns, SQL, and linked dashboards",
- "LAYER": "UI",
- "INVARIANT": "Always shows dataset details when loaded",
- "UX_STATE": "Error -> Shows error banner with retry button",
- "UX_FEEDBACK": "Clicking linked dashboard navigates to dashboard detail",
- "UX_RECOVERY": "Refresh button reloads dataset details",
- "TEST_CONTRACT": "Page_DatasetDetail ->",
- "TEST_FIXTURE": "init_state -> {\"id\": \"1\"}",
- "TEST_EDGE": "server_error -> shows error block with the refresh button",
- "TEST_INVARIANT": "fetching_detail -> verifies: [init_state]"
+ "COMPLEXITY": "3 -->",
+ "SEMANTICS": "dataset-review, workspace-entry, source-intake, session-bootstrap -->",
+ "PURPOSE": "Entry route for Dataset Review Workspace that allows starting a new resumable review session before navigating to a specific session id route. -->",
+ "LAYER": "UI -->",
+ "UX_STATE": "Error -> Inline error shown while keeping intake values editable. -->",
+ "UX_RECOVERY": "Users can correct invalid input in place and retry without losing environment selection. -->"
},
"relations": [
+ {
+ "type": "CALLS",
+ "target": "fetchApi"
+ },
+ {
+ "type": "CALLS",
+ "target": "postApi"
+ },
{
"type": "BINDS_TO",
- "target": "sidebarStore"
+ "target": "SourceIntakePanel"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "environmentContext"
}
],
"children": [],
@@ -9952,21 +73347,21 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 402,
+ "end_line": 544,
"tags": {
- "PURPOSE": "Auto-generated module for frontend/src/routes/datasets/[id]/+page.svelte",
+ "PURPOSE": "Auto-generated module for frontend/src/routes/datasets/review/+page.svelte",
"COMPLEXITY": "1",
"LAYER": "Unknown"
},
"relations": [],
"children": [
{
- "name": "loadDatasetDetail",
+ "name": "buildSessionUrl",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 52,
+ "start_line": 58,
+ "end_line": 58,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9980,12 +73375,12 @@
}
},
{
- "name": "navigateToDashboard",
+ "name": "formatDateTime",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 73,
+ "start_line": 62,
+ "end_line": 62,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -9999,7 +73394,26 @@
}
},
{
- "name": "goBack",
+ "name": "getSessionMetaValue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 75,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadExistingSessions",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -10018,12 +73432,12 @@
}
},
{
- "name": "getColumnTypeClass",
+ "name": "deleteSession",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 85,
- "end_line": 85,
+ "start_line": 107,
+ "end_line": 107,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -10037,12 +73451,126 @@
}
},
{
- "name": "getMappingProgress",
+ "name": "goToPage",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 109,
- "end_line": 109,
+ "start_line": 121,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSearch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "truncateText",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 133,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getReadinessTone",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 138,
+ "end_line": 138,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getReadinessHint",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 151,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bootstrap",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 167,
+ "end_line": 167,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSourceSubmit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 177,
+ "end_line": 177,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -10060,7 +73588,1685 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 402 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 544 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "DatasetReviewEntryUxTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 5,
+ "end_line": 290,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset-review, workspace-entry, resume, source-intake, ux-tests",
+ "PURPOSE": "Verify dataset review entry route exposes resumable sessions alongside the new session intake flow.",
+ "LAYER": "UI",
+ "UX_STATE": "ResumeError -> inline error and retry action remain visible without removing new session flow.",
+ "TEST_SCENARIO": "submits_new_session_without_regression"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "DatasetReviewWorkspaceEntry:Page"
+ }
+ ],
+ "children": [
+ {
+ "name": "createSessionSummary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 5
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "DatasetReviewEntryUxTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 5,
+ "end_line": 290,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset-review, workspace-entry, resume, source-intake, ux-tests",
+ "PURPOSE": "Verify dataset review entry route exposes resumable sessions alongside the new session intake flow.",
+ "LAYER": "UI",
+ "UX_STATE": "ResumeError -> inline error and retry action remain visible without removing new session flow.",
+ "TEST_SCENARIO": "submits_new_session_without_regression"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "DatasetReviewWorkspaceEntry:Page"
+ }
+ ],
+ "children": [
+ {
+ "name": "createSessionSummary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 5
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "DatasetReviewWorkspace",
+ "type": "Component",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1261,
+ "tags": {
+ "COMPLEXITY": "5 -->",
+ "SEMANTICS": "dataset-review, workspace, session-resume, intake, findings, exports -->",
+ "PURPOSE": "Main dataset review workspace coordinating session state, progressive recovery, semantic review, clarification, preview, and launch UX. -->",
+ "LAYER": "UI -->",
+ "PRE": "Review route has either a resumable session id or receives new intake input from the workspace form. -->",
+ "POST": "Session detail is loaded or created, highest-value next action is visible, and partial recovery remains readable and usable. -->",
+ "SIDE_EFFECT": "Reads and mutates ownership-scoped review session state through dataset orchestration APIs and may navigate to a newly created session route. -->",
+ "DATA_CONTRACT": "Input[route:id|StartSessionRequest] -> Output[SessionDetail|null] -->",
+ "INVARIANT": "Navigation away from dirty session state must require explicit confirmation. -->",
+ "UX_STATE": "Ready -> Preview, warnings, and next-step evidence stay visible without hiding US2 review controls. -->",
+ "UX_FEEDBACK": "Main CTA changes by readiness state and reflects current highest-value next action. -->",
+ "UX_RECOVERY": "Users can save, resume, or reopen an unfinished session without losing context. -->",
+ "UX_REACTIVITY": "Uses Svelte runes for session, readiness, preview, and task state derivation. -->"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "api_module"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "assistantChat"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "taskDrawer"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ },
+ "data_flow": [
+ {
+ "store": "app",
+ "type": "READS_FROM",
+ "line": 23
+ },
+ {
+ "store": "app",
+ "type": "READS_FROM",
+ "line": 24
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 25
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 26
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 27
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 28
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 29
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 30
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 31
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 32
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 33
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 39
+ },
+ {
+ "store": "lib",
+ "type": "READS_FROM",
+ "line": 43
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 48
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 49
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 50
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 51
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 52
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 53
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 54
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 55
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 56
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 57
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 58
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 59
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 60
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 61
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 62
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 64
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 65
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 66
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 71
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 78
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 79
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 80
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 81
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 84
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 85
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 86
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 89
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 90
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 91
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 94
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 97
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 100
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 103
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 104
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 105
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 106
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 109
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 112
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 115
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 116
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 117
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 118
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 120
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 122
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 123
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 127
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 128
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 132
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 133
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 134
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 142
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 149
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 158
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 162
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 167
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 180
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 185
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 190
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 195
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 200
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 214
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 222
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 230
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 238
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 246
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 304
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 305
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 342
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 343
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 352
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 353
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 376
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 377
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 396
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 397
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 417
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 418
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 441
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 592
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 595
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 598
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 601
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 604
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 606
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 609
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 627
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 630
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 633
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 640
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 647
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 651
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 659
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 667
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 712
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 735
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 738
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 741
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 784
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 789
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 803
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 847
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 854
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 860
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 882
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 895
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 906
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 915
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 924
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 935
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 943
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 947
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 964
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 971
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 976
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 988
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 991
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 995
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1007
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1016
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1027
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1031
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1046
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1112
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1118
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1131
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1151
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1156
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1162
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1168
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1174
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1186
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1189
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1199
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1207
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1215
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 1223
+ }
+ ]
+ },
+ {
+ "name": "+page",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 1261,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/routes/datasets/review/[id]/+page.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "normalizeJumpTarget",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 151,
+ "end_line": 151,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getWorkspaceStateLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 157,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getFallbackLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getRecommendedActionLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildImportMilestones",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 170,
+ "end_line": 170,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildRecentActions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 206,
+ "end_line": 206,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildWorkspaceLaunchBlockers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 254,
+ "end_line": 254,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "buildSessionUrl",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 275,
+ "end_line": 275,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadSessionDetail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 279,
+ "end_line": 279,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "loadClarificationState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 312,
+ "end_line": 312,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "bootstrapWorkspace",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 327,
+ "end_line": 327,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSourceSubmit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 334,
+ "end_line": 334,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleResumeSession",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 360,
+ "end_line": 360,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "updateSessionLifecycle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 381,
+ "end_line": 381,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "exportArtifact",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 401,
+ "end_line": 401,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleFindingJump",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 424,
+ "end_line": 424,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "startSummaryEdit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 428,
+ "end_line": 428,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "cancelSummaryEdit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 434,
+ "end_line": 434,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "saveSummaryDraft",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 440,
+ "end_line": 440,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSemanticUpdated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 445,
+ "end_line": 445,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleClarificationUpdated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 473,
+ "end_line": 473,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleExecutionMappingUpdated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 492,
+ "end_line": 492,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handlePreviewUpdated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 521,
+ "end_line": 521,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleLaunchUpdated",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 548,
+ "end_line": 548,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "handleSectionJump",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 556,
+ "end_line": 556,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "primaryActionHandler",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 560,
+ "end_line": 560,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getPrimaryActionCtaLabel",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 590,
+ "end_line": 590,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1261 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "DatasetReviewWorkspaceUxTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 5,
+ "end_line": 731,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset-review, workspace, route, ux-tests, review-state, exports, recovery",
+ "PURPOSE": "Verify US1-safe and US2-integrated dataset review workspace flow evidence for empty, load, import, semantics, clarification, and export behaviors.",
+ "LAYER": "UI",
+ "UX_STATE": "Review -> Workspace exposes summary controls, mounted semantic review, clarification dialog, findings, and export affordances.",
+ "TEST_CONTRACT": "DatasetReviewWorkspaceDependencies -> ObservableWorkspaceUX",
+ "TEST_SCENARIO": "export_feedback_surfaces_success_and_error -> Export action exposes both artifact success detail and failure feedback.",
+ "TEST_EDGE": "external_fail -> API failures surface explicit feedback without collapsing the workspace.",
+ "TEST_INVARIANT": "us1_workspace_remains_readable_and_actionable -> VERIFIED_BY: [empty_state_renders_source_intake, session_load_surfaces_partial_recovery_state, import_submission_transitions_to_review_state, export_feedback_surfaces_success_and_error]"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "DatasetReviewWorkspace"
+ }
+ ],
+ "children": [
+ {
+ "name": "createSessionDetail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 34,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "createClarificationState",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 134,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 5
+ },
+ {
+ "message": "Fractal limit warning: Module length is 727 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 5
+ }
+ ],
+ "score": 0.625
+ }
+ },
+ {
+ "name": "DatasetDetail",
+ "type": "Page",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 408,
+ "tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
+ "COMPLEXITY": "5",
+ "PURPOSE": "Dataset Detail View - Shows detailed dataset information with columns, SQL, and linked dashboards",
+ "LAYER": "UI",
+ "INVARIANT": "Always shows dataset details when loaded",
+ "UX_STATE": "Error -> Shows error banner with retry button",
+ "UX_FEEDBACK": "Clicking linked dashboard navigates to dashboard detail",
+ "UX_RECOVERY": "Refresh button reloads dataset details",
+ "TEST_CONTRACT": "Page_DatasetDetail ->",
+ "TEST_FIXTURE": "init_state -> {\"id\": \"1\"}",
+ "TEST_EDGE": "server_error -> shows error block with the refresh button",
+ "TEST_INVARIANT": "fetching_detail -> verifies: [init_state]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "api_module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "+page",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 408,
+ "tags": {
+ "PURPOSE": "Auto-generated module for frontend/src/routes/datasets/[id]/+page.svelte",
+ "COMPLEXITY": "1",
+ "LAYER": "Unknown"
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "loadDatasetDetail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "navigateToDashboard",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "goBack",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getColumnTypeClass",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 91,
+ "end_line": 91,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "getMappingProgress",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 408 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -10074,8 +75280,12 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 223,
+ "end_line": 229,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"SEMANTICS": "reports, unified, filters, loading, empty, error",
"PURPOSE": "Unified reports page with filtering and resilient UX states for mixed task types.",
@@ -10092,11 +75302,11 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/api/reports.js"
+ "target": "ReportsApi"
},
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/components/reports/ReportsList.svelte"
+ "target": "ReportsList"
}
],
"children": [],
@@ -10107,100 +75317,85 @@
"message": "Missing Mandatory Tag: @UX_REACTIVITY (required for complexity 5)",
"severity": "ERROR",
"line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
}
],
- "score": 0.0
+ "score": 0.43333333333333335
},
"data_flow": [
{
"store": "lib",
"type": "READS_FROM",
- "line": 37
+ "line": 43
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 38
+ "line": 44
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 39
+ "line": 45
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 40
+ "line": 46
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 41
+ "line": 47
},
{
"store": "t",
"type": "READS_FROM",
- "line": 55
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 57
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 58
+ "line": 61
},
{
"store": "t",
"type": "READS_FROM",
"line": 63
},
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 64
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 69
+ },
{
"store": "t",
"type": "WRITES_TO",
- "line": 130
+ "line": 136
},
{
"store": "t",
"type": "READS_FROM",
- "line": 161
+ "line": 167
},
{
"store": "t",
"type": "READS_FROM",
- "line": 168
+ "line": 174
},
{
"store": "t",
"type": "READS_FROM",
- "line": 177
+ "line": 183
},
{
"store": "t",
"type": "READS_FROM",
- "line": 188
+ "line": 194
},
{
"store": "t",
"type": "READS_FROM",
- "line": 188
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 195
+ "line": 194
},
{
"store": "t",
@@ -10210,7 +75405,12 @@
{
"store": "t",
"type": "READS_FROM",
- "line": 206
+ "line": 207
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 212
}
]
},
@@ -10220,7 +75420,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 223,
+ "end_line": 229,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/reports/+page.svelte",
"COMPLEXITY": "1",
@@ -10233,8 +75433,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 70,
+ "start_line": 76,
+ "end_line": 76,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -10252,8 +75452,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 81,
- "end_line": 81,
+ "start_line": 87,
+ "end_line": 87,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -10271,8 +75471,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 98,
- "end_line": 98,
+ "start_line": 104,
+ "end_line": 104,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -10290,8 +75490,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 102,
- "end_line": 102,
+ "start_line": 108,
+ "end_line": 108,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -10309,8 +75509,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 111,
- "end_line": 111,
+ "start_line": 117,
+ "end_line": 117,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -10328,8 +75528,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 118,
- "end_line": 118,
+ "start_line": 124,
+ "end_line": 124,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -10567,12 +75767,12 @@
}
},
{
- "name": "frontend.src.routes.reports.llm.taskid.report_page_contract_test",
+ "name": "ReportPageContractTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 32,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "llm-report, svelte-effect, screenshot-loading, regression-test",
@@ -10592,25 +75792,30 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 17,
- "end_line": 31,
+ "end_line": 32,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Ensure screenshot loading stays untracked from blob-url mutation state.",
"PRE": "Report page source exists.",
"POST": "Contract fails if screenshot loading effect can subscribe to screenshotBlobUrls updates."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 17
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 17
}
@@ -10620,15 +75825,20 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ReportPageContractTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -10637,8 +75847,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 160,
+ "end_line": 162,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "login, auth, ui, form",
"PURPOSE": "Provides the user interface for local and ADFS authentication.",
@@ -10652,7 +75863,7 @@
},
{
"type": "CALLS",
- "target": "api.auth.login"
+ "target": "AuthApi"
}
],
"children": [
@@ -10661,8 +75872,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 77,
+ "start_line": 27,
+ "end_line": 79,
"tags": {
"PURPOSE": "Submits the local login form to the backend.",
"PRE": "Username and password are not empty.",
@@ -10681,8 +75892,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 79,
- "end_line": 86,
+ "start_line": 81,
+ "end_line": 88,
"tags": {
"PURPOSE": "Redirects the user to the ADFS login endpoint."
},
@@ -10698,89 +75909,84 @@
"compliance": {
"valid": true,
"issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.49999999999999994
+ "score": 0.75
},
"data_flow": [
{
"store": "app",
"type": "READS_FROM",
- "line": 17
+ "line": 19
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 18
+ "line": 20
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 33
+ "line": 35
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 63
+ "line": 65
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 68
+ "line": 70
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 71
+ "line": 73
},
{
"store": "auth",
"type": "READS_FROM",
- "line": 89
+ "line": 91
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 97
+ "line": 99
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 107
+ "line": 109
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 118
+ "line": 120
},
{
"store": "t",
"type": "READS_FROM",
- "line": 133
+ "line": 135
},
{
"store": "t",
"type": "READS_FROM",
- "line": 133
+ "line": 135
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 143
+ "line": 145
},
{
"store": "t",
"type": "READS_FROM",
- "line": 152
+ "line": 154
}
]
},
@@ -10807,72 +76013,104 @@
},
{
"name": "StorageReposPage",
- "type": "Page",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 183,
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": null,
"tags": {
- "UX_STATE": "Idle -> Showing dashboard grid with actions.",
- "UX_FEEDBACK": "Toast -> Error messages on fetch failure.",
- "UX_RECOVERY": "Environment Selection -> Switch environment to retry loading."
+ "COMPLEXITY": "3",
+ "SEMANTICS": "git, dashboard, management, ui",
+ "PURPOSE": "Dashboard management page for Git integration (moved from /git).",
+ "LAYER": "UI (Page)",
+ "INVARIANT": "Dashboard grid is always shown when an environment is selected."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "RepositoryDashboardGrid"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "api"
+ }
+ ],
"children": [
{
- "name": "fetchEnvironments",
- "type": "Function",
+ "name": "StorageReposPage",
+ "type": "Page",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 61,
+ "start_line": 12,
+ "end_line": 183,
"tags": {
- "PURPOSE": "Fetches the list of available environments.",
- "PRE": "None.",
- "POST": "environments array is populated, selectedEnvId is set to first env if available."
+ "UX_STATE": "Idle -> Showing dashboard grid with actions.",
+ "UX_FEEDBACK": "Toast -> Error messages on fetch failure.",
+ "UX_RECOVERY": "Environment Selection -> Switch environment to retry loading."
},
"relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "fetchDashboards",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 63,
- "end_line": 98,
- "tags": {
- "PURPOSE": "Fetches dashboards for a specific environment.",
- "PRE": "envId is a valid environment ID.",
- "POST": "dashboards array is populated with metadata for the selected environment."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "filterDashboardsWithRepositories",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 138,
- "tags": {
- "PURPOSE": "Keep only dashboards that already have initialized Git repositories.",
- "PRE": "dashboards list is loaded for selected environment.",
- "POST": "Returns dashboards with status != NO_REPO."
- },
- "relations": [],
- "children": [],
+ "children": [
+ {
+ "name": "fetchEnvironments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Fetches the list of available environments.",
+ "PRE": "None.",
+ "POST": "environments array is populated, selectedEnvId is set to first env if available."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetchDashboards",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 98,
+ "tags": {
+ "PURPOSE": "Fetches dashboards for a specific environment.",
+ "PRE": "envId is a valid environment ID.",
+ "POST": "dashboards array is populated with metadata for the selected environment."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filterDashboardsWithRepositories",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 138,
+ "tags": {
+ "PURPOSE": "Keep only dashboards that already have initialized Git repositories.",
+ "PRE": "dashboards list is loaded for selected environment.",
+ "POST": "Returns dashboards with status != NO_REPO."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
"compliance": {
"valid": true,
"issues": [],
@@ -10881,9 +76119,15 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:StorageReposPage:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
@@ -10892,8 +76136,12 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 2858,
+ "end_line": 2865,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"PURPOSE": "Dashboard Hub - Central hub for managing dashboards with Git status and task actions",
"LAYER": "UI",
@@ -10910,7 +76158,11 @@
"relations": [
{
"type": "BINDS_TO",
- "target": "sidebarStore, taskDrawerStore"
+ "target": "sidebarStore"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "taskDrawerStore"
}
],
"children": [
@@ -10919,8 +76171,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 173,
- "end_line": 186,
+ "start_line": 180,
+ "end_line": 193,
"tags": {
"PURPOSE": "Normalize raw task status to stable lowercase token for UI.",
"PRE": "status can be enum-like string or null.",
@@ -10939,8 +76191,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 188,
- "end_line": 203,
+ "start_line": 195,
+ "end_line": 210,
"tags": {
"PURPOSE": "Normalize validation status to pass/fail/warn/unknown.",
"PRE": "status can be any scalar.",
@@ -10959,8 +76211,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 205,
- "end_line": 219,
+ "start_line": 212,
+ "end_line": 226,
"tags": {
"PURPOSE": "Map validation level to badge class tuple.",
"PRE": "level in pass|fail|warn|unknown.",
@@ -10979,8 +76231,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 221,
- "end_line": 234,
+ "start_line": 228,
+ "end_line": 241,
"tags": {
"PURPOSE": "Map normalized validation level to compact UI label.",
"PRE": "level in pass|fail|warn|unknown.",
@@ -10999,8 +76251,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 236,
- "end_line": 272,
+ "start_line": 243,
+ "end_line": 279,
"tags": {
"PURPOSE": "Normalize owners payload to unique non-empty display labels.",
"PRE": "owners can be null, list of strings, or list of user objects.",
@@ -11019,8 +76271,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 274,
- "end_line": 476,
+ "start_line": 281,
+ "end_line": 483,
"tags": {
"PURPOSE": "Load full dashboard dataset for current environment and hydrate grid projection.",
"PRE": "selectedEnv is not null.",
@@ -11034,8 +76286,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 396,
- "end_line": 408,
+ "start_line": 403,
+ "end_line": 415,
"tags": {
"PURPOSE": "Temporarily disable profile-default dashboard filter for current page context.",
"PRE": "Dashboards list is loaded in dashboards_main context.",
@@ -11054,8 +76306,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 410,
- "end_line": 422,
+ "start_line": 417,
+ "end_line": 429,
"tags": {
"PURPOSE": "Re-enable persisted profile-default filtering after temporary override.",
"PRE": "Current page is in override mode.",
@@ -11081,8 +76333,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 478,
- "end_line": 491,
+ "start_line": 485,
+ "end_line": 498,
"tags": {
"PURPOSE": "Convert ISO timestamp to locale date string.",
"PRE": "value may be null or invalid date string.",
@@ -11101,8 +76353,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 493,
- "end_line": 511,
+ "start_line": 500,
+ "end_line": 518,
"tags": {
"PURPOSE": "Compute stable text label for git state column.",
"PRE": "dashboard has git projection fields.",
@@ -11121,8 +76373,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 513,
- "end_line": 525,
+ "start_line": 520,
+ "end_line": 532,
"tags": {
"PURPOSE": "Compute normalized LLM validation summary label.",
"PRE": "dashboard may have null lastTask.",
@@ -11141,8 +76393,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 527,
- "end_line": 544,
+ "start_line": 534,
+ "end_line": 551,
"tags": {
"PURPOSE": "Resolve comparable/filterable display value for any grid column.",
"PRE": "column belongs to filterable column set.",
@@ -11161,8 +76413,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 546,
- "end_line": 561,
+ "start_line": 553,
+ "end_line": 568,
"tags": {
"PURPOSE": "Build unique sorted value list for a column filter dropdown.",
"PRE": "allDashboards is hydrated.",
@@ -11181,8 +76433,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 563,
- "end_line": 576,
+ "start_line": 570,
+ "end_line": 583,
"tags": {
"PURPOSE": "Apply in-dropdown search over full filter options.",
"PRE": "columnFilterSearch contains search token for column.",
@@ -11201,8 +76453,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 578,
- "end_line": 607,
+ "start_line": 585,
+ "end_line": 614,
"tags": {
"PURPOSE": "Toggle active column filter popover.",
"PRE": "column is valid filter key.",
@@ -11221,8 +76473,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 609,
- "end_line": 627,
+ "start_line": 616,
+ "end_line": 634,
"tags": {
"PURPOSE": "Add/remove specific filter value and reapply projection.",
"PRE": "value comes from option list of the same column.",
@@ -11241,8 +76493,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 629,
- "end_line": 641,
+ "start_line": 636,
+ "end_line": 648,
"tags": {
"PURPOSE": "Reset selected values for one column.",
"PRE": "column is valid filter key.",
@@ -11261,8 +76513,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 643,
- "end_line": 658,
+ "start_line": 650,
+ "end_line": 665,
"tags": {
"PURPOSE": "Select all currently visible values in filter popover.",
"PRE": "visible options computed for current search token.",
@@ -11281,8 +76533,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 660,
- "end_line": 670,
+ "start_line": 667,
+ "end_line": 677,
"tags": {
"PURPOSE": "Update local search token for one filter popover.",
"PRE": "value is text from input.",
@@ -11301,8 +76553,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 672,
- "end_line": 682,
+ "start_line": 679,
+ "end_line": 689,
"tags": {
"PURPOSE": "Determine if column has active selected values.",
"PRE": "column is valid filter key.",
@@ -11321,8 +76573,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 684,
- "end_line": 701,
+ "start_line": 691,
+ "end_line": 708,
"tags": {
"PURPOSE": "Evaluate dashboard row against all active column filters.",
"PRE": "dashboard contains projected values for each filterable column.",
@@ -11341,8 +76593,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 703,
- "end_line": 721,
+ "start_line": 710,
+ "end_line": 728,
"tags": {
"PURPOSE": "Compute stable comparable sort key for chosen column.",
"PRE": "column belongs to sortable set.",
@@ -11361,8 +76613,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 723,
- "end_line": 740,
+ "start_line": 730,
+ "end_line": 747,
"tags": {
"PURPOSE": "Toggle or switch sort order and reapply grid projection.",
"PRE": "column belongs to sortable set.",
@@ -11381,8 +76633,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 742,
- "end_line": 753,
+ "start_line": 749,
+ "end_line": 760,
"tags": {
"PURPOSE": "Return visual indicator for active/inactive sort header.",
"PRE": "column belongs to sortable set.",
@@ -11401,8 +76653,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 755,
- "end_line": 782,
+ "start_line": 762,
+ "end_line": 789,
"tags": {
"PURPOSE": "Apply search + column filters + sort + pagination to grid data.",
"PRE": "allDashboards is current source collection.",
@@ -11430,7 +76682,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 2858,
+ "end_line": 2865,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/dashboards/+page.svelte",
"COMPLEXITY": "1",
@@ -11443,8 +76695,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 158,
- "end_line": 158,
+ "start_line": 165,
+ "end_line": 165,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11462,8 +76714,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 179,
- "end_line": 179,
+ "start_line": 186,
+ "end_line": 186,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11481,8 +76733,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 194,
- "end_line": 194,
+ "start_line": 201,
+ "end_line": 201,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11500,8 +76752,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 211,
- "end_line": 211,
+ "start_line": 218,
+ "end_line": 218,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11519,8 +76771,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 227,
- "end_line": 227,
+ "start_line": 234,
+ "end_line": 234,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11538,8 +76790,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 242,
- "end_line": 242,
+ "start_line": 249,
+ "end_line": 249,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11557,8 +76809,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 282,
- "end_line": 282,
+ "start_line": 289,
+ "end_line": 289,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11576,8 +76828,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 378,
- "end_line": 378,
+ "start_line": 385,
+ "end_line": 385,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11595,25 +76847,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 383,
- "end_line": 383,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "handlePageSizeChange",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 390,
"end_line": 390,
"tags": {
@@ -11628,13 +76861,32 @@
"score": 1.0
}
},
+ {
+ "name": "handlePageSizeChange",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 397,
+ "end_line": 397,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "handleTemporaryShowAll",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 402,
- "end_line": 402,
+ "start_line": 409,
+ "end_line": 409,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11652,8 +76904,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 416,
- "end_line": 416,
+ "start_line": 423,
+ "end_line": 423,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11671,8 +76923,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 425,
- "end_line": 425,
+ "start_line": 432,
+ "end_line": 432,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11690,8 +76942,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 434,
- "end_line": 434,
+ "start_line": 441,
+ "end_line": 441,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11709,8 +76961,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 439,
- "end_line": 439,
+ "start_line": 446,
+ "end_line": 446,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11728,8 +76980,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 444,
- "end_line": 444,
+ "start_line": 451,
+ "end_line": 451,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11747,8 +76999,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 455,
- "end_line": 455,
+ "start_line": 462,
+ "end_line": 462,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11766,8 +77018,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 466,
- "end_line": 466,
+ "start_line": 473,
+ "end_line": 473,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11785,8 +77037,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 484,
- "end_line": 484,
+ "start_line": 491,
+ "end_line": 491,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11804,8 +77056,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 499,
- "end_line": 499,
+ "start_line": 506,
+ "end_line": 506,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11823,8 +77075,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 519,
- "end_line": 519,
+ "start_line": 526,
+ "end_line": 526,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11842,8 +77094,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 533,
- "end_line": 533,
+ "start_line": 540,
+ "end_line": 540,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11861,8 +77113,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 552,
- "end_line": 552,
+ "start_line": 559,
+ "end_line": 559,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11880,8 +77132,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 569,
- "end_line": 569,
+ "start_line": 576,
+ "end_line": 576,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11899,8 +77151,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 584,
- "end_line": 584,
+ "start_line": 591,
+ "end_line": 591,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11918,8 +77170,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 615,
- "end_line": 615,
+ "start_line": 622,
+ "end_line": 622,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11937,8 +77189,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 635,
- "end_line": 635,
+ "start_line": 642,
+ "end_line": 642,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11956,8 +77208,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 649,
- "end_line": 649,
+ "start_line": 656,
+ "end_line": 656,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11975,8 +77227,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 666,
- "end_line": 666,
+ "start_line": 673,
+ "end_line": 673,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -11994,8 +77246,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 678,
- "end_line": 678,
+ "start_line": 685,
+ "end_line": 685,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12013,8 +77265,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 690,
- "end_line": 690,
+ "start_line": 697,
+ "end_line": 697,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12032,8 +77284,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 709,
- "end_line": 709,
+ "start_line": 716,
+ "end_line": 716,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12051,8 +77303,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 729,
- "end_line": 729,
+ "start_line": 736,
+ "end_line": 736,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12070,8 +77322,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 748,
- "end_line": 748,
+ "start_line": 755,
+ "end_line": 755,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12089,8 +77341,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 762,
- "end_line": 762,
+ "start_line": 769,
+ "end_line": 769,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12108,25 +77360,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 785,
- "end_line": 785,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "closeActionDropdown",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 792,
"end_line": 792,
"tags": {
@@ -12141,13 +77374,32 @@
"score": 1.0
}
},
+ {
+ "name": "closeActionDropdown",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 799,
+ "end_line": 799,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "handleAction",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 797,
- "end_line": 797,
+ "start_line": 804,
+ "end_line": 804,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12165,8 +77417,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 837,
- "end_line": 837,
+ "start_line": 844,
+ "end_line": 844,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12184,8 +77436,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 875,
- "end_line": 875,
+ "start_line": 882,
+ "end_line": 882,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12203,8 +77455,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 888,
- "end_line": 888,
+ "start_line": 895,
+ "end_line": 895,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12222,25 +77474,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 906,
- "end_line": 906,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "loadDbMappings",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 913,
"end_line": 913,
"tags": {
@@ -12255,13 +77488,32 @@
"score": 1.0
}
},
+ {
+ "name": "loadDbMappings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 920,
+ "end_line": 920,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "calculateDryRun",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 944,
- "end_line": 944,
+ "start_line": 951,
+ "end_line": 951,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12279,8 +77531,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 995,
- "end_line": 995,
+ "start_line": 1002,
+ "end_line": 1002,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12298,8 +77550,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1041,
- "end_line": 1041,
+ "start_line": 1048,
+ "end_line": 1048,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12317,8 +77569,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1077,
- "end_line": 1077,
+ "start_line": 1084,
+ "end_line": 1084,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12336,8 +77588,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1086,
- "end_line": 1086,
+ "start_line": 1093,
+ "end_line": 1093,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12355,8 +77607,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1095,
- "end_line": 1095,
+ "start_line": 1102,
+ "end_line": 1102,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12374,8 +77626,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1107,
- "end_line": 1107,
+ "start_line": 1114,
+ "end_line": 1114,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12393,8 +77645,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1111,
- "end_line": 1111,
+ "start_line": 1118,
+ "end_line": 1118,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12412,8 +77664,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1120,
- "end_line": 1120,
+ "start_line": 1127,
+ "end_line": 1127,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12431,8 +77683,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1126,
- "end_line": 1126,
+ "start_line": 1133,
+ "end_line": 1133,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12450,8 +77702,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1139,
- "end_line": 1139,
+ "start_line": 1146,
+ "end_line": 1146,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12469,8 +77721,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1176,
- "end_line": 1176,
+ "start_line": 1183,
+ "end_line": 1183,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12488,8 +77740,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1232,
- "end_line": 1232,
+ "start_line": 1239,
+ "end_line": 1239,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12507,8 +77759,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1236,
- "end_line": 1236,
+ "start_line": 1243,
+ "end_line": 1243,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12526,8 +77778,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1249,
- "end_line": 1249,
+ "start_line": 1256,
+ "end_line": 1256,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12545,8 +77797,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1285,
- "end_line": 1285,
+ "start_line": 1292,
+ "end_line": 1292,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12564,8 +77816,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1298,
- "end_line": 1298,
+ "start_line": 1305,
+ "end_line": 1305,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12583,8 +77835,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1326,
- "end_line": 1326,
+ "start_line": 1333,
+ "end_line": 1333,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12602,8 +77854,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1340,
- "end_line": 1340,
+ "start_line": 1347,
+ "end_line": 1347,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12621,8 +77873,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1355,
- "end_line": 1355,
+ "start_line": 1362,
+ "end_line": 1362,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12640,8 +77892,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1376,
- "end_line": 1376,
+ "start_line": 1383,
+ "end_line": 1383,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12659,8 +77911,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1459,
- "end_line": 1459,
+ "start_line": 1466,
+ "end_line": 1466,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -12678,7 +77930,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 2858 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 2865 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -12687,12 +77939,12 @@
}
},
{
- "name": "frontend.src.routes.dashboards.__tests__.dashboard_profile_override_integration",
+ "name": "DashboardProfileOverrideIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 288,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, dashboards, profile-filter, override, restore",
@@ -12747,15 +77999,20 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:DashboardProfileOverrideIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -12775,11 +78032,11 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend.src.lib.components.health.HealthMatrix"
+ "target": "HealthMatrix"
},
{
"type": "CALLS",
- "target": "frontend.src.lib.api.api_module"
+ "target": "api_module"
}
],
"children": [
@@ -13015,12 +78272,12 @@
]
},
{
- "name": "frontend.src.routes.dashboards.health.__tests__.health_page_integration",
+ "name": "HealthPageIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 43,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "health-page, integration-test, slug-link, delete-flow",
@@ -13035,15 +78292,20 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:HealthPageIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -13052,8 +78314,13 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 1056,
+ "end_line": 1063,
"tags": {
+ "SIDE_EFFECT": "None",
+ "UX_STATE": "Loading -> Default",
+ "PRE": "Default pre condition",
+ "POST": "Default post condition",
+ "DATA_CONTRACT": "Default state data",
"COMPLEXITY": "5",
"PURPOSE": "Dashboard Detail View - Overview of charts and datasets linked to a dashboard",
"LAYER": "UI",
@@ -13065,8 +78332,8 @@
},
"relations": [
{
- "type": "BINDS_TO",
- "target": "dashboard detail API"
+ "type": "DEPENDS_ON",
+ "target": "api_module"
}
],
"children": [],
@@ -13082,7 +78349,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 1056,
+ "end_line": 1063,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/dashboards/[id]/+page.svelte",
"COMPLEXITY": "1",
@@ -13095,8 +78362,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 91,
- "end_line": 91,
+ "start_line": 98,
+ "end_line": 98,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13114,8 +78381,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 102,
- "end_line": 102,
+ "start_line": 109,
+ "end_line": 109,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13133,8 +78400,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 121,
- "end_line": 121,
+ "start_line": 128,
+ "end_line": 128,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13152,25 +78419,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 138,
- "end_line": 138,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "loadThumbnail",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 145,
"end_line": 145,
"tags": {
@@ -13185,13 +78433,32 @@
"score": 1.0
}
},
+ {
+ "name": "loadThumbnail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 152,
+ "end_line": 152,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "runBackupTask",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 170,
- "end_line": 170,
+ "start_line": 177,
+ "end_line": 177,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13209,8 +78476,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 199,
- "end_line": 199,
+ "start_line": 206,
+ "end_line": 206,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13228,8 +78495,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 238,
- "end_line": 238,
+ "start_line": 245,
+ "end_line": 245,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13247,25 +78514,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 247,
- "end_line": 247,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "getTaskStatusClasses",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 254,
"end_line": 254,
"tags": {
@@ -13280,13 +78528,32 @@
"score": 1.0
}
},
+ {
+ "name": "getTaskStatusClasses",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 261,
+ "end_line": 261,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "getValidationStatus",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 266,
- "end_line": 266,
+ "start_line": 273,
+ "end_line": 273,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13304,8 +78571,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 283,
- "end_line": 283,
+ "start_line": 290,
+ "end_line": 290,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13323,8 +78590,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 293,
- "end_line": 293,
+ "start_line": 300,
+ "end_line": 300,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13342,8 +78609,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 297,
- "end_line": 297,
+ "start_line": 304,
+ "end_line": 304,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13361,25 +78628,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 301,
- "end_line": 301,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "loadLlmStatus",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 308,
"end_line": 308,
"tags": {
@@ -13394,13 +78642,32 @@
"score": 1.0
}
},
+ {
+ "name": "loadLlmStatus",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 315,
+ "end_line": 315,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "hasGitRepository",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 319,
- "end_line": 319,
+ "start_line": 326,
+ "end_line": 326,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13418,8 +78685,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 325,
- "end_line": 325,
+ "start_line": 332,
+ "end_line": 332,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13437,8 +78704,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 350,
- "end_line": 350,
+ "start_line": 357,
+ "end_line": 357,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13456,8 +78723,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 358,
- "end_line": 358,
+ "start_line": 365,
+ "end_line": 365,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13475,8 +78742,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 364,
- "end_line": 364,
+ "start_line": 371,
+ "end_line": 371,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13494,8 +78761,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 408,
- "end_line": 408,
+ "start_line": 415,
+ "end_line": 415,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13513,8 +78780,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 436,
- "end_line": 436,
+ "start_line": 443,
+ "end_line": 443,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13532,8 +78799,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 458,
- "end_line": 458,
+ "start_line": 465,
+ "end_line": 465,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13551,8 +78818,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 477,
- "end_line": 477,
+ "start_line": 484,
+ "end_line": 484,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13570,8 +78837,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 491,
- "end_line": 491,
+ "start_line": 498,
+ "end_line": 498,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13589,8 +78856,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 505,
- "end_line": 505,
+ "start_line": 512,
+ "end_line": 512,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -13608,7 +78875,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 1056 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 1063 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -13622,8 +78889,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 238,
+ "end_line": 240,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "admin, role-management, rbac",
"PURPOSE": "UI for managing system roles and their permissions.",
@@ -13633,11 +78901,11 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend.src.services.adminService"
+ "target": "adminService"
},
{
"type": "DEPENDS_ON",
- "target": "frontend.src.components.auth.ProtectedRoute"
+ "target": "ProtectedRoute"
}
],
"children": [
@@ -13646,8 +78914,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 57,
+ "start_line": 37,
+ "end_line": 59,
"tags": {
"PURPOSE": "Fetches roles and available permissions.",
"PRE": "Component mounted.",
@@ -13666,8 +78934,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 59,
- "end_line": 72,
+ "start_line": 61,
+ "end_line": 74,
"tags": {
"PURPOSE": "Initializes state for creating a new role.",
"PRE": "None.",
@@ -13686,8 +78954,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 74,
- "end_line": 91,
+ "start_line": 76,
+ "end_line": 93,
"tags": {
"PURPOSE": "Initializes state for editing an existing role.",
"PRE": "role object is provided.",
@@ -13706,8 +78974,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 93,
- "end_line": 115,
+ "start_line": 95,
+ "end_line": 117,
"tags": {
"PURPOSE": "Submits role data (create or update).",
"PRE": "roleForm contains valid data.",
@@ -13726,8 +78994,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 117,
- "end_line": 136,
+ "start_line": 119,
+ "end_line": 138,
"tags": {
"PURPOSE": "Deletes a role after confirmation.",
"PRE": "role object is provided.",
@@ -13744,65 +79012,49 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "lib",
"type": "READS_FROM",
- "line": 16
+ "line": 18
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 51
+ "line": 53
},
{
"store": "t",
"type": "READS_FROM",
- "line": 111
+ "line": 113
},
{
"store": "t",
"type": "READS_FROM",
- "line": 124
+ "line": 126
},
{
"store": "t",
"type": "READS_FROM",
- "line": 132
+ "line": 134
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 145
+ "line": 147
},
{
"store": "t",
"type": "READS_FROM",
- "line": 150
+ "line": 152
},
{
"store": "t",
"type": "READS_FROM",
- "line": 155
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 163
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 164
+ "line": 157
},
{
"store": "t",
@@ -13817,37 +79069,42 @@
{
"store": "t",
"type": "WRITES_TO",
- "line": 184
+ "line": 167
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 185
+ "line": 168
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 186
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 187
},
{
"store": "t",
"type": "READS_FROM",
- "line": 198
+ "line": 200
},
{
"store": "t",
"type": "READS_FROM",
- "line": 198
+ "line": 200
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 205
+ "line": 207
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 209
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 213
+ "line": 211
},
{
"store": "t",
@@ -13857,17 +79114,22 @@
{
"store": "t",
"type": "WRITES_TO",
- "line": 223
+ "line": 217
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 226
+ "line": 225
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 227
+ "line": 228
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 229
}
]
},
@@ -14170,8 +79432,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 363,
+ "end_line": 365,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "admin, adfs, mappings, configuration, logging",
"PURPOSE": "UI for configuring Active Directory Group to local Role mappings for ADFS SSO and logging settings.",
@@ -14181,11 +79444,11 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend.src.services.adminService"
+ "target": "adminService"
},
{
"type": "DEPENDS_ON",
- "target": "frontend.src.components.auth.ProtectedRoute"
+ "target": "ProtectedRoute"
}
],
"children": [
@@ -14194,8 +79457,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 76,
+ "start_line": 47,
+ "end_line": 78,
"tags": {
"PURPOSE": "Fetches AD mappings and roles from the backend to populate the UI.",
"PRE": "Component is mounted and user has active session.",
@@ -14217,8 +79480,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 78,
- "end_line": 111,
+ "start_line": 80,
+ "end_line": 113,
"tags": {
"PURPOSE": "Submits a new AD Group to Role mapping to the backend.",
"PRE": "'newMapping' object contains valid 'ad_group' and 'role_id'.",
@@ -14240,8 +79503,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 138,
+ "start_line": 115,
+ "end_line": 140,
"tags": {
"PURPOSE": "Fetches current logging configuration from the backend.",
"PRE": "Component is mounted and user has active session.",
@@ -14262,8 +79525,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 140,
- "end_line": 168,
+ "start_line": 142,
+ "end_line": 170,
"tags": {
"PURPOSE": "Saves logging configuration to the backend.",
"PRE": "loggingConfig contains valid values.",
@@ -14282,180 +79545,174 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "lib",
"type": "READS_FROM",
- "line": 16
+ "line": 18
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 70
+ "line": 72
},
{
"store": "t",
"type": "READS_FROM",
- "line": 92
+ "line": 94
},
{
"store": "t",
"type": "READS_FROM",
- "line": 105
+ "line": 107
},
{
"store": "t",
"type": "READS_FROM",
- "line": 106
+ "line": 108
},
{
"store": "t",
"type": "READS_FROM",
- "line": 160
+ "line": 162
},
{
"store": "t",
"type": "READS_FROM",
- "line": 161
+ "line": 163
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 180
+ "line": 182
},
{
"store": "t",
"type": "READS_FROM",
- "line": 185
+ "line": 187
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 191
+ "line": 193
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 195
+ "line": 197
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 203
+ "line": 205
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 204
+ "line": 206
},
{
"store": "t",
"type": "READS_FROM",
- "line": 225
+ "line": 227
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 237
+ "line": 239
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 241
+ "line": 243
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 247
+ "line": 249
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 257
+ "line": 259
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 261
+ "line": 263
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 271
+ "line": 273
},
{
"store": "t",
"type": "READS_FROM",
- "line": 283
+ "line": 285
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 286
+ "line": 288
},
{
"store": "t",
"type": "READS_FROM",
- "line": 294
+ "line": 296
},
{
"store": "t",
"type": "READS_FROM",
- "line": 294
+ "line": 296
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 297
+ "line": 299
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 308
+ "line": 310
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 314
+ "line": 316
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 320
+ "line": 322
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 323
+ "line": 325
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 326
+ "line": 328
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 333
+ "line": 335
},
{
"store": "t",
"type": "READS_FROM",
- "line": 345
+ "line": 347
},
{
"store": "t",
"type": "READS_FROM",
- "line": 351
+ "line": 353
}
]
},
@@ -14465,8 +79722,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 315,
+ "end_line": 317,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "admin, llm, settings, provider, configuration",
"PURPOSE": "Admin settings page for LLM provider configuration.",
@@ -14475,146 +79733,140 @@
"relations": [
{
"type": "CALLS",
- "target": "frontend/src/components/llm/ProviderConfig.svelte"
+ "target": "ProviderConfig"
}
],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "t",
"type": "READS_FROM",
- "line": 112
+ "line": 114
},
{
"store": "t",
"type": "READS_FROM",
- "line": 115
+ "line": 117
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 126
- },
- {
- "store": "t",
- "type": "READS_FROM",
"line": 128
},
{
"store": "t",
"type": "READS_FROM",
- "line": 142
+ "line": 130
},
{
"store": "t",
"type": "READS_FROM",
- "line": 145
+ "line": 144
},
{
"store": "t",
"type": "READS_FROM",
- "line": 152
+ "line": 147
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 154
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 159
+ "line": 161
},
{
"store": "t",
"type": "READS_FROM",
- "line": 170
+ "line": 172
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 176
+ "line": 178
},
{
"store": "t",
"type": "READS_FROM",
- "line": 185
+ "line": 187
},
{
"store": "t",
"type": "READS_FROM",
- "line": 188
+ "line": 190
},
{
"store": "t",
"type": "READS_FROM",
- "line": 195
+ "line": 197
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 202
+ "line": 204
},
{
"store": "t",
"type": "READS_FROM",
- "line": 211
+ "line": 213
},
{
"store": "t",
"type": "READS_FROM",
- "line": 219
+ "line": 221
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 226
+ "line": 228
},
{
"store": "t",
"type": "READS_FROM",
- "line": 237
+ "line": 239
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 244
+ "line": 246
},
{
"store": "t",
"type": "READS_FROM",
- "line": 257
+ "line": 259
},
{
"store": "t",
"type": "READS_FROM",
- "line": 260
+ "line": 262
},
{
"store": "t",
"type": "READS_FROM",
- "line": 267
+ "line": 269
},
{
"store": "t",
"type": "READS_FROM",
- "line": 279
+ "line": 281
},
{
"store": "t",
"type": "READS_FROM",
- "line": 291
+ "line": 293
},
{
"store": "t",
"type": "READS_FROM",
- "line": 308
+ "line": 310
}
]
},
@@ -14624,7 +79876,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 315,
+ "end_line": 317,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/admin/settings/llm/+page.svelte",
"COMPLEXITY": "1",
@@ -14637,8 +79889,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 47,
- "end_line": 47,
+ "start_line": 49,
+ "end_line": 49,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -14656,8 +79908,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 61,
- "end_line": 61,
+ "start_line": 63,
+ "end_line": 63,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -14675,8 +79927,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 66,
- "end_line": 66,
+ "start_line": 68,
+ "end_line": 68,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -14694,8 +79946,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 91,
- "end_line": 91,
+ "start_line": 93,
+ "end_line": 93,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -14713,7 +79965,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 315 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 317 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -14726,8 +79978,8 @@
"type": "Component",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 456,
+ "start_line": 41,
+ "end_line": 461,
"tags": {
"PURPOSE": "Orchestrate migration UI workflow and route user actions to backend APIs and task store.",
"PRE": "API client and component dependencies are available; i18n store is initialized.",
@@ -14742,8 +79994,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 120,
+ "start_line": 105,
+ "end_line": 125,
"tags": {
"PURPOSE": "Fetches the list of environments from the API.",
"PRE": "None.",
@@ -14762,8 +80014,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 143,
+ "start_line": 127,
+ "end_line": 148,
"tags": {
"PURPOSE": "Fetches dashboards for the selected source environment.",
"PRE": "envId is a valid environment ID.",
@@ -14783,8 +80035,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 147,
- "end_line": 159,
+ "start_line": 152,
+ "end_line": 164,
"tags": {
"PURPOSE": "Automatically fetch dashboards when the source environment is changed.",
"PRE": "sourceEnvId is not empty.",
@@ -14804,8 +80056,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 161,
- "end_line": 207,
+ "start_line": 166,
+ "end_line": 212,
"tags": {
"PURPOSE": "Fetches databases from both environments and gets suggestions.",
"PRE": "sourceEnvId and targetEnvId must be set.",
@@ -14824,8 +80076,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 209,
- "end_line": 248,
+ "start_line": 214,
+ "end_line": 253,
"tags": {
"PURPOSE": "Saves a mapping to the backend.",
"PRE": "event.detail contains sourceUuid and targetUuid.",
@@ -14844,8 +80096,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 250,
- "end_line": 262,
+ "start_line": 255,
+ "end_line": 267,
"tags": {
"PURPOSE": "Opens the log viewer for a specific task.",
"PRE": "event.detail contains task object.",
@@ -14864,8 +80116,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 264,
- "end_line": 298,
+ "start_line": 269,
+ "end_line": 303,
"tags": {
"PURPOSE": "Reactive logic to show password prompt when a task is awaiting input.",
"PRE": "selectedTask status is AWAITING_INPUT.",
@@ -14878,8 +80130,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 273,
- "end_line": 297,
+ "start_line": 278,
+ "end_line": 302,
"tags": {
"PURPOSE": "Monitor selected task for input requests and trigger password prompt.",
"PRE": "$selectedTask is not null and status is AWAITING_INPUT.",
@@ -14906,8 +80158,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 300,
- "end_line": 321,
+ "start_line": 305,
+ "end_line": 326,
"tags": {
"PURPOSE": "Resumes a migration task with provided passwords.",
"PRE": "event.detail contains passwords.",
@@ -14926,8 +80178,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 323,
- "end_line": 398,
+ "start_line": 328,
+ "end_line": 403,
"tags": {
"PURPOSE": "Initiates the migration process by sending the selection to the backend.",
"PRE": "sourceEnvId and targetEnvId are set and different; at least one dashboard is selected.",
@@ -14948,8 +80200,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 400,
- "end_line": 455,
+ "start_line": 405,
+ "end_line": 460,
"tags": {
"PURPOSE": "Performs a dry-run migration to identify potential risks and changes.",
"PRE": "source/target environments and selected dashboards are valid.",
@@ -14976,38 +80228,13 @@
{
"store": "lib",
"type": "READS_FROM",
- "line": 64
+ "line": 69
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 65
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 69
- },
- {
- "store": "state",
- "type": "WRITES_TO",
"line": 70
},
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 71
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 72
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 73
- },
{
"store": "state",
"type": "WRITES_TO",
@@ -15063,6 +80290,16 @@
"type": "WRITES_TO",
"line": 84
},
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 85
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 86
+ },
{
"store": "state",
"type": "WRITES_TO",
@@ -15078,11 +80315,6 @@
"type": "WRITES_TO",
"line": 89
},
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 91
- },
{
"store": "state",
"type": "WRITES_TO",
@@ -15094,74 +80326,89 @@
"line": 93
},
{
- "store": "effect",
- "type": "READS_FROM",
- "line": 154
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 94
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 96
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 97
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 98
},
{
"store": "effect",
"type": "READS_FROM",
- "line": 280
+ "line": 159
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 285
},
{
"store": "t",
"type": "READS_FROM",
- "line": 316
+ "line": 321
},
{
"store": "t",
"type": "READS_FROM",
- "line": 336
+ "line": 341
},
{
"store": "t",
"type": "READS_FROM",
- "line": 343
+ "line": 348
},
{
"store": "t",
"type": "READS_FROM",
- "line": 350
+ "line": 355
},
{
"store": "t",
"type": "READS_FROM",
- "line": 414
+ "line": 419
},
{
"store": "t",
"type": "READS_FROM",
- "line": 421
+ "line": 426
},
{
"store": "t",
"type": "READS_FROM",
- "line": 428
+ "line": 433
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 472
+ "line": 477
},
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 480
+ "line": 485
},
{
"store": "t",
"type": "READS_FROM",
- "line": 488
+ "line": 493
},
{
"store": "t",
"type": "READS_FROM",
- "line": 495
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 507
+ "line": 500
},
{
"store": "t",
@@ -15170,43 +80417,48 @@
},
{
"store": "t",
- "type": "READS_FROM",
- "line": 522
+ "type": "WRITES_TO",
+ "line": 517
},
{
"store": "t",
"type": "READS_FROM",
- "line": 533
+ "line": 527
},
{
"store": "t",
"type": "READS_FROM",
- "line": 550
+ "line": 538
},
{
"store": "t",
"type": "READS_FROM",
- "line": 567
+ "line": 555
},
{
"store": "t",
"type": "READS_FROM",
- "line": 576
+ "line": 572
},
{
"store": "t",
"type": "READS_FROM",
- "line": 580
+ "line": 581
},
{
"store": "t",
"type": "READS_FROM",
- "line": 596
+ "line": 585
},
{
"store": "t",
"type": "READS_FROM",
- "line": 622
+ "line": 601
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 627
}
]
},
@@ -15215,8 +80467,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 459,
- "end_line": 700,
+ "start_line": 464,
+ "end_line": 705,
"tags": {
"PURPOSE": "Render migration configuration controls, action CTAs, dry-run results, and modal entry points.",
"UX_STATE": "Success -> Dry-run details or TaskRunner content is presented.",
@@ -15230,8 +80482,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 471,
- "end_line": 473,
+ "start_line": 476,
+ "end_line": 478,
"tags": {},
"relations": [],
"children": [],
@@ -15246,8 +80498,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 475,
- "end_line": 477,
+ "start_line": 480,
+ "end_line": 482,
"tags": {},
"relations": [],
"children": [],
@@ -15262,8 +80514,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 479,
- "end_line": 493,
+ "start_line": 484,
+ "end_line": 498,
"tags": {},
"relations": [],
"children": [],
@@ -15278,8 +80530,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 504,
- "end_line": 517,
+ "start_line": 509,
+ "end_line": 522,
"tags": {},
"relations": [],
"children": [],
@@ -15294,8 +80546,8 @@
"type": "Component",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 519,
- "end_line": 538,
+ "start_line": 524,
+ "end_line": 543,
"tags": {},
"relations": [],
"children": [],
@@ -15310,8 +80562,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 540,
- "end_line": 571,
+ "start_line": 545,
+ "end_line": 576,
"tags": {},
"relations": [],
"children": [],
@@ -15326,8 +80578,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 626,
- "end_line": 667,
+ "start_line": 631,
+ "end_line": 672,
"tags": {},
"relations": [],
"children": [],
@@ -15342,8 +80594,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 671,
- "end_line": 697,
+ "start_line": 676,
+ "end_line": 702,
"tags": {
"PURPOSE": "Render overlay components for log viewing and password entry.",
"UX_STATE": "[AwaitingInput] -> PasswordPrompt is visible."
@@ -16470,12 +81722,12 @@
}
},
{
- "name": "frontend.src.routes.profile.__tests__.profile_settings_state_integration",
+ "name": "ProfileSettingsStateIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 269,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, profile, integration, preload, cancel, reload",
@@ -16491,24 +81743,29 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ProfileSettingsStateIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.routes.profile.__tests__.profile_preferences_integration",
+ "name": "ProfilePreferencesIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 273,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, profile, integration, lookup, persistence, fallback",
@@ -16524,29 +81781,49 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ProfilePreferencesIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "frontend.src.routes.profile.__tests__.fixtures.profile_fixtures",
+ "name": "ProfileFixtures",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 23,
+ "end_line": 28,
"tags": {
"COMPLEXITY": "1",
- "PURPOSE": "Shared fixture placeholders for profile page integration tests."
+ "SEMANTICS": "fixtures, profile, ui",
+ "PURPOSE": "Shared deterministic fixture inputs for profile page integration tests.",
+ "INVARIANT": "lookupFailedManualFallback.warning is a hardcoded English string; drift risk if i18n key profile.lookup_error changes without updating this fixture."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfilePageBindAccountFlowTests"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "i18n.profile.lookup_error"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "frontend/src/lib/i18n/index.ts [key:profile.lookup_error"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -16560,8 +81837,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 225,
+ "end_line": 227,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "storage, files, management",
"PURPOSE": "Main page for unified file storage management.",
@@ -16588,8 +81866,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 70,
+ "start_line": 27,
+ "end_line": 72,
"tags": {
"PURPOSE": "Fetches the list of files from the server.",
"PRE": "currentPath is a valid storage path or empty for root.",
@@ -16602,8 +81880,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 54,
+ "start_line": 37,
+ "end_line": 56,
"tags": {
"PURPOSE": "Splits UI path into storage API category and category-local subpath.",
"PRE": "uiPath may be empty or start with backups/repositorys.",
@@ -16629,8 +81907,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 98,
+ "start_line": 74,
+ "end_line": 100,
"tags": {
"PURPOSE": "Handles the file deletion process.",
"PRE": "The event contains valid category and path.",
@@ -16650,8 +81928,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 116,
+ "start_line": 102,
+ "end_line": 118,
"tags": {
"PURPOSE": "Updates the current path and reloads files when navigating into a directory.",
"PRE": "The event contains a valid path string.",
@@ -16671,8 +81949,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 118,
- "end_line": 131,
+ "start_line": 120,
+ "end_line": 133,
"tags": {
"PURPOSE": "Navigates one level up in the directory structure.",
"PRE": "currentPath is not root.",
@@ -16691,8 +81969,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 133,
- "end_line": 150,
+ "start_line": 135,
+ "end_line": 152,
"tags": {
"PURPOSE": "Keeps upload category aligned with the currently viewed top-level folder.",
"PRE": "currentPath can be empty or a slash-delimited path.",
@@ -16710,11 +81988,6 @@
"compliance": {
"valid": true,
"issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
{
"message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
@@ -16726,23 +81999,13 @@
"line_number": 1
}
],
- "score": 0.35000000000000003
+ "score": 0.6
},
"data_flow": [
{
"store": "app",
"type": "READS_FROM",
- "line": 17
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 31
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 32
+ "line": 19
},
{
"store": "state",
@@ -16750,39 +82013,44 @@
"line": 33
},
{
- "store": "t",
- "type": "READS_FROM",
- "line": 65
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 34
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 35
},
{
"store": "t",
"type": "READS_FROM",
- "line": 86
+ "line": 67
},
{
"store": "t",
"type": "READS_FROM",
- "line": 91
+ "line": 88
},
{
"store": "t",
"type": "READS_FROM",
- "line": 95
+ "line": 93
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 97
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 139
+ "line": 141
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 144
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 164
+ "line": 146
},
{
"store": "t",
@@ -16791,18 +82059,23 @@
},
{
"store": "t",
- "type": "READS_FROM",
- "line": 188
+ "type": "WRITES_TO",
+ "line": 168
},
{
"store": "t",
"type": "READS_FROM",
- "line": 188
+ "line": 190
},
{
"store": "t",
"type": "READS_FROM",
- "line": 204
+ "line": 190
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 206
}
]
},
@@ -16888,8 +82161,12 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 1899,
+ "end_line": 1905,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"PURPOSE": "Consolidated Settings Page - All settings in one place with tabbed navigation",
"LAYER": "UI",
@@ -16905,8 +82182,8 @@
},
"relations": [
{
- "type": "BINDS_TO",
- "target": "sidebarStore"
+ "type": "DEPENDS_ON",
+ "target": "sidebar"
}
],
"children": [],
@@ -16922,7 +82199,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 1899,
+ "end_line": 1905,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/settings/+page.svelte",
"COMPLEXITY": "1",
@@ -16935,8 +82212,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 87,
- "end_line": 87,
+ "start_line": 93,
+ "end_line": 93,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -16954,8 +82231,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 106,
- "end_line": 106,
+ "start_line": 112,
+ "end_line": 112,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -16973,8 +82250,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 121,
- "end_line": 121,
+ "start_line": 127,
+ "end_line": 127,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -16992,8 +82269,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 131,
- "end_line": 131,
+ "start_line": 137,
+ "end_line": 137,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17011,8 +82288,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 165,
- "end_line": 165,
+ "start_line": 171,
+ "end_line": 171,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17030,8 +82307,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 180,
- "end_line": 180,
+ "start_line": 186,
+ "end_line": 186,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17049,8 +82326,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 204,
- "end_line": 204,
+ "start_line": 210,
+ "end_line": 210,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17068,8 +82345,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 218,
- "end_line": 218,
+ "start_line": 224,
+ "end_line": 224,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17087,8 +82364,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 225,
- "end_line": 225,
+ "start_line": 231,
+ "end_line": 231,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17106,8 +82383,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 233,
- "end_line": 233,
+ "start_line": 239,
+ "end_line": 239,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17125,8 +82402,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 245,
- "end_line": 245,
+ "start_line": 251,
+ "end_line": 251,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17144,8 +82421,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 263,
- "end_line": 263,
+ "start_line": 269,
+ "end_line": 269,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17163,8 +82440,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 267,
- "end_line": 267,
+ "start_line": 273,
+ "end_line": 273,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17182,8 +82459,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 271,
- "end_line": 271,
+ "start_line": 277,
+ "end_line": 277,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17201,8 +82478,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 276,
- "end_line": 276,
+ "start_line": 282,
+ "end_line": 282,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17220,8 +82497,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 305,
- "end_line": 305,
+ "start_line": 311,
+ "end_line": 311,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17239,8 +82516,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 339,
- "end_line": 339,
+ "start_line": 345,
+ "end_line": 345,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17258,8 +82535,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 352,
- "end_line": 352,
+ "start_line": 358,
+ "end_line": 358,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17277,8 +82554,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 370,
- "end_line": 370,
+ "start_line": 376,
+ "end_line": 376,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17296,8 +82573,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 378,
- "end_line": 378,
+ "start_line": 384,
+ "end_line": 384,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17315,25 +82592,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 383,
- "end_line": 383,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "saveMigrationSettings",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 389,
"end_line": 389,
"tags": {
@@ -17348,13 +82606,32 @@
"score": 1.0
}
},
+ {
+ "name": "saveMigrationSettings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 395,
+ "end_line": 395,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "triggerSyncNow",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 401,
- "end_line": 401,
+ "start_line": 407,
+ "end_line": 407,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17372,8 +82649,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 418,
- "end_line": 418,
+ "start_line": 424,
+ "end_line": 424,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17391,8 +82668,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 429,
- "end_line": 429,
+ "start_line": 435,
+ "end_line": 435,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17410,8 +82687,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 445,
- "end_line": 445,
+ "start_line": 451,
+ "end_line": 451,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17429,8 +82706,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 470,
- "end_line": 470,
+ "start_line": 476,
+ "end_line": 476,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17448,8 +82725,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 490,
- "end_line": 490,
+ "start_line": 496,
+ "end_line": 496,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17467,8 +82744,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 507,
- "end_line": 507,
+ "start_line": 513,
+ "end_line": 513,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17486,8 +82763,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 547,
- "end_line": 547,
+ "start_line": 553,
+ "end_line": 553,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17505,8 +82782,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 564,
- "end_line": 564,
+ "start_line": 570,
+ "end_line": 570,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17524,8 +82801,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 568,
- "end_line": 568,
+ "start_line": 574,
+ "end_line": 574,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17543,7 +82820,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 1899 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 1905 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -17578,80 +82855,81 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 128,
+ "end_line": 132,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"PURPOSE": "Manage global notification provider configurations (SMTP, Telegram, Slack).",
"LAYER": "UI"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.49999999999999994
+ "score": 0.75
},
"data_flow": [
{
"store": "lib",
"type": "READS_FROM",
- "line": 9
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 10
- },
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 11
- },
- {
- "store": "state",
- "type": "WRITES_TO",
"line": 13
},
{
- "store": "state",
- "type": "WRITES_TO",
+ "store": "lib",
+ "type": "READS_FROM",
"line": 14
},
{
- "store": "state",
- "type": "WRITES_TO",
+ "store": "lib",
+ "type": "READS_FROM",
"line": 15
},
{
- "store": "t",
- "type": "READS_FROM",
- "line": 40
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 17
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 18
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 19
},
{
"store": "t",
"type": "READS_FROM",
- "line": 42
+ "line": 44
},
{
"store": "t",
"type": "READS_FROM",
- "line": 54
+ "line": 46
},
{
"store": "t",
"type": "READS_FROM",
- "line": 57
+ "line": 58
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 61
}
]
},
@@ -17661,7 +82939,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 128,
+ "end_line": 132,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/settings/notifications/+page.svelte",
"COMPLEXITY": "1",
@@ -17674,8 +82952,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 21,
+ "start_line": 25,
+ "end_line": 25,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -17693,8 +82971,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 35,
+ "start_line": 39,
+ "end_line": 39,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -18186,12 +83464,12 @@
]
},
{
- "name": "frontend.src.routes.settings.git.__tests__.git_settings_page_ux_test",
+ "name": "GitSettingsPageUxTest",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 209,
+ "end_line": null,
"tags": {
"PURPOSE": "Test UX states and transitions for the Git Settings page",
"UX_STATE": "Editing form state",
@@ -18205,15 +83483,20 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:GitSettingsPageUxTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.85
+ "score": 0.0
}
},
{
@@ -18222,7 +83505,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 282,
+ "end_line": 284,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Settings page for managing validation policies.",
@@ -18230,13 +83513,18 @@
"UX_STATE": "Loading -> Shows a loading spinner while fetching policies.",
"UX_REATIVITY": "State: $state, Derived: $derived."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -18247,38 +83535,28 @@
{
"store": "state",
"type": "READS_FROM",
- "line": 8
+ "line": 10
},
{
"store": "derived",
"type": "READS_FROM",
- "line": 8
+ "line": 10
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 12
+ "line": 14
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 19
+ "line": 21
},
{
"store": "lib",
"type": "READS_FROM",
- "line": 20
- },
- {
- "store": "state",
- "type": "WRITES_TO",
"line": 22
},
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 23
- },
{
"store": "state",
"type": "WRITES_TO",
@@ -18294,10 +83572,20 @@
"type": "WRITES_TO",
"line": 26
},
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 27
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 28
+ },
{
"store": "effect",
"type": "READS_FROM",
- "line": 154
+ "line": 156
}
]
},
@@ -18307,7 +83595,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 282,
+ "end_line": 284,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/routes/settings/automation/+page.svelte",
"COMPLEXITY": "1",
@@ -18320,8 +83608,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 32,
- "end_line": 32,
+ "start_line": 34,
+ "end_line": 34,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -18339,8 +83627,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 89,
+ "start_line": 91,
+ "end_line": 91,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -18358,8 +83646,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 94,
+ "start_line": 96,
+ "end_line": 96,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -18377,8 +83665,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 109,
- "end_line": 109,
+ "start_line": 111,
+ "end_line": 111,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -18396,8 +83684,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 125,
- "end_line": 125,
+ "start_line": 127,
+ "end_line": 127,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -18415,8 +83703,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 136,
- "end_line": 136,
+ "start_line": 138,
+ "end_line": 138,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -18591,7 +83879,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/stores.js"
+ "target": "stores"
}
],
"children": [
@@ -19288,7 +84576,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend.src.lib.api"
+ "target": "api_module"
}
],
"children": [
@@ -19712,23 +85000,28 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 185,
+ "end_line": 187,
"tags": {
- "COMPLEXITY": "3",
"PURPOSE": "Frontend API client for file storage management.",
+ "COMPLEXITY": "3",
"LAYER": "Service",
"RELATION": "DEPENDS_ON -> backend.api.storage",
"SEMANTICS": "storage, api, client"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [
{
"name": "getStorageAuthHeaders",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 29,
+ "start_line": 14,
+ "end_line": 31,
"tags": {
"PURPOSE": "Returns headers with Authorization for storage API calls.",
"RETURNS": "{Object} Headers object with Authorization if token exists.",
@@ -19747,8 +85040,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 44,
+ "start_line": 33,
+ "end_line": 46,
"tags": {
"PURPOSE": "Encodes a storage-relative path preserving slash separators.",
"PARAM": "{string} path - Relative storage path.",
@@ -19767,8 +85060,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 46,
- "end_line": 71,
+ "start_line": 48,
+ "end_line": 73,
"tags": {
"PURPOSE": "Fetches the list of files for a given category and subpath.",
"PARAM": "{string} [path] - Optional subpath filter.",
@@ -19789,8 +85082,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 103,
+ "start_line": 75,
+ "end_line": 105,
"tags": {
"PURPOSE": "Uploads a file to the storage system.",
"PARAM": "{string} [path] - Target subpath.",
@@ -19811,8 +85104,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 105,
- "end_line": 125,
+ "start_line": 107,
+ "end_line": 127,
"tags": {
"PURPOSE": "Deletes a file or directory from storage.",
"PARAM": "{string} path - Relative path of the item.",
@@ -19833,8 +85126,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 127,
- "end_line": 143,
+ "start_line": 129,
+ "end_line": 145,
"tags": {
"PURPOSE": "Returns the URL for downloading a file.",
"PARAM": "{string} path - Relative path of the file.",
@@ -19856,8 +85149,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 145,
- "end_line": 175,
+ "start_line": 147,
+ "end_line": 177,
"tags": {
"PURPOSE": "Downloads a file using authenticated fetch and saves it in browser.",
"PARAM": "{string} [filename] - Optional preferred filename.",
@@ -19876,12 +85169,18 @@
],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
}
},
{
- "name": "frontend.src.services.__tests__.gitService_test",
+ "name": "gitServiceContractTests",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
@@ -19915,7 +85214,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 699,
+ "end_line": 697,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "dashboard, grid, selection, pagination",
@@ -20090,7 +85389,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 223,
- "end_line": 282,
+ "end_line": 280,
"tags": {
"PURPOSE": "Hydrates repository status map for dashboards in repository mode."
},
@@ -20107,8 +85406,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 284,
- "end_line": 336,
+ "start_line": 282,
+ "end_line": 334,
"tags": {
"PURPOSE": "Executes git action for selected dashboards with limited parallelism."
},
@@ -20125,8 +85424,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 338,
- "end_line": 342,
+ "start_line": 336,
+ "end_line": 340,
"tags": {},
"relations": [],
"children": [],
@@ -20141,8 +85440,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 344,
- "end_line": 352,
+ "start_line": 342,
+ "end_line": 350,
"tags": {},
"relations": [],
"children": [],
@@ -20157,8 +85456,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 354,
- "end_line": 358,
+ "start_line": 352,
+ "end_line": 356,
"tags": {},
"relations": [],
"children": [],
@@ -20173,8 +85472,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 360,
- "end_line": 364,
+ "start_line": 358,
+ "end_line": 362,
"tags": {},
"relations": [],
"children": [],
@@ -20189,8 +85488,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 366,
- "end_line": 377,
+ "start_line": 364,
+ "end_line": 375,
"tags": {
"PURPOSE": "Removes selected repositories from storage and binding table."
},
@@ -20207,8 +85506,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 379,
- "end_line": 393,
+ "start_line": 377,
+ "end_line": 391,
"tags": {
"PURPOSE": "Opens Git manager for exactly one selected dashboard."
},
@@ -20225,8 +85524,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 395,
- "end_line": 414,
+ "start_line": 393,
+ "end_line": 412,
"tags": {
"PURPOSE": "Resolves dashboard slug from payload fields.",
"PRE": "Dashboard metadata is provided.",
@@ -20245,8 +85544,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 416,
- "end_line": 429,
+ "start_line": 414,
+ "end_line": 427,
"tags": {
"PURPOSE": "Opens Git manager for provided dashboard metadata."
},
@@ -20263,8 +85562,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 431,
- "end_line": 442,
+ "start_line": 429,
+ "end_line": 440,
"tags": {
"PURPOSE": "Opens Git manager from bulk actions to initialize selected repository."
},
@@ -20281,8 +85580,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 444,
- "end_line": 454,
+ "start_line": 442,
+ "end_line": 452,
"tags": {
"PURPOSE": "Returns sort value for status column based on mode."
},
@@ -20299,8 +85598,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 456,
- "end_line": 467,
+ "start_line": 454,
+ "end_line": 465,
"tags": {
"PURPOSE": "Returns localized label for status column."
},
@@ -20317,8 +85616,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 469,
- "end_line": 490,
+ "start_line": 467,
+ "end_line": 488,
"tags": {
"PURPOSE": "Returns badge style for status column."
},
@@ -20441,127 +85740,127 @@
{
"store": "t",
"type": "READS_FROM",
- "line": 296
+ "line": 294
},
{
"store": "t",
"type": "WRITES_TO",
+ "line": 322
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
"line": 324
},
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 326
- },
{
"store": "t",
"type": "WRITES_TO",
- "line": 346
+ "line": 344
},
{
"store": "t",
"type": "READS_FROM",
- "line": 369
+ "line": 367
},
{
"store": "t",
"type": "READS_FROM",
- "line": 383
+ "line": 381
},
{
"store": "t",
"type": "READS_FROM",
- "line": 422
+ "line": 420
},
{
"store": "t",
"type": "READS_FROM",
- "line": 435
+ "line": 433
},
{
"store": "t",
"type": "READS_FROM",
- "line": 465
+ "line": 463
},
{
"store": "effect",
"type": "READS_FROM",
- "line": 492
+ "line": 490
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 510
+ "line": 508
},
{
"store": "t",
"type": "READS_FROM",
- "line": 523
+ "line": 521
},
{
"store": "t",
"type": "READS_FROM",
- "line": 532
+ "line": 530
},
{
"store": "t",
"type": "READS_FROM",
- "line": 536
+ "line": 534
},
{
"store": "t",
"type": "READS_FROM",
- "line": 540
+ "line": 538
},
{
"store": "t",
"type": "READS_FROM",
- "line": 544
+ "line": 542
},
{
"store": "t",
"type": "READS_FROM",
- "line": 547
+ "line": 545
},
{
"store": "t",
"type": "READS_FROM",
- "line": 551
+ "line": 549
},
{
"store": "t",
"type": "READS_FROM",
- "line": 555
+ "line": 553
},
{
"store": "t",
"type": "READS_FROM",
- "line": 582
+ "line": 580
},
{
"store": "t",
"type": "READS_FROM",
- "line": 593
+ "line": 591
},
{
"store": "t",
"type": "READS_FROM",
- "line": 604
+ "line": 602
},
{
"store": "t",
"type": "READS_FROM",
- "line": 656
+ "line": 654
},
{
"store": "t",
"type": "READS_FROM",
- "line": 674
+ "line": 672
},
{
"store": "t",
"type": "READS_FROM",
- "line": 682
+ "line": 680
}
]
},
@@ -20787,17 +86086,19 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 296,
+ "end_line": 310,
"tags": {
+ "SIDE_EFFECT": "None",
+ "UX_STATE": "Error -> Shows error message with recovery option",
+ "PRE": "Needs a valid taskId to fetch logs for.",
+ "POST": "task logs are displayed and updated in real time.",
+ "DATA_CONTRACT": "Default state data",
"COMPLEXITY": "5",
"SEMANTICS": "task, log, viewer, inline, realtime",
"PURPOSE": "Displays detailed logs for a specific task inline or in a modal using TaskLogPanel.",
"LAYER": "UI",
"INVARIANT": "Real-time logs are always appended without duplicates.",
"TIER": "CRITICAL",
- "PRE": "Needs a valid taskId to fetch logs for.",
- "POST": "task logs are displayed and updated in real time.",
- "UX_STATE": "Error -> Shows error message with recovery option",
"UX_FEEDBACK": "Auto-scroll keeps newest logs visible",
"UX_RECOVERY": "Refresh button re-fetches logs from API",
"TEST_CONTRACT": "Component_TaskLogViewer ->",
@@ -20808,11 +86109,11 @@
"relations": [
{
"type": "USES",
- "target": "frontend/src/services/taskService.js"
+ "target": "taskService"
},
{
"type": "USES",
- "target": "frontend/src/components/tasks/TaskLogPanel.svelte"
+ "target": "TaskLogPanel"
}
],
"children": [
@@ -20821,8 +86122,8 @@
"type": "Action",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 61,
- "end_line": 78,
+ "start_line": 67,
+ "end_line": 84,
"tags": {
"PURPOSE": "Sync real-time logs to the current log list",
"PRE": "None",
@@ -20841,8 +86142,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 80,
- "end_line": 100,
+ "start_line": 86,
+ "end_line": 106,
"tags": {
"PURPOSE": "Fetches logs for a given task ID",
"PRE": "taskId is set",
@@ -20861,8 +86162,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 102,
- "end_line": 110,
+ "start_line": 108,
+ "end_line": 116,
"tags": {
"PURPOSE": "Updates filter conditions for the log viewer",
"PRE": "event contains source and level fields",
@@ -20881,8 +86182,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 112,
- "end_line": 120,
+ "start_line": 118,
+ "end_line": 126,
"tags": {
"PURPOSE": "Refreshes the logs by polling the API",
"PRE": "None",
@@ -20901,20 +86202,37 @@
"type": "Component",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 148,
- "end_line": 186,
+ "start_line": 154,
+ "end_line": 196,
"tags": {
+ "UX_STATE": "Loading -> Default",
"PURPOSE": "Shows inline logs -->",
"LAYER": "UI -->",
"SEMANTICS": "logs, inline -->",
"COMPLEXITY": "3 -->"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 154
+ },
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 154
+ }
+ ],
+ "score": 0.7
}
},
{
@@ -20922,20 +86240,37 @@
"type": "Component",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 188,
- "end_line": 294,
+ "start_line": 198,
+ "end_line": 308,
"tags": {
+ "UX_STATE": "Loading -> Default",
"PURPOSE": "Shows modal logs -->",
"LAYER": "UI -->",
"SEMANTICS": "logs, modal -->",
"COMPLEXITY": "3 -->"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 198
+ },
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 198
+ }
+ ],
+ "score": 0.7
}
}
],
@@ -20959,77 +86294,77 @@
{
"store": "bindable",
"type": "WRITES_TO",
- "line": 45
+ "line": 51
},
{
"store": "props",
"type": "WRITES_TO",
- "line": 51
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 53
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 54
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 55
- },
- {
- "store": "state",
- "type": "WRITES_TO",
"line": 57
},
{
- "store": "derived",
+ "store": "state",
"type": "WRITES_TO",
"line": 59
},
{
- "store": "effect",
- "type": "READS_FROM",
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 60
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 61
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 63
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
"line": 65
},
{
"store": "effect",
"type": "READS_FROM",
- "line": 122
+ "line": 71
+ },
+ {
+ "store": "effect",
+ "type": "READS_FROM",
+ "line": 128
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 162
+ "line": 172
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 174
+ "line": 184
},
{
"store": "t",
"type": "READS_FROM",
- "line": 235
+ "line": 249
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 243
- },
- {
- "store": "t",
- "type": "READS_FROM",
"line": 257
},
{
"store": "t",
"type": "READS_FROM",
- "line": 276
+ "line": 271
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 290
}
]
},
@@ -21143,8 +86478,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 350,
+ "end_line": 352,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "dashboard, grid, selection, pagination",
"PURPOSE": "Displays a grid of dashboards with selection and pagination.",
@@ -21163,8 +86499,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 69,
+ "start_line": 44,
+ "end_line": 71,
"tags": {
"PURPOSE": "Triggers dashboard validation task."
},
@@ -21181,8 +86517,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 110,
- "end_line": 122,
+ "start_line": 112,
+ "end_line": 124,
"tags": {
"PURPOSE": "Toggles sort direction or changes sort column.",
"PRE": "column name is provided.",
@@ -21201,8 +86537,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 124,
- "end_line": 137,
+ "start_line": 126,
+ "end_line": 139,
"tags": {
"PURPOSE": "Handles individual checkbox changes.",
"PRE": "dashboard ID and checked status provided.",
@@ -21221,8 +86557,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 139,
- "end_line": 156,
+ "start_line": 141,
+ "end_line": 158,
"tags": {
"PURPOSE": "Handles select all checkbox.",
"PRE": "checked status provided.",
@@ -21241,8 +86577,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 158,
- "end_line": 167,
+ "start_line": 160,
+ "end_line": 169,
"tags": {
"PURPOSE": "Changes current page.",
"PRE": "page index is provided.",
@@ -21261,8 +86597,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 169,
- "end_line": 178,
+ "start_line": 171,
+ "end_line": 180,
"tags": {
"PURPOSE": "Opens the Git management modal for a dashboard."
},
@@ -21278,34 +86614,19 @@
"compliance": {
"valid": true,
"issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
{
"message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.49999999999999994
+ "score": 0.75
},
"data_flow": [
{
"store": "props",
"type": "WRITES_TO",
- "line": 23
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 28
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 29
+ "line": 25
},
{
"store": "state",
@@ -21325,12 +86646,12 @@
{
"store": "state",
"type": "WRITES_TO",
- "line": 36
+ "line": 33
},
{
"store": "state",
"type": "WRITES_TO",
- "line": 37
+ "line": 34
},
{
"store": "state",
@@ -21343,24 +86664,29 @@
"line": 39
},
{
- "store": "derived",
+ "store": "state",
"type": "WRITES_TO",
- "line": 72
+ "line": 40
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 41
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 78
+ "line": 74
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 92
+ "line": 80
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 99
+ "line": 94
},
{
"store": "derived",
@@ -21370,57 +86696,62 @@
{
"store": "derived",
"type": "WRITES_TO",
- "line": 105
+ "line": 103
+ },
+ {
+ "store": "derived",
+ "type": "WRITES_TO",
+ "line": 107
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 185
+ "line": 187
},
{
"store": "t",
"type": "READS_FROM",
- "line": 207
+ "line": 209
},
{
"store": "t",
"type": "READS_FROM",
- "line": 218
+ "line": 220
},
{
"store": "t",
"type": "READS_FROM",
- "line": 229
+ "line": 231
},
{
"store": "t",
"type": "READS_FROM",
- "line": 238
+ "line": 240
},
{
"store": "t",
"type": "READS_FROM",
- "line": 242
+ "line": 244
},
{
"store": "t",
"type": "READS_FROM",
- "line": 296
+ "line": 298
},
{
"store": "t",
"type": "READS_FROM",
- "line": 308
+ "line": 310
},
{
"store": "t",
"type": "READS_FROM",
- "line": 326
+ "line": 328
},
{
"store": "t",
"type": "READS_FROM",
- "line": 334
+ "line": 336
}
]
},
@@ -21430,8 +86761,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 84,
+ "end_line": 86,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "navbar, navigation, header, layout",
"PURPOSE": "Main navigation bar for the application.",
@@ -21440,101 +86772,81 @@
"relations": [
{
"type": "USES",
- "target": "$app/state"
+ "target": "auth"
}
],
"children": [],
"compliance": {
"valid": true,
"issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.49999999999999994
+ "score": 0.75
},
"data_flow": [
{
"store": "app",
"type": "READS_FROM",
- "line": 7
- },
- {
- "store": "app",
- "type": "READS_FROM",
- "line": 10
- },
- {
- "store": "lib",
- "type": "READS_FROM",
"line": 12
},
- {
- "store": "lib",
- "type": "READS_FROM",
- "line": 13
- },
{
"store": "lib",
"type": "READS_FROM",
"line": 14
},
{
- "store": "app",
+ "store": "lib",
"type": "READS_FROM",
"line": 15
},
{
- "store": "t",
+ "store": "lib",
"type": "READS_FROM",
- "line": 37
+ "line": 16
+ },
+ {
+ "store": "app",
+ "type": "READS_FROM",
+ "line": 17
},
{
"store": "t",
"type": "READS_FROM",
- "line": 43
+ "line": 39
},
{
"store": "t",
"type": "READS_FROM",
- "line": 47
+ "line": 45
},
{
"store": "t",
- "type": "WRITES_TO",
- "line": 50
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 51
+ "type": "READS_FROM",
+ "line": 49
},
{
"store": "t",
"type": "WRITES_TO",
"line": 52
},
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 53
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 54
+ },
{
"store": "t",
"type": "READS_FROM",
- "line": 59
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 62
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 63
+ "line": 61
},
{
"store": "t",
@@ -21545,6 +86857,16 @@
"store": "t",
"type": "WRITES_TO",
"line": 65
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 66
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 67
}
]
},
@@ -21554,7 +86876,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 84,
+ "end_line": 86,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/components/Navbar.svelte",
"COMPLEXITY": "1",
@@ -21567,8 +86889,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 19,
- "end_line": 19,
+ "start_line": 21,
+ "end_line": 21,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -21603,7 +86925,7 @@
"relations": [
{
"type": "USES",
- "target": "frontend/src/lib/stores.js"
+ "target": "stores"
},
{
"type": "USES",
@@ -21882,8 +87204,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 409,
+ "end_line": 411,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "task, runner, logs, websocket",
"PURPOSE": "Connects to a WebSocket to display real-time logs for a running task with filtering support.",
@@ -21892,7 +87215,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "frontend/src/lib/stores.js, frontend/src/components/tasks/TaskLogPanel.svelte"
+ "target": "TaskLogPanel"
}
],
"children": [
@@ -21901,8 +87224,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 143,
+ "start_line": 43,
+ "end_line": 145,
"tags": {
"PURPOSE": "Establishes WebSocket connection with exponential backoff and filter parameters.",
"PRE": "selectedTask must be set in the store.",
@@ -21921,8 +87244,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 145,
- "end_line": 169,
+ "start_line": 147,
+ "end_line": 171,
"tags": {
"PURPOSE": "Handles filter changes and reconnects WebSocket with new parameters.",
"PRE": "event.detail contains source and level filter values.",
@@ -21941,8 +87264,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 171,
- "end_line": 192,
+ "start_line": 173,
+ "end_line": 194,
"tags": {
"PURPOSE": "Fetches available databases from target environment for mapping.",
"PRE": "selectedTask must have to_env parameter set.",
@@ -21961,8 +87284,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 194,
- "end_line": 228,
+ "start_line": 196,
+ "end_line": 230,
"tags": {
"PURPOSE": "Resolves missing database mapping and continues migration.",
"PRE": "event.detail contains sourceDbUuid, targetDbUuid, targetDbName.",
@@ -21981,8 +87304,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 230,
- "end_line": 250,
+ "start_line": 232,
+ "end_line": 252,
"tags": {
"PURPOSE": "Submits passwords and resumes paused migration task.",
"PRE": "event.detail contains passwords object.",
@@ -22001,8 +87324,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 252,
- "end_line": 266,
+ "start_line": 254,
+ "end_line": 268,
"tags": {
"PURPOSE": "Starts timeout timer to detect idle connection.",
"PRE": "connectionStatus is 'connected'.",
@@ -22021,8 +87344,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 268,
- "end_line": 279,
+ "start_line": 270,
+ "end_line": 281,
"tags": {
"PURPOSE": "Resets data timeout timer when new data arrives.",
"PRE": "dataTimeout must be set.",
@@ -22041,8 +87364,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 281,
- "end_line": 308,
+ "start_line": 283,
+ "end_line": 310,
"tags": {
"PURPOSE": "Initializes WebSocket connection when component mounts.",
"PRE": "Component must be mounted in DOM.",
@@ -22061,8 +87384,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 310,
- "end_line": 319,
+ "start_line": 312,
+ "end_line": 321,
"tags": {},
"relations": [],
"children": [],
@@ -22075,25 +87398,14 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "t",
"type": "READS_FROM",
- "line": 139
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 223
+ "line": 141
},
{
"store": "t",
@@ -22103,90 +87415,70 @@
{
"store": "t",
"type": "READS_FROM",
- "line": 245
+ "line": 227
},
{
"store": "t",
"type": "READS_FROM",
"line": 247
},
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 249
+ },
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 324
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 326
- },
- {
- "store": "selectedTask",
- "type": "WRITES_TO",
"line": 326
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 333
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 336
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 339
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 342
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 345
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 348
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 356
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 359
+ "line": 328
},
{
"store": "selectedTask",
"type": "WRITES_TO",
- "line": 359
+ "line": 328
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 360
- },
- {
- "store": "selectedTask",
- "type": "WRITES_TO",
- "line": 360
+ "line": 335
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 361
+ "line": 338
},
{
- "store": "selectedTask",
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 341
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 344
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 347
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 350
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 358
+ },
+ {
+ "store": "t",
"type": "WRITES_TO",
"line": 361
},
@@ -22208,32 +87500,57 @@
{
"store": "t",
"type": "WRITES_TO",
- "line": 365
+ "line": 363
},
{
"store": "selectedTask",
"type": "WRITES_TO",
- "line": 366
+ "line": 363
},
{
"store": "selectedTask",
"type": "WRITES_TO",
- "line": 374
+ "line": 363
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 364
+ },
+ {
+ "store": "selectedTask",
+ "type": "WRITES_TO",
+ "line": 364
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 367
+ },
+ {
+ "store": "selectedTask",
+ "type": "WRITES_TO",
+ "line": 368
+ },
+ {
+ "store": "selectedTask",
+ "type": "WRITES_TO",
+ "line": 376
},
{
"store": "taskLogs",
"type": "WRITES_TO",
- "line": 375
+ "line": 377
},
{
"store": "t",
"type": "READS_FROM",
- "line": 382
+ "line": 384
},
{
"store": "t",
"type": "READS_FROM",
- "line": 387
+ "line": 389
}
]
},
@@ -22505,11 +87822,11 @@
"relations": [
{
"type": "CALLS",
- "target": "api.addEnvironment"
+ "target": "api"
},
{
"type": "CALLS",
- "target": "environmentContext.refreshEnvironmentContext"
+ "target": "environmentContext"
}
],
"children": [],
@@ -22895,13 +88212,17 @@
}
},
{
- "name": "ProtectedRoute.svelte",
+ "name": "ProtectedRouteModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 144,
+ "end_line": 149,
"tags": {
+ "PRE": "Default pre condition",
+ "DATA_CONTRACT": "Default state data",
+ "SIDE_EFFECT": "None",
+ "POST": "Default post condition",
"COMPLEXITY": "5",
"SEMANTICS": "auth, route-guard, permission, redirect, session-validation",
"PURPOSE": "Enforces authenticated and authorized access before protected route content is rendered.",
@@ -22920,19 +88241,19 @@
"relations": [
{
"type": "BINDS_TO",
- "target": "frontend.src.lib.auth.store.auth"
+ "target": "authStore"
},
{
"type": "CALLS",
- "target": "$app/navigation.goto"
+ "target": "goto"
},
{
"type": "DEPENDS_ON",
- "target": "$lib/auth/permissions.hasPermission"
+ "target": "Permissions"
},
{
"type": "CALLS",
- "target": "frontend.src.lib.api.api.fetchApi"
+ "target": "fetchApi"
}
],
"children": [
@@ -22941,8 +88262,8 @@
"type": "Component",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 143,
+ "start_line": 36,
+ "end_line": 148,
"tags": {
"PURPOSE": "Wraps protected slot content with session and permission verification guards.",
"PRE": "auth store and navigation API are available in runtime; component is mounted in a browser context.",
@@ -22957,8 +88278,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 61,
- "end_line": 128,
+ "start_line": 66,
+ "end_line": 133,
"tags": {
"PURPOSE": "Validates session and optional permission gate before allowing protected content render.",
"PRE": "auth store is initialized and can provide token/user state; navigation is available.",
@@ -23006,11 +88327,11 @@
"relations": [
{
"type": "USES",
- "target": "frontend/src/components/tasks/LogFilterBar.svelte"
+ "target": "LogFilterBar"
},
{
"type": "USES",
- "target": "frontend/src/components/tasks/LogEntryRow.svelte"
+ "target": "LogEntryRow"
}
],
"children": [],
@@ -23176,7 +88497,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 140,
+ "end_line": 142,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "log, filter, ui",
@@ -23184,13 +88505,18 @@
"LAYER": "UI",
"UX_STATE": "Active -> Filters applied, clear button visible"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -23198,30 +88524,30 @@
"score": 0.75
},
"data_flow": [
- {
- "store": "bindable",
- "type": "WRITES_TO",
- "line": 13
- },
- {
- "store": "bindable",
- "type": "WRITES_TO",
- "line": 14
- },
{
"store": "bindable",
"type": "WRITES_TO",
"line": 15
},
{
- "store": "props",
+ "store": "bindable",
+ "type": "WRITES_TO",
+ "line": 16
+ },
+ {
+ "store": "bindable",
"type": "WRITES_TO",
"line": 17
},
+ {
+ "store": "props",
+ "type": "WRITES_TO",
+ "line": 19
+ },
{
"store": "derived",
"type": "WRITES_TO",
- "line": 61
+ "line": 63
}
]
},
@@ -23231,7 +88557,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 140,
+ "end_line": 142,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/components/tasks/LogFilterBar.svelte",
"COMPLEXITY": "1",
@@ -23244,8 +88570,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 27,
- "end_line": 27,
+ "start_line": 29,
+ "end_line": 29,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -23263,8 +88589,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 36,
+ "start_line": 38,
+ "end_line": 38,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -23282,8 +88608,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 45,
+ "start_line": 47,
+ "end_line": 47,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -23301,8 +88627,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 54,
- "end_line": 54,
+ "start_line": 56,
+ "end_line": 56,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -23328,7 +88654,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 100,
+ "end_line": 102,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "log, entry, row, ui",
@@ -23337,15 +88663,20 @@
"UX_STATE": "Idle -> Displays log entry with color-coded level and source badges.",
"TYPE": "{Object} log - The log entry object */"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [
{
"name": "formatTime",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 13,
- "end_line": 25,
+ "start_line": 15,
+ "end_line": 27,
"tags": {
"PURPOSE": "Format ISO timestamp to HH:MM:SS */"
},
@@ -23362,7 +88693,7 @@
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -23373,32 +88704,32 @@
{
"store": "props",
"type": "WRITES_TO",
- "line": 11
+ "line": 13
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 27
+ "line": 29
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 44
+ "line": 46
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 47
+ "line": 49
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 52
+ "line": 54
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 53
+ "line": 55
}
]
},
@@ -23443,12 +88774,12 @@
}
},
{
- "name": "frontend.src.components.__tests__.task_log_viewer",
+ "name": "TaskLogViewerTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 170,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, task-log, viewer, mount, components",
@@ -23464,20 +88795,25 @@
"relations": [
{
"type": "VERIFIES",
- "target": "frontend/src/components/TaskLogViewer.svelte"
+ "target": "TaskLogViewer"
}
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:TaskLogViewerTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -23486,8 +88822,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 159,
+ "end_line": 161,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "storage, files, list, table",
"PURPOSE": "Displays a table of files with metadata and actions.",
@@ -23507,8 +88844,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 38,
+ "start_line": 28,
+ "end_line": 40,
"tags": {
"PURPOSE": "Checks if a file object represents a directory.",
"PRE": "file object has mime_type property.",
@@ -23529,8 +88866,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 56,
+ "start_line": 42,
+ "end_line": 58,
"tags": {
"PURPOSE": "Formats file size in bytes into a human-readable string.",
"PRE": "bytes is a number.",
@@ -23551,8 +88888,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 58,
- "end_line": 70,
+ "start_line": 60,
+ "end_line": 72,
"tags": {
"PURPOSE": "Formats an ISO date string into a localized readable format.",
"PRE": "dateStr is a valid date string.",
@@ -23573,8 +88910,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 85,
+ "start_line": 74,
+ "end_line": 87,
"tags": {
"PURPOSE": "Downloads selected file through authenticated API request.",
"PRE": "file is a non-directory storage entry with category/path.",
@@ -23591,30 +88928,14 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "props",
"type": "WRITES_TO",
- "line": 24
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 93
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 94
+ "line": 26
},
{
"store": "t",
@@ -23633,18 +88954,28 @@
},
{
"store": "t",
- "type": "READS_FROM",
- "line": 135
+ "type": "WRITES_TO",
+ "line": 98
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 99
},
{
"store": "t",
"type": "READS_FROM",
- "line": 142
+ "line": 137
},
{
"store": "t",
"type": "READS_FROM",
- "line": 149
+ "line": 144
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 151
}
]
},
@@ -23654,8 +88985,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 137,
+ "end_line": 139,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "storage, upload, files",
"PURPOSE": "Provides a form for uploading files to a specific category.",
@@ -23675,8 +89007,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 58,
+ "start_line": 22,
+ "end_line": 60,
"tags": {
"PURPOSE": "Handles the file upload process.",
"PRE": "A file must be selected in the file input.",
@@ -23695,8 +89027,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 60,
- "end_line": 74,
+ "start_line": 62,
+ "end_line": 76,
"tags": {
"PURPOSE": "Handles the file drop event for drag-and-drop.",
"PARAM": "{DragEvent} event - The drop event."
@@ -23712,75 +89044,64 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "props",
"type": "WRITES_TO",
- "line": 31
- },
- {
- "store": "state",
- "type": "WRITES_TO",
"line": 33
},
{
"store": "state",
"type": "WRITES_TO",
- "line": 34
+ "line": 35
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 36
},
{
"store": "t",
"type": "READS_FROM",
- "line": 49
+ "line": 51
},
{
"store": "t",
"type": "READS_FROM",
- "line": 53
+ "line": 55
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 79
+ "line": 81
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 83
+ "line": 85
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 89
+ "line": 91
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 90
+ "line": 92
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 98
+ "line": 100
},
{
"store": "t",
"type": "READS_FROM",
- "line": 109
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 120
+ "line": 111
},
{
"store": "t",
@@ -23790,7 +89111,12 @@
{
"store": "t",
"type": "WRITES_TO",
- "line": 129
+ "line": 124
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 131
}
]
},
@@ -24682,7 +90008,7 @@
"relations": [
{
"type": "CALLS",
- "target": "frontend/src/services/gitService.js"
+ "target": "GitService"
},
{
"type": "DISPATCHES",
@@ -24998,8 +90324,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 267,
+ "end_line": 269,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"SEMANTICS": "git, commit, modal, version_control, diff",
"PURPOSE": "\u041c\u043e\u0434\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0441 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 (diff).",
@@ -25008,18 +90335,18 @@
"relations": [
{
"type": "CALLS",
- "target": "gitService.commit"
+ "target": "GitService"
},
{
"type": "CALLS",
- "target": "gitService.getStatus"
+ "target": "GitService"
},
{
"type": "CALLS",
- "target": "gitService.getDiff"
+ "target": "GitService"
},
{
- "type": "DISPATCHES",
+ "type": "CALLS",
"target": "commit"
}
],
@@ -25029,8 +90356,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 58,
+ "start_line": 37,
+ "end_line": 60,
"tags": {
"PURPOSE": "Generates a commit message using LLM."
},
@@ -25047,8 +90374,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 60,
- "end_line": 101,
+ "start_line": 62,
+ "end_line": 103,
"tags": {
"PURPOSE": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438 diff.",
"PRE": "dashboardId \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c."
@@ -25066,8 +90393,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 103,
- "end_line": 128,
+ "start_line": 105,
+ "end_line": 130,
"tags": {
"PURPOSE": "\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043a\u043e\u043c\u043c\u0438\u0442 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c.",
"PRE": "message \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c.",
@@ -25084,30 +90411,14 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "props",
"type": "WRITES_TO",
- "line": 22
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 27
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 28
+ "line": 24
},
{
"store": "state",
@@ -25130,44 +90441,49 @@
"line": 32
},
{
- "store": "t",
- "type": "READS_FROM",
- "line": 50
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 33
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 34
},
{
"store": "t",
"type": "READS_FROM",
- "line": 53
+ "line": 52
},
{
"store": "t",
"type": "READS_FROM",
- "line": 96
+ "line": 55
},
{
"store": "t",
"type": "READS_FROM",
- "line": 117
+ "line": 98
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 119
},
{
"store": "effect",
"type": "READS_FROM",
- "line": 130
+ "line": 132
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 143
+ "line": 145
},
{
"store": "t",
"type": "READS_FROM",
- "line": 152
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 160
+ "line": 154
},
{
"store": "t",
@@ -25177,57 +90493,62 @@
{
"store": "t",
"type": "WRITES_TO",
- "line": 169
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 178
+ "line": 164
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 184
+ "line": 171
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 180
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 193
+ "line": 186
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 202
+ "line": 195
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 204
},
{
"store": "t",
"type": "READS_FROM",
- "line": 220
+ "line": 222
},
{
"store": "t",
"type": "READS_FROM",
- "line": 227
+ "line": 229
},
{
"store": "t",
"type": "READS_FROM",
- "line": 236
+ "line": 238
},
{
"store": "t",
"type": "READS_FROM",
- "line": 248
+ "line": 250
},
{
"store": "t",
"type": "READS_FROM",
- "line": 259
+ "line": 261
},
{
"store": "t",
"type": "READS_FROM",
- "line": 259
+ "line": 261
}
]
},
@@ -25250,7 +90571,7 @@
},
{
"type": "CALLS",
- "target": "gitService.checkoutBranch"
+ "target": "GitServiceBranch"
},
{
"type": "CALLS",
@@ -26651,12 +91972,12 @@
}
},
{
- "name": "frontend.src.components.git.__tests__.git_manager_unfinished_merge_integration",
+ "name": "GitManagerUnfinishedMergeIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 43,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "git-manager, unfinished-merge, dialog, integration-test",
@@ -26671,15 +91992,20 @@
],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:GitManagerUnfinishedMergeIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -26688,8 +92014,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 86,
+ "end_line": 88,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"PURPOSE": "UI component for previewing generated dataset documentation before saving.",
"LAYER": "UI",
@@ -26704,60 +92031,54 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "props",
"type": "WRITES_TO",
- "line": 20
+ "line": 22
},
{
"store": "derived",
"type": "WRITES_TO",
- "line": 22
+ "line": 24
},
{
"store": "state",
"type": "WRITES_TO",
- "line": 24
+ "line": 26
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 41
+ "line": 43
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 44
+ "line": 46
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 47
+ "line": 49
},
{
"store": "t",
"type": "READS_FROM",
- "line": 72
+ "line": 74
},
{
"store": "t",
"type": "READS_FROM",
- "line": 79
+ "line": 81
},
{
"store": "t",
"type": "READS_FROM",
- "line": 79
+ "line": 81
}
]
},
@@ -26767,7 +92088,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 86,
+ "end_line": 88,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/components/llm/DocPreview.svelte",
"COMPLEXITY": "1",
@@ -26780,8 +92101,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
+ "start_line": 28,
+ "end_line": 28,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -26807,8 +92128,9 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 422,
+ "end_line": 424,
"tags": {
+ "UX_STATE": "Loading -> Default",
"COMPLEXITY": "3",
"PURPOSE": "UI form for managing LLM provider configurations.",
"LAYER": "UI"
@@ -26816,36 +92138,25 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend/src/api/routes/llm.py"
+ "target": "requestApi"
}
],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.6499999999999999
+ "issues": [],
+ "score": 0.9
},
"data_flow": [
{
"store": "props",
"type": "WRITES_TO",
- "line": 17
- },
- {
- "store": "state",
- "type": "WRITES_TO",
"line": 19
},
{
"store": "state",
"type": "WRITES_TO",
- "line": 20
+ "line": 21
},
{
"store": "state",
@@ -26855,12 +92166,7 @@
{
"store": "state",
"type": "WRITES_TO",
- "line": 31
- },
- {
- "store": "state",
- "type": "WRITES_TO",
- "line": 32
+ "line": 24
},
{
"store": "state",
@@ -26873,144 +92179,154 @@
"line": 34
},
{
- "store": "t",
+ "store": "state",
"type": "WRITES_TO",
- "line": 82
+ "line": 35
+ },
+ {
+ "store": "state",
+ "type": "WRITES_TO",
+ "line": 36
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 91
+ "line": 84
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 93
},
{
"store": "t",
"type": "READS_FROM",
- "line": 95
+ "line": 97
},
{
"store": "t",
"type": "READS_FROM",
- "line": 104
+ "line": 106
},
{
"store": "t",
"type": "READS_FROM",
- "line": 169
+ "line": 171
},
{
"store": "t",
"type": "READS_FROM",
- "line": 181
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 185
+ "line": 183
},
{
"store": "t",
"type": "READS_FROM",
"line": 187
},
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 200
- },
{
"store": "t",
"type": "READS_FROM",
- "line": 209
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 221
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 221
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 229
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 244
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 261
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 275
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 290
+ "line": 189
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 310
+ "line": 202
},
{
"store": "t",
"type": "READS_FROM",
- "line": 331
+ "line": 211
},
{
"store": "t",
"type": "READS_FROM",
- "line": 339
+ "line": 223
},
{
"store": "t",
"type": "READS_FROM",
- "line": 339
+ "line": 223
},
{
"store": "t",
"type": "READS_FROM",
- "line": 346
+ "line": 231
},
{
"store": "t",
"type": "READS_FROM",
- "line": 364
+ "line": 246
},
{
"store": "t",
"type": "READS_FROM",
- "line": 370
+ "line": 263
},
{
"store": "t",
"type": "READS_FROM",
- "line": 371
+ "line": 277
},
{
"store": "t",
"type": "READS_FROM",
- "line": 384
+ "line": 292
+ },
+ {
+ "store": "t",
+ "type": "WRITES_TO",
+ "line": 312
},
{
"store": "t",
"type": "READS_FROM",
- "line": 395
+ "line": 333
},
{
"store": "t",
"type": "READS_FROM",
- "line": 416
+ "line": 341
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 341
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 348
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 366
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 372
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 373
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 386
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 397
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 418
}
]
},
@@ -27020,7 +92336,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 422,
+ "end_line": 424,
"tags": {
"PURPOSE": "Auto-generated module for frontend/src/components/llm/ProviderConfig.svelte",
"COMPLEXITY": "1",
@@ -27033,8 +92349,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 36,
+ "start_line": 38,
+ "end_line": 38,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -27052,8 +92368,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 50,
- "end_line": 50,
+ "start_line": 52,
+ "end_line": 52,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -27071,8 +92387,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 63,
- "end_line": 63,
+ "start_line": 65,
+ "end_line": 65,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -27090,8 +92406,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 79,
- "end_line": 79,
+ "start_line": 81,
+ "end_line": 81,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -27109,8 +92425,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 111,
- "end_line": 111,
+ "start_line": 113,
+ "end_line": 113,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -27128,8 +92444,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 135,
- "end_line": 135,
+ "start_line": 137,
+ "end_line": 137,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -27147,8 +92463,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 165,
- "end_line": 165,
+ "start_line": 167,
+ "end_line": 167,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -27166,7 +92482,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 422 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 424 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -27215,12 +92531,12 @@
}
},
{
- "name": "frontend.src.components.llm.__tests__.provider_config_integration",
+ "name": "ProviderConfigIntegrationTest",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 60,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "llm, provider-config, integration-test, edit-flow, delete-flow",
@@ -27231,7 +92547,7 @@
"relations": [
{
"type": "VERIFIES",
- "target": "frontend/src/components/llm/ProviderConfig.svelte"
+ "target": "ProviderConfig"
}
],
"children": [
@@ -27241,25 +92557,30 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 18,
- "end_line": 59,
+ "end_line": 60,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Validate edit and delete handler wiring plus normalized edit form state mapping.",
"PRE": "ProviderConfig component source exists in expected path.",
"POST": "Contract checks ensure edit click cannot degrade into no-op flow."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "App"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 18
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 18
}
@@ -27269,15 +92590,20 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:ProviderConfigIntegrationTest:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -27336,7 +92662,7 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 328,
+ "end_line": 424,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "app, main, entrypoint, fastapi",
@@ -27355,7 +92681,7 @@
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.api.routes"
+ "target": "ApiRoutesModule"
}
],
"children": [
@@ -27364,8 +92690,8 @@
"type": "Global",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 43,
+ "start_line": 38,
+ "end_line": 47,
"tags": {
"COMPLEXITY": "1",
"SEMANTICS": "app, fastapi, instance",
@@ -27380,17 +92706,15 @@
}
},
{
- "name": "startup_event",
+ "name": "ensure_initial_admin_user",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 45,
- "end_line": 57,
+ "start_line": 49,
+ "end_line": 95,
"tags": {
"COMPLEXITY": "3",
- "PURPOSE": "Handles application startup tasks, such as starting the scheduler.",
- "PRE": "None.",
- "POST": "Scheduler is started."
+ "PURPOSE": "Ensures initial admin user exists when bootstrap env flags are enabled."
},
"relations": [],
"children": [],
@@ -27400,47 +92724,67 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 45
+ "line_number": 49
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 45
+ "line_number": 49
}
],
"score": 0.5499999999999999
}
},
+ {
+ "name": "startup_event",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 97,
+ "end_line": 111,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Handles application startup tasks, such as starting the scheduler.",
+ "PRE": "None.",
+ "POST": "Scheduler is started."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AppDependencies"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
{
"name": "shutdown_event",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 59,
- "end_line": 70,
+ "start_line": 113,
+ "end_line": 125,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Handles application shutdown tasks, such as stopping the scheduler.",
"PRE": "None.",
"POST": "Scheduler is stopped."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AppDependencies"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 59
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 59
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -27448,8 +92792,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 86,
+ "start_line": 127,
+ "end_line": 141,
"tags": {
"PURPOSE": "Configure application-wide middleware (Session, CORS)."
},
@@ -27466,8 +92810,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 104,
+ "start_line": 144,
+ "end_line": 159,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Global exception handler for NetworkError.",
@@ -27488,8 +92832,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 106,
- "end_line": 133,
+ "start_line": 161,
+ "end_line": 189,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Middleware to log incoming HTTP requests and their response status.",
@@ -27497,23 +92841,17 @@
"POST": "Logs request and response details.",
"PARAM": "call_next (Callable) - The next middleware or route handler."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "LoggerModule"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 106
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 106
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -27521,8 +92859,8 @@
"type": "Block",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 135,
- "end_line": 158,
+ "start_line": 191,
+ "end_line": 215,
"tags": {
"PURPOSE": "Register all application API routers."
},
@@ -27539,8 +92877,8 @@
"type": "Action",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 161,
- "end_line": 166,
+ "start_line": 218,
+ "end_line": 223,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Registers all API routers with the FastAPI application.",
@@ -27560,8 +92898,8 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 168,
- "end_line": 286,
+ "start_line": 225,
+ "end_line": 382,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Provides a WebSocket endpoint for real-time log streaming of a task with server-side filtering.",
@@ -27569,29 +92907,28 @@
"POST": "WebSocket connection is managed and logs are streamed until disconnect.",
"SIDE_EFFECT": "Subscribes to TaskManager log queue and broadcasts messages over network.",
"DATA_CONTRACT": "[task_id: str, source: str, level: str] -> [JSON log entry objects]",
+ "INVARIANT": "Every accepted WebSocket subscription is unsubscribed exactly once even when streaming fails or the client disconnects.",
"UX_STATE": "Connecting -> Streaming -> (Disconnected)",
"TEST_CONTRACT": "WebSocketLogStreamApi ->",
"TEST_FIXTURE": "valid_ws_connection -> {\"task_id\": \"test_1\", \"source\": \"plugin\"}",
"TEST_EDGE": "empty_task_logs -> waits for new logs",
"TEST_INVARIANT": "consistent_streaming -> verifies: [valid_ws_connection]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskManagerPackage"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "LoggerModule"
+ }
+ ],
"children": [],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 168
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 168
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.95
}
},
{
@@ -27599,8 +92936,8 @@
"type": "Mount",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 288,
- "end_line": 327,
+ "start_line": 384,
+ "end_line": 423,
"tags": {
"COMPLEXITY": "1",
"SEMANTICS": "static, frontend, spa",
@@ -27613,8 +92950,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 296,
- "end_line": 315,
+ "start_line": 392,
+ "end_line": 411,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Serves the SPA frontend for any path not matched by API routes.",
@@ -27634,8 +92971,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 317,
- "end_line": 326,
+ "start_line": 413,
+ "end_line": 422,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "A simple root endpoint to confirm that the API is running when frontend is missing.",
@@ -27662,8 +92999,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 220,
- "end_line": 220,
+ "start_line": 290,
+ "end_line": 290,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -27681,7 +93018,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 328 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 424 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -27695,7 +93032,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 246,
+ "end_line": 304,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "dependency, injection, singleton, factory, auth, jwt",
@@ -27747,8 +93084,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 60,
+ "start_line": 61,
+ "end_line": 76,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Dependency injector for ConfigManager.",
@@ -27769,8 +93106,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 91,
+ "start_line": 86,
+ "end_line": 104,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Dependency injector for PluginLoader.",
@@ -27791,8 +93128,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 93,
- "end_line": 102,
+ "start_line": 107,
+ "end_line": 122,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Dependency injector for TaskManager.",
@@ -27813,8 +93150,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 113,
+ "start_line": 125,
+ "end_line": 140,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Dependency injector for SchedulerService.",
@@ -27835,8 +93172,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 115,
- "end_line": 124,
+ "start_line": 143,
+ "end_line": 158,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Dependency injector for ResourceService.",
@@ -27857,8 +93194,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 126,
- "end_line": 135,
+ "start_line": 161,
+ "end_line": 172,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Dependency injector for MappingService.",
@@ -27879,8 +93216,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 140,
- "end_line": 147,
+ "start_line": 178,
+ "end_line": 187,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Legacy compatibility shim for CleanReleaseRepository.",
@@ -27899,8 +93236,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 150,
- "end_line": 177,
+ "start_line": 190,
+ "end_line": 219,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Dependency injector for CleanReleaseFacade.",
@@ -27919,13 +93256,18 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 179,
- "end_line": 183,
+ "start_line": 221,
+ "end_line": 226,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "OAuth2 password bearer scheme for token extraction."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "OAuth2PasswordBearer"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -27938,8 +93280,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 185,
- "end_line": 213,
+ "start_line": 229,
+ "end_line": 261,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Dependency for retrieving currently authenticated user from a JWT.",
@@ -27949,23 +93291,17 @@
"PARAM": "db (Session) - Auth database session.",
"RETURN": "User - The authenticated user."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AuthRepository"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 185
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 185
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -27973,8 +93309,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 215,
- "end_line": 244,
+ "start_line": 264,
+ "end_line": 302,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Dependency for checking if the current user has a specific permission.",
@@ -27984,23 +93320,17 @@
"PARAM": "action (str) - The action identifier (READ, EXECUTE, WRITE).",
"RETURN": "User - The authenticated user if permission granted."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AuthRepository"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 215
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -28008,8 +93338,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 225,
- "end_line": 225,
+ "start_line": 275,
+ "end_line": 275,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -28025,8 +93355,14 @@
],
"compliance": {
"valid": true,
- "issues": [],
- "score": 0.925
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 304 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
}
},
{
@@ -28257,16 +93593,16 @@
}
},
{
- "name": "test_dataset_dashboard_relations",
+ "name": "test_dataset_dashboard_relations_script",
"type": "Module",
- "complexity": 1,
+ "complexity": 2,
"tier": "TRIVIAL",
- "start_line": 1,
- "end_line": 166,
+ "start_line": 2,
+ "end_line": 172,
"tags": {
- "PURPOSE": "Auto-generated module for backend/src/scripts/test_dataset_dashboard_relations.py",
- "COMPLEXITY": "1",
- "LAYER": "Unknown"
+ "SEMANTICS": "scripts, test, dataset, dashboard, superset, relations",
+ "PURPOSE": "Tests and inspects dataset-to-dashboard relationship responses from Superset API.",
+ "COMPLEXITY": "2"
},
"relations": [],
"children": [
@@ -28275,8 +93611,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 21,
+ "start_line": 25,
+ "end_line": 25,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -29486,38 +94822,55 @@
}
},
{
- "name": "backend.src.scripts.seed_permissions",
+ "name": "SeedPermissionsScript",
"type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 1,
- "end_line": 118,
+ "end_line": 148,
"tags": {
"SEMANTICS": "setup, database, auth, permissions, seeding",
"PURPOSE": "Populates the auth database with initial system permissions.",
+ "COMPLEXITY": "3",
"LAYER": "Scripts",
"INVARIANT": "Safe to run multiple times (idempotent)."
},
"relations": [
{
- "type": "USES",
- "target": "backend.src.core.database.get_auth_db"
+ "type": "DEPENDS_ON",
+ "target": "AuthSessionLocal"
},
{
- "type": "USES",
- "target": "backend.src.models.auth.Permission"
+ "type": "DEPENDS_ON",
+ "target": "Permission"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Role"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "AuthRepository"
}
],
"children": [
{
"name": "INITIAL_PERMISSIONS",
"type": "Constant",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 24,
- "end_line": 50,
- "tags": {},
- "relations": [],
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 27,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Canonical bootstrap permission tuples seeded into auth storage.",
+ "COMPLEXITY": "3"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SeedPermissionsScript"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -29528,105 +94881,118 @@
{
"name": "seed_permissions",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 113,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 65,
+ "end_line": 143,
"tags": {
"PURPOSE": "Inserts missing permissions into the database.",
+ "COMPLEXITY": "3",
"POST": "All INITIAL_PERMISSIONS exist in the DB."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AuthSessionLocal"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Permission"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Role"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "AuthRepository"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "INITIAL_PERMISSIONS"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
}
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.7
+ "issues": [],
+ "score": 0.925
}
},
{
- "name": "backend.src.scripts.init_auth_db",
+ "name": "InitAuthDbScript",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 45,
+ "end_line": 55,
"tags": {
"SEMANTICS": "setup, database, auth, migration",
"PURPOSE": "Initializes the auth database and creates the necessary tables.",
+ "COMPLEXITY": "2",
"LAYER": "Scripts",
"INVARIANT": "Safe to run multiple times (idempotent)."
},
"relations": [
{
"type": "CALLS",
- "target": "backend.src.core.database.init_db"
+ "target": "init_db"
+ },
+ {
+ "type": "CALLS",
+ "target": "ensure_encryption_key"
+ },
+ {
+ "type": "CALLS",
+ "target": "seed_permissions"
}
],
"children": [
{
"name": "run_init",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 40,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 27,
+ "end_line": 50,
"tags": {
"PURPOSE": "Main entry point for the initialization script.",
+ "COMPLEXITY": "3",
"POST": "auth.db is initialized with the correct schema and seeded permissions."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "ensure_encryption_key"
+ },
+ {
+ "type": "CALLS",
+ "target": "init_db"
+ },
+ {
+ "type": "CALLS",
+ "target": "seed_permissions"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -29784,6 +95150,311 @@
"score": 0.775
}
},
+ {
+ "name": "DatasetReviewSchemas",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 364,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset_review, schemas, pydantic, session, profile, findings",
+ "PURPOSE": "Defines API schemas for the dataset review orchestration flow.",
+ "LAYER": "API"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewModels"
+ }
+ ],
+ "children": [
+ {
+ "name": "SessionCollaboratorDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 57,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DatasetProfileDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 81,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ValidationFindingDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 100,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticSourceDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 117,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticCandidateDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 119,
+ "end_line": 135,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticFieldEntryDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 137,
+ "end_line": 161,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ImportedFilterDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 163,
+ "end_line": 181,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "TemplateVariableDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 183,
+ "end_line": 198,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ExecutionMappingDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 200,
+ "end_line": 220,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationOptionDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 222,
+ "end_line": 233,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationAnswerDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 235,
+ "end_line": 248,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationQuestionDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 250,
+ "end_line": 267,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationSessionDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 269,
+ "end_line": 285,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "CompiledPreviewDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 287,
+ "end_line": 302,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DatasetRunContextDto",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 304,
+ "end_line": 323,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionSummary",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 325,
+ "end_line": 344,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionDetail",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 346,
+ "end_line": 362,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 364 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
{
"name": "backend.src.schemas.settings",
"type": "Module",
@@ -31075,29 +96746,39 @@
}
},
{
- "name": "backend.src.schemas.__tests__.test_settings_and_health_schemas",
+ "name": "TestSettingsAndHealthSchemas",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 84,
+ "end_line": 88,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Regression tests for settings and health schema contracts updated in 026 fix batch."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
"children": [
{
"name": "test_validation_policy_create_accepts_structured_custom_channels",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 33,
+ "start_line": 13,
+ "end_line": 35,
"tags": {
"PURPOSE": "Ensure policy schema accepts structured custom channel objects with type/target fields."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSettingsAndHealthSchemas"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -31110,12 +96791,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 52,
+ "start_line": 38,
+ "end_line": 55,
"tags": {
"PURPOSE": "Ensure legacy list[str] custom channel payload is rejected by typed channel contract."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSettingsAndHealthSchemas"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -31128,12 +96814,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 81,
+ "start_line": 58,
+ "end_line": 85,
"tags": {
"PURPOSE": "Verify strict grouped regex only accepts PASS/WARN/FAIL/UNKNOWN exact statuses."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSettingsAndHealthSchemas"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -31156,7 +96847,7 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -31311,12 +97002,12 @@
}
},
{
- "name": "backend.src.core.superset_client",
+ "name": "SupersetClientModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 1186,
+ "end_line": 2276,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "superset, api, client, rest, http, dashboard, dataset, import, export",
@@ -31327,22 +97018,18 @@
},
"relations": [
{
- "type": "USES",
- "target": "backend.src.core.utils.network.APIClient"
- },
- {
- "type": "USES",
- "target": "backend.src.core.config_models.Environment"
+ "type": "DEPENDS_ON",
+ "target": "APIClient.__init__"
}
],
"children": [
{
- "name": "backend.src.core.superset_client.SupersetClient",
+ "name": "SupersetClient",
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 27,
- "end_line": 1184,
+ "start_line": 30,
+ "end_line": 2274,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u041a\u043b\u0430\u0441\u0441-\u043e\u0431\u0451\u0440\u0442\u043a\u0430 \u043d\u0430\u0434 Superset REST API, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430\u043c\u0438 \u0438 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u043c\u0438."
@@ -31350,21 +97037,17 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.utils.network.APIClient"
- },
- {
- "type": "DEPENDS_ON",
- "target": "backend.src.core.config_models.Environment"
+ "target": "APIClient"
}
],
"children": [
{
- "name": "backend.src.core.superset_client.SupersetClient.__init__",
+ "name": "SupersetClient.__init__",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 33,
- "end_line": 60,
+ "start_line": 35,
+ "end_line": 65,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442.",
@@ -31372,48 +97055,14 @@
"POST": "\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b `env` \u0438 `network` \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0438 \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0440\u0430\u0431\u043e\u0442\u0435.",
"DATA_CONTRACT": "Input[Environment] -> self.network[APIClient]"
},
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 33
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 33
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 33
- }
- ],
- "score": 0.4
- }
- },
- {
- "name": "backend.src.core.superset_client.SupersetClient.authenticate",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 62,
- "end_line": 72,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Authenticates the client using the configured credentials.",
- "PRE": "self.network must be initialized with valid auth configuration.",
- "POST": "Client is authenticated and tokens are stored.",
- "DATA_CONTRACT": "None -> Output[Dict[str, str]]"
- },
"relations": [
{
- "type": "CALLS",
- "target": "self.network.authenticate"
+ "type": "DEPENDS_ON",
+ "target": "Environment"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "APIClient.__init__"
}
],
"children": [],
@@ -31424,12 +97073,39 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.headers",
+ "name": "SupersetClient.authenticate",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 67,
+ "end_line": 78,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Authenticates the client using the configured credentials.",
+ "PRE": "self.network must be initialized with valid auth configuration.",
+ "POST": "Client is authenticated and tokens are stored.",
+ "DATA_CONTRACT": "None -> Output[Dict[str, str]]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "APIClient.authenticate"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetClient.headers",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 83,
+ "start_line": 81,
+ "end_line": 90,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c.",
@@ -31445,12 +97121,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dashboards",
+ "name": "SupersetClient.get_dashboards",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 87,
- "end_line": 119,
+ "start_line": 94,
+ "end_line": 130,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e.",
@@ -31461,7 +97137,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self._fetch_all_pages"
+ "target": "_fetch_all_pages"
}
],
"children": [],
@@ -31472,12 +97148,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dashboards_page",
+ "name": "SupersetClient.get_dashboards_page",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 121,
- "end_line": 156,
+ "start_line": 132,
+ "end_line": 170,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches a single dashboards page from Superset without iterating all pages.",
@@ -31488,7 +97164,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.request"
+ "target": "request"
}
],
"children": [],
@@ -31499,12 +97175,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dashboards_summary",
+ "name": "SupersetClient.get_dashboards_summary",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 158,
- "end_line": 241,
+ "start_line": 172,
+ "end_line": 260,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches dashboard metadata optimized for the grid.",
@@ -31515,7 +97191,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.get_dashboards"
+ "target": "SupersetClient.get_dashboards"
}
],
"children": [],
@@ -31526,12 +97202,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dashboards_summary_page",
+ "name": "SupersetClient.get_dashboards_summary_page",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 243,
- "end_line": 314,
+ "start_line": 262,
+ "end_line": 336,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches one page of dashboard metadata optimized for the grid.",
@@ -31542,7 +97218,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.get_dashboards_page"
+ "target": "SupersetClient.get_dashboards_page"
}
],
"children": [],
@@ -31553,12 +97229,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._extract_owner_labels",
+ "name": "SupersetClient._extract_owner_labels",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 316,
- "end_line": 342,
+ "start_line": 338,
+ "end_line": 365,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Normalize dashboard owners payload to stable display labels.",
@@ -31575,12 +97251,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._extract_user_display",
+ "name": "SupersetClient._extract_user_display",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 344,
- "end_line": 371,
+ "start_line": 367,
+ "end_line": 399,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Normalize user payload to a stable display name.",
@@ -31597,12 +97273,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._sanitize_user_text",
+ "name": "SupersetClient._sanitize_user_text",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 373,
- "end_line": 385,
+ "start_line": 401,
+ "end_line": 414,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Convert scalar value to non-empty user-facing text.",
@@ -31618,23 +97294,23 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dashboard",
+ "name": "SupersetClient.get_dashboard",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 387,
- "end_line": 398,
+ "start_line": 416,
+ "end_line": 430,
"tags": {
"COMPLEXITY": "3",
- "PURPOSE": "Fetches a single dashboard by ID.",
- "PRE": "Client is authenticated and dashboard_id exists.",
+ "PURPOSE": "Fetches a single dashboard by ID or slug.",
+ "PRE": "Client is authenticated and dashboard_ref exists.",
"POST": "Returns dashboard payload from Superset API.",
- "DATA_CONTRACT": "Input[dashboard_id: int] -> Output[Dict]"
+ "DATA_CONTRACT": "Input[dashboard_ref: Union[int, str]] -> Output[Dict]"
},
"relations": [
{
"type": "CALLS",
- "target": "self.network.request"
+ "target": "request"
}
],
"children": [],
@@ -31645,12 +97321,151 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_chart",
+ "name": "SupersetClient.get_dashboard_permalink_state",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 432,
+ "end_line": 448,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Fetches stored dashboard permalink state by permalink key.",
+ "PRE": "Client is authenticated and permalink key exists.",
+ "POST": "Returns dashboard permalink state payload from Superset API.",
+ "DATA_CONTRACT": "Input[permalink_key: str] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "request"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetClient.get_native_filter_state",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 450,
+ "end_line": 470,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Fetches stored native filter state by filter state key.",
+ "PRE": "Client is authenticated and filter_state_key exists.",
+ "POST": "Returns native filter state payload from Superset API.",
+ "DATA_CONTRACT": "Input[dashboard_id: Union[int, str], filter_state_key: str] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "request"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetClient.extract_native_filters_from_permalink",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 400,
- "end_line": 411,
+ "start_line": 472,
+ "end_line": 510,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Extract native filters dataMask from a permalink key.",
+ "PRE": "Client is authenticated and permalink_key exists.",
+ "POST": "Returns extracted dataMask with filter states.",
+ "DATA_CONTRACT": "Input[permalink_key: str] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_dashboard_permalink_state"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetClient.extract_native_filters_from_key",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 512,
+ "end_line": 579,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Extract native filters from a native_filters_key URL parameter.",
+ "PRE": "Client is authenticated, dashboard_id and filter_state_key exist.",
+ "POST": "Returns extracted filter state with extraFormData.",
+ "DATA_CONTRACT": "Input[dashboard_id: Union[int, str], filter_state_key: str] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_native_filter_state"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetClient.parse_dashboard_url_for_filters",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 581,
+ "end_line": 689,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Parse a Superset dashboard URL and extract native filter state if present.",
+ "PRE": "url must be a valid Superset dashboard URL with optional permalink or native_filters_key.",
+ "POST": "Returns extracted filter state or empty dict if no filters found.",
+ "DATA_CONTRACT": "Input[url: str] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.extract_native_filters_from_permalink"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.extract_native_filters_from_key"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetClient.get_chart",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 691,
+ "end_line": 703,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches a single chart by ID.",
@@ -31661,7 +97476,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.request"
+ "target": "request"
}
],
"children": [],
@@ -31672,37 +97487,37 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dashboard_detail",
+ "name": "SupersetClient.get_dashboard_detail",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 413,
- "end_line": 608,
+ "start_line": 705,
+ "end_line": 991,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches detailed dashboard information including related charts and datasets.",
- "PRE": "Client is authenticated and dashboard_id exists.",
+ "PRE": "Client is authenticated and dashboard reference exists.",
"POST": "Returns dashboard metadata with charts and datasets lists.",
- "DATA_CONTRACT": "Input[dashboard_id: int] -> Output[Dict]"
+ "DATA_CONTRACT": "Input[dashboard_ref: Union[int, str]] -> Output[Dict]"
},
"relations": [
{
"type": "CALLS",
- "target": "self.get_dashboard"
+ "target": "SupersetClient.get_dashboard"
},
{
"type": "CALLS",
- "target": "self.get_chart"
+ "target": "SupersetClient.get_chart"
}
],
"children": [
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dashboard_detail.extract_dataset_id_from_form_data",
+ "name": "extract_dataset_id_from_form_data",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 429,
- "end_line": 452,
+ "start_line": 723,
+ "end_line": 749,
"tags": {},
"relations": [],
"children": [],
@@ -31720,12 +97535,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_charts",
+ "name": "SupersetClient.get_charts",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 610,
- "end_line": 628,
+ "start_line": 993,
+ "end_line": 1015,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches all charts with pagination support.",
@@ -31736,7 +97551,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self._fetch_all_pages"
+ "target": "_fetch_all_pages"
}
],
"children": [],
@@ -31747,12 +97562,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._extract_chart_ids_from_layout",
+ "name": "SupersetClient._extract_chart_ids_from_layout",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 630,
- "end_line": 661,
+ "start_line": 1017,
+ "end_line": 1051,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Traverses dashboard layout metadata and extracts chart IDs from common keys.",
@@ -31768,12 +97583,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.export_dashboard",
+ "name": "export_dashboard",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 663,
- "end_line": 686,
+ "start_line": 1053,
+ "end_line": 1083,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0432 \u0432\u0438\u0434\u0435 ZIP-\u0430\u0440\u0445\u0438\u0432\u0430.",
@@ -31785,7 +97600,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.request"
+ "target": "request"
}
],
"children": [],
@@ -31796,12 +97611,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.import_dashboard",
+ "name": "import_dashboard",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 688,
- "end_line": 718,
+ "start_line": 1085,
+ "end_line": 1130,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0438\u0437 ZIP-\u0444\u0430\u0439\u043b\u0430.",
@@ -31813,11 +97628,11 @@
"relations": [
{
"type": "CALLS",
- "target": "self._do_import"
+ "target": "SupersetClient._do_import"
},
{
"type": "CALLS",
- "target": "self.delete_dashboard"
+ "target": "delete_dashboard"
}
],
"children": [],
@@ -31828,12 +97643,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.delete_dashboard",
+ "name": "delete_dashboard",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 720,
- "end_line": 736,
+ "start_line": 1132,
+ "end_line": 1159,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043f\u043e \u0435\u0433\u043e ID \u0438\u043b\u0438 slug.",
@@ -31844,7 +97659,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.request"
+ "target": "request"
}
],
"children": [],
@@ -31855,12 +97670,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_datasets",
+ "name": "SupersetClient.get_datasets",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 738,
- "end_line": 757,
+ "start_line": 1161,
+ "end_line": 1184,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e.",
@@ -31871,7 +97686,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self._fetch_all_pages"
+ "target": "_fetch_all_pages"
}
],
"children": [],
@@ -31882,12 +97697,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_datasets_summary",
+ "name": "SupersetClient.get_datasets_summary",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 759,
- "end_line": 782,
+ "start_line": 1186,
+ "end_line": 1213,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches dataset metadata optimized for the Dataset Hub grid.",
@@ -31895,37 +97710,26 @@
"POST": "Returns a list of dataset metadata summaries.",
"RETURN": "List[Dict]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_datasets"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 759
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 759
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 759
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dataset_detail",
+ "name": "get_dataset_detail",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 784,
- "end_line": 895,
+ "start_line": 1215,
+ "end_line": 1342,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches detailed dataset information including columns and linked dashboards",
@@ -31937,11 +97741,11 @@
"relations": [
{
"type": "CALLS",
- "target": "self.get_dataset"
+ "target": "SupersetClient.get_dataset"
},
{
"type": "CALLS",
- "target": "self.network.request (for related_objects)"
+ "target": "request"
}
],
"children": [],
@@ -31952,12 +97756,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_dataset",
+ "name": "SupersetClient.get_dataset",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 897,
- "end_line": 911,
+ "start_line": 1344,
+ "end_line": 1361,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u043f\u043e \u0435\u0433\u043e ID.",
@@ -31968,7 +97772,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.request"
+ "target": "request"
}
],
"children": [],
@@ -31979,12 +97783,164 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.update_dataset",
+ "name": "SupersetClient.compile_dataset_preview",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1363,
+ "end_line": 1538,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Compile dataset preview SQL through the strongest supported Superset preview endpoint family and return normalized SQL output.",
+ "PRE": "dataset_id must be valid and template_params/effective_filters must represent the current preview session inputs.",
+ "POST": "Returns normalized compiled SQL plus raw upstream response, preferring legacy form_data transport with explicit fallback to chart-data.",
+ "DATA_CONTRACT": "Input[dataset_id:int, template_params:Dict, effective_filters:List[Dict]] -> Output[Dict[str, Any]]",
+ "SIDE_EFFECT": "Performs upstream dataset lookup and preview network I/O against Superset."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_dataset"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.build_dataset_preview_query_context"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.build_dataset_preview_legacy_form_data"
+ },
+ {
+ "type": "CALLS",
+ "target": "request"
+ },
+ {
+ "type": "CALLS",
+ "target": "_extract_compiled_sql_from_preview_response"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetClient.build_dataset_preview_legacy_form_data",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1540,
+ "end_line": 1614,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Build browser-style legacy form_data payload for Superset preview endpoints inferred from observed deployment traffic.",
+ "PRE": "dataset_record should come from Superset dataset detail when possible.",
+ "POST": "Returns one serialized-ready form_data structure preserving native filter clauses in legacy transport fields.",
+ "DATA_CONTRACT": "Input[dataset_id:int,dataset_record:Dict,template_params:Dict,effective_filters:List[Dict]] -> Output[Dict[str, Any]]",
+ "SIDE_EFFECT": "Emits reasoning diagnostics describing the inferred legacy payload shape."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.build_dataset_preview_query_context"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetClient.build_dataset_preview_query_context",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1616,
+ "end_line": 1743,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Build a reduced-scope chart-data query context for deterministic dataset preview compilation.",
+ "PRE": "dataset_record should come from Superset dataset detail when possible.",
+ "POST": "Returns an explicit chart-data payload based on current session inputs and dataset metadata.",
+ "DATA_CONTRACT": "Input[dataset_id:int,dataset_record:Dict,template_params:Dict,effective_filters:List[Dict]] -> Output[Dict[str, Any]]",
+ "SIDE_EFFECT": "Emits reasoning and reflection logs for deterministic preview payload construction."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_normalize_effective_filters_for_query_context"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "_normalize_effective_filters_for_query_context",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 913,
- "end_line": 933,
+ "start_line": 1745,
+ "end_line": 1853,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Convert execution mappings into Superset chart-data filter objects.",
+ "PRE": "effective_filters may contain mapping metadata and arbitrary scalar/list values.",
+ "POST": "Returns only valid filter dictionaries suitable for the chart-data query payload."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "FilterStateModels"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "_extract_compiled_sql_from_preview_response",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1855,
+ "end_line": 1933,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Normalize compiled SQL from either chart-data or legacy form_data preview responses.",
+ "PRE": "response must be the decoded preview response body from a supported Superset endpoint.",
+ "POST": "Returns compiled SQL and raw response or raises SupersetAPIError when the endpoint does not expose query text."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetAPIError"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetClient.update_dataset",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1935,
+ "end_line": 1956,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u043f\u043e \u0435\u0433\u043e ID.",
@@ -31996,7 +97952,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.request"
+ "target": "request"
}
],
"children": [],
@@ -32007,12 +97963,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_databases",
+ "name": "SupersetClient.get_databases",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 935,
- "end_line": 956,
+ "start_line": 1958,
+ "end_line": 1983,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.",
@@ -32023,7 +97979,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self._fetch_all_pages"
+ "target": "_fetch_all_pages"
}
],
"children": [],
@@ -32034,12 +97990,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_database",
+ "name": "get_database",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 958,
- "end_line": 972,
+ "start_line": 1985,
+ "end_line": 2002,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0435\u0451 ID.",
@@ -32050,7 +98006,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.request"
+ "target": "request"
}
],
"children": [],
@@ -32061,12 +98017,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_databases_summary",
+ "name": "get_databases_summary",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 974,
- "end_line": 993,
+ "start_line": 2004,
+ "end_line": 2022,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetch a summary of databases including uuid, name, and engine.",
@@ -32077,7 +98033,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.get_databases"
+ "target": "SupersetClient.get_databases"
}
],
"children": [],
@@ -32088,12 +98044,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_database_by_uuid",
+ "name": "get_database_by_uuid",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 995,
- "end_line": 1009,
+ "start_line": 2024,
+ "end_line": 2037,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Find a database by its UUID.",
@@ -32104,7 +98060,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.get_databases"
+ "target": "SupersetClient.get_databases"
}
],
"children": [],
@@ -32115,12 +98071,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._resolve_target_id_for_delete",
+ "name": "SupersetClient._resolve_target_id_for_delete",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1011,
- "end_line": 1032,
+ "start_line": 2039,
+ "end_line": 2077,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Resolves a dashboard ID from either an ID or a slug.",
@@ -32130,7 +98086,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.get_dashboards"
+ "target": "SupersetClient.get_dashboards"
}
],
"children": [],
@@ -32141,12 +98097,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._do_import",
+ "name": "SupersetClient._do_import",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1034,
- "end_line": 1054,
+ "start_line": 2079,
+ "end_line": 2106,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Performs the actual multipart upload for import.",
@@ -32156,7 +98112,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.upload_file"
+ "target": "APIClient.upload_file"
}
],
"children": [],
@@ -32167,12 +98123,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._validate_export_response",
+ "name": "_validate_export_response",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1056,
- "end_line": 1068,
+ "start_line": 2108,
+ "end_line": 2123,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Validates that the export response is a non-empty ZIP archive.",
@@ -32188,12 +98144,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._resolve_export_filename",
+ "name": "_resolve_export_filename",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1070,
- "end_line": 1084,
+ "start_line": 2125,
+ "end_line": 2144,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Determines the filename for an exported dashboard.",
@@ -32209,12 +98165,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._validate_query_params",
+ "name": "_validate_query_params",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1086,
- "end_line": 1097,
+ "start_line": 2146,
+ "end_line": 2158,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Ensures query parameters have default page and page_size.",
@@ -32230,12 +98186,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._fetch_total_object_count",
+ "name": "_fetch_total_object_count",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1099,
- "end_line": 1112,
+ "start_line": 2160,
+ "end_line": 2174,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Fetches the total number of items for a given endpoint.",
@@ -32245,7 +98201,7 @@
"relations": [
{
"type": "CALLS",
- "target": "self.network.fetch_paginated_count"
+ "target": "fetch_paginated_count"
}
],
"children": [],
@@ -32256,19 +98212,24 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._fetch_all_pages",
+ "name": "_fetch_all_pages",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1114,
- "end_line": 1122,
+ "start_line": 2176,
+ "end_line": 2188,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Iterates through all pages to collect all data items.",
"PRE": "pagination_options must contain base_query, total_count, and results_field.",
"POST": "Returns a combined list of all items."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "fetch_paginated_data"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -32277,12 +98238,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient._validate_import_file",
+ "name": "_validate_import_file",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1124,
- "end_line": 1139,
+ "start_line": 2190,
+ "end_line": 2208,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Validates that the file to be imported is a valid ZIP with metadata.yaml.",
@@ -32298,12 +98259,12 @@
}
},
{
- "name": "backend.src.core.superset_client.SupersetClient.get_all_resources",
+ "name": "get_all_resources",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1141,
- "end_line": 1182,
+ "start_line": 2210,
+ "end_line": 2271,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetches all resources of a given type with id, uuid, and name columns.",
@@ -32312,28 +98273,17 @@
"POST": "Returns a list of resource dicts with at minimum id, uuid, and name fields.",
"RETURN": "List[Dict]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_fetch_all_pages"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1141
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1141
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1141
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -32348,8 +98298,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 39,
- "end_line": 39,
+ "start_line": 43,
+ "end_line": 43,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32367,8 +98317,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 69,
+ "start_line": 74,
+ "end_line": 74,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32386,8 +98336,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 80,
- "end_line": 80,
+ "start_line": 86,
+ "end_line": 86,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32405,8 +98355,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 94,
+ "start_line": 101,
+ "end_line": 101,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32424,8 +98374,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 128,
- "end_line": 128,
+ "start_line": 139,
+ "end_line": 139,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32443,8 +98393,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 165,
- "end_line": 165,
+ "start_line": 179,
+ "end_line": 179,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32462,8 +98412,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 250,
- "end_line": 250,
+ "start_line": 269,
+ "end_line": 269,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32481,8 +98431,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 322,
- "end_line": 322,
+ "start_line": 344,
+ "end_line": 344,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32500,8 +98450,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 350,
- "end_line": 350,
+ "start_line": 373,
+ "end_line": 373,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32519,8 +98469,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 378,
- "end_line": 378,
+ "start_line": 406,
+ "end_line": 406,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32538,8 +98488,103 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 394,
- "end_line": 394,
+ "start_line": 423,
+ "end_line": 423,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_dashboard_permalink_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 439,
+ "end_line": 439,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_native_filter_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 457,
+ "end_line": 457,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extract_native_filters_from_permalink",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 479,
+ "end_line": 479,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extract_native_filters_from_key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 519,
+ "end_line": 519,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parse_dashboard_url_for_filters",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 589,
+ "end_line": 589,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32557,8 +98602,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 407,
- "end_line": 407,
+ "start_line": 698,
+ "end_line": 698,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32576,27 +98621,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 421,
- "end_line": 421,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "extract_dataset_id_from_form_data",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 430,
- "end_line": 430,
+ "start_line": 713,
+ "end_line": 713,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32614,8 +98640,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 617,
- "end_line": 617,
+ "start_line": 1000,
+ "end_line": 1000,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32633,8 +98659,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 635,
- "end_line": 635,
+ "start_line": 1022,
+ "end_line": 1022,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32652,65 +98678,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 639,
- "end_line": 639,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "export_dashboard",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 671,
- "end_line": 671,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "import_dashboard",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 697,
- "end_line": 697,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "delete_dashboard",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 727,
- "end_line": 727,
+ "start_line": 1028,
+ "end_line": 1028,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32728,8 +98697,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 745,
- "end_line": 745,
+ "start_line": 1168,
+ "end_line": 1168,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32747,27 +98716,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 765,
- "end_line": 765,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_dataset_detail",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 793,
- "end_line": 793,
+ "start_line": 1193,
+ "end_line": 1193,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32785,8 +98735,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 795,
- "end_line": 795,
+ "start_line": 1227,
+ "end_line": 1227,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32804,8 +98754,65 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 904,
- "end_line": 904,
+ "start_line": 1351,
+ "end_line": 1351,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compile_dataset_preview",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1375,
+ "end_line": 1375,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "build_dataset_preview_legacy_form_data",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1548,
+ "end_line": 1548,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "build_dataset_preview_query_context",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1624,
+ "end_line": 1624,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32823,8 +98830,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 921,
- "end_line": 921,
+ "start_line": 1943,
+ "end_line": 1943,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32842,65 +98849,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 942,
- "end_line": 942,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_database",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 965,
- "end_line": 965,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_databases_summary",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 981,
- "end_line": 981,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_database_by_uuid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1002,
- "end_line": 1002,
+ "start_line": 1965,
+ "end_line": 1965,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32918,8 +98868,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1017,
- "end_line": 1017,
+ "start_line": 2045,
+ "end_line": 2045,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -32937,141 +98887,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1040,
- "end_line": 1040,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_validate_export_response",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1061,
- "end_line": 1061,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_resolve_export_filename",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1075,
- "end_line": 1075,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_validate_query_params",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1091,
- "end_line": 1091,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_fetch_total_object_count",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1105,
- "end_line": 1105,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_fetch_all_pages",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1119,
- "end_line": 1119,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_validate_import_file",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1129,
- "end_line": 1129,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_all_resources",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1148,
- "end_line": 1148,
+ "start_line": 2085,
+ "end_line": 2085,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -33089,42 +98906,36 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 1186 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 2276 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.47500000000000003
+ "score": 0.775
}
},
{
- "name": "backend.src.core.encryption_key",
+ "name": "EncryptionKeyModule",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 56,
+ "end_line": 62,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "encryption, key, bootstrap, environment, startup",
"PURPOSE": "Resolve and persist the Fernet encryption key required by runtime services.",
"LAYER": "Infra",
- "INVARIANT": "Runtime key resolution never falls back to an ephemeral secret."
+ "INVARIANT": "Runtime key resolution never falls back to an ephemeral secret.",
+ "PRE": "Runtime environment can read process variables and target .env path is writable when key generation is required.",
+ "POST": "A valid Fernet key is available to runtime services via ENCRYPTION_KEY.",
+ "SIDE_EFFECT": "May append ENCRYPTION_KEY entry into backend .env file and set process environment variable.",
+ "DATA_CONTRACT": "Input[env_file_path] -> Output[encryption_key]"
},
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.logger"
+ "target": "LoggerModule"
}
],
"children": [
@@ -33133,8 +98944,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 54,
+ "start_line": 25,
+ "end_line": 60,
"tags": {
"PURPOSE": "Ensure backend runtime has a persistent valid Fernet key.",
"PRE": "env_file_path points to a writable backend .env file or ENCRYPTION_KEY exists in process environment.",
@@ -33151,30 +98962,9 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.9666666666666667
}
},
{
@@ -33183,7 +98973,7 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 433,
+ "end_line": 568,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "config, manager, persistence, migration, postgresql",
@@ -33223,8 +99013,8 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 31,
- "end_line": 432,
+ "start_line": 32,
+ "end_line": 567,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Handles application configuration load, validation, mutation, and persistence lifecycle.",
@@ -33239,8 +99029,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 63,
+ "start_line": 39,
+ "end_line": 70,
"tags": {
"PURPOSE": "Initialize manager state from persisted or migrated configuration.",
"PRE": "config_path is a non-empty string path.",
@@ -33261,8 +99051,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 65,
- "end_line": 71,
+ "start_line": 72,
+ "end_line": 79,
"tags": {
"PURPOSE": "Build default application configuration fallback."
},
@@ -33279,8 +99069,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 93,
+ "start_line": 81,
+ "end_line": 106,
"tags": {
"PURPOSE": "Merge typed AppConfig state into raw payload while preserving unsupported legacy sections."
},
@@ -33297,8 +99087,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 95,
- "end_line": 122,
+ "start_line": 108,
+ "end_line": 141,
"tags": {
"PURPOSE": "Load legacy JSON configuration for migration fallback path."
},
@@ -33315,8 +99105,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 124,
- "end_line": 131,
+ "start_line": 143,
+ "end_line": 157,
"tags": {
"PURPOSE": "Resolve global configuration record from DB."
},
@@ -33333,8 +99123,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 133,
- "end_line": 203,
+ "start_line": 159,
+ "end_line": 237,
"tags": {
"PURPOSE": "Load configuration from DB or perform one-time migration from legacy JSON."
},
@@ -33346,13 +99136,31 @@
"score": 1.0
}
},
+ {
+ "name": "_sync_environment_records",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 239,
+ "end_line": 285,
+ "tags": {
+ "PURPOSE": "Mirror configured environments into the relational environments table used by FK-backed domain models."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "_save_config_to_db",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 205,
- "end_line": 238,
+ "start_line": 287,
+ "end_line": 330,
"tags": {
"PURPOSE": "Persist provided AppConfig into the global DB configuration record."
},
@@ -33369,8 +99177,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 240,
- "end_line": 246,
+ "start_line": 332,
+ "end_line": 339,
"tags": {
"PURPOSE": "Persist current in-memory configuration state."
},
@@ -33387,8 +99195,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 248,
- "end_line": 253,
+ "start_line": 341,
+ "end_line": 347,
"tags": {
"PURPOSE": "Return current in-memory configuration snapshot."
},
@@ -33405,8 +99213,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 255,
- "end_line": 260,
+ "start_line": 349,
+ "end_line": 355,
"tags": {
"PURPOSE": "Return full persisted payload including sections outside typed AppConfig schema."
},
@@ -33423,8 +99231,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 262,
- "end_line": 291,
+ "start_line": 357,
+ "end_line": 390,
"tags": {
"PURPOSE": "Persist configuration provided either as typed AppConfig or raw payload dict."
},
@@ -33441,8 +99249,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 293,
- "end_line": 301,
+ "start_line": 392,
+ "end_line": 401,
"tags": {
"PURPOSE": "Replace global settings and persist the resulting configuration."
},
@@ -33459,8 +99267,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 303,
- "end_line": 327,
+ "start_line": 403,
+ "end_line": 430,
"tags": {
"PURPOSE": "Validate that path exists and is writable, creating it when absent."
},
@@ -33477,8 +99285,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 329,
- "end_line": 334,
+ "start_line": 432,
+ "end_line": 438,
"tags": {
"PURPOSE": "Return all configured environments."
},
@@ -33495,8 +99303,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 336,
- "end_line": 341,
+ "start_line": 440,
+ "end_line": 446,
"tags": {
"PURPOSE": "Check whether at least one environment exists in configuration."
},
@@ -33513,8 +99321,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 343,
- "end_line": 355,
+ "start_line": 448,
+ "end_line": 461,
"tags": {
"PURPOSE": "Resolve a configured environment by identifier."
},
@@ -33531,8 +99339,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 357,
- "end_line": 378,
+ "start_line": 463,
+ "end_line": 497,
"tags": {
"PURPOSE": "Upsert environment by id into configuration and persist."
},
@@ -33549,8 +99357,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 380,
- "end_line": 407,
+ "start_line": 499,
+ "end_line": 529,
"tags": {
"PURPOSE": "Update existing environment by id and preserve masked password placeholder behavior."
},
@@ -33567,8 +99375,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 409,
- "end_line": 431,
+ "start_line": 531,
+ "end_line": 564,
"tags": {
"PURPOSE": "Delete environment by id and persist when deletion occurs."
},
@@ -33587,42 +99395,42 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 31
+ "line_number": 32
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 31
+ "line_number": 32
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 31
+ "line_number": 32
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 31
+ "line_number": 32
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 31
+ "line_number": 32
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 31
+ "line_number": 32
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 31
+ "line_number": 32
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 31
+ "line_number": 32
}
],
"score": 0.0
@@ -33633,7 +99441,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 433 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 568 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -33647,23 +99455,27 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 183,
+ "end_line": 210,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "scheduler, apscheduler, cron, backup",
"PURPOSE": "Manages scheduled tasks using APScheduler.",
- "LAYER": "Core",
- "RELATION": "Uses TaskManager to run scheduled backups."
+ "LAYER": "Core"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskManager"
+ }
+ ],
"children": [
{
"name": "SchedulerService",
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 20,
- "end_line": 123,
+ "start_line": 18,
+ "end_line": 139,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "scheduler, service, apscheduler",
@@ -33676,8 +99488,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 35,
+ "start_line": 23,
+ "end_line": 34,
"tags": {
"PURPOSE": "Initializes the scheduler service with task and config managers.",
"PRE": "task_manager and config_manager must be provided.",
@@ -33696,7 +99508,7 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 37,
+ "start_line": 36,
"end_line": 47,
"tags": {
"PURPOSE": "Starts the background scheduler and loads initial schedules.",
@@ -33717,7 +99529,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 49,
- "end_line": 58,
+ "end_line": 59,
"tags": {
"PURPOSE": "Stops the background scheduler.",
"PRE": "Scheduler should be running.",
@@ -33736,8 +99548,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 60,
- "end_line": 73,
+ "start_line": 61,
+ "end_line": 75,
"tags": {
"PURPOSE": "Loads backup schedules from configuration and registers them.",
"PRE": "config_manager must have valid configuration.",
@@ -33756,8 +99568,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 95,
+ "start_line": 77,
+ "end_line": 103,
"tags": {
"PURPOSE": "Adds a scheduled backup job for an environment.",
"PRE": "env_id and cron_expression must be valid strings.",
@@ -33777,8 +99589,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 121,
+ "start_line": 105,
+ "end_line": 136,
"tags": {
"PURPOSE": "Triggered by the scheduler to start a backup task.",
"PRE": "env_id must be a valid environment ID.",
@@ -33800,12 +99612,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 20
+ "line_number": 18
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 20
+ "line_number": 18
}
],
"score": 0.5499999999999999
@@ -33816,22 +99628,32 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 125,
- "end_line": 181,
+ "start_line": 142,
+ "end_line": 208,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "scheduler, throttling, distribution",
- "PURPOSE": "Distributes validation tasks evenly within an execution window."
+ "PURPOSE": "Distributes validation tasks evenly within an execution window.",
+ "PRE": "Validation policies provide a finite dashboard list and a valid execution window.",
+ "POST": "Produces deterministic per-dashboard run timestamps within the configured window.",
+ "INVARIANT": "Returned schedule size always matches number of dashboard IDs.",
+ "SIDE_EFFECT": "Emits warning logs for degenerate or near-zero scheduling windows.",
+ "DATA_CONTRACT": "Input[window_start, window_end, dashboard_ids, current_date] -> Output[List[datetime]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SchedulerModule"
+ }
+ ],
"children": [
{
"name": "calculate_schedule",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 130,
- "end_line": 180,
+ "start_line": 153,
+ "end_line": 205,
"tags": {
"PURPOSE": "Calculates execution times for N tasks within a window.",
"PRE": "window_start, window_end (time), dashboard_ids (List), current_date (date).",
@@ -33848,87 +99670,16 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing @INVARIANT tag (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- },
- {
- "message": "Missing @INVARIANT tag (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 125
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.9571428571428571
}
}
],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.925
}
},
{
@@ -34033,7 +99784,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 59,
- "end_line": 84,
+ "end_line": 89,
"tags": {
"PURPOSE": "Represents global application settings."
},
@@ -34050,8 +99801,8 @@
"type": "DataClass",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 86,
- "end_line": 91,
+ "start_line": 91,
+ "end_line": 96,
"tags": {
"PURPOSE": "The root configuration model containing all application settings."
},
@@ -34087,12 +99838,12 @@
}
},
{
- "name": "backend.src.core.database",
+ "name": "DatabaseModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 436,
+ "end_line": 552,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "database, postgresql, sqlalchemy, session, persistence",
@@ -34103,15 +99854,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "sqlalchemy"
+ "target": "MappingModels"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.mapping"
+ "target": "auth_config"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.auth.config"
+ "target": "ConnectionConfig"
}
],
"children": [
@@ -34120,8 +99871,8 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 33,
- "end_line": 37,
+ "start_line": 35,
+ "end_line": 39,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Base directory for the backend."
@@ -34139,8 +99890,8 @@
"type": "Constant",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 39,
- "end_line": 47,
+ "start_line": 41,
+ "end_line": 49,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "URL for the main application database."
@@ -34158,8 +99909,8 @@
"type": "Constant",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 54,
+ "start_line": 51,
+ "end_line": 56,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "URL for the tasks execution database."
@@ -34177,8 +99928,8 @@
"type": "Constant",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 56,
- "end_line": 60,
+ "start_line": 58,
+ "end_line": 62,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "URL for the authentication database."
@@ -34196,8 +99947,8 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 73,
+ "start_line": 65,
+ "end_line": 77,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "SQLAlchemy engine for mappings database.",
@@ -34216,8 +99967,8 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 79,
+ "start_line": 79,
+ "end_line": 83,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "SQLAlchemy engine for tasks database."
@@ -34235,8 +99986,8 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 81,
- "end_line": 85,
+ "start_line": 85,
+ "end_line": 89,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "SQLAlchemy engine for authentication database."
@@ -34254,8 +100005,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 87,
- "end_line": 92,
+ "start_line": 91,
+ "end_line": 96,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "A session factory for the main mappings database.",
@@ -34274,8 +100025,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 99,
+ "start_line": 98,
+ "end_line": 103,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "A session factory for the tasks execution database.",
@@ -34294,8 +100045,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 101,
- "end_line": 106,
+ "start_line": 105,
+ "end_line": 110,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "A session factory for the authentication database.",
@@ -34314,31 +100065,25 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 108,
- "end_line": 172,
+ "start_line": 113,
+ "end_line": 180,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Applies additive schema upgrades for user_dashboard_preferences table.",
"PRE": "bind_engine points to application database where profile table is stored.",
"POST": "Missing columns are added without data loss."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "engine"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 108
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 108
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34346,29 +100091,23 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 175,
- "end_line": 216,
+ "start_line": 183,
+ "end_line": 227,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Applies additive schema upgrades for user_dashboard_preferences table (health fields)."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "engine"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 175
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 175
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34376,29 +100115,23 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 219,
- "end_line": 256,
+ "start_line": 230,
+ "end_line": 270,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Applies additive schema upgrades for llm_validation_results table."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "engine"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 219
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 219
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34406,31 +100139,25 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 259,
- "end_line": 294,
+ "start_line": 273,
+ "end_line": 311,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Applies additive schema upgrades for git_server_configs table.",
"PRE": "bind_engine points to application database.",
"POST": "Missing columns are added without data loss."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "engine"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 259
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 259
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34438,31 +100165,25 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 297,
- "end_line": 350,
+ "start_line": 314,
+ "end_line": 374,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Applies additive schema upgrades for auth users table.",
"PRE": "bind_engine points to authentication database.",
"POST": "Missing columns are added without data loss."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "auth_engine"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 297
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 297
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34470,31 +100191,51 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 353,
- "end_line": 368,
+ "start_line": 377,
+ "end_line": 395,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Ensures the external connection registry table exists in the main database.",
"PRE": "bind_engine points to the application database.",
"POST": "connection_configs table exists without dropping existing data."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConnectionConfig"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 353
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 353
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "_ensure_filter_source_enum_values",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 398,
+ "end_line": 467,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Adds missing FilterSource enum values to the PostgreSQL native filtersource type.",
+ "PRE": "bind_engine points to application database with imported_filters table.",
+ "POST": "New enum values are available without data loss."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "engine"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34502,8 +100243,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 371,
- "end_line": 388,
+ "start_line": 470,
+ "end_line": 492,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Initializes the database by creating all tables.",
@@ -34511,23 +100252,21 @@
"POST": "Database tables created in all databases.",
"SIDE_EFFECT": "Creates physical database files if they don't exist."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "ensure_connection_configs_table"
+ },
+ {
+ "type": "CALLS",
+ "target": "_ensure_filter_source_enum_values"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 371
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 371
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34535,8 +100274,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 390,
- "end_line": 403,
+ "start_line": 495,
+ "end_line": 511,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Dependency for getting a database session.",
@@ -34544,23 +100283,17 @@
"POST": "Session is closed after use.",
"RETURN": "Generator[Session, None, None]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionLocal"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 390
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 390
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34568,8 +100301,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 405,
- "end_line": 418,
+ "start_line": 514,
+ "end_line": 530,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Dependency for getting a tasks database session.",
@@ -34577,23 +100310,17 @@
"POST": "Session is closed after use.",
"RETURN": "Generator[Session, None, None]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TasksSessionLocal"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 405
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 405
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34601,8 +100328,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 420,
- "end_line": 434,
+ "start_line": 533,
+ "end_line": 550,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Dependency for getting an authentication database session.",
@@ -34611,23 +100338,17 @@
"DATA_CONTRACT": "None -> Output[sqlalchemy.orm.Session]",
"RETURN": "Generator[Session, None, None]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AuthSessionLocal"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 420
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 420
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -34635,8 +100356,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 66,
- "end_line": 66,
+ "start_line": 69,
+ "end_line": 69,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -34654,7 +100375,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 436 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 552 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -35243,7 +100964,7 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 247,
+ "end_line": 302,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "migration, engine, zip, yaml, transformation, cross-filter, id-mapping",
@@ -35275,20 +100996,25 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 28,
- "end_line": 245,
+ "start_line": 29,
+ "end_line": 300,
"tags": {
"PURPOSE": "Engine for transforming Superset export ZIPs."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CONTAINS",
+ "target": "__init__, transform_zip, _transform_yaml, _extract_chart_uuids_from_archive, _patch_dashboard_metadata"
+ }
+ ],
"children": [
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 32,
- "end_line": 44,
+ "start_line": 33,
+ "end_line": 46,
"tags": {
"PURPOSE": "Initializes migration orchestration dependencies for ZIP/YAML metadata transformations.",
"PRE": "mapping_service is None or implements batch remote ID lookup for ResourceType.CHART.",
@@ -35310,8 +101036,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 46,
- "end_line": 118,
+ "start_line": 48,
+ "end_line": 146,
"tags": {
"PURPOSE": "Extracts ZIP, replaces database UUIDs in YAMLs, patches cross-filters, and re-packages.",
"PARAM": "fix_cross_filters (bool) - Whether to patch dashboard json_metadata.",
@@ -35321,7 +101047,12 @@
"DATA_CONTRACT": "Input[(str zip_path, str output_path, Dict[str,str] db_mapping, bool strip_databases, Optional[str] target_env_id, bool fix_cross_filters)] -> Output[bool]",
"RETURN": "bool - True if successful."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "_transform_yaml, _extract_chart_uuids_from_archive, _patch_dashboard_metadata"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -35334,8 +101065,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 120,
- "end_line": 147,
+ "start_line": 148,
+ "end_line": 176,
"tags": {
"PURPOSE": "Replaces database_uuid in a single YAML file.",
"PARAM": "db_mapping (Dict[str, str]) - UUID mapping dictionary.",
@@ -35357,8 +101088,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 149,
- "end_line": 174,
+ "start_line": 178,
+ "end_line": 206,
"tags": {
"PURPOSE": "Scans extracted chart YAML files and builds a source chart ID to UUID lookup map.",
"PRE": "temp_dir exists and points to extracted archive root with optional chart YAML resources.",
@@ -35381,8 +101112,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 176,
- "end_line": 243,
+ "start_line": 208,
+ "end_line": 297,
"tags": {
"PURPOSE": "Rewrites dashboard json_metadata chart/dataset integer identifiers using target environment mappings.",
"PRE": "file_path points to dashboard YAML with json_metadata; target_env_id is non-empty; source_map contains source id->uuid.",
@@ -35403,75 +101134,75 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 28
- },
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 29
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 29
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 28
+ "line_number": 29
}
],
"score": 0.0
@@ -35500,18 +101231,23 @@
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
"line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 302 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
}
],
"score": 0.0
}
},
{
- "name": "backend.src.core.async_superset_client",
+ "name": "AsyncSupersetClientModule",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": null,
+ "end_line": 691,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "superset, async, client, httpx, dashboards, datasets",
@@ -35526,21 +101262,21 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.superset_client"
+ "target": "SupersetClientModule"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.utils.async_network.AsyncAPIClient"
+ "target": "AsyncAPIClient"
}
],
"children": [
{
- "name": "backend.src.core.async_superset_client.AsyncSupersetClient",
+ "name": "AsyncSupersetClient",
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
"start_line": 28,
- "end_line": null,
+ "end_line": 689,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Async sibling of SupersetClient for dashboard read paths."
@@ -35548,25 +101284,25 @@
"relations": [
{
"type": "INHERITS",
- "target": "backend.src.core.superset_client.SupersetClient"
+ "target": "SupersetClient"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.utils.async_network.AsyncAPIClient"
+ "target": "AsyncAPIClient"
},
{
"type": "CALLS",
- "target": "backend.src.core.utils.async_network.AsyncAPIClient.request"
+ "target": "AsyncAPIClient.request"
}
],
"children": [
{
- "name": "backend.src.core.async_superset_client.AsyncSupersetClient.__init__",
+ "name": "AsyncSupersetClientInit",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
"start_line": 35,
- "end_line": 55,
+ "end_line": 57,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Initialize async Superset client with AsyncAPIClient transport.",
@@ -35574,250 +101310,282 @@
"POST": "Client uses async network transport and inherited projection helpers.",
"DATA_CONTRACT": "Input[Environment] -> self.network[AsyncAPIClient]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AsyncAPIClient"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 35
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 35
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 35
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
- "name": "backend.src.core.async_superset_client.AsyncSupersetClient.aclose",
+ "name": "AsyncSupersetClientClose",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 57,
- "end_line": 64,
+ "start_line": 59,
+ "end_line": 68,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Close async transport resources.",
"POST": "Underlying AsyncAPIClient is closed.",
"SIDE_EFFECT": "Closes network sockets."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient.aclose"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 57
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 57
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 57
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
- "name": "backend.src.core.async_superset_client.AsyncSupersetClient.get_dashboards_page_async",
+ "name": "get_dashboards_page_async",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 66,
- "end_line": null,
+ "start_line": 70,
+ "end_line": 107,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetch one dashboards page asynchronously.",
"POST": "Returns total count and page result list.",
"DATA_CONTRACT": "Input[query: Optional[Dict]] -> Output[Tuple[int, List[Dict]]]"
},
- "relations": [],
- "children": [
+ "relations": [
{
- "name": "get_dashboard_async",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 101,
- "end_line": 110,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Fetch one dashboard payload asynchronously.",
- "POST": "Returns raw dashboard payload from Superset API.",
- "DATA_CONTRACT": "Input[dashboard_id: int] -> Output[Dict]"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 101
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 101
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 101
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 101
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "get_chart_async",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 112,
- "end_line": 121,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Fetch one chart payload asynchronously.",
- "POST": "Returns raw chart payload from Superset API.",
- "DATA_CONTRACT": "Input[chart_id: int] -> Output[Dict]"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 112
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 112
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 112
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 112
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "get_dashboard_detail_async",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 123,
- "end_line": 317,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Fetch dashboard detail asynchronously with concurrent charts/datasets requests.",
- "POST": "Returns dashboard detail payload for overview page.",
- "DATA_CONTRACT": "Input[dashboard_id: int] -> Output[Dict]"
- },
- "relations": [
- {
- "type": "CALLS",
- "target": "self.get_dashboard_async"
- },
- {
- "type": "CALLS",
- "target": "self.get_chart_async"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 0.85
- }
+ "type": "CALLS",
+ "target": "AsyncAPIClient.request"
}
],
+ "children": [],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.async_superset_client.AsyncSupersetClient.get_dashboards_page_async:Function] started at line 66",
- "severity": "ERROR",
- "line_number": 66
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 66
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.async_superset_client.AsyncSupersetClient.get_dashboards_page_async:Function] started at line 66",
- "severity": "ERROR",
- "line_number": 66
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 66
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.async_superset_client.AsyncSupersetClient.get_dashboards_page_async:Function] started at line 66",
- "severity": "ERROR",
- "line_number": 66
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 66
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "get_dashboard_async",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 109,
+ "end_line": 124,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Fetch one dashboard payload asynchronously.",
+ "POST": "Returns raw dashboard payload from Superset API.",
+ "DATA_CONTRACT": "Input[dashboard_id: int] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient.request"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "get_chart_async",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 126,
+ "end_line": 139,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Fetch one chart payload asynchronously.",
+ "POST": "Returns raw chart payload from Superset API.",
+ "DATA_CONTRACT": "Input[chart_id: int] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient.request"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "get_dashboard_detail_async",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 141,
+ "end_line": 437,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Fetch dashboard detail asynchronously with concurrent charts/datasets requests.",
+ "POST": "Returns dashboard detail payload for overview page.",
+ "DATA_CONTRACT": "Input[dashboard_id: int] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "get_dashboard_async"
+ },
+ {
+ "type": "CALLS",
+ "target": "get_chart_async"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "get_dashboard_permalink_state_async",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 439,
+ "end_line": 454,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Fetch stored dashboard permalink state asynchronously.",
+ "POST": "Returns dashboard permalink state payload from Superset API.",
+ "DATA_CONTRACT": "Input[permalink_key: str] -> Output[Dict]"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_native_filter_state_async",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 456,
+ "end_line": 474,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Fetch stored native filter state asynchronously.",
+ "POST": "Returns native filter state payload from Superset API.",
+ "DATA_CONTRACT": "Input[dashboard_id: Union[int, str], filter_state_key: str] -> Output[Dict]"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "extract_native_filters_from_permalink_async",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 476,
+ "end_line": 515,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Extract native filters dataMask from a permalink key asynchronously.",
+ "POST": "Returns extracted dataMask with filter states.",
+ "DATA_CONTRACT": "Input[permalink_key: str] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "get_dashboard_permalink_state_async"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "extract_native_filters_from_key_async",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 517,
+ "end_line": 576,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Extract native filters from a native_filters_key URL parameter asynchronously.",
+ "POST": "Returns extracted filter state with extraFormData.",
+ "DATA_CONTRACT": "Input[dashboard_id: Union[int, str], filter_state_key: str] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "get_native_filter_state_async"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "parse_dashboard_url_for_filters_async",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 578,
+ "end_line": 686,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Parse a Superset dashboard URL and extract native filter state asynchronously.",
+ "POST": "Returns extracted filter state or empty dict if no filters found.",
+ "DATA_CONTRACT": "Input[url: str] -> Output[Dict]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "extract_native_filters_from_permalink_async"
+ },
+ {
+ "type": "CALLS",
+ "target": "extract_native_filters_from_key_async"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
}
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.async_superset_client.AsyncSupersetClient:Class] started at line 28",
- "severity": "ERROR",
- "line_number": 28
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.async_superset_client.AsyncSupersetClient:Class] started at line 28",
- "severity": "ERROR",
- "line_number": 28
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -35825,8 +101593,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 41,
+ "start_line": 42,
+ "end_line": 42,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -35844,27 +101612,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 62,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_dashboards_page_async",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 71,
- "end_line": 71,
+ "start_line": 65,
+ "end_line": 65,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -35882,8 +101631,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 138,
- "end_line": 138,
+ "start_line": 158,
+ "end_line": 158,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -35898,15 +101647,15 @@
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Unclosed Anchor: [DEF:backend.src.core.async_superset_client:Module] started at line 1",
- "severity": "ERROR",
+ "message": "Fractal limit warning: Module length is 691 lines (must be < 300)",
+ "severity": "WARNING",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.8166666666666667
}
},
{
@@ -36140,28 +101889,32 @@
}
},
{
- "name": "backend.src.core.mapping_service",
+ "name": "IdMappingServiceModule",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 249,
+ "end_line": 316,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "mapping, ids, synchronization, environments, cross-filters",
"PURPOSE": "Service for tracking and synchronizing Superset Resource IDs (UUID <-> Integer ID)",
"LAYER": "Core",
+ "PRE": "Database session is valid and Superset client factory returns authenticated clients for requested environments.",
+ "POST": "Mapping synchronization and lookup APIs are available for environment-scoped UUID-to-integer resolution.",
+ "SIDE_EFFECT": "Reads/writes ResourceMapping rows, emits logs, and schedules periodic sync jobs.",
+ "DATA_CONTRACT": "Input[environment_id, resource_type, uuid] -> Output[remote_integer_id|None]",
"TEST_DATA": "mock_superset_resources -> {'chart': [{'id': 42, 'uuid': '1234', 'slice_name': 'test'}], 'dataset': [{'id': 99, 'uuid': '5678', 'table_name': 'data'}]}",
"INVARIANT": "sync_environment must handle remote API failures gracefully."
},
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.mapping (ResourceMapping, ResourceType)"
+ "target": "MappingModels"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.logger"
+ "target": "LoggerModule"
}
],
"children": [
@@ -36170,25 +101923,39 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 23,
- "end_line": 248,
+ "start_line": 28,
+ "end_line": 315,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Service handling the cataloging and retrieval of remote Superset Integer IDs.",
+ "PRE": "db_session is an active SQLAlchemy Session bound to mapping tables.",
+ "POST": "Service instance provides scheduler control and environment-scoped mapping synchronization APIs.",
+ "INVARIANT": "self.db remains the authoritative session for all mapping operations.",
+ "SIDE_EFFECT": "Instantiates an in-process scheduler and performs database writes during sync cycles.",
+ "DATA_CONTRACT": "Input[db_session] -> Output[IdMappingService]",
"TEST_CONTRACT": "IdMappingServiceModel ->",
"TEST_FIXTURE": "valid_mapping_service -> {\"db_session\": \"MockSession()\"}",
"TEST_EDGE": "get_batch_empty_list -> returns empty dict",
"TEST_INVARIANT": "resilient_fetching -> verifies: [sync_api_failure]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "MappingModels"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "LoggerModule"
+ }
+ ],
"children": [
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 43,
- "end_line": 49,
+ "start_line": 54,
+ "end_line": 61,
"tags": {
"PURPOSE": "Initializes the mapping service."
},
@@ -36205,8 +101972,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 80,
+ "start_line": 63,
+ "end_line": 101,
"tags": {
"PURPOSE": "Starts the background scheduler with a given cron string.",
"PARAM": "superset_client_factory - Function to get a client for an environment."
@@ -36224,8 +101991,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 199,
+ "start_line": 103,
+ "end_line": 253,
"tags": {
"PURPOSE": "Fully synchronizes mapping for a specific environment.",
"PARAM": "superset_client - Instance capable of hitting the Superset API.",
@@ -36245,8 +102012,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 201,
- "end_line": 220,
+ "start_line": 255,
+ "end_line": 279,
"tags": {
"PURPOSE": "Retrieves the remote integer ID for a given universal UUID.",
"PARAM": "uuid (str)",
@@ -36265,8 +102032,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 222,
- "end_line": 246,
+ "start_line": 281,
+ "end_line": 312,
"tags": {
"PURPOSE": "Retrieves remote integer IDs for a list of universal UUIDs efficiently.",
"PARAM": "uuids (List[str])",
@@ -36282,80 +102049,9 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing @INVARIANT tag (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- },
- {
- "message": "Missing @INVARIANT tag (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 23
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.9571428571428571
}
},
{
@@ -36363,8 +102059,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 62,
+ "start_line": 78,
+ "end_line": 78,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -36379,42 +102075,28 @@
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
+ "message": "Fractal limit warning: Module length is 316 lines (must be < 300)",
+ "severity": "WARNING",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.8166666666666667
}
},
{
- "name": "backend.src.core.auth.config",
+ "name": "AuthConfigModule",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 47,
+ "end_line": 50,
"tags": {
"SEMANTICS": "auth, config, settings, jwt, adfs",
"PURPOSE": "Centralized configuration for authentication and authorization.",
+ "COMPLEXITY": "2",
"LAYER": "Core",
"INVARIANT": "All sensitive configuration must have defaults or be loaded from environment."
},
@@ -36430,67 +102112,62 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 15,
- "end_line": 40,
+ "start_line": 16,
+ "end_line": 42,
"tags": {
"PURPOSE": "Holds authentication-related settings.",
"PRE": "Environment variables may be provided via .env file.",
"POST": "Returns a configuration object with validated settings."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "pydantic_settings.BaseSettings"
+ }
+ ],
"children": [],
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 15
- },
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 15
+ "line_number": 16
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 15
+ "line_number": 16
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 15
+ "line_number": 16
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 15
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 15
+ "line_number": 16
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 15
+ "line_number": 16
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 15
+ "line_number": 16
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 15
+ "line_number": 16
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 15
+ "line_number": 16
}
],
"score": 0.0
@@ -36501,12 +102178,17 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 45,
+ "start_line": 44,
+ "end_line": 48,
"tags": {
"PURPOSE": "Singleton instance of AuthConfig."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AuthConfig"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -36516,39 +102198,18 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
},
{
- "name": "backend.src.core.auth.jwt",
+ "name": "AuthJwtModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 55,
+ "end_line": 69,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "jwt, token, session, auth",
@@ -36559,11 +102220,11 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "jose"
+ "target": "auth_config"
},
{
"type": "USES",
- "target": "backend.src.core.auth.config.auth_config"
+ "target": "auth_config"
}
],
"children": [
@@ -36572,8 +102233,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 39,
+ "start_line": 21,
+ "end_line": 47,
"tags": {
"PURPOSE": "Generates a new JWT access token.",
"PRE": "data dict contains 'sub' (user_id) and optional 'scopes' (roles).",
@@ -36581,7 +102242,12 @@
"PARAM": "expires_delta (Optional[timedelta]) - Custom expiration time.",
"RETURN": "str - The encoded JWT."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "auth_config"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -36594,8 +102260,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 53,
+ "start_line": 50,
+ "end_line": 67,
"tags": {
"PURPOSE": "Decodes and validates a JWT token.",
"PRE": "token is a signed JWT string.",
@@ -36604,7 +102270,12 @@
"RETURN": "dict - The decoded payload.",
"THROW": "jose.JWTError - If token is invalid or expired."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "auth_config"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -36626,15 +102297,16 @@
}
},
{
- "name": "backend.src.core.auth.oauth",
+ "name": "AuthOauthModule",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 51,
+ "end_line": 56,
"tags": {
"SEMANTICS": "auth, oauth, oidc, adfs",
"PURPOSE": "ADFS OIDC configuration and client using Authlib.",
+ "COMPLEXITY": "2",
"LAYER": "Core",
"INVARIANT": "Must use secure OIDC flows."
},
@@ -36645,7 +102317,7 @@
},
{
"type": "USES",
- "target": "backend.src.core.auth.config.auth_config"
+ "target": "auth_config"
}
],
"children": [
@@ -36654,12 +102326,17 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 16,
- "end_line": 19,
+ "start_line": 17,
+ "end_line": 21,
"tags": {
"PURPOSE": "Global Authlib OAuth registry."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "OAuth"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -36672,19 +102349,49 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 36,
+ "start_line": 23,
+ "end_line": 40,
"tags": {
"PURPOSE": "Registers the ADFS OIDC client.",
"PRE": "ADFS configuration is provided in auth_config.",
"POST": "ADFS client is registered in oauth registry."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "oauth"
+ },
+ {
+ "type": "USES",
+ "target": "auth_config"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 23
+ },
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 23
+ },
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 23
+ },
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 23
+ }
+ ],
+ "score": 0.4
}
},
{
@@ -36692,62 +102399,58 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 46,
+ "start_line": 42,
+ "end_line": 51,
"tags": {
"PURPOSE": "Checks if ADFS is properly configured.",
"PRE": "None.",
"POST": "Returns True if ADFS client is registered, False otherwise.",
"RETURN": "bool - Configuration status."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "oauth"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 42
+ },
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 42
+ }
+ ],
+ "score": 0.7
}
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "ERROR",
+ "severity": "WARNING",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.85
}
},
{
- "name": "backend.src.core.auth.logger",
+ "name": "AuthLoggerModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 32,
+ "end_line": 33,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "auth, logger, audit, security",
@@ -36758,7 +102461,7 @@
"relations": [
{
"type": "USES",
- "target": "backend.src.core.logger.belief_scope"
+ "target": "belief_scope"
}
],
"children": [
@@ -36768,19 +102471,35 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 16,
- "end_line": 30,
+ "end_line": 31,
"tags": {
"PURPOSE": "Logs a security-related event for audit trails.",
"PRE": "event_type and username are strings.",
"POST": "Security event is written to the application log.",
"PARAM": "details (dict) - Additional non-sensitive metadata."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USES",
+ "target": "logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 16
+ },
+ {
+ "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 16
+ }
+ ],
+ "score": 0.7
}
}
],
@@ -36797,22 +102516,23 @@
}
},
{
- "name": "backend.src.core.auth.security",
+ "name": "AuthSecurityModule",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 45,
+ "end_line": 48,
"tags": {
"SEMANTICS": "security, password, hashing, bcrypt",
"PURPOSE": "Utility for password hashing and verification using Passlib.",
+ "COMPLEXITY": "2",
"LAYER": "Core",
"INVARIANT": "Uses bcrypt for hashing with standard work factor."
},
"relations": [
{
"type": "DEPENDS_ON",
- "target": "passlib"
+ "target": "bcrypt"
}
],
"children": [
@@ -36821,8 +102541,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 14,
- "end_line": 32,
+ "start_line": 15,
+ "end_line": 34,
"tags": {
"PURPOSE": "Verifies a plain password against a hashed password.",
"PRE": "plain_password is a string, hashed_password is a bcrypt hash.",
@@ -36830,7 +102550,12 @@
"PARAM": "hashed_password (str) - The stored hash.",
"RETURN": "bool - Verification result."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "bcrypt"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -36843,8 +102568,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 43,
+ "start_line": 36,
+ "end_line": 46,
"tags": {
"PURPOSE": "Generates a bcrypt hash for a plain password.",
"PRE": "password is a string.",
@@ -36852,7 +102577,12 @@
"PARAM": "password (str) - The password to hash.",
"RETURN": "str - The generated hash."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "bcrypt"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -36862,39 +102592,18 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
},
{
- "name": "AuthRepository",
+ "name": "AuthRepositoryModule",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 118,
+ "end_line": 164,
"tags": {
"TIER": "CRITICAL",
"COMPLEXITY": "5",
@@ -36902,32 +102611,35 @@
"PURPOSE": "Data access layer for authentication and user preference entities.",
"LAYER": "Domain",
"INVARIANT": "All database read/write operations must execute via the injected SQLAlchemy session boundary.",
- "DATA_CONTRACT": "Session -> [User | Role | Permission | UserDashboardPreference]"
+ "DATA_CONTRACT": "Session -> [User | Role | Permission | UserDashboardPreference]",
+ "PRE": "Database connection is active.",
+ "POST": "Provides valid access to identity data.",
+ "SIDE_EFFECT": "None at module level."
},
"relations": [
{
"type": "DEPENDS_ON",
- "target": "sqlalchemy.orm.Session"
+ "target": "Session"
},
{
"type": "DEPENDS_ON",
- "target": "User:Class"
+ "target": "User"
},
{
"type": "DEPENDS_ON",
- "target": "Role:Class"
+ "target": "Role"
},
{
"type": "DEPENDS_ON",
- "target": "Permission:Class"
+ "target": "Permission"
},
{
"type": "DEPENDS_ON",
- "target": "UserDashboardPreference:Class"
+ "target": "UserDashboardPreference"
},
{
"type": "DEPENDS_ON",
- "target": "belief_scope:Function"
+ "target": "belief_scope"
}
],
"children": [
@@ -36936,26 +102648,39 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 24,
- "end_line": 116,
+ "start_line": 28,
+ "end_line": 162,
"tags": {
- "PURPOSE": "Initialize repository with database session."
+ "PURPOSE": "Initialize repository with database session.",
+ "PRE": "Database session is bound.",
+ "POST": "Entity instances returned safely.",
+ "SIDE_EFFECT": "Performs database reads."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Session"
+ }
+ ],
"children": [
{
"name": "get_user_by_id",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 41,
+ "start_line": 39,
+ "end_line": 51,
"tags": {
"PURPOSE": "Retrieve user by UUID.",
"PRE": "user_id is a valid UUID string.",
"POST": "Returns User object if found, else None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "User"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -36968,14 +102693,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 43,
- "end_line": 53,
+ "start_line": 53,
+ "end_line": 65,
"tags": {
"PURPOSE": "Retrieve user by username.",
"PRE": "username is a non-empty string.",
"POST": "Returns User object if found, else None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "User"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -36988,12 +102718,21 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 60,
+ "start_line": 67,
+ "end_line": 80,
"tags": {
"PURPOSE": "Retrieve role by UUID with permissions preloaded."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Role"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Permission"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -37006,12 +102745,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 67,
+ "start_line": 82,
+ "end_line": 89,
"tags": {
"PURPOSE": "Retrieve role by unique name."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Role"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -37024,12 +102768,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 74,
+ "start_line": 91,
+ "end_line": 100,
"tags": {
"PURPOSE": "Retrieve permission by UUID."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Permission"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -37042,12 +102791,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 76,
- "end_line": 84,
+ "start_line": 102,
+ "end_line": 115,
"tags": {
"PURPOSE": "Retrieve permission by resource and action tuple."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Permission"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -37060,12 +102814,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 86,
- "end_line": 91,
+ "start_line": 117,
+ "end_line": 124,
"tags": {
"PURPOSE": "List all system permissions."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Permission"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -37078,12 +102837,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 93,
- "end_line": 100,
+ "start_line": 126,
+ "end_line": 139,
"tags": {
"PURPOSE": "Retrieve dashboard filters/preferences for a user."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "UserDashboardPreference"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -37096,14 +102860,23 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 102,
- "end_line": 114,
+ "start_line": 141,
+ "end_line": 159,
"tags": {
"PURPOSE": "Retrieve roles that match a list of AD group names.",
"PRE": "groups is a list of strings representing AD group identifiers.",
"POST": "Returns a list of Role objects mapped to the provided AD groups."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Role"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ADGroupMapping"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -37115,75 +102888,35 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 24
- },
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 24
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 24
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 24
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 24
+ "line_number": 28
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 24
+ "line_number": 28
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 24
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 24
+ "line_number": 28
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 24
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 24
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 24
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 24
+ "line_number": 28
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 24
+ "line_number": 28
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 24
+ "line_number": 28
}
],
"score": 0.0
@@ -37194,8 +102927,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 28,
+ "start_line": 36,
+ "end_line": 36,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -37210,29 +102943,13 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.9666666666666667
}
},
{
- "name": "src.core.auth",
+ "name": "AuthPackage",
"type": "Package",
"complexity": 1,
"tier": "TRIVIAL",
@@ -37255,7 +102972,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 271,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for authentication module",
@@ -37264,17 +102981,270 @@
"relations": [
{
"type": "VERIFIES",
- "target": "src.core.auth"
+ "target": "AuthPackage"
}
],
"children": [
+ {
+ "name": "test_create_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 83,
+ "tags": {
+ "PURPOSE": "Verifies that a persisted user can be retrieved with intact credential hash."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_authenticate_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Validates authentication outcomes for valid, wrong-password, and unknown-user cases."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Ensures session creation returns bearer token payload fields."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_role_permission_association",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 143,
+ "end_line": 166,
+ "tags": {
+ "PURPOSE": "Confirms role-permission many-to-many assignments persist and reload correctly."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_user_role_association",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 169,
+ "end_line": 194,
+ "tags": {
+ "PURPOSE": "Confirms user-role assignment persists and is queryable from repository reads."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_ad_group_mapping",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 197,
+ "end_line": 221,
+ "tags": {
+ "PURPOSE": "Verifies AD group mapping rows persist and reference the expected role."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_authenticate_user_updates_last_login",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 224,
+ "end_line": 245,
+ "tags": {
+ "PURPOSE": "Verifies successful authentication updates last_login audit field."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_authenticate_inactive_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 248,
+ "end_line": 267,
+ "tags": {
+ "PURPOSE": "Verifies inactive accounts are rejected during password authentication."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_verify_password_empty_hash",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 270,
+ "end_line": 279,
+ "tags": {
+ "PURPOSE": "Verifies password verification safely rejects empty or null password hashes."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_provision_adfs_user_new",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 282,
+ "end_line": 311,
+ "tags": {
+ "PURPOSE": "Verifies JIT provisioning creates a new ADFS user and maps group-derived roles."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_provision_adfs_user_existing",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 314,
+ "end_line": 342,
+ "tags": {
+ "PURPOSE": "Verifies JIT provisioning reuses existing ADFS user and refreshes role assignments."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_auth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "db_session",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 35,
+ "start_line": 38,
+ "end_line": 38,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -37292,8 +103262,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 49,
+ "start_line": 52,
+ "end_line": 52,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -37311,726 +103281,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 54,
- "end_line": 54,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 58,
- "end_line": 58,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_authenticate_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 77,
- "end_line": 77,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_session",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 103,
- "end_line": 103,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_role_permission_association",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 122,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_user_role_association",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 142,
- "end_line": 142,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_ad_group_mapping",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 164,
- "end_line": 164,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_authenticate_user_updates_last_login",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 181,
- "end_line": 181,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_authenticate_inactive_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 199,
- "end_line": 199,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_verify_password_empty_hash",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 215,
- "end_line": 215,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_provision_adfs_user_new",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 221,
- "end_line": 221,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_provision_adfs_user_existing",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 247,
- "end_line": 247,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.5499999999999999
- }
- },
- {
- "name": "backend.src.core.utils.async_network",
- "type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 1,
- "end_line": null,
- "tags": {
- "COMPLEXITY": "5",
- "SEMANTICS": "network, httpx, async, superset, authentication, cache",
- "PURPOSE": "Provides async Superset API client with shared auth-token cache to avoid per-request re-login.",
- "LAYER": "Infra",
- "PRE": "Config payloads contain a Superset base URL and authentication fields needed for login.",
- "POST": "Async network clients reuse cached auth tokens and expose stable async request/error translation flow.",
- "SIDE_EFFECT": "Performs upstream HTTP I/O and mutates process-local auth cache entries.",
- "DATA_CONTRACT": "Input[config: Dict[str, Any]] -> Output[authenticated async Superset HTTP interactions]",
- "INVARIANT": "Async client reuses cached auth tokens per environment credentials and invalidates on 401."
- },
- "relations": [
- {
- "type": "DEPENDS_ON",
- "target": "backend.src.core.utils.network.SupersetAuthCache"
- }
- ],
- "children": [
- {
- "name": "backend.src.core.utils.async_network.AsyncAPIClient",
- "type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 32,
- "end_line": null,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Async Superset API client backed by httpx.AsyncClient with shared auth cache."
- },
- "relations": [
- {
- "type": "DEPENDS_ON",
- "target": "backend.src.core.utils.network.SupersetAuthCache"
- },
- {
- "type": "CALLS",
- "target": "backend.src.core.utils.network.SupersetAuthCache.get"
- },
- {
- "type": "CALLS",
- "target": "backend.src.core.utils.network.SupersetAuthCache.set"
- }
- ],
- "children": [
- {
- "name": "backend.src.core.utils.async_network.AsyncAPIClient.__init__",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 42,
- "end_line": null,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Initialize async API client for one environment.",
- "PRE": "config contains base_url and auth payload.",
- "POST": "Client is ready for async request/authentication flow.",
- "DATA_CONTRACT": "Input[config: Dict[str, Any]] -> self._auth_cache_key[str]"
- },
- "relations": [],
- "children": [
- {
- "name": "backend.src.core.utils.async_network.AsyncAPIClient._normalize_base_url",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 68,
- "end_line": null,
- "tags": {
- "COMPLEXITY": "1",
- "PURPOSE": "Normalize base URL for Superset API root construction.",
- "POST": "Returns canonical base URL without trailing slash and duplicate /api/v1 suffix."
- },
- "relations": [],
- "children": [
- {
- "name": "_build_api_url",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 79,
- "end_line": 92,
- "tags": {
- "COMPLEXITY": "1",
- "PURPOSE": "Build full API URL from relative Superset endpoint.",
- "POST": "Returns absolute URL for upstream request."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_get_auth_lock",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 106,
- "tags": {
- "COMPLEXITY": "1",
- "PURPOSE": "Return per-cache-key async lock to serialize fresh login attempts.",
- "POST": "Returns stable asyncio.Lock instance."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "authenticate",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 108,
- "end_line": 166,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Authenticate against Superset and cache access/csrf tokens.",
- "POST": "Client tokens are populated and reusable across requests.",
- "SIDE_EFFECT": "Performs network requests to Superset authentication endpoints.",
- "DATA_CONTRACT": "None -> Output[Dict[str, str]]"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 108
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 108
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 108
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 108
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 108
- }
- ],
- "score": 0.1
- }
- },
- {
- "name": "get_headers",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 168,
- "end_line": 182,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Return authenticated Superset headers for async requests.",
- "POST": "Headers include Authorization and CSRF tokens."
- },
- "relations": [
- {
- "type": "CALLS",
- "target": "self.authenticate"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 0.85
- }
- },
- {
- "name": "request",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 184,
- "end_line": 219,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Perform one authenticated async Superset API request.",
- "POST": "Returns JSON payload or raw httpx.Response when raw_response=true.",
- "SIDE_EFFECT": "Performs network I/O."
- },
- "relations": [
- {
- "type": "CALLS",
- "target": "self.get_headers"
- },
- {
- "type": "CALLS",
- "target": "self._handle_http_error"
- },
- {
- "type": "CALLS",
- "target": "self._handle_network_error"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 0.85
- }
- },
- {
- "name": "_handle_http_error",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 221,
- "end_line": 238,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Translate upstream HTTP errors into stable domain exceptions.",
- "POST": "Raises domain-specific exception for caller flow control.",
- "DATA_CONTRACT": "Input[httpx.HTTPStatusError] -> Exception"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 221
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 221
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 221
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 221
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 221
- }
- ],
- "score": 0.1
- }
- },
- {
- "name": "_handle_network_error",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 240,
- "end_line": 254,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Translate generic httpx errors into NetworkError.",
- "POST": "Raises NetworkError with URL context.",
- "DATA_CONTRACT": "Input[httpx.HTTPError] -> NetworkError"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 240
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 240
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 240
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 240
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 240
- }
- ],
- "score": 0.1
- }
- },
- {
- "name": "aclose",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 256,
- "end_line": 263,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Close underlying httpx client.",
- "POST": "Client resources are released.",
- "SIDE_EFFECT": "Closes network connections."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 256
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 256
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 256
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 256
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 256
- }
- ],
- "score": 0.1
- }
- }
- ],
- "compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient._normalize_base_url:Function] started at line 68",
- "severity": "ERROR",
- "line_number": 68
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient._normalize_base_url:Function] started at line 68",
- "severity": "ERROR",
- "line_number": 68
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient._normalize_base_url:Function] started at line 68",
- "severity": "ERROR",
- "line_number": 68
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient._normalize_base_url:Function] started at line 68",
- "severity": "ERROR",
- "line_number": 68
- }
- ],
- "score": 0.0
- }
- }
- ],
- "compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient.__init__:Function] started at line 42",
- "severity": "ERROR",
- "line_number": 42
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 42
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient.__init__:Function] started at line 42",
- "severity": "ERROR",
- "line_number": 42
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 42
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient.__init__:Function] started at line 42",
- "severity": "ERROR",
- "line_number": 42
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 42
- }
- ],
- "score": 0.0
- }
- }
- ],
- "compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient:Class] started at line 32",
- "severity": "ERROR",
- "line_number": 32
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network.AsyncAPIClient:Class] started at line 32",
- "severity": "ERROR",
- "line_number": 32
- }
- ],
- "score": 0.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 48,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_normalize_base_url",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 72,
+ "start_line": 57,
+ "end_line": 57,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -38048,14 +103300,2025 @@
"valid": false,
"issues": [
{
- "message": "Unclosed Anchor: [DEF:backend.src.core.utils.async_network:Module] started at line 1",
+ "message": "Unclosed Anchor: [DEF:test_auth:Module] started at line 1",
"severity": "ERROR",
"line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
}
],
"score": 0.0
}
},
+ {
+ "name": "SupersetContextExtractor",
+ "type": "Module",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 1294,
+ "tags": {
+ "COMPLEXITY": "4",
+ "SEMANTICS": "dataset_review, superset, link_parsing, context_recovery, partial_recovery",
+ "PURPOSE": "Recover dataset and dashboard context from Superset links while preserving explicit partial-recovery markers.",
+ "LAYER": "Infra",
+ "PRE": "Superset link or dataset reference must be parseable enough to resolve an environment-scoped target resource.",
+ "POST": "Returns the best available recovered context with explicit provenance and partial-recovery markers when necessary.",
+ "SIDE_EFFECT": "Performs upstream Superset API reads.",
+ "INVARIANT": "Partial recovery is surfaced explicitly and never misrepresented as fully confirmed context."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ImportedFilter"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ImportedFilter"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TemplateVariable"
+ }
+ ],
+ "children": [
+ {
+ "name": "SupersetContextExtractor.imports",
+ "type": "Block",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 16,
+ "end_line": 27,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetParsedContext",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 49,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Normalized output of Superset link parsing for session intake and recovery."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor",
+ "type": "Class",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 52,
+ "end_line": 1292,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Parse supported Superset URLs and recover canonical dataset/dashboard references for review-session intake.",
+ "PRE": "constructor receives a configured environment with a usable Superset base URL.",
+ "POST": "extractor instance is ready to parse links against one Superset environment.",
+ "SIDE_EFFECT": "downstream parse operations may call Superset APIs through SupersetClient."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Environment"
+ }
+ ],
+ "children": [
+ {
+ "name": "SupersetContextExtractor.__init__",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 60,
+ "end_line": 69,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Bind extractor to one Superset environment and client instance."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor.parse_superset_link",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 71,
+ "end_line": 367,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Extract candidate identifiers and query state from supported Superset URLs.",
+ "PRE": "link is a non-empty Superset URL compatible with the configured environment.",
+ "POST": "returns resolved dataset/dashboard context, preserving explicit partial-recovery state if some identifiers cannot be confirmed.",
+ "SIDE_EFFECT": "may issue Superset API reads to resolve dataset references from dashboard or chart URLs.",
+ "DATA_CONTRACT": "Input[link:str] -> Output[SupersetParsedContext]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_dashboard_detail"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetContextExtractor.recover_imported_filters",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 369,
+ "end_line": 603,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Build imported filter entries from URL state and Superset-side saved context.",
+ "PRE": "parsed_context comes from a successful Superset link parse for one environment.",
+ "POST": "returns explicit recovered and partial filter entries with preserved provenance and confirmation requirements.",
+ "SIDE_EFFECT": "may issue Superset reads for dashboard metadata enrichment.",
+ "DATA_CONTRACT": "Input[SupersetParsedContext] -> Output[List[Dict[str,Any]]]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_dashboard"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetContextExtractor.discover_template_variables",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 605,
+ "end_line": 696,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Detect runtime variables and Jinja references from dataset query-bearing fields.",
+ "PRE": "dataset_payload is a Superset dataset-detail style payload with query-bearing fields when available.",
+ "POST": "returns deduplicated explicit variable records without executing Jinja or fabricating runtime values.",
+ "SIDE_EFFECT": "none.",
+ "DATA_CONTRACT": "Input[dataset_payload:Dict[str,Any]] -> Output[List[Dict[str,Any]]]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TemplateVariable"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetContextExtractor.build_recovery_summary",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 698,
+ "end_line": 714,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Summarize recovered, partial, and unresolved context for session state and UX."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._extract_numeric_identifier",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 716,
+ "end_line": 737,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Extract a numeric identifier from a REST-like Superset URL path."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._extract_dashboard_reference",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 739,
+ "end_line": 758,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Extract a dashboard id-or-slug reference from a Superset URL path."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._extract_dashboard_permalink_key",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 760,
+ "end_line": 780,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Extract a dashboard permalink key from a Superset URL path."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._extract_dashboard_id_from_state",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 782,
+ "end_line": 791,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Extract a dashboard identifier from returned permalink state when present."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._extract_chart_id_from_state",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 793,
+ "end_line": 802,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Extract a chart identifier from returned permalink state when dashboard id is absent."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._search_nested_numeric_key",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 804,
+ "end_line": 829,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Recursively search nested dict/list payloads for the first numeric value under a candidate key set."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetContextExtractor.parse_superset_link"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._recover_dataset_binding_from_dashboard",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 831,
+ "end_line": 871,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Recover a dataset binding from resolved dashboard context while preserving explicit unresolved markers."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_dashboard_detail"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._decode_query_state",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 873,
+ "end_line": 895,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Decode query-string structures used by Superset URL state transport."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._extract_imported_filters",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 897,
+ "end_line": 1129,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Normalize imported filters from decoded query state without fabricating missing values."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._normalize_imported_filter_payload",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1131,
+ "end_line": 1172,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Normalize one imported-filter payload with explicit provenance and confirmation state."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._collect_query_bearing_expressions",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1174,
+ "end_line": 1216,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Collect SQL and expression-bearing dataset fields for deterministic template-variable discovery."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetContextExtractor.discover_template_variables"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._append_template_variable",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1218,
+ "end_line": 1249,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Append one deduplicated template-variable descriptor."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._extract_primary_jinja_identifier",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1251,
+ "end_line": 1263,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Extract a deterministic primary identifier from a Jinja expression without executing it."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetContextExtractor._normalize_default_literal",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1265,
+ "end_line": 1289,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Normalize literal default fragments from template helper calls into JSON-safe values."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "parse_superset_link",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "recover_imported_filters",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 377,
+ "end_line": 377,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge_recovered_filter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 386,
+ "end_line": 386,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "discover_template_variables",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 613,
+ "end_line": 613,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "build_recovery_summary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 701,
+ "end_line": 701,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_extract_numeric_identifier",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 719,
+ "end_line": 719,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_extract_dashboard_reference",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 742,
+ "end_line": 742,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_extract_dashboard_permalink_key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 763,
+ "end_line": 763,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_extract_dashboard_id_from_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 785,
+ "end_line": 785,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_extract_chart_id_from_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 796,
+ "end_line": 796,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_search_nested_numeric_key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 808,
+ "end_line": 808,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_recover_dataset_binding_from_dashboard",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 835,
+ "end_line": 835,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_decode_query_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 876,
+ "end_line": 876,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_extract_imported_filters",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 900,
+ "end_line": 900,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_normalize_imported_filter_payload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1134,
+ "end_line": 1134,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_collect_query_bearing_expressions",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1178,
+ "end_line": 1178,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "append_expression",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1183,
+ "end_line": 1183,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_append_template_variable",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1221,
+ "end_line": 1221,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_extract_primary_jinja_identifier",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1254,
+ "end_line": 1254,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_normalize_default_literal",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1268,
+ "end_line": 1268,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1294 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.8071428571428572
+ }
+ },
+ {
+ "name": "AsyncNetworkModule",
+ "type": "Module",
+ "complexity": 5,
+ "tier": "CRITICAL",
+ "start_line": 1,
+ "end_line": 304,
+ "tags": {
+ "COMPLEXITY": "5",
+ "SEMANTICS": "network, httpx, async, superset, authentication, cache",
+ "PURPOSE": "Provides async Superset API client with shared auth-token cache to avoid per-request re-login.",
+ "LAYER": "Infra",
+ "PRE": "Config payloads contain a Superset base URL and authentication fields needed for login.",
+ "POST": "Async network clients reuse cached auth tokens and expose stable async request/error translation flow.",
+ "SIDE_EFFECT": "Performs upstream HTTP I/O and mutates process-local auth cache entries.",
+ "DATA_CONTRACT": "Input[config: Dict[str, Any]] -> Output[authenticated async Superset HTTP interactions]",
+ "INVARIANT": "Async client reuses cached auth tokens per environment credentials and invalidates on 401."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetAuthCache"
+ }
+ ],
+ "children": [
+ {
+ "name": "AsyncAPIClient",
+ "type": "Class",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 32,
+ "end_line": 302,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Async Superset API client backed by httpx.AsyncClient with shared auth cache."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetAuthCache"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetAuthCache.get"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetAuthCache.set"
+ }
+ ],
+ "children": [
+ {
+ "name": "AsyncAPIClient.__init__",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 42,
+ "end_line": 68,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Initialize async API client for one environment.",
+ "PRE": "config contains base_url and auth payload.",
+ "POST": "Client is ready for async request/authentication flow.",
+ "DATA_CONTRACT": "Input[config: Dict[str, Any]] -> self._auth_cache_key[str]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient._normalize_base_url"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetAuthCache"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AsyncAPIClient._normalize_base_url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 79,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Normalize base URL for Superset API root construction.",
+ "POST": "Returns canonical base URL without trailing slash and duplicate /api/v1 suffix."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AsyncAPIClient._build_api_url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 94,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Build full API URL from relative Superset endpoint.",
+ "POST": "Returns absolute URL for upstream request."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AsyncAPIClient._get_auth_lock",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 108,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Return per-cache-key async lock to serialize fresh login attempts.",
+ "POST": "Returns stable asyncio.Lock instance."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AsyncAPIClient.authenticate",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 110,
+ "end_line": 171,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Authenticate against Superset and cache access/csrf tokens.",
+ "POST": "Client tokens are populated and reusable across requests.",
+ "SIDE_EFFECT": "Performs network requests to Superset authentication endpoints.",
+ "DATA_CONTRACT": "None -> Output[Dict[str, str]]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetAuthCache.get"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetAuthCache.set"
+ },
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient._get_auth_lock"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AsyncAPIClient.get_headers",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 173,
+ "end_line": 187,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Return authenticated Superset headers for async requests.",
+ "POST": "Headers include Authorization and CSRF tokens."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient.authenticate"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AsyncAPIClient.request",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 189,
+ "end_line": 224,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Perform one authenticated async Superset API request.",
+ "POST": "Returns JSON payload or raw httpx.Response when raw_response=true.",
+ "SIDE_EFFECT": "Performs network I/O."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient.get_headers"
+ },
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient._handle_http_error"
+ },
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient._handle_network_error"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AsyncAPIClient._handle_http_error",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 226,
+ "end_line": 256,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Translate upstream HTTP errors into stable domain exceptions.",
+ "POST": "Raises domain-specific exception for caller flow control.",
+ "DATA_CONTRACT": "Input[httpx.HTTPStatusError] -> Exception"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AsyncAPIClient._is_dashboard_endpoint"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DashboardNotFoundError"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetAPIError"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "PermissionDeniedError"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "AuthenticationError"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "NetworkError"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AsyncAPIClient._is_dashboard_endpoint",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 258,
+ "end_line": 274,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Determine whether an API endpoint represents a dashboard resource for 404 translation.",
+ "POST": "Returns true only for dashboard-specific endpoints."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AsyncAPIClient._handle_network_error",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 276,
+ "end_line": 291,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Translate generic httpx errors into NetworkError.",
+ "POST": "Raises NetworkError with URL context.",
+ "DATA_CONTRACT": "Input[httpx.HTTPError] -> NetworkError"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "NetworkError"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "AsyncAPIClient.aclose",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 293,
+ "end_line": 301,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Close underlying httpx client.",
+ "POST": "Client resources are released.",
+ "SIDE_EFFECT": "Closes network connections."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AsyncAPIClient.__init__"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 50,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_normalize_base_url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_api_url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_auth_lock",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 101,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "authenticate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 119,
+ "end_line": 119,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_headers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 178,
+ "end_line": 178,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "request",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 197,
+ "end_line": 197,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_handle_http_error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 237,
+ "end_line": 237,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_is_dashboard_endpoint",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 262,
+ "end_line": 262,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_handle_network_error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 282,
+ "end_line": 282,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "aclose",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 299,
+ "end_line": 299,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 304 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.8166666666666667
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter",
+ "type": "Module",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 508,
+ "tags": {
+ "COMPLEXITY": "4",
+ "SEMANTICS": "dataset_review, superset, compilation_preview, sql_lab_launch, execution_truth",
+ "PURPOSE": "Interact with Superset preview compilation and SQL Lab execution endpoints using the current approved execution context.",
+ "LAYER": "Infra",
+ "PRE": "effective template params and dataset execution reference are available.",
+ "POST": "preview and launch calls return Superset-originated artifacts or explicit errors.",
+ "SIDE_EFFECT": "performs upstream Superset preview and SQL Lab calls.",
+ "INVARIANT": "The adapter never fabricates compiled SQL locally; preview truth is delegated to Superset only."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "CompiledPreview"
+ }
+ ],
+ "children": [
+ {
+ "name": "SupersetCompilationAdapter.imports",
+ "type": "Block",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 24,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "PreviewCompilationPayload",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 39,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Typed preview payload for Superset-side compilation."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SqlLabLaunchPayload",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 54,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Typed SQL Lab payload for audited launch handoff."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter",
+ "type": "Class",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 57,
+ "end_line": 506,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Delegate preview compilation and SQL Lab launch to Superset without local SQL fabrication.",
+ "PRE": "environment is configured and Superset is reachable for the target session.",
+ "POST": "adapter can return explicit ready/failed preview artifacts and canonical SQL Lab references.",
+ "SIDE_EFFECT": "issues network requests to Superset API surfaces."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient"
+ }
+ ],
+ "children": [
+ {
+ "name": "SupersetCompilationAdapter.__init__",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 74,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Bind adapter to one Superset environment and client instance."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter._supports_client_method",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 85,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Detect explicitly implemented client capabilities without treating loose mocks as real methods."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter.compile_preview",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 87,
+ "end_line": 180,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Request Superset-side compiled SQL preview for the current effective inputs.",
+ "PRE": "dataset_id and effective inputs are available for the current session.",
+ "POST": "returns a ready or failed preview artifact backed only by Superset-originated SQL or diagnostics.",
+ "SIDE_EFFECT": "performs upstream preview requests.",
+ "DATA_CONTRACT": "Input[PreviewCompilationPayload] -> Output[CompiledPreview]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetCompilationAdapter._request_superset_preview"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter.mark_preview_stale",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 182,
+ "end_line": 191,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Invalidate previous preview after mapping or value changes.",
+ "PRE": "preview is a persisted preview artifact or current in-memory snapshot.",
+ "POST": "preview status becomes stale without fabricating a replacement artifact."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter.create_sql_lab_session",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 193,
+ "end_line": 252,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Create the canonical audited execution session after all launch gates pass.",
+ "PRE": "compiled_sql is Superset-originated and launch gates are already satisfied.",
+ "POST": "returns one canonical SQL Lab session reference from Superset.",
+ "SIDE_EFFECT": "performs upstream SQL Lab execution/session creation.",
+ "DATA_CONTRACT": "Input[SqlLabLaunchPayload] -> Output[str]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetCompilationAdapter._request_sql_lab_session"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter._request_superset_preview",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 254,
+ "end_line": 398,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Request preview compilation through explicit client support backed by real Superset endpoints only.",
+ "PRE": "payload contains a valid dataset identifier and deterministic execution inputs for one preview attempt.",
+ "POST": "returns one normalized upstream compilation response including the chosen strategy metadata.",
+ "SIDE_EFFECT": "issues one or more Superset preview requests through the client fallback chain.",
+ "DATA_CONTRACT": "Input[PreviewCompilationPayload] -> Output[Dict[str,Any]]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.compile_dataset_preview"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter._request_sql_lab_session",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 400,
+ "end_line": 459,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Probe supported SQL Lab execution surfaces and return the first successful response.",
+ "PRE": "payload carries non-empty Superset-originated SQL and a preview identifier for the current launch.",
+ "POST": "returns the first successful SQL Lab execution response from Superset.",
+ "SIDE_EFFECT": "issues Superset dataset lookup and SQL Lab execution requests.",
+ "DATA_CONTRACT": "Input[SqlLabLaunchPayload] -> Output[Dict[str,Any]]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_dataset"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter._normalize_preview_response",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 461,
+ "end_line": 493,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Normalize candidate Superset preview responses into one compiled-sql structure."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "CompiledPreview"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SupersetCompilationAdapter._dump_json",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 495,
+ "end_line": 503,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Serialize Superset request payload deterministically for network transport."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 68,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_supports_client_method",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 79,
+ "end_line": 79,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "compile_preview",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 95,
+ "end_line": 95,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mark_preview_stale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 187,
+ "end_line": 187,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create_sql_lab_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 201,
+ "end_line": 201,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_request_superset_preview",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 262,
+ "end_line": 262,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_request_sql_lab_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 408,
+ "end_line": 408,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_normalize_preview_response",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 465,
+ "end_line": 465,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_dump_json",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 498,
+ "end_line": 498,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 508 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.8071428571428572
+ }
+ },
{
"name": "FileIO",
"type": "Module",
@@ -38454,12 +105717,12 @@
}
},
{
- "name": "network",
+ "name": "NetworkModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": null,
+ "end_line": 538,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "network, http, client, api, requests, session, authentication",
@@ -38470,11 +105733,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.logger"
- },
- {
- "type": "DEPENDS_ON",
- "target": "requests"
+ "target": "LoggerModule"
}
],
"children": [
@@ -38483,8 +105742,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 39,
+ "start_line": 24,
+ "end_line": 38,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Base exception for all Superset API related errors."
@@ -38496,8 +105755,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 29,
- "end_line": 38,
+ "start_line": 28,
+ "end_line": 37,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Initializes the exception with a message and context.",
@@ -38524,8 +105783,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 54,
+ "start_line": 40,
+ "end_line": 53,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Exception raised when authentication fails."
@@ -38537,8 +105796,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 53,
+ "start_line": 44,
+ "end_line": 52,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Initializes the authentication error.",
@@ -38565,8 +105824,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 56,
- "end_line": 67,
+ "start_line": 55,
+ "end_line": 66,
"tags": {
"PURPOSE": "Exception raised when access is denied."
},
@@ -38577,8 +105836,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 59,
- "end_line": 66,
+ "start_line": 58,
+ "end_line": 65,
"tags": {
"PURPOSE": "Initializes the permission denied error.",
"PRE": "message is a string, context is a dict.",
@@ -38604,8 +105863,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 80,
+ "start_line": 68,
+ "end_line": 79,
"tags": {
"PURPOSE": "Exception raised when a dashboard cannot be found."
},
@@ -38616,8 +105875,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 79,
+ "start_line": 71,
+ "end_line": 78,
"tags": {
"PURPOSE": "Initializes the not found error with resource ID.",
"PRE": "resource_id is provided.",
@@ -38643,417 +105902,429 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": null,
+ "start_line": 81,
+ "end_line": 93,
"tags": {
"PURPOSE": "Exception raised when a network level error occurs."
},
"relations": [],
"children": [
{
- "name": "network.APIClient.__init__",
+ "name": "NetworkError.__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 85,
- "end_line": null,
+ "start_line": 84,
+ "end_line": 92,
"tags": {
"PURPOSE": "Initializes the network error.",
"PRE": "message is a string.",
"POST": "NetworkError is initialized."
},
"relations": [],
- "children": [
- {
- "name": "network.SupersetAuthCache",
- "type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 97,
- "end_line": null,
- "tags": {
- "PURPOSE": "Process-local cache for Superset access/csrf tokens keyed by environment credentials.",
- "PRE": "base_url and username are stable strings.",
- "POST": "Cached entries expire automatically by TTL and can be reused across requests."
- },
- "relations": [],
- "children": [
- {
- "name": "APIClient",
- "type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 152,
- "end_line": 506,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Synchronous Superset API client with process-local auth token caching."
- },
- "relations": [
- {
- "type": "DEPENDS_ON",
- "target": "network.SupersetAuthCache"
- },
- {
- "type": "DEPENDS_ON",
- "target": "logger"
- }
- ],
- "children": [
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 160,
- "end_line": 183,
- "tags": {
- "PURPOSE": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 API \u043a\u043b\u0438\u0435\u043d\u0442 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439, \u0441\u0435\u0441\u0441\u0438\u0435\u0439 \u0438 \u043b\u043e\u0433\u0433\u0435\u0440\u043e\u043c.",
- "PARAM": "timeout (int) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.",
- "PRE": "config must contain 'base_url' and 'auth'.",
- "POST": "APIClient instance is initialized with a session."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_init_session",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 185,
- "end_line": 229,
- "tags": {
- "PURPOSE": "\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 `requests.Session` \u0441 retry-\u043b\u043e\u0433\u0438\u043a\u043e\u0439.",
- "PRE": "self.request_settings must be initialized.",
- "POST": "Returns a configured requests.Session instance.",
- "RETURN": "requests.Session - \u041d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_normalize_base_url",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 231,
- "end_line": 241,
- "tags": {
- "PURPOSE": "Normalize Superset environment URL to base host/path without trailing slash and /api/v1 suffix.",
- "PRE": "raw_url can be empty.",
- "POST": "Returns canonical base URL suitable for building API endpoints.",
- "RETURN": "str"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_build_api_url",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 243,
- "end_line": 257,
- "tags": {
- "PURPOSE": "Build absolute Superset API URL for endpoint using canonical /api/v1 base.",
- "PRE": "endpoint is relative path or absolute URL.",
- "POST": "Returns full URL without accidental duplicate slashes.",
- "RETURN": "str"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "authenticate",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 259,
- "end_line": 307,
- "tags": {
- "PURPOSE": "\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0432 Superset API \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 access \u0438 CSRF \u0442\u043e\u043a\u0435\u043d\u044b.",
- "PRE": "self.auth and self.base_url must be valid.",
- "POST": "`self._tokens` \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d, `self._authenticated` \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 `True`.",
- "RETURN": "Dict[str, str] - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438.",
- "THROW": "AuthenticationError, NetworkError - \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "headers",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 310,
- "end_line": 323,
- "tags": {
- "PURPOSE": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.",
- "PRE": "APIClient is initialized and authenticated or can be authenticated.",
- "POST": "Returns headers including auth tokens."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "request",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 325,
- "end_line": 353,
- "tags": {
- "PURPOSE": "\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441 \u043a API.",
- "PARAM": "raw_response (bool) - \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043b\u0438 \u0441\u044b\u0440\u043e\u0439 \u043e\u0442\u0432\u0435\u0442.",
- "PRE": "method and endpoint must be strings.",
- "POST": "Returns response content or raw Response object.",
- "RETURN": "`requests.Response` \u0435\u0441\u043b\u0438 `raw_response=True`, \u0438\u043d\u0430\u0447\u0435 `dict`.",
- "THROW": "SupersetAPIError, NetworkError \u0438 \u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u044b."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_handle_http_error",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 355,
- "end_line": 373,
- "tags": {
- "PURPOSE": "(Helper) \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 HTTP \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.",
- "PARAM": "endpoint (str) - \u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442.",
- "PRE": "e must be a valid HTTPError with a response.",
- "POST": "Raises a specific SupersetAPIError or subclass."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_handle_network_error",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 375,
- "end_line": 390,
- "tags": {
- "PURPOSE": "(Helper) \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 `NetworkError`.",
- "PARAM": "url (str) - URL.",
- "PRE": "e must be a RequestException.",
- "POST": "Raises a NetworkError."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "upload_file",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 392,
- "end_line": 421,
- "tags": {
- "PURPOSE": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 multipart/form-data.",
- "PARAM": "timeout (Optional[int]) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442.",
- "PRE": "file_info must contain 'file_obj' and 'file_name'.",
- "POST": "File is uploaded and response returned.",
- "RETURN": "\u041e\u0442\u0432\u0435\u0442 API \u0432 \u0432\u0438\u0434\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f.",
- "THROW": "SupersetAPIError, NetworkError, TypeError."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_perform_upload",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 423,
- "end_line": 449,
- "tags": {
- "PURPOSE": "(Helper) \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 POST \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c.",
- "PARAM": "timeout (Optional[int]) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442.",
- "PRE": "url, files, and headers must be provided.",
- "POST": "POST request is performed and JSON response returned.",
- "RETURN": "Dict - \u041e\u0442\u0432\u0435\u0442."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "fetch_paginated_count",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 451,
- "end_line": 463,
- "tags": {
- "PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438.",
- "PARAM": "count_field (str) - \u041f\u043e\u043b\u0435 \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c.",
- "PRE": "query_params must be a dictionary.",
- "POST": "Returns total count of items.",
- "RETURN": "int - \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "fetch_paginated_data",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 465,
- "end_line": 504,
- "tags": {
- "PURPOSE": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u0430\u0433\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430.",
- "PARAM": "pagination_options (Dict[str, Any]) - \u041e\u043f\u0446\u0438\u0438 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438.",
- "PRE": "pagination_options must contain 'base_query', 'results_field'. 'total_count' is optional.",
- "POST": "Returns all items across all pages.",
- "RETURN": "List[Any] - \u0421\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 0.85
- }
- }
- ],
- "compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:network.SupersetAuthCache:Class] started at line 97",
- "severity": "ERROR",
- "line_number": 97
- },
- {
- "message": "Unclosed Anchor: [DEF:network.SupersetAuthCache:Class] started at line 97",
- "severity": "ERROR",
- "line_number": 97
- },
- {
- "message": "Unclosed Anchor: [DEF:network.SupersetAuthCache:Class] started at line 97",
- "severity": "ERROR",
- "line_number": 97
- },
- {
- "message": "Unclosed Anchor: [DEF:network.SupersetAuthCache:Class] started at line 97",
- "severity": "ERROR",
- "line_number": 97
- }
- ],
- "score": 0.0
- }
- }
- ],
+ "children": [],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:network.APIClient.__init__:Function] started at line 85",
- "severity": "ERROR",
- "line_number": 85
- },
- {
- "message": "Unclosed Anchor: [DEF:network.APIClient.__init__:Function] started at line 85",
- "severity": "ERROR",
- "line_number": 85
- },
- {
- "message": "Unclosed Anchor: [DEF:network.APIClient.__init__:Function] started at line 85",
- "severity": "ERROR",
- "line_number": 85
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:NetworkError:Class] started at line 82",
- "severity": "ERROR",
- "line_number": 82
- },
- {
- "message": "Unclosed Anchor: [DEF:NetworkError:Class] started at line 82",
- "severity": "ERROR",
- "line_number": 82
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SupersetAuthCache",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 153,
+ "tags": {
+ "PURPOSE": "Process-local cache for Superset access/csrf tokens keyed by environment credentials.",
+ "PRE": "base_url and username are stable strings.",
+ "POST": "Cached entries expire automatically by TTL and can be reused across requests."
+ },
+ "relations": [],
+ "children": [
+ {
+ "name": "SupersetAuthCache.get",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 133,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
- ],
- "score": 0.0
+ },
+ {
+ "name": "SupersetAuthCache.set",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 136,
+ "end_line": 147,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "APIClient",
+ "type": "Class",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 155,
+ "end_line": 536,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Synchronous Superset API client with process-local auth token caching."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetAuthCache"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "LoggerModule"
+ }
+ ],
+ "children": [
+ {
+ "name": "APIClient.__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 163,
+ "end_line": 186,
+ "tags": {
+ "PURPOSE": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 API \u043a\u043b\u0438\u0435\u043d\u0442 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439, \u0441\u0435\u0441\u0441\u0438\u0435\u0439 \u0438 \u043b\u043e\u0433\u0433\u0435\u0440\u043e\u043c.",
+ "PARAM": "timeout (int) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.",
+ "PRE": "config must contain 'base_url' and 'auth'.",
+ "POST": "APIClient instance is initialized with a session."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_init_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 188,
+ "end_line": 232,
+ "tags": {
+ "PURPOSE": "\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 `requests.Session` \u0441 retry-\u043b\u043e\u0433\u0438\u043a\u043e\u0439.",
+ "PRE": "self.request_settings must be initialized.",
+ "POST": "Returns a configured requests.Session instance.",
+ "RETURN": "requests.Session - \u041d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_normalize_base_url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 234,
+ "end_line": 244,
+ "tags": {
+ "PURPOSE": "Normalize Superset environment URL to base host/path without trailing slash and /api/v1 suffix.",
+ "PRE": "raw_url can be empty.",
+ "POST": "Returns canonical base URL suitable for building API endpoints.",
+ "RETURN": "str"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_api_url",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 246,
+ "end_line": 260,
+ "tags": {
+ "PURPOSE": "Build absolute Superset API URL for endpoint using canonical /api/v1 base.",
+ "PRE": "endpoint is relative path or absolute URL.",
+ "POST": "Returns full URL without accidental duplicate slashes.",
+ "RETURN": "str"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "APIClient.authenticate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 262,
+ "end_line": 312,
+ "tags": {
+ "PURPOSE": "\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0432 Superset API \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 access \u0438 CSRF \u0442\u043e\u043a\u0435\u043d\u044b.",
+ "PRE": "self.auth and self.base_url must be valid.",
+ "POST": "`self._tokens` \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d, `self._authenticated` \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 `True`.",
+ "RETURN": "Dict[str, str] - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438.",
+ "THROW": "AuthenticationError, NetworkError - \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetAuthCache.get"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetAuthCache.set"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "headers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 315,
+ "end_line": 328,
+ "tags": {
+ "PURPOSE": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.",
+ "PRE": "APIClient is initialized and authenticated or can be authenticated.",
+ "POST": "Returns headers including auth tokens."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "request",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 330,
+ "end_line": 358,
+ "tags": {
+ "PURPOSE": "\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441 \u043a API.",
+ "PARAM": "raw_response (bool) - \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043b\u0438 \u0441\u044b\u0440\u043e\u0439 \u043e\u0442\u0432\u0435\u0442.",
+ "PRE": "method and endpoint must be strings.",
+ "POST": "Returns response content or raw Response object.",
+ "RETURN": "`requests.Response` \u0435\u0441\u043b\u0438 `raw_response=True`, \u0438\u043d\u0430\u0447\u0435 `dict`.",
+ "THROW": "SupersetAPIError, NetworkError \u0438 \u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u044b."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_handle_http_error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 360,
+ "end_line": 385,
+ "tags": {
+ "PURPOSE": "(Helper) \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 HTTP \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.",
+ "PARAM": "endpoint (str) - \u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442.",
+ "PRE": "e must be a valid HTTPError with a response.",
+ "POST": "Raises a specific SupersetAPIError or subclass."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_is_dashboard_endpoint",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 387,
+ "end_line": 403,
+ "tags": {
+ "PURPOSE": "Determine whether an API endpoint represents a dashboard resource for 404 translation.",
+ "PRE": "endpoint may be relative or absolute.",
+ "POST": "Returns true only for dashboard-specific endpoints."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_handle_network_error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 405,
+ "end_line": 420,
+ "tags": {
+ "PURPOSE": "(Helper) \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 `NetworkError`.",
+ "PARAM": "url (str) - URL.",
+ "PRE": "e must be a RequestException.",
+ "POST": "Raises a NetworkError."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "upload_file",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 422,
+ "end_line": 451,
+ "tags": {
+ "PURPOSE": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 multipart/form-data.",
+ "PARAM": "timeout (Optional[int]) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442.",
+ "PRE": "file_info must contain 'file_obj' and 'file_name'.",
+ "POST": "File is uploaded and response returned.",
+ "RETURN": "\u041e\u0442\u0432\u0435\u0442 API \u0432 \u0432\u0438\u0434\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f.",
+ "THROW": "SupersetAPIError, NetworkError, TypeError."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_perform_upload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 453,
+ "end_line": 479,
+ "tags": {
+ "PURPOSE": "(Helper) \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 POST \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c.",
+ "PARAM": "timeout (Optional[int]) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442.",
+ "PRE": "url, files, and headers must be provided.",
+ "POST": "POST request is performed and JSON response returned.",
+ "RETURN": "Dict - \u041e\u0442\u0432\u0435\u0442."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetch_paginated_count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 481,
+ "end_line": 493,
+ "tags": {
+ "PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438.",
+ "PARAM": "count_field (str) - \u041f\u043e\u043b\u0435 \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c.",
+ "PRE": "query_params must be a dictionary.",
+ "POST": "Returns total count of items.",
+ "RETURN": "int - \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "fetch_paginated_data",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 495,
+ "end_line": 534,
+ "tags": {
+ "PURPOSE": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u0430\u0433\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430.",
+ "PARAM": "pagination_options (Dict[str, Any]) - \u041e\u043f\u0446\u0438\u0438 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438.",
+ "PRE": "pagination_options must contain 'base_query', 'results_field'. 'total_count' is optional.",
+ "POST": "Returns all items across all pages.",
+ "RETURN": "List[Any] - \u0421\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -39061,8 +106332,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 89,
+ "start_line": 88,
+ "end_line": 88,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -39080,8 +106351,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 108,
- "end_line": 108,
+ "start_line": 107,
+ "end_line": 107,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -39118,8 +106389,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 135,
- "end_line": 135,
+ "start_line": 137,
+ "end_line": 137,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -39137,8 +106408,27 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 147,
- "end_line": 147,
+ "start_line": 150,
+ "end_line": 150,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 170,
+ "end_line": 170,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -39156,8 +106446,27 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 196,
- "end_line": 196,
+ "start_line": 199,
+ "end_line": 199,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "authenticate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 270,
+ "end_line": 270,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -39172,15 +106481,15 @@
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Unclosed Anchor: [DEF:network:Module] started at line 1",
- "severity": "ERROR",
+ "message": "Fractal limit warning: Module length is 538 lines (must be < 300)",
+ "severity": "WARNING",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.775
}
},
{
@@ -39408,12 +106717,1326 @@
}
},
{
- "name": "backend.src.core.__tests__.test_superset_profile_lookup",
+ "name": "NativeFilterExtractionTests",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 128,
+ "end_line": null,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, superset, native, filters, permalink, filter_state",
+ "PURPOSE": "Verify native filter extraction from permalinks and native_filters_key URLs.",
+ "LAYER": "Domain"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetClient"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "AsyncSupersetClient"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "FilterState, ParsedNativeFilters, ExtraFormDataMerge"
+ }
+ ],
+ "children": [
+ {
+ "name": "_make_environment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 40,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_extract_native_filters_from_permalink",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Extract native filters from a permalink key."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_extract_native_filters_from_permalink_direct_response",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Handle permalink response without result wrapper."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_extract_native_filters_from_key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Extract native filters from a native_filters_key."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_extract_native_filters_from_key_single_filter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Handle single filter format in native filter state."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_extract_native_filters_from_key_dict_value",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 172,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Handle filter state value as dict instead of JSON string."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parse_dashboard_url_for_filters_permalink",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 197,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Parse permalink URL format."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parse_dashboard_url_for_filters_native_key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 215,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Parse native_filters_key URL format with numeric dashboard ID."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parse_dashboard_url_for_filters_native_key_slug",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 234,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Parse native_filters_key URL format when dashboard reference is a slug, not a numeric ID."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 261,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Gracefully handle slug resolution failure for native_filters_key URL."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parse_dashboard_url_for_filters_native_filters_direct",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 277,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Parse native_filters direct query param."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parse_dashboard_url_for_filters_no_filters",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 293,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Return empty result when no filters present."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_extra_form_data_merge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 308,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Test ExtraFormDataMerge correctly merges dictionaries."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_filter_state_model",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 344,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Test FilterState Pydantic model."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parsed_native_filters_model",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 360,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Test ParsedNativeFilters Pydantic model."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parsed_native_filters_empty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 377,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Test ParsedNativeFilters with no filters."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_native_filter_data_mask_model",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 388,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Test NativeFilterDataMask model."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_recover_imported_filters_reconciles_raw_native_filter_ids_to_metadata_names",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 405,
+ "end_line": 461,
+ "tags": {
+ "PURPOSE": "Reconcile raw native filter ids from state to canonical metadata filter names."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_recover_imported_filters_collapses_state_and_metadata_duplicates_into_one_canonical_filter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 464,
+ "end_line": 517,
+ "tags": {
+ "PURPOSE": "Collapse raw-id state entries and metadata entries into one canonical filter."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_recover_imported_filters_preserves_unmatched_raw_native_filter_ids",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 520,
+ "end_line": 569,
+ "tags": {
+ "PURPOSE": "Preserve unmatched raw native filter ids as fallback diagnostics when metadata mapping is unavailable."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_extract_imported_filters_preserves_clause_level_native_filter_payload_for_preview",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 572,
+ "end_line": 612,
+ "tags": {
+ "PURPOSE": "Recovered native filter state should preserve exact Superset clause payload and time extras for preview compilation."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "NativeFilterExtractionTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_native_filter_data_mask_model:Function] started at line 388",
+ "severity": "ERROR",
+ "line_number": 388
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_empty:Function] started at line 377",
+ "severity": "ERROR",
+ "line_number": 377
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parsed_native_filters_model:Function] started at line 360",
+ "severity": "ERROR",
+ "line_number": 360
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_filter_state_model:Function] started at line 344",
+ "severity": "ERROR",
+ "line_number": 344
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extra_form_data_merge:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_no_filters:Function] started at line 293",
+ "severity": "ERROR",
+ "line_number": 293
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_filters_direct:Function] started at line 277",
+ "severity": "ERROR",
+ "line_number": 277
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails:Function] started at line 261",
+ "severity": "ERROR",
+ "line_number": 261
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key_slug:Function] started at line 234",
+ "severity": "ERROR",
+ "line_number": 234
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key:Function] started at line 215",
+ "severity": "ERROR",
+ "line_number": 215
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key:Function] started at line 215",
+ "severity": "ERROR",
+ "line_number": 215
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key:Function] started at line 215",
+ "severity": "ERROR",
+ "line_number": 215
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key:Function] started at line 215",
+ "severity": "ERROR",
+ "line_number": 215
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key:Function] started at line 215",
+ "severity": "ERROR",
+ "line_number": 215
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key:Function] started at line 215",
+ "severity": "ERROR",
+ "line_number": 215
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key:Function] started at line 215",
+ "severity": "ERROR",
+ "line_number": 215
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_native_key:Function] started at line 215",
+ "severity": "ERROR",
+ "line_number": 215
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_permalink:Function] started at line 197",
+ "severity": "ERROR",
+ "line_number": 197
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_permalink:Function] started at line 197",
+ "severity": "ERROR",
+ "line_number": 197
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_permalink:Function] started at line 197",
+ "severity": "ERROR",
+ "line_number": 197
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_permalink:Function] started at line 197",
+ "severity": "ERROR",
+ "line_number": 197
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_permalink:Function] started at line 197",
+ "severity": "ERROR",
+ "line_number": 197
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_permalink:Function] started at line 197",
+ "severity": "ERROR",
+ "line_number": 197
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_parse_dashboard_url_for_filters_permalink:Function] started at line 197",
+ "severity": "ERROR",
+ "line_number": 197
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_dict_value:Function] started at line 172",
+ "severity": "ERROR",
+ "line_number": 172
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_dict_value:Function] started at line 172",
+ "severity": "ERROR",
+ "line_number": 172
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_dict_value:Function] started at line 172",
+ "severity": "ERROR",
+ "line_number": 172
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_dict_value:Function] started at line 172",
+ "severity": "ERROR",
+ "line_number": 172
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_dict_value:Function] started at line 172",
+ "severity": "ERROR",
+ "line_number": 172
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_dict_value:Function] started at line 172",
+ "severity": "ERROR",
+ "line_number": 172
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_single_filter:Function] started at line 147",
+ "severity": "ERROR",
+ "line_number": 147
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_single_filter:Function] started at line 147",
+ "severity": "ERROR",
+ "line_number": 147
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_single_filter:Function] started at line 147",
+ "severity": "ERROR",
+ "line_number": 147
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_single_filter:Function] started at line 147",
+ "severity": "ERROR",
+ "line_number": 147
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key_single_filter:Function] started at line 147",
+ "severity": "ERROR",
+ "line_number": 147
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key:Function] started at line 116",
+ "severity": "ERROR",
+ "line_number": 116
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key:Function] started at line 116",
+ "severity": "ERROR",
+ "line_number": 116
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key:Function] started at line 116",
+ "severity": "ERROR",
+ "line_number": 116
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_key:Function] started at line 116",
+ "severity": "ERROR",
+ "line_number": 116
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_permalink_direct_response:Function] started at line 90",
+ "severity": "ERROR",
+ "line_number": 90
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_permalink_direct_response:Function] started at line 90",
+ "severity": "ERROR",
+ "line_number": 90
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_permalink_direct_response:Function] started at line 90",
+ "severity": "ERROR",
+ "line_number": 90
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_permalink:Function] started at line 43",
+ "severity": "ERROR",
+ "line_number": 43
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_extract_native_filters_from_permalink:Function] started at line 43",
+ "severity": "ERROR",
+ "line_number": 43
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:NativeFilterExtractionTests:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "TestSupersetProfileLookup",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 153,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, superset, profile, lookup, fallback, sorting",
@@ -39422,30 +108045,37 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.core.superset_profile_lookup"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
{
"name": "_RecordingNetworkClient",
"type": "Class",
- "complexity": 1,
+ "complexity": 2,
"tier": "TRIVIAL",
"start_line": 25,
- "end_line": 61,
+ "end_line": 68,
"tags": {
- "PURPOSE": "Records request payloads and returns scripted responses for deterministic adapter tests."
+ "COMPLEXITY": "2",
+ "PURPOSE": "Records request payloads and returns scripted responses for deterministic adapter tests.",
+ "INVARIANT": "Each request consumes one scripted response in call order and persists call metadata."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSupersetProfileLookup"
+ }
+ ],
"children": [
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 35,
+ "start_line": 31,
+ "end_line": 39,
"tags": {
"PURPOSE": "Initializes scripted network responses.",
"PRE": "scripted_responses is ordered per expected request sequence.",
@@ -39464,8 +108094,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 37,
- "end_line": 60,
+ "start_line": 41,
+ "end_line": 65,
"tags": {
"PURPOSE": "Mimics APIClient.request while capturing call arguments.",
"PRE": "method and endpoint are provided.",
@@ -39491,14 +108121,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 64,
- "end_line": 84,
+ "start_line": 71,
+ "end_line": 96,
"tags": {
"PURPOSE": "Ensures adapter sends lowercase order_direction compatible with Superset rison schema.",
"PRE": "Adapter is initialized with recording network client.",
"POST": "First request query payload contains order_direction='asc' for asc sort."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSupersetProfileLookup"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39511,14 +108146,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 87,
- "end_line": 105,
+ "start_line": 99,
+ "end_line": 122,
"tags": {
"PURPOSE": "Ensures fallback auth error does not mask primary schema/query failure.",
"PRE": "Primary endpoint fails with SupersetAPIError and fallback fails with AuthenticationError.",
"POST": "Raised exception remains primary SupersetAPIError (non-auth) to preserve root cause."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSupersetProfileLookup"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39531,14 +108171,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 108,
- "end_line": 125,
+ "start_line": 125,
+ "end_line": 150,
"tags": {
"PURPOSE": "Verifies adapter retries second users endpoint and succeeds when fallback is healthy.",
"PRE": "Primary endpoint fails; fallback returns valid users payload.",
"POST": "Result status is success and both endpoints were attempted in order."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSupersetProfileLookup"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39551,7 +108196,333 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "SupersetPreviewPipelineTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 542,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, superset, preview, chart_data, network, 404-mapping",
+ "PURPOSE": "Verify explicit chart-data preview compilation and ensure non-dashboard 404 errors remain generic across sync and async clients.",
+ "LAYER": "Domain"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AsyncNetworkModule"
+ }
+ ],
+ "children": [
+ {
+ "name": "_make_environment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 33,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_requests_http_error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 50,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_httpx_status_error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 63,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 149,
+ "tags": {
+ "PURPOSE": "Superset preview compilation should prefer the legacy form_data transport inferred from browser traffic before falling back to chart-data."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 152,
+ "end_line": 246,
+ "tags": {
+ "PURPOSE": "Superset preview compilation should fall back to chart-data when legacy form_data strategies are rejected."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_build_dataset_preview_query_context_places_recovered_filters_in_chart_style_form_data",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 249,
+ "end_line": 309,
+ "tags": {
+ "PURPOSE": "Preview query context should mirror chart-style filter transport so recovered native filters reach Superset compilation."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_build_dataset_preview_query_context_merges_dataset_template_params_and_preserves_user_values",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 312,
+ "end_line": 340,
+ "tags": {
+ "PURPOSE": "Preview query context should merge dataset template params for parity with real dataset definitions while preserving explicit session overrides."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_build_dataset_preview_query_context_preserves_time_range_from_native_filter_payload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 343,
+ "end_line": 379,
+ "tags": {
+ "PURPOSE": "Preview query context should preserve time-range native filter extras even when dataset defaults differ."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_build_dataset_preview_legacy_form_data_preserves_native_filter_clauses",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 382,
+ "end_line": 433,
+ "tags": {
+ "PURPOSE": "Legacy preview form_data should preserve recovered native filter clauses in browser-style fields without duplicating datasource for QueryObjectFactory."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_sync_network_404_mapping_keeps_non_dashboard_endpoints_generic",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 436,
+ "end_line": 457,
+ "tags": {
+ "PURPOSE": "Sync network client should reserve dashboard-not-found translation for dashboard endpoints only."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_sync_network_404_mapping_translates_dashboard_endpoints",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 460,
+ "end_line": 480,
+ "tags": {
+ "PURPOSE": "Sync network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_async_network_404_mapping_keeps_non_dashboard_endpoints_generic",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 483,
+ "end_line": 510,
+ "tags": {
+ "PURPOSE": "Async network client should reserve dashboard-not-found translation for dashboard endpoints only."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_async_network_404_mapping_translates_dashboard_endpoints",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 513,
+ "end_line": 539,
+ "tags": {
+ "PURPOSE": "Async network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SupersetPreviewPipelineTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 542 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -39565,25 +108536,34 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 5,
- "end_line": 99,
+ "end_line": 153,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for ThrottledSchedulerConfigurator distribution logic."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
"children": [
{
"name": "test_calculate_schedule_even_distribution",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 9,
- "end_line": 9,
+ "start_line": 11,
+ "end_line": 33,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate even spacing across a two-hour scheduling window for three tasks."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_throttled_scheduler"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39596,13 +108576,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 25,
+ "start_line": 36,
+ "end_line": 58,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate scheduler correctly rolls timestamps into the next day across midnight."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_throttled_scheduler"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39615,13 +108599,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 41,
+ "start_line": 61,
+ "end_line": 81,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate single-task schedule returns only the window start timestamp."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_throttled_scheduler"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39634,13 +108622,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 55,
+ "start_line": 84,
+ "end_line": 103,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate empty dashboard list produces an empty schedule."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_throttled_scheduler"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39653,13 +108645,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 68,
- "end_line": 68,
+ "start_line": 106,
+ "end_line": 127,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate zero-length window schedules all tasks at identical start timestamp."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_throttled_scheduler"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39672,13 +108668,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 83,
- "end_line": 83,
+ "start_line": 130,
+ "end_line": 152,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate sub-second interpolation when task count exceeds near-zero window granularity."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_throttled_scheduler"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39701,7 +108701,7 @@
"line_number": 5
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 5
}
@@ -39710,12 +108710,12 @@
}
},
{
- "name": "backend.src.core.__tests__.test_config_manager_compat",
+ "name": "TestConfigManagerCompat",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 53,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "config-manager, compatibility, payload, tests",
@@ -39734,12 +108734,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 23,
+ "start_line": 14,
+ "end_line": 28,
"tags": {
"PURPOSE": "Ensure get_payload merges typed config into raw payload without dropping legacy sections."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestConfigManagerCompat"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39752,11 +108757,170 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 51,
+ "start_line": 31,
+ "end_line": null,
"tags": {
"PURPOSE": "Ensure save_config accepts raw dict payload, refreshes typed config, and preserves extra sections."
},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestConfigManagerCompat"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_save_config_syncs_environment_records_for_fk_backed_flows",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Ensure saving config mirrors typed environments into relational records required by FK-backed session persistence."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestConfigManagerCompat"
+ }
+ ],
+ "children": [
+ {
+ "name": "_FakeQuery",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 85,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Minimal query stub returning hardcoded existing environment record list for sync tests.",
+ "INVARIANT": "all() always returns [existing_record]; no parameterization or filtering."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_save_config_syncs_environment_records_for_fk_backed_flows"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeSession",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 87,
+ "end_line": 102,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Minimal SQLAlchemy session stub that captures add/delete calls for environment sync assertions.",
+ "INVARIANT": "query() always returns _FakeQuery; no real DB interaction."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_save_config_syncs_environment_records_for_fk_backed_flows"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_load_config_syncs_environment_records_from_existing_db_payload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 131,
+ "end_line": 193,
+ "tags": {
+ "PURPOSE": "Ensure loading an existing DB-backed config also mirrors environment rows required by FK-backed runtime flows."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestConfigManagerCompat"
+ }
+ ],
+ "children": [
+ {
+ "name": "_FakeSession",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 156,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Minimal session stub tracking commit/close signals for config load lifecycle assertions.",
+ "INVARIANT": "No query or add semantics; only lifecycle signal tracking."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_load_config_syncs_environment_records_from_existing_db_payload"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_save_config_accepts_raw_payload_and_keeps_extras:Function] started at line 31",
+ "severity": "ERROR",
+ "line_number": 31
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_save_config_accepts_raw_payload_and_keeps_extras:Function] started at line 31",
+ "severity": "ERROR",
+ "line_number": 31
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_capture_save",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
"relations": [],
"children": [],
"compliance": {
@@ -39766,12 +108930,107 @@
}
},
{
- "name": "_capture_save",
+ "name": "all",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 35,
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "query",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "add",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "delete",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 99,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "commit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 150,
+ "end_line": 150,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "close",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 153,
+ "end_line": 153,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -39786,15 +109045,20 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:TestConfigManagerCompat:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -39803,7 +109067,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 281,
+ "end_line": 291,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for logger module",
@@ -39822,13 +109086,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 46,
- "end_line": 75,
+ "end_line": 76,
"tags": {
"PURPOSE": "Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs at DEBUG level.",
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
"POST": "Logs are verified to contain Entry, Action, and Exit tags at DEBUG level."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39841,14 +109110,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 78,
- "end_line": 107,
+ "start_line": 79,
+ "end_line": 109,
"tags": {
"PURPOSE": "Test that belief_scope logs Coherence:Failed on exception.",
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
"POST": "Logs are verified to contain Coherence:Failed tag."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39861,14 +109135,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 110,
- "end_line": 134,
+ "start_line": 112,
+ "end_line": 137,
"tags": {
"PURPOSE": "Test that belief_scope logs Coherence:OK on success.",
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
"POST": "Logs are verified to contain Coherence:OK tag."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39881,14 +109160,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 137,
- "end_line": 156,
+ "start_line": 140,
+ "end_line": 160,
"tags": {
"PURPOSE": "Test that belief_scope Entry/Exit/Coherence logs are NOT visible at INFO level.",
"PRE": "belief_scope is available. caplog fixture is used.",
"POST": "Entry/Exit/Coherence logs are not captured at INFO level."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39901,14 +109185,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 159,
- "end_line": 167,
+ "start_line": 163,
+ "end_line": 172,
"tags": {
"PURPOSE": "Test that default task log level is INFO.",
"PRE": "None.",
"POST": "Default level is INFO."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39921,14 +109210,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 170,
- "end_line": 181,
+ "start_line": 175,
+ "end_line": 187,
"tags": {
"PURPOSE": "Test that should_log_task_level correctly filters log levels.",
"PRE": "None.",
"POST": "Filtering works correctly for all level combinations."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39941,14 +109235,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 184,
- "end_line": 199,
+ "start_line": 190,
+ "end_line": 206,
"tags": {
"PURPOSE": "Test that configure_logger updates task_log_level.",
"PRE": "LoggingConfig is available.",
"POST": "task_log_level is updated correctly."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39961,14 +109260,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 202,
- "end_line": 228,
+ "start_line": 209,
+ "end_line": 236,
"tags": {
"PURPOSE": "Test that enable_belief_state flag controls belief_scope logging.",
"PRE": "LoggingConfig is available. caplog fixture is used.",
"POST": "belief_scope logs are controlled by the flag."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39981,12 +109285,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 231,
- "end_line": 241,
+ "start_line": 239,
+ "end_line": 250,
"tags": {
"PURPOSE": "Test @PRE condition: anchor_id must be provided"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -39999,12 +109308,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 243,
- "end_line": 279,
+ "start_line": 252,
+ "end_line": 289,
"tags": {
"PURPOSE": "Test @POST condition: Logger level, handlers, belief state flag, and task log level are updated."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_logger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -40050,12 +109364,12 @@
}
},
{
- "name": "backend.src.core.migration.dry_run_orchestrator",
+ "name": "MigrationDryRunOrchestratorModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 235,
+ "end_line": 363,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "migration, dry_run, diff, risk, superset",
@@ -40066,19 +109380,19 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.superset_client.SupersetClient"
+ "target": "SupersetClient"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.migration_engine.MigrationEngine"
+ "target": "MigrationEngine"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.migration.archive_parser.MigrationArchiveParser"
+ "target": "MigrationArchiveParser"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.migration.risk_assessor"
+ "target": "RiskAssessorModule"
}
],
"children": [
@@ -40088,19 +109402,52 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 28,
- "end_line": 234,
+ "end_line": 362,
"tags": {
"PURPOSE": "Build deterministic diff/risk payload for migration pre-flight."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CONTAINS",
+ "target": "__init__"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "run"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "_load_db_mapping"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "_accumulate_objects"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "_index_by_uuid"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "_build_object_diff"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "_build_target_signatures"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "_build_risks"
+ }
+ ],
"children": [
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 37,
+ "start_line": 39,
+ "end_line": 46,
"tags": {
"PURPOSE": "Wire parser dependency for archive object extraction.",
"PRE": "parser can be omitted to use default implementation.",
@@ -40119,15 +109466,36 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 39,
- "end_line": 111,
+ "start_line": 48,
+ "end_line": 159,
"tags": {
"PURPOSE": "Execute full dry-run computation for selected dashboards.",
"PRE": "source/target clients are authenticated and selection validated by caller.",
"POST": "Returns JSON-serializable pre-flight payload with summary, diff and risk.",
"SIDE_EFFECT": "Reads source export archives and target metadata via network."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "_load_db_mapping"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_accumulate_objects"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_build_target_signatures"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_build_object_diff"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_build_risks"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -40140,8 +109508,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 121,
+ "start_line": 161,
+ "end_line": 176,
"tags": {
"PURPOSE": "Resolve UUID mapping for optional DB config replacement."
},
@@ -40158,8 +109526,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 123,
- "end_line": 131,
+ "start_line": 178,
+ "end_line": 191,
"tags": {
"PURPOSE": "Merge extracted resources by UUID to avoid duplicates."
},
@@ -40176,8 +109544,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 133,
- "end_line": 142,
+ "start_line": 193,
+ "end_line": 205,
"tags": {
"PURPOSE": "Build UUID-index map for normalized resources."
},
@@ -40194,12 +109562,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 144,
- "end_line": 164,
+ "start_line": 207,
+ "end_line": 233,
"tags": {
"PURPOSE": "Compute create/update/delete buckets by UUID+signature."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "_index_by_uuid"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -40212,8 +109585,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 166,
- "end_line": 219,
+ "start_line": 235,
+ "end_line": 346,
"tags": {
"PURPOSE": "Pull target metadata and normalize it into comparable signatures."
},
@@ -40230,8 +109603,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 221,
- "end_line": 231,
+ "start_line": 348,
+ "end_line": 359,
"tags": {
"PURPOSE": "Build risk items for missing datasource, broken refs, overwrite, owner mismatch."
},
@@ -40247,11 +109620,6 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 28
- },
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
@@ -40277,16 +109645,51 @@
"severity": "ERROR",
"line_number": 28
},
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
"line_number": 28
},
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 28
- },
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
@@ -40312,6 +109715,46 @@
"severity": "ERROR",
"line_number": 28
},
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 28
+ },
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
@@ -40324,17 +109767,23 @@
],
"compliance": {
"valid": true,
- "issues": [],
- "score": 0.925
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 363 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
}
},
{
- "name": "backend.src.core.migration.archive_parser",
+ "name": "MigrationArchiveParserModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 139,
+ "end_line": 158,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "migration, zip, parser, yaml, metadata",
@@ -40345,7 +109794,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.logger"
+ "target": "LoggerModule"
}
],
"children": [
@@ -40355,26 +109804,44 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 20,
- "end_line": 138,
+ "end_line": 157,
"tags": {
"PURPOSE": "Extract normalized dashboards/charts/datasets metadata from ZIP archives."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CONTAINS",
+ "target": "extract_objects_from_zip"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "_collect_yaml_objects"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "_normalize_object_payload"
+ }
+ ],
"children": [
{
"name": "extract_objects_from_zip",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 45,
+ "start_line": 26,
+ "end_line": 54,
"tags": {
"PURPOSE": "Extract object catalogs from Superset archive.",
"PRE": "zip_path points to a valid readable ZIP.",
"POST": "Returns object lists grouped by resource type.",
"RETURN": "Dict[str, List[Dict[str, Any]]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "_collect_yaml_objects"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -40387,14 +109854,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 47,
- "end_line": 69,
+ "start_line": 56,
+ "end_line": 84,
"tags": {
"PURPOSE": "Read and normalize YAML manifests for one object type.",
"PRE": "object_type is one of dashboards/charts/datasets.",
"POST": "Returns only valid normalized objects."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "_normalize_object_payload"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -40407,8 +109879,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 71,
- "end_line": 135,
+ "start_line": 86,
+ "end_line": 154,
"tags": {
"PURPOSE": "Convert raw YAML payload to stable diff signature shape.",
"PRE": "payload is parsed YAML mapping.",
@@ -40426,11 +109898,6 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 20
- },
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
@@ -40456,16 +109923,26 @@
"severity": "ERROR",
"line_number": 20
},
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 20
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 20
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 20
+ },
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
"line_number": 20
},
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 20
- },
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
@@ -40491,6 +109968,21 @@
"severity": "ERROR",
"line_number": 20
},
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 20
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 20
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 20
+ },
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
@@ -40508,18 +110000,22 @@
}
},
{
- "name": "backend.src.core.migration.risk_assessor",
+ "name": "RiskAssessorModule",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 171,
+ "end_line": 202,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "migration, dry_run, risk, scoring, preflight",
"PURPOSE": "Compute deterministic migration risk items and aggregate score for dry-run reporting.",
"LAYER": "Domain",
"INVARIANT": "Risk scoring must remain bounded to [0,100] and preserve severity-to-weight mapping.",
+ "PRE": "Risk assessor functions receive normalized migration object collections from dry-run orchestration.",
+ "POST": "Risk scoring output preserves item list and provides bounded score with derived level.",
+ "SIDE_EFFECT": "Emits diagnostic logs and performs read-only metadata requests via Superset client.",
+ "DATA_CONTRACT": "Module[build_risks, score_risks]",
"TEST_CONTRACT": "[source_objects,target_objects,diff,target_client] -> [List[RiskItem]]",
"TEST_SCENARIO": "[owner_mismatch_dashboard] -> [low owner_mismatch risk is emitted]",
"TEST_EDGE": "[external_fail] -> [target_client get_databases exception propagates to caller]",
@@ -40532,11 +110028,23 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.superset_client.SupersetClient"
+ "target": "SupersetClient"
},
{
- "type": "DISPATCHES",
- "target": "backend.src.core.migration.dry_run_orchestrator.MigrationDryRunService.run"
+ "type": "CONTAINS",
+ "target": "index_by_uuid"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "extract_owner_identifiers"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "build_risks"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "score_risks"
}
],
"children": [
@@ -40545,8 +110053,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 44,
+ "start_line": 35,
+ "end_line": 53,
"tags": {
"PURPOSE": "Build UUID-index from normalized objects.",
"PRE": "Input list items are dict-like payloads potentially containing \"uuid\".",
@@ -40567,8 +110075,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 47,
- "end_line": 71,
+ "start_line": 56,
+ "end_line": 84,
"tags": {
"PURPOSE": "Normalize owner payloads for stable comparison.",
"PRE": "Owners may be list payload, scalar values, or None.",
@@ -40589,8 +110097,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 74,
- "end_line": 150,
+ "start_line": 87,
+ "end_line": 177,
"tags": {
"PURPOSE": "Build risk list from computed diffs and target catalog state.",
"PRE": "target_client is authenticated/usable for database list retrieval.",
@@ -40598,7 +110106,16 @@
"SIDE_EFFECT": "Calls target Superset API for databases metadata and emits logs.",
"DATA_CONTRACT": ") -> List[Dict[str, Any]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "index_by_uuid"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "extract_owner_identifiers"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -40611,8 +110128,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 153,
- "end_line": 168,
+ "start_line": 180,
+ "end_line": 199,
"tags": {
"PURPOSE": "Aggregate risk list into score and level.",
"PRE": "risk_items contains optional severity fields expected in {high,medium,low} or defaults to low weight.",
@@ -40633,22 +110150,22 @@
"valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
"line_number": 1
}
@@ -40657,7 +110174,7 @@
}
},
{
- "name": "backend.src.core.migration.__init__",
+ "name": "MigrationPackage",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
@@ -40680,35 +110197,39 @@
{
"name": "TaskLoggerModule",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 190,
+ "end_line": 194,
"tags": {
"SEMANTICS": "task, logger, context, plugin, attribution",
"PURPOSE": "Provides a dedicated logger for tasks with automatic source attribution.",
"LAYER": "Core",
- "COMPLEXITY": "5",
+ "COMPLEXITY": "2",
"INVARIANT": "Each TaskLogger instance is bound to a specific task_id and default source."
},
"relations": [
{
"type": "DEPENDS_ON",
- "target": "TaskManager, CALLS -> TaskManager._add_log"
+ "target": "TaskManager"
+ },
+ {
+ "type": "CALLS",
+ "target": "_add_log"
}
],
"children": [
{
"name": "TaskLogger",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 13,
- "end_line": 188,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 192,
"tags": {
"SEMANTICS": "logger, task, source, attribution",
"PURPOSE": "A wrapper around TaskManager._add_log that carries task_id and source context.",
- "COMPLEXITY": "5",
+ "COMPLEXITY": "2",
"INVARIANT": "All log calls include the task_id and source.",
"UX_STATE": "Idle -> Logging -> (system records log)",
"TEST_CONTRACT": "TaskLoggerModel ->",
@@ -40716,15 +110237,28 @@
"TEST_EDGE": "invalid_add_log_fn -> raises TypeError",
"TEST_INVARIANT": "consistent_delegation -> verifies: [valid_task_logger]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskManager"
+ },
+ {
+ "type": "CALLS",
+ "target": "_add_log"
+ },
+ {
+ "type": "USED_BY",
+ "target": "TaskManager"
+ }
+ ],
"children": [
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 47,
- "end_line": 63,
+ "start_line": 52,
+ "end_line": 64,
"tags": {
"PURPOSE": "Initialize the TaskLogger with task context.",
"PRE": "add_log_fn is a callable that accepts (task_id, level, message, context, source, metadata).",
@@ -40744,7 +110278,7 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 65,
+ "start_line": 66,
"end_line": 78,
"tags": {
"PURPOSE": "Create a sub-logger with a different default source.",
@@ -40767,7 +110301,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 80,
- "end_line": 104,
+ "end_line": 105,
"tags": {
"PURPOSE": "Internal method to log a message at a given level.",
"PRE": "level is a valid log level string.",
@@ -40788,8 +110322,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 106,
- "end_line": 120,
+ "start_line": 107,
+ "end_line": 122,
"tags": {
"PURPOSE": "Log a DEBUG level message.",
"PRE": "message is a string.",
@@ -40809,8 +110343,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 136,
+ "start_line": 124,
+ "end_line": 139,
"tags": {
"PURPOSE": "Log an INFO level message.",
"PRE": "message is a string.",
@@ -40830,8 +110364,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 138,
- "end_line": 152,
+ "start_line": 141,
+ "end_line": 156,
"tags": {
"PURPOSE": "Log a WARNING level message.",
"PRE": "message is a string.",
@@ -40851,8 +110385,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 154,
- "end_line": 168,
+ "start_line": 158,
+ "end_line": 173,
"tags": {
"PURPOSE": "Log an ERROR level message.",
"PRE": "message is a string.",
@@ -40872,8 +110406,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 170,
- "end_line": 186,
+ "start_line": 175,
+ "end_line": 189,
"tags": {
"PURPOSE": "Log a progress update with percentage.",
"PRE": "percent is between 0 and 100.",
@@ -40890,88 +110424,27 @@
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 15
},
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 13
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 15
}
],
- "score": 0.0
+ "score": 0.7
}
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -40980,7 +110453,7 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 547,
+ "end_line": 558,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "persistence, sqlite, sqlalchemy, task, storage",
@@ -40995,7 +110468,7 @@
"relations": [
{
"type": "USED_BY",
- "target": "backend.src.core.task_manager.manager.TaskManager"
+ "target": "TaskManager"
},
{
"type": "DEPENDS_ON",
@@ -41009,7 +110482,7 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 28,
- "end_line": 304,
+ "end_line": 306,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "persistence, service, database, sqlalchemy",
@@ -41039,7 +110512,7 @@
},
{
"type": "USED_BY",
- "target": "backend.src.core.task_manager.manager.TaskManager"
+ "target": "TaskManager"
}
],
"children": [
@@ -41091,7 +110564,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 97,
- "end_line": 134,
+ "end_line": 135,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Resolve environment id into existing environments.id value to satisfy FK constraints.",
@@ -41099,28 +110572,17 @@
"POST": "Returns existing environments.id or None when unresolved.",
"DATA_CONTRACT": "Input[env_id: Optional[str]] -> Output[Optional[str]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Environment"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 97
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 97
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 97
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41128,8 +110590,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 136,
- "end_line": 145,
+ "start_line": 137,
+ "end_line": 146,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Initializes the persistence service.",
@@ -41144,17 +110606,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 136
+ "line_number": 137
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 136
+ "line_number": 137
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 136
+ "line_number": 137
}
],
"score": 0.4
@@ -41165,8 +110627,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 147,
- "end_line": 210,
+ "start_line": 148,
+ "end_line": 211,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Persists or updates a single task in the database.",
@@ -41194,8 +110656,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 212,
- "end_line": 223,
+ "start_line": 213,
+ "end_line": 224,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Persists multiple tasks.",
@@ -41221,8 +110683,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 225,
- "end_line": 281,
+ "start_line": 226,
+ "end_line": 282,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Loads tasks from the database.",
@@ -41254,8 +110716,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 283,
- "end_line": 303,
+ "start_line": 284,
+ "end_line": 305,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Deletes specific tasks from the database.",
@@ -41264,28 +110726,17 @@
"PARAM": "task_ids (List[str]) - List of task IDs to delete.",
"SIDE_EFFECT": "Deletes rows from task_records table."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskRecord"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 283
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 283
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 283
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -41311,8 +110762,8 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 306,
- "end_line": 546,
+ "start_line": 308,
+ "end_line": 557,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "persistence, service, database, log, sqlalchemy",
@@ -41338,7 +110789,7 @@
},
{
"type": "USED_BY",
- "target": "backend.src.core.task_manager.manager.TaskManager"
+ "target": "TaskManager"
}
],
"children": [
@@ -41347,8 +110798,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 337,
- "end_line": 344,
+ "start_line": 339,
+ "end_line": 346,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Initializes the TaskLogPersistenceService",
@@ -41363,17 +110814,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 337
+ "line_number": 339
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 337
+ "line_number": 339
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 337
+ "line_number": 339
}
],
"score": 0.4
@@ -41384,8 +110835,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 346,
- "end_line": 377,
+ "start_line": 348,
+ "end_line": 380,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Batch insert log entries for a task.",
@@ -41395,28 +110846,17 @@
"SIDE_EFFECT": "Writes to task_logs table.",
"DATA_CONTRACT": "Input[List[LogEntry]] -> Model[TaskLogRecord]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLogRecord"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 346
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 346
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 346
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41424,8 +110864,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 379,
- "end_line": 431,
+ "start_line": 382,
+ "end_line": 437,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Query logs for a task with filtering and pagination.",
@@ -41435,28 +110875,25 @@
"RETURN": "List[TaskLog] - Filtered log entries.",
"DATA_CONTRACT": "Model[TaskLogRecord] -> Output[List[TaskLog]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLogRecord"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "LogFilter"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLog"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 379
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 379
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 379
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41464,8 +110901,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 433,
- "end_line": 478,
+ "start_line": 439,
+ "end_line": 486,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Get statistics about logs for a task.",
@@ -41475,28 +110912,21 @@
"RETURN": "LogStats - Statistics about task logs.",
"DATA_CONTRACT": "Model[TaskLogRecord] -> Output[LogStats]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLogRecord"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "LogStats"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 433
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 433
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 433
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41504,8 +110934,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 480,
- "end_line": 499,
+ "start_line": 488,
+ "end_line": 508,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Get unique sources for a task's logs.",
@@ -41515,28 +110945,17 @@
"RETURN": "List[str] - Unique source names.",
"DATA_CONTRACT": "Model[TaskLogRecord] -> Output[List[str]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLogRecord"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 480
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 480
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 480
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41544,8 +110963,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 501,
- "end_line": 521,
+ "start_line": 510,
+ "end_line": 531,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Delete all logs for a specific task.",
@@ -41554,28 +110973,17 @@
"PARAM": "task_id (str) - The task ID.",
"SIDE_EFFECT": "Deletes from task_logs table."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLogRecord"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 501
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 501
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 501
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41583,8 +110991,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 523,
- "end_line": 545,
+ "start_line": 533,
+ "end_line": 556,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Delete all logs for multiple tasks.",
@@ -41593,28 +111001,17 @@
"PARAM": "task_ids (List[str]) - List of task IDs.",
"SIDE_EFFECT": "Deletes rows from task_logs table."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLogRecord"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 523
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 523
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 523
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -41624,12 +111021,12 @@
{
"message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 306
+ "line_number": 308
},
{
"message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 306
+ "line_number": 308
}
],
"score": 0.0
@@ -41640,8 +111037,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 121,
- "end_line": 121,
+ "start_line": 122,
+ "end_line": 122,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -41659,8 +111056,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 173,
- "end_line": 173,
+ "start_line": 174,
+ "end_line": 174,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -41683,7 +111080,7 @@
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 547 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 558 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -41697,7 +111094,7 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 642,
+ "end_line": 744,
"tags": {
"TIER": "CRITICAL",
"COMPLEXITY": "5",
@@ -41718,11 +111115,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "PluginLoader:Class"
+ "target": "PluginLoader"
},
{
"type": "DEPENDS_ON",
- "target": "TaskPersistenceModule:Module"
+ "target": "TaskPersistenceService"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLogPersistenceService"
}
],
"children": [
@@ -41731,8 +111132,8 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 41,
- "end_line": 641,
+ "start_line": 43,
+ "end_line": 743,
"tags": {
"TIER": "CRITICAL",
"COMPLEXITY": "5",
@@ -41746,15 +111147,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "TaskPersistenceService:Class"
+ "target": "TaskPersistenceService"
},
{
"type": "DEPENDS_ON",
- "target": "TaskLogPersistenceService:Class"
+ "target": "TaskLogPersistenceService"
},
{
"type": "DEPENDS_ON",
- "target": "PluginLoader:Class"
+ "target": "PluginLoader"
}
],
"children": [
@@ -41763,64 +111164,40 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 63,
- "end_line": 95,
+ "start_line": 65,
+ "end_line": 104,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Initialize the TaskManager with dependencies.",
"PRE": "plugin_loader is initialized.",
"POST": "TaskManager is ready to accept tasks.",
+ "SIDE_EFFECT": "Starts background flusher thread and loads persisted task state into memory.",
"PARAM": "plugin_loader - The plugin loader instance."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.load_tasks"
+ }
+ ],
"children": [],
"compliance": {
"valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
+ "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 63
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 63
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 63
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 63
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 63
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 63
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 63
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 63
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 63
+ "line_number": 65
}
],
"score": 0.0
@@ -41831,36 +111208,25 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 97,
- "end_line": 107,
+ "start_line": 106,
+ "end_line": 118,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Background thread that periodically flushes log buffer to database.",
"PRE": "TaskManager is initialized.",
"POST": "Logs are batch-written to database every LOG_FLUSH_INTERVAL seconds."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskManager._flush_logs"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 97
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 97
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 97
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41868,36 +111234,25 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 109,
- "end_line": 134,
+ "start_line": 120,
+ "end_line": 147,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Flush all buffered logs to the database.",
"PRE": "None.",
"POST": "All buffered logs are written to task_logs table."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskLogPersistenceService.add_logs"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 109
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 109
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 109
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41905,8 +111260,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 136,
- "end_line": 153,
+ "start_line": 149,
+ "end_line": 168,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Flush logs for a specific task immediately.",
@@ -41914,28 +111269,17 @@
"POST": "Task's buffered logs are written to database.",
"PARAM": "task_id (str) - The task ID."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskLogPersistenceService.add_logs"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 136
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 136
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 136
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41943,8 +111287,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 155,
- "end_line": 183,
+ "start_line": 170,
+ "end_line": 204,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Creates and queues a new task for execution.",
@@ -41954,28 +111298,17 @@
"RETURN": "Task - The created task instance.",
"THROWS": "ValueError if plugin not found or params invalid."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.persist_task"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 155
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 155
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 155
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -41983,8 +111316,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 185,
- "end_line": 251,
+ "start_line": 206,
+ "end_line": 292,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Internal method to execute a task with TaskContext support.",
@@ -41992,28 +111325,17 @@
"POST": "Task is executed, status updated to SUCCESS or FAILED.",
"PARAM": "task_id (str) - The ID of the task to run."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.persist_task"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 185
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 185
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 185
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42021,8 +111343,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 253,
- "end_line": 276,
+ "start_line": 294,
+ "end_line": 319,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Resumes a task that is awaiting mapping.",
@@ -42031,28 +111353,17 @@
"PARAM": "resolution_params (Dict[str, Any]) - Params to resolve the wait.",
"THROWS": "ValueError if task not found or not awaiting mapping."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.persist_task"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 253
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 253
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 253
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42060,8 +111371,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 278,
- "end_line": 299,
+ "start_line": 321,
+ "end_line": 344,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Pauses execution and waits for a resolution signal.",
@@ -42069,28 +111380,17 @@
"POST": "Execution pauses until future is set.",
"PARAM": "task_id (str) - The ID of the task."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.persist_task"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42098,8 +111398,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 301,
- "end_line": 321,
+ "start_line": 346,
+ "end_line": 368,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Pauses execution and waits for user input.",
@@ -42107,28 +111407,17 @@
"POST": "Execution pauses until future is set via resume_task_with_password.",
"PARAM": "task_id (str) - The ID of the task."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "asyncio.AbstractEventLoop.create_future"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 301
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 301
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 301
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42136,8 +111425,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 323,
- "end_line": 333,
+ "start_line": 370,
+ "end_line": 382,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Retrieves a task by its ID.",
@@ -42146,25 +111435,30 @@
"PARAM": "task_id (str) - ID of the task.",
"RETURN": "Optional[Task] - The task or None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "READS",
+ "target": "TaskManager.tasks"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 323
+ "line_number": 370
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 323
+ "line_number": 370
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 323
+ "line_number": 370
}
],
"score": 0.4
@@ -42175,8 +111469,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 335,
- "end_line": 344,
+ "start_line": 384,
+ "end_line": 395,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Retrieves all registered tasks.",
@@ -42184,25 +111478,30 @@
"POST": "Returns list of all Task objects.",
"RETURN": "List[Task] - All tasks."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "READS",
+ "target": "TaskManager.tasks"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 335
+ "line_number": 384
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 335
+ "line_number": 384
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 335
+ "line_number": 384
}
],
"score": 0.4
@@ -42213,8 +111512,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 346,
- "end_line": 385,
+ "start_line": 397,
+ "end_line": 441,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Retrieves tasks with pagination and optional status filter.",
@@ -42223,25 +111522,30 @@
"PARAM": "status (Optional[TaskStatus]) - Filter by task status.",
"RETURN": "List[Task] - List of tasks matching criteria."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "READS",
+ "target": "TaskManager.tasks"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 346
+ "line_number": 397
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 346
+ "line_number": 397
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: READS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 346
+ "line_number": 397
}
],
"score": 0.4
@@ -42252,8 +111556,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 387,
- "end_line": 418,
+ "start_line": 443,
+ "end_line": 478,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Retrieves logs for a specific task (from memory for running, persistence for completed).",
@@ -42262,28 +111566,17 @@
"PARAM": "log_filter (Optional[LogFilter]) - Filter parameters.",
"RETURN": "List[LogEntry] - List of log entries."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskLogPersistenceService.get_logs"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 387
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 387
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 387
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42291,8 +111584,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 420,
- "end_line": 430,
+ "start_line": 480,
+ "end_line": 492,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Get statistics about logs for a task.",
@@ -42301,28 +111594,17 @@
"PARAM": "task_id (str) - The task ID.",
"RETURN": "LogStats - Statistics about task logs."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskLogPersistenceService.get_log_stats"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 420
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 420
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 420
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42330,8 +111612,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 432,
- "end_line": 442,
+ "start_line": 494,
+ "end_line": 506,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Get unique sources for a task's logs.",
@@ -42340,28 +111622,17 @@
"PARAM": "task_id (str) - The task ID.",
"RETURN": "List[str] - Unique source names."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskLogPersistenceService.get_sources"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 432
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 432
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 432
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42369,8 +111640,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 444,
- "end_line": 495,
+ "start_line": 508,
+ "end_line": 561,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Adds a log entry to a task buffer and notifies subscribers.",
@@ -42378,28 +111649,17 @@
"POST": "Log added to buffer and pushed to queues (if level meets task_log_level filter).",
"PARAM": "context (Optional[Dict]) - Legacy context (for backward compatibility)."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "should_log_task_level"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 444
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 444
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 444
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42407,8 +111667,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 497,
- "end_line": 511,
+ "start_line": 563,
+ "end_line": 579,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Subscribes to real-time logs for a task.",
@@ -42417,25 +111677,30 @@
"PARAM": "task_id (str) - ID of the task.",
"RETURN": "asyncio.Queue - Queue for log entries."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "MUTATES",
+ "target": "TaskManager.subscribers"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: MUTATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 497
+ "line_number": 563
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: MUTATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 497
+ "line_number": 563
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: MUTATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 497
+ "line_number": 563
}
],
"score": 0.4
@@ -42446,8 +111711,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 513,
- "end_line": 527,
+ "start_line": 581,
+ "end_line": 597,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unsubscribes from real-time logs for a task.",
@@ -42455,25 +111720,30 @@
"POST": "Queue removed from subscribers.",
"PARAM": "queue (asyncio.Queue) - Queue to remove."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "MUTATES",
+ "target": "TaskManager.subscribers"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: MUTATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 513
+ "line_number": 581
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: MUTATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 513
+ "line_number": 581
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: MUTATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 513
+ "line_number": 581
}
],
"score": 0.4
@@ -42484,36 +111754,25 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 529,
- "end_line": 540,
+ "start_line": 599,
+ "end_line": 612,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Load persisted tasks using persistence service.",
"PRE": "None.",
"POST": "Persisted tasks loaded into self.tasks."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.load_tasks"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 529
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 529
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 529
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42521,8 +111780,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 542,
- "end_line": 563,
+ "start_line": 614,
+ "end_line": 644,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Transition a task to AWAITING_INPUT state with input request.",
@@ -42531,28 +111790,17 @@
"PARAM": "input_request (Dict) - Details about required input.",
"THROWS": "ValueError if task not found or not RUNNING."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.persist_task"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 542
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 542
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 542
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42560,8 +111808,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 565,
- "end_line": 593,
+ "start_line": 646,
+ "end_line": 687,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Resume a task that is awaiting input with provided passwords.",
@@ -42570,28 +111818,17 @@
"PARAM": "passwords (Dict[str, str]) - Mapping of database name to password.",
"THROWS": "ValueError if task not found, not awaiting input, or passwords invalid."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.persist_task"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 565
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 565
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 565
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -42599,8 +111836,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 595,
- "end_line": 640,
+ "start_line": 689,
+ "end_line": 740,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Clears tasks based on status filter (also deletes associated logs).",
@@ -42609,28 +111846,17 @@
"PARAM": "status (Optional[TaskStatus]) - Filter by task status.",
"RETURN": "int - Number of tasks cleared."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskPersistenceService.delete_tasks"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 595
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 595
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 595
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -42640,22 +111866,22 @@
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 41
+ "line_number": 43
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 41
+ "line_number": 43
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 41
+ "line_number": 43
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 41
+ "line_number": 43
}
],
"score": 0.0
@@ -42666,8 +111892,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 373,
- "end_line": 373,
+ "start_line": 428,
+ "end_line": 428,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -42685,7 +111911,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 642 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 744 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -42699,25 +111925,33 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 135,
+ "end_line": 173,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "task, models, pydantic, enum, state",
"PURPOSE": "Defines the data models and enumerations used by the Task Manager.",
"LAYER": "Core",
- "RELATION": "Used by TaskManager and API routes.",
"INVARIANT": "Task IDs are immutable once created.",
"CONSTRAINT": "Must use Pydantic for data validation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "TaskManager"
+ },
+ {
+ "type": "USED_BY",
+ "target": "ApiRoutes"
+ }
+ ],
"children": [
{
"name": "TaskStatus",
"type": "Enum",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 19,
- "end_line": 30,
+ "start_line": 21,
+ "end_line": 34,
"tags": {
"COMPLEXITY": "1",
"SEMANTICS": "task, status, state, enum",
@@ -42734,96 +111968,95 @@
{
"name": "LogLevel",
"type": "Enum",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 32,
- "end_line": 41,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 50,
"tags": {
"SEMANTICS": "log, level, severity, enum",
"PURPOSE": "Defines the possible log levels for task logging.",
- "COMPLEXITY": "3"
+ "COMPLEXITY": "1"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "LogEntry"
+ },
+ {
+ "type": "USED_BY",
+ "target": "TaskLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 37
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 37
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 37
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 37
+ }
+ ],
+ "score": 0.4
}
},
{
"name": "LogEntry",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 43,
- "end_line": 63,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 83,
"tags": {
"SEMANTICS": "log, entry, record, pydantic",
"PURPOSE": "A Pydantic model representing a single, structured log entry associated with a task.",
- "COMPLEXITY": "5",
+ "COMPLEXITY": "2",
"INVARIANT": "Each log entry has a unique timestamp and source.",
"TEST_CONTRACT": "LogEntryModel ->",
"TEST_FIXTURE": "valid_log_entry -> {\"message\": \"Plugin initialized\"}",
"TEST_EDGE": "empty_message -> {\"message\": \"\"}"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "LogLevel"
+ },
+ {
+ "type": "PART_OF",
+ "target": "Task"
+ }
+ ],
"children": [],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
+ "message": "Invalid @RELATION predicate: PART_OF. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 53
},
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 43
+ "message": "Invalid @RELATION predicate: PART_OF. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 53
}
],
- "score": 0.0
+ "score": 0.7
}
},
{
@@ -42831,8 +112064,8 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 65,
- "end_line": 81,
+ "start_line": 86,
+ "end_line": 104,
"tags": {
"SEMANTICS": "task, log, persistent, pydantic",
"PURPOSE": "A Pydantic model representing a persisted log entry from the database.",
@@ -42851,12 +112084,12 @@
{
"message": "Invalid @RELATION predicate: MAPS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 65
+ "line_number": 86
},
{
"message": "Invalid @RELATION predicate: MAPS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 65
+ "line_number": 86
}
],
"score": 0.5499999999999999
@@ -42865,63 +112098,73 @@
{
"name": "LogFilter",
"type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 83,
- "end_line": 93,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 120,
"tags": {
"SEMANTICS": "log, filter, query, pydantic",
"PURPOSE": "Filter parameters for querying task logs.",
- "COMPLEXITY": "3"
+ "COMPLEXITY": "1"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "TaskManager"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 83
+ "line_number": 107
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 83
+ "line_number": 107
}
],
- "score": 0.5499999999999999
+ "score": 0.7
}
},
{
"name": "LogStats",
"type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 95,
- "end_line": 103,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 123,
+ "end_line": 134,
"tags": {
"SEMANTICS": "log, stats, aggregation, pydantic",
"PURPOSE": "Statistics about log entries for a task.",
- "COMPLEXITY": "3"
+ "COMPLEXITY": "1"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "COMPUTED_FROM",
+ "target": "TaskLog"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: COMPUTED_FROM. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 95
+ "line_number": 123
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: COMPUTED_FROM. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 95
+ "line_number": 123
}
],
- "score": 0.5499999999999999
+ "score": 0.7
}
},
{
@@ -42929,22 +112172,35 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 105,
- "end_line": 133,
+ "start_line": 137,
+ "end_line": 171,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "task, job, execution, state, pydantic",
"PURPOSE": "A Pydantic model representing a single execution instance of a plugin, including its status, parameters, and logs."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskStatus"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "LogEntry"
+ },
+ {
+ "type": "USED_BY",
+ "target": "TaskManager"
+ }
+ ],
"children": [
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 123,
- "end_line": 132,
+ "start_line": 158,
+ "end_line": 168,
"tags": {
"PURPOSE": "Initializes the Task model and validates input_request for AWAITING_INPUT status.",
"PRE": "If status is AWAITING_INPUT, input_request must be provided.",
@@ -42964,24 +112220,45 @@
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 105
+ "line_number": 137
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 105
+ "line_number": 137
+ },
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 137
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 137
}
],
- "score": 0.5499999999999999
+ "score": 0.25
}
}
],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.625
}
},
{
@@ -43140,18 +112417,26 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 150,
+ "end_line": 167,
"tags": {
"SEMANTICS": "task, context, plugin, execution, logger",
"PURPOSE": "Provides execution context passed to plugins during task execution.",
"LAYER": "Core",
"COMPLEXITY": "5",
- "INVARIANT": "Each TaskContext is bound to a single task execution."
+ "INVARIANT": "Each TaskContext is bound to a single task execution.",
+ "PRE": "Task execution pipeline provides valid task identifiers, logging callbacks, and parameter dictionaries.",
+ "POST": "Plugins receive context instances with stable logger and parameter accessors.",
+ "SIDE_EFFECT": "Creates task-scoped logger wrappers and carries optional background task handles across sub-contexts.",
+ "DATA_CONTRACT": "Input[task_id, add_log_fn, params, default_source, background_tasks] -> Output[TaskContext]"
},
"relations": [
{
"type": "DEPENDS_ON",
- "target": "TaskLogger, USED_BY -> plugins"
+ "target": "TaskLoggerModule"
+ },
+ {
+ "type": "USED_BY",
+ "target": "TaskManager"
}
],
"children": [
@@ -43160,28 +112445,37 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 16,
- "end_line": 148,
+ "start_line": 22,
+ "end_line": 165,
"tags": {
"SEMANTICS": "context, task, execution, plugin",
"PURPOSE": "A container passed to plugin.execute() providing the logger and other task-specific utilities.",
"COMPLEXITY": "5",
"INVARIANT": "logger is always a valid TaskLogger instance.",
+ "PRE": "Constructor receives non-empty task_id, callable add_log_fn, and params mapping.",
+ "POST": "Instance exposes immutable task identity with logger, params, and optional background task access.",
+ "SIDE_EFFECT": "Emits structured task logs through TaskLogger on plugin interactions.",
+ "DATA_CONTRACT": "Input[task_id, add_log_fn, params, default_source, background_tasks] -> Output[TaskContext]",
"UX_STATE": "Idle -> Active -> Complete",
"TEST_CONTRACT": "TaskContextInit ->",
"TEST_FIXTURE": "valid_context -> {\"task_id\": \"123\", \"add_log_fn\": lambda *args: None, \"params\": {\"k\": \"v\"}, \"default_source\": \"plugin\"}",
"TEST_EDGE": "missing_add_log_fn -> raises TypeError",
"TEST_INVARIANT": "logger_initialized -> verifies: [valid_context]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskLogger"
+ }
+ ],
"children": [
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 73,
+ "start_line": 59,
+ "end_line": 83,
"tags": {
"PURPOSE": "Initialize the TaskContext with task-specific resources.",
"PRE": "task_id is a valid task identifier, add_log_fn is callable.",
@@ -43201,8 +112495,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 84,
+ "start_line": 85,
+ "end_line": 95,
"tags": {
"PURPOSE": "Get the task ID.",
"PRE": "TaskContext must be initialized.",
@@ -43222,8 +112516,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 86,
- "end_line": 95,
+ "start_line": 97,
+ "end_line": 107,
"tags": {
"PURPOSE": "Get the TaskLogger instance for this context.",
"PRE": "TaskContext must be initialized.",
@@ -43243,8 +112537,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 106,
+ "start_line": 109,
+ "end_line": 119,
"tags": {
"PURPOSE": "Get the task parameters.",
"PRE": "TaskContext must be initialized.",
@@ -43264,8 +112558,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 108,
- "end_line": 116,
+ "start_line": 121,
+ "end_line": 130,
"tags": {
"PURPOSE": "Expose optional background task scheduler for plugins that dispatch deferred side effects.",
"PRE": "TaskContext must be initialized.",
@@ -43284,8 +112578,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 118,
- "end_line": 128,
+ "start_line": 132,
+ "end_line": 143,
"tags": {
"PURPOSE": "Get a specific parameter value with optional default.",
"PRE": "TaskContext must be initialized.",
@@ -43306,8 +112600,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 130,
- "end_line": 146,
+ "start_line": 145,
+ "end_line": 162,
"tags": {
"PURPOSE": "Create a sub-context with a different default source.",
"PRE": "source is a non-empty string.",
@@ -43325,60 +112619,9 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 16
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.9571428571428571
}
},
{
@@ -43386,8 +112629,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 41,
+ "start_line": 52,
+ "end_line": 52,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -43405,27 +112648,148 @@
"valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.4666666666666667
+ }
+ },
+ {
+ "name": "test_task_logger_initialization",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 28,
+ "tags": {
+ "TEST_CONTRACT": "invariants -> \"All specific log methods (info, error) delegate to _log\""
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_task_logger"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_log_methods_delegation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 71,
+ "tags": {
+ "TEST_CONTRACT": "invariants -> \"with_source creates a new logger with the same task_id\""
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_task_logger"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_with_source",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 84,
+ "tags": {
+ "TEST_EDGE": "missing_task_id -> raises TypeError"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_task_logger"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_missing_task_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 94,
+ "tags": {
+ "TEST_EDGE": "invalid_add_log_fn -> raises TypeError"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_task_logger"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_invalid_add_log_fn",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 104,
+ "tags": {
+ "TEST_INVARIANT": "consistent_delegation"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_task_logger"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_progress_log",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 125,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_task_logger"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -43434,7 +112798,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 102,
+ "end_line": 125,
"tags": {
"PURPOSE": "Auto-generated module for backend/src/core/task_manager/__tests__/test_task_logger.py",
"COMPLEXITY": "1",
@@ -43479,120 +112843,6 @@
"issues": [],
"score": 1.0
}
- },
- {
- "name": "test_task_logger_initialization",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_log_methods_delegation",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_with_source",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 65,
- "end_line": 65,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_missing_task_id",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 74,
- "end_line": 74,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_invalid_add_log_fn",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 80,
- "end_line": 80,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_progress_log",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 86,
- "end_line": 86,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
}
],
"compliance": {
@@ -43602,32 +112852,42 @@
}
},
{
- "name": "backend.src.core.task_manager.__tests__.test_context",
+ "name": "TestContext",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 29,
+ "end_line": 31,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, task-context, background-tasks, sub-context",
"PURPOSE": "Verify TaskContext preserves optional background task scheduler across sub-context creation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
"children": [
{
"name": "test_task_context_preserves_background_tasks_across_sub_context",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 11,
- "end_line": 28,
+ "start_line": 12,
+ "end_line": 30,
"tags": {
"PURPOSE": "Plugins must be able to access background_tasks from both root and sub-context loggers.",
"PRE": "TaskContext is initialized with a BackgroundTasks-like object.",
"POST": "background_tasks remains available on root and derived sub-contexts."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestContext"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -43645,7 +112905,7 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -43659,7 +112919,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 133,
+ "end_line": 156,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "api, auth, routes, login, logout",
@@ -43669,16 +112929,20 @@
},
"relations": [
{
- "type": "USES",
- "target": "AuthService:Class"
- },
- {
- "type": "USES",
- "target": "get_auth_db:Function"
+ "type": "DEPENDS_ON",
+ "target": "AuthService"
},
{
"type": "DEPENDS_ON",
- "target": "AuthRepository:Class"
+ "target": "get_auth_db"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "get_current_user"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "is_adfs_configured"
}
],
"children": [
@@ -43687,13 +112951,18 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 30,
+ "start_line": 27,
+ "end_line": 32,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "APIRouter instance for authentication routes."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "fastapi.APIRouter"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -43706,8 +112975,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 32,
- "end_line": 60,
+ "start_line": 35,
+ "end_line": 66,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Authenticates a user and returns a JWT access token.",
@@ -43739,8 +113008,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 62,
- "end_line": 74,
+ "start_line": 69,
+ "end_line": 83,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Retrieves the profile of the currently authenticated user.",
@@ -43767,8 +113036,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 76,
- "end_line": 90,
+ "start_line": 86,
+ "end_line": 102,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Logs out the current user (placeholder for session revocation).",
@@ -43794,8 +113063,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 92,
- "end_line": 107,
+ "start_line": 105,
+ "end_line": 122,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Initiates the ADFS OIDC login flow.",
@@ -43814,12 +113083,12 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 92
+ "line_number": 105
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 92
+ "line_number": 105
}
],
"score": 0.5499999999999999
@@ -43830,14 +113099,18 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 109,
- "end_line": 131,
+ "start_line": 125,
+ "end_line": 154,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Handles the callback from ADFS after successful authentication.",
"POST": "Provisions user JIT and returns session token."
},
"relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "is_adfs_configured"
+ },
{
"type": "CALLS",
"target": "AuthService.provision_adfs_user"
@@ -43857,19 +113130,8 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.625
+ "issues": [],
+ "score": 0.925
}
},
{
@@ -43914,7 +113176,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 23,
- "end_line": 34,
+ "end_line": 36,
"tags": {
"PURPOSE": "Validate decrypted runtime API key presence/shape.",
"PRE": "value can be None.",
@@ -43933,8 +113195,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 62,
+ "start_line": 39,
+ "end_line": 69,
"tags": {
"PURPOSE": "Retrieve all LLM provider configurations.",
"PRE": "User is authenticated.",
@@ -43953,8 +113215,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 65,
- "end_line": 93,
+ "start_line": 72,
+ "end_line": 101,
"tags": {
"PURPOSE": "Returns whether LLM runtime is configured for dashboard validation.",
"PRE": "User is authenticated.",
@@ -43973,8 +113235,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 95,
- "end_line": 119,
+ "start_line": 104,
+ "end_line": 132,
"tags": {
"PURPOSE": "Create a new LLM provider configuration.",
"PRE": "User is authenticated and has admin permissions.",
@@ -43993,8 +113255,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 121,
- "end_line": 149,
+ "start_line": 135,
+ "end_line": 165,
"tags": {
"PURPOSE": "Update an existing LLM provider configuration.",
"PRE": "User is authenticated and has admin permissions.",
@@ -44013,8 +113275,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 151,
- "end_line": 168,
+ "start_line": 168,
+ "end_line": 187,
"tags": {
"PURPOSE": "Delete an LLM provider configuration.",
"PRE": "User is authenticated and has admin permissions.",
@@ -44033,8 +113295,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 170,
- "end_line": 212,
+ "start_line": 190,
+ "end_line": 239,
"tags": {
"PURPOSE": "Test connection to an LLM provider.",
"PRE": "User is authenticated.",
@@ -44053,8 +113315,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 214,
- "end_line": 248,
+ "start_line": 242,
+ "end_line": 279,
"tags": {
"PURPOSE": "Test connection with a provided configuration (not yet saved).",
"PRE": "User is authenticated.",
@@ -44069,7 +113331,7 @@
}
},
{
- "name": "backend.src.api.routes.datasets",
+ "name": "DatasetsApi",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
@@ -44449,12 +113711,12 @@
}
},
{
- "name": "backend.src.api.routes.git",
+ "name": "GitApi",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 1460,
+ "end_line": 1749,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "git, routes, api, fastapi, repository, deployment",
@@ -44469,7 +113731,7 @@
},
{
"type": "USES",
- "target": "backend.src.api.routes.git_schemas"
+ "target": "GitSchemas"
},
{
"type": "USES",
@@ -44482,8 +113744,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 50,
- "end_line": 72,
+ "start_line": 64,
+ "end_line": 88,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Build a consistent status payload for dashboards without initialized repositories.",
@@ -44504,8 +113766,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 85,
+ "start_line": 91,
+ "end_line": 103,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Convert unexpected route-level exceptions to stable 500 API responses.",
@@ -44524,12 +113786,12 @@
{
"name": "_resolve_repository_status",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 88,
- "end_line": 112,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 106,
+ "end_line": 132,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve repository status for one dashboard with graceful NO_REPO semantics.",
"PRE": "`dashboard_id` is a valid integer.",
"POST": "Returns standard status payload or `NO_REPO` payload when repository path is absent.",
@@ -44540,30 +113802,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 88
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 88
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_get_git_config_or_404",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 115,
- "end_line": 125,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 135,
+ "end_line": 147,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve GitServerConfig by id or raise 404.",
"PRE": "db session is available.",
"POST": "Returns GitServerConfig model."
@@ -44572,30 +113823,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 115
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 115
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_find_dashboard_id_by_slug",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 128,
- "end_line": 152,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 150,
+ "end_line": 184,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard numeric ID by slug in a specific environment.",
"PRE": "dashboard_slug is non-empty.",
"POST": "Returns dashboard ID or None when not found."
@@ -44604,30 +113844,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 128
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 128
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_dashboard_id_from_ref",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 155,
- "end_line": 187,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 187,
+ "end_line": 223,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard ID from slug-or-id reference for Git routes.",
"PRE": "dashboard_ref is provided; env_id is required for slug values.",
"POST": "Returns numeric dashboard ID or raises HTTPException."
@@ -44636,30 +113865,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 155
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 155
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_find_dashboard_id_by_slug_async",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 190,
- "end_line": 214,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 226,
+ "end_line": 260,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard numeric ID by slug asynchronously for hot-path Git routes.",
"PRE": "dashboard_slug is non-empty.",
"POST": "Returns dashboard ID or None when not found."
@@ -44668,30 +113886,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 190
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_dashboard_id_from_ref_async",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 217,
- "end_line": 253,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 263,
+ "end_line": 303,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard ID asynchronously from slug-or-id reference for hot Git routes.",
"PRE": "dashboard_ref is provided; env_id is required for slug values.",
"POST": "Returns numeric dashboard ID or raises HTTPException."
@@ -44700,30 +113907,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 217
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 217
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_repo_key_from_ref",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 256,
- "end_line": 286,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 306,
+ "end_line": 340,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve repository folder key with slug-first strategy and deterministic fallback.",
"PRE": "dashboard_id is resolved and valid.",
"POST": "Returns safe key to be used in local repository path.",
@@ -44733,19 +113929,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 256
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 256
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -44753,8 +113938,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 289,
- "end_line": 300,
+ "start_line": 343,
+ "end_line": 356,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Normalize optional identity value into trimmed string or None.",
@@ -44773,12 +113958,12 @@
{
"name": "_resolve_current_user_git_identity",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 303,
- "end_line": 342,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 359,
+ "end_line": 404,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve configured Git username/email from current user's profile preferences.",
"PRE": "`db` may be stubbed in tests; `current_user` may be absent for direct handler invocations.",
"POST": "Returns tuple(username, email) only when both values are configured.",
@@ -44788,30 +113973,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 303
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 303
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_apply_git_identity_from_profile",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 345,
- "end_line": 366,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 407,
+ "end_line": 430,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Apply user-scoped Git identity to repository-local config before write/pull operations.",
"PRE": "dashboard_id is resolved; db/current_user may be missing in direct test invocation context.",
"POST": "git_service.configure_identity is called only when identity and method are available.",
@@ -44821,30 +113995,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 345
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 345
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_git_configs",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 369,
- "end_line": 388,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 433,
+ "end_line": 453,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "List all configured Git servers.",
"PRE": "Database session `db` is available.",
"POST": "Returns a list of all GitServerConfig objects from the database.",
@@ -44854,30 +114017,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 369
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 369
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "create_git_config",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 390,
- "end_line": 410,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 456,
+ "end_line": 478,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Register a new Git server configuration.",
"PRE": "`config` contains valid GitServerConfigCreate data.",
"POST": "A new GitServerConfig record is created in the database.",
@@ -44888,30 +114040,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 390
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 390
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "update_git_config",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 412,
- "end_line": 445,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 481,
+ "end_line": 518,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Update an existing Git server configuration.",
"PRE": "`config_id` corresponds to an existing configuration.",
"POST": "The configuration record is updated in the database.",
@@ -44922,30 +114063,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 412
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 412
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "delete_git_config",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 447,
- "end_line": 467,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 521,
+ "end_line": 545,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Remove a Git server configuration.",
"PRE": "`config_id` corresponds to an existing configuration.",
"POST": "The configuration record is removed from the database.",
@@ -44955,30 +114085,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 447
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 447
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "test_git_config",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 469,
- "end_line": 498,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 548,
+ "end_line": 589,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Validate connection to a Git server using provided credentials.",
"PRE": "`config` contains provider, url, and pat.",
"POST": "Returns success if the connection is validated via GitService.",
@@ -44988,30 +114107,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 469
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 469
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "list_gitea_repositories",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 501,
- "end_line": 529,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 592,
+ "end_line": 624,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "List repositories in Gitea for a saved Gitea config.",
"PRE": "config_id exists and provider is GITEA.",
"POST": "Returns repositories visible to PAT user."
@@ -45020,30 +114128,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 501
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 501
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "create_gitea_repository",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 532,
- "end_line": 566,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 627,
+ "end_line": 665,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Create a repository in Gitea for a saved Gitea config.",
"PRE": "config_id exists and provider is GITEA.",
"POST": "Returns created repository payload."
@@ -45052,30 +114149,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 532
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 532
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "create_remote_repository",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 569,
- "end_line": 627,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 668,
+ "end_line": 730,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Create repository on remote Git server using selected provider config.",
"PRE": "config_id exists and PAT has creation permissions.",
"POST": "Returns normalized remote repository payload."
@@ -45084,30 +114170,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 569
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 569
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "delete_gitea_repository",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 630,
- "end_line": 654,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 733,
+ "end_line": 761,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Delete repository in Gitea for a saved Gitea config.",
"PRE": "config_id exists and provider is GITEA.",
"POST": "Target repository is deleted on Gitea."
@@ -45116,19 +114191,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 630
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 630
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -45136,8 +114200,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 656,
- "end_line": 712,
+ "start_line": 764,
+ "end_line": 846,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Link a dashboard to a Git repository and perform initial clone/init.",
@@ -45153,12 +114217,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 656
+ "line_number": 764
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 656
+ "line_number": 764
}
],
"score": 0.5499999999999999
@@ -45167,12 +114231,12 @@
{
"name": "get_repository_binding",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 714,
- "end_line": 747,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 849,
+ "end_line": 892,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Return repository binding with provider metadata for selected dashboard.",
"PRE": "`dashboard_ref` resolves to a valid dashboard and repository is initialized.",
"POST": "Returns dashboard repository binding and linked provider.",
@@ -45183,30 +114247,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 714
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 714
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "delete_repository",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 749,
- "end_line": 772,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 895,
+ "end_line": 922,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Delete local repository workspace and DB binding for selected dashboard.",
"PRE": "`dashboard_ref` resolves to a valid dashboard.",
"POST": "Repository files and binding record are removed when present.",
@@ -45217,30 +114270,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 749
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 749
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_branches",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 774,
- "end_line": 796,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 925,
+ "end_line": 951,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "List all branches for a dashboard's repository.",
"PRE": "Repository for `dashboard_ref` is initialized.",
"POST": "Returns a list of branches from the local repository.",
@@ -45251,30 +114293,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 774
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 774
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "create_branch",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 798,
- "end_line": 825,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 954,
+ "end_line": 987,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Create a new branch in the dashboard's repository.",
"PRE": "`dashboard_ref` repository exists and `branch_data` has name and from_branch.",
"POST": "A new branch is created in the local repository.",
@@ -45284,30 +114315,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 798
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 798
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "checkout_branch",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 827,
- "end_line": 851,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 990,
+ "end_line": 1018,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Switch the dashboard's repository to a specific branch.",
"PRE": "`dashboard_ref` repository exists and branch `checkout_data.name` exists.",
"POST": "The local repository HEAD is moved to the specified branch.",
@@ -45317,30 +114337,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 827
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 827
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "commit_changes",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 853,
- "end_line": 880,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1021,
+ "end_line": 1054,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Stage and commit changes in the dashboard's repository.",
"PRE": "`dashboard_ref` repository exists and `commit_data` has message and files.",
"POST": "Specified files are staged and a new commit is created.",
@@ -45350,30 +114359,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 853
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 853
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "push_changes",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 882,
- "end_line": 904,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1057,
+ "end_line": 1083,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Push local commits to the remote repository.",
"PRE": "`dashboard_ref` repository exists and has a remote configured.",
"POST": "Local commits are pushed to the remote repository.",
@@ -45383,19 +114381,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 882
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 882
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -45403,8 +114390,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 906,
- "end_line": 952,
+ "start_line": 1086,
+ "end_line": 1153,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Pull changes from the remote repository.",
@@ -45420,12 +114407,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 906
+ "line_number": 1086
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 906
+ "line_number": 1086
}
],
"score": 0.5499999999999999
@@ -45434,12 +114421,12 @@
{
"name": "get_merge_status",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 954,
- "end_line": 974,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1156,
+ "end_line": 1182,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Return unfinished-merge status for repository (web-only recovery support).",
"PRE": "`dashboard_ref` resolves to a valid dashboard repository.",
"POST": "Returns merge status payload."
@@ -45448,30 +114435,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 954
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 954
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_merge_conflicts",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 977,
- "end_line": 997,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1185,
+ "end_line": 1212,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Return conflicted files with mine/theirs previews for web conflict resolver.",
"PRE": "`dashboard_ref` resolves to a valid dashboard repository.",
"POST": "Returns conflict file list."
@@ -45480,19 +114456,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 977
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 977
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -45500,8 +114465,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1000,
- "end_line": 1025,
+ "start_line": 1215,
+ "end_line": 1244,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Apply mine/theirs/manual conflict resolutions from WebUI and stage files.",
@@ -45516,12 +114481,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1000
+ "line_number": 1215
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1000
+ "line_number": 1215
}
],
"score": 0.5499999999999999
@@ -45530,12 +114495,12 @@
{
"name": "abort_merge",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1028,
- "end_line": 1048,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1247,
+ "end_line": 1271,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Abort unfinished merge from WebUI flow.",
"PRE": "`dashboard_ref` resolves to repository.",
"POST": "Merge operation is aborted or reports no active merge."
@@ -45544,19 +114509,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1028
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1028
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -45564,8 +114518,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1051,
- "end_line": 1072,
+ "start_line": 1274,
+ "end_line": 1299,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Finalize unfinished merge from WebUI flow.",
@@ -45580,12 +114534,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1051
+ "line_number": 1274
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1051
+ "line_number": 1274
}
],
"score": 0.5499999999999999
@@ -45596,8 +114550,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1075,
- "end_line": 1104,
+ "start_line": 1302,
+ "end_line": 1338,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Sync dashboard state from Superset to Git using the GitPlugin.",
@@ -45613,12 +114567,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1075
+ "line_number": 1302
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1075
+ "line_number": 1302
}
],
"score": 0.5499999999999999
@@ -45629,8 +114583,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1107,
- "end_line": 1208,
+ "start_line": 1341,
+ "end_line": 1462,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Promote changes between branches via MR or direct merge.",
@@ -45645,12 +114599,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1107
+ "line_number": 1341
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1107
+ "line_number": 1341
}
],
"score": 0.5499999999999999
@@ -45659,12 +114613,12 @@
{
"name": "get_environments",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1210,
- "end_line": 1231,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1465,
+ "end_line": 1486,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "List all deployment environments.",
"PRE": "Config manager is accessible.",
"POST": "Returns a list of DeploymentEnvironmentSchema objects.",
@@ -45674,19 +114628,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1210
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1210
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -45694,8 +114637,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1233,
- "end_line": 1262,
+ "start_line": 1489,
+ "end_line": 1525,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Deploy dashboard from Git to a target environment.",
@@ -45711,12 +114654,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1233
+ "line_number": 1489
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1233
+ "line_number": 1489
}
],
"score": 0.5499999999999999
@@ -45725,12 +114668,12 @@
{
"name": "get_history",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1264,
- "end_line": 1288,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1528,
+ "end_line": 1556,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "View commit history for a dashboard's repository.",
"PRE": "`dashboard_ref` repository exists.",
"POST": "Returns a list of recent commits from the repository.",
@@ -45741,30 +114684,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1264
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1264
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_repository_status",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1290,
- "end_line": 1312,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1559,
+ "end_line": 1585,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Get current Git status for a dashboard repository.",
"PRE": "`dashboard_ref` resolves to a valid dashboard.",
"POST": "Returns repository status; if repo is not initialized, returns `NO_REPO` payload.",
@@ -45775,30 +114707,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1290
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1290
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_repository_status_batch",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1315,
- "end_line": 1357,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1588,
+ "end_line": 1631,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Get Git statuses for multiple dashboard repositories in one request.",
"PRE": "`request.dashboard_ids` is provided.",
"POST": "Returns `statuses` map where each key is dashboard ID and value is repository status payload.",
@@ -45809,30 +114730,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1315
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1315
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_repository_diff",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1359,
- "end_line": 1386,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1634,
+ "end_line": 1665,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Get Git diff for a dashboard repository.",
"PRE": "`dashboard_ref` repository exists.",
"POST": "Returns the diff text for the specified file or all changes.",
@@ -45843,19 +114753,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1359
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1359
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -45863,8 +114762,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1388,
- "end_line": 1458,
+ "start_line": 1668,
+ "end_line": 1747,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Generate a suggested commit message using LLM.",
@@ -45879,12 +114778,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1388
+ "line_number": 1668
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1388
+ "line_number": 1668
}
],
"score": 0.5499999999999999
@@ -45910,7 +114809,7 @@
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 1460 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 1749 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -45921,146 +114820,199 @@
{
"name": "ConnectionsRouter",
"type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 1,
- "end_line": 113,
+ "end_line": 158,
"tags": {
"SEMANTICS": "api, router, connections, database",
"PURPOSE": "Defines the FastAPI router for managing external database connections.",
+ "COMPLEXITY": "3",
"LAYER": "UI (API)",
- "RELATION": "Depends on SQLAlchemy session.",
"CONSTRAINT": "Must use belief_scope for logging."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Session"
+ }
+ ],
"children": [
{
"name": "_ensure_connections_schema",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 22,
- "end_line": 29,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 23,
+ "end_line": 34,
"tags": {
"PURPOSE": "Ensures the connection_configs table exists before CRUD access.",
+ "COMPLEXITY": "3",
"PRE": "db is an active SQLAlchemy session.",
"POST": "The current bind can safely query ConnectionConfig."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "ensure_connection_configs_table"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "ConnectionSchema",
"type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 45,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 37,
+ "end_line": 55,
"tags": {
- "PURPOSE": "Pydantic model for connection response."
+ "PURPOSE": "Pydantic model for connection response.",
+ "COMPLEXITY": "3"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ConnectionConfig"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "ConnectionCreate",
"type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 47,
- "end_line": 57,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 58,
+ "end_line": 72,
"tags": {
- "PURPOSE": "Pydantic model for creating a connection."
+ "PURPOSE": "Pydantic model for creating a connection.",
+ "COMPLEXITY": "3"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ConnectionConfig"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "list_connections",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 59,
- "end_line": 71,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 75,
+ "end_line": 92,
"tags": {
"PURPOSE": "Lists all saved connections.",
+ "COMPLEXITY": "3",
"PRE": "Database session is active.",
"POST": "Returns list of connection configs.",
"PARAM": "db (Session) - Database session.",
"RETURN": "List[ConnectionSchema] - List of connections."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_ensure_connections_schema"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConnectionConfig"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "create_connection",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 90,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 95,
+ "end_line": 121,
"tags": {
"PURPOSE": "Creates a new connection configuration.",
+ "COMPLEXITY": "3",
"PRE": "Connection name is unique.",
"POST": "Connection is saved to DB.",
"PARAM": "db (Session) - Database session.",
"RETURN": "ConnectionSchema - Created connection."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_ensure_connections_schema"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConnectionConfig"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "delete_connection",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 92,
- "end_line": 111,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 124,
+ "end_line": 156,
"tags": {
"PURPOSE": "Deletes a connection configuration.",
+ "COMPLEXITY": "3",
"PRE": "Connection ID exists.",
"POST": "Connection is removed from DB.",
"PARAM": "db (Session) - Database session.",
"RETURN": "None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_ensure_connections_schema"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConnectionConfig"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
}
],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.925
}
},
{
@@ -46141,7 +115093,7 @@
}
},
{
- "name": "backend.src.api.routes.environments",
+ "name": "EnvironmentsApi",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
@@ -46310,13 +115262,1710 @@
"score": 0.925
}
},
+ {
+ "name": "DatasetReviewApi",
+ "type": "Module",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 2021,
+ "tags": {
+ "COMPLEXITY": "4",
+ "SEMANTICS": "dataset_review, api, session_lifecycle, exports, rbac, feature_flags",
+ "PURPOSE": "Expose dataset review session lifecycle and export endpoints for backend US1.",
+ "LAYER": "API",
+ "PRE": "Authenticated user and valid environment/session scope are required for all mutations and reads.",
+ "POST": "Returns ownership-scoped session state and export payloads with feature-flag/RBAC enforcement.",
+ "SIDE_EFFECT": "Persists session state and may enqueue recovery task.",
+ "DATA_CONTRACT": "Input[HTTP Request] -> Output[SessionSummary | SessionDetail | ExportArtifactResponse | HTTP 204]",
+ "INVARIANT": "No cross-user session leakage is allowed; export payloads only expose the current user's accessible session."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AppDependencies"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSessionRepository"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewOrchestrator"
+ }
+ ],
+ "children": [
+ {
+ "name": "DatasetReviewApi.imports",
+ "type": "Block",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 80,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "StartSessionRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 94,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for starting one dataset review session from a Superset link or dataset selection."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "UpdateSessionRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 105,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for lifecycle state updates on an existing session."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionCollectionResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 119,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Paginated ownership-scoped dataset review session collection response."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ExportArtifactResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 122,
+ "end_line": 136,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Inline export response for documentation or validation outputs without introducing unrelated persistence changes."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FieldSemanticUpdateRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 139,
+ "end_line": 151,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for field-level semantic candidate acceptance or manual override."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FeedbackRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 154,
+ "end_line": 161,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for thumbs up/down feedback persistence on AI-assisted content."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationAnswerRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 164,
+ "end_line": 173,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for submitting one clarification answer."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationSessionSummaryResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 176,
+ "end_line": 189,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Summary DTO for current clarification session state without exposing historical noise."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationStateResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 192,
+ "end_line": 200,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Response DTO for current clarification state and active question payload."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationAnswerResultResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 203,
+ "end_line": 212,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Response DTO for one clarification answer mutation result."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FeedbackResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 215,
+ "end_line": 223,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Minimal response DTO for persisted AI feedback actions."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ApproveMappingRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 226,
+ "end_line": 233,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Optional request DTO for explicit mapping approval audit notes."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "BatchApproveSemanticItemRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 236,
+ "end_line": 245,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for one batch semantic-approval item aligned with single-field acceptance semantics."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "BatchApproveSemanticRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 248,
+ "end_line": 255,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for explicit batch semantic approvals inside one owned session scope."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "BatchApproveMappingRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 258,
+ "end_line": 266,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for explicit batch mapping approvals aligned with single-item approval semantics."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "PreviewEnqueueResultResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 269,
+ "end_line": 278,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Contract-compliant async preview trigger response exposing only enqueue state."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "MappingCollectionResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 281,
+ "end_line": 288,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Contract-compliant wrapper for execution mapping list responses."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "UpdateExecutionMappingRequest",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 291,
+ "end_line": 303,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Request DTO for one manual execution-mapping override update without introducing unrelated bulk mutation semantics."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "LaunchDatasetResponse",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 306,
+ "end_line": 314,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Contract-compliant launch result exposing audited run context and SQL Lab redirect target."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_require_auto_review_flag",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 317,
+ "end_line": 331,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Guard US1 dataset review endpoints behind the configured feature flag."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConfigManager"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_require_clarification_flag",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 334,
+ "end_line": 348,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Guard clarification-specific US2 endpoints behind the configured feature flag."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConfigManager"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_require_execution_flag",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 351,
+ "end_line": 365,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Guard US3 execution endpoints behind the configured feature flag."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConfigManager"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_repository",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 368,
+ "end_line": 375,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Build repository dependency for dataset review session aggregate access."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_orchestrator",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 378,
+ "end_line": 394,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Build orchestrator dependency for session lifecycle actions."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewOrchestrator"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_clarification_engine",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 397,
+ "end_line": 407,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Build clarification engine dependency for one-question-at-a-time guided clarification mutations."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationEngine"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_serialize_session_summary",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 410,
+ "end_line": 419,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Map SQLAlchemy session aggregate root into stable API summary DTO."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionSummary"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_serialize_session_detail",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 422,
+ "end_line": 430,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Map SQLAlchemy session aggregate root into stable API detail DTO."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionDetail"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_serialize_semantic_field",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 433,
+ "end_line": 441,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Map one semantic field aggregate into stable field-level DTO output."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntryDto"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_serialize_clarification_question_payload",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 444,
+ "end_line": 471,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Convert clarification engine payload into API DTO aligned with the clarification contract."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationQuestionDto"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_serialize_clarification_state",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 474,
+ "end_line": 497,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Convert clarification engine state into stable API response payload."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationStateResponse"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_owned_session_or_404",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 500,
+ "end_line": 526,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Resolve one session for current user or collaborator scope, returning 404 when inaccessible.",
+ "PRE": "session_id is a non-empty identifier and current_user is authenticated.",
+ "POST": "returns accessible session detail or raises HTTP 404 without leaking foreign-session existence.",
+ "SIDE_EFFECT": "none.",
+ "DATA_CONTRACT": "Input[session_id:str,current_user:User] -> Output[DatasetReviewSession|HTTPException]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "load_detail"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "_require_owner_mutation_scope",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 529,
+ "end_line": 549,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Enforce owner-only mutation scope for dataset review write endpoints.",
+ "PRE": "Session is already ownership-visible to the current user.",
+ "POST": "Returns the session when current user is owner, otherwise raises HTTP 403.",
+ "SIDE_EFFECT": "none.",
+ "DATA_CONTRACT": "Input[DatasetReviewSession,User] -> Output[DatasetReviewSession|HTTPException]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 529
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 529
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_record_session_event",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 552,
+ "end_line": 574,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Persist one explicit audit event for an owned dataset-review mutation endpoint."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SessionEventLogger.log_for_session"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_owned_mapping_or_404",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 577,
+ "end_line": 597,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Resolve one execution mapping inside one owned session aggregate without leaking foreign-mapping existence.",
+ "PRE": "Session is accessible to current user.",
+ "POST": "Returns the requested mapping or raises HTTP 404.",
+ "SIDE_EFFECT": "none.",
+ "DATA_CONTRACT": "Input[DatasetReviewSession,mapping_id:str] -> Output[ExecutionMapping|HTTPException]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ExecutionMapping"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 577
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 577
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_get_owned_field_or_404",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 600,
+ "end_line": 620,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Resolve a semantic field inside one owned session aggregate without leaking foreign-field existence.",
+ "PRE": "Session is accessible to current user.",
+ "POST": "Returns the requested field or raises HTTP 404.",
+ "SIDE_EFFECT": "none.",
+ "DATA_CONTRACT": "Input[DatasetReviewSession,field_id:str] -> Output[SemanticFieldEntry|HTTPException]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 600
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 600
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_get_latest_clarification_session_or_404",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 623,
+ "end_line": 642,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Resolve the latest clarification aggregate for one session or raise when clarification is unavailable."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_map_candidate_provenance",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 645,
+ "end_line": 658,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Translate accepted semantic candidate type into stable field provenance."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_resolve_candidate_source_version",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 661,
+ "end_line": 680,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Resolve the semantic source version for one accepted candidate from the loaded session aggregate."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticSource"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_update_semantic_field_state",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 683,
+ "end_line": 761,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Apply field-level semantic manual override or candidate acceptance while preserving lock/provenance invariants.",
+ "PRE": "Field belongs to the owned session and request is owner-authorized.",
+ "POST": "Manual overrides always set manual provenance plus lock; explicit field edits may lock accepted candidate state but later imports cannot silently replace locked values.",
+ "SIDE_EFFECT": "Mutates field state and candidate statuses in persistence.",
+ "DATA_CONTRACT": "Input[SemanticFieldEntry,FieldSemanticUpdateRequest,changed_by:str] -> Output[SemanticFieldEntry]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticCandidate"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 683
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 683
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_serialize_execution_mapping",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 764,
+ "end_line": 772,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Map one persisted execution mapping into stable API DTO output."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ExecutionMappingDto"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_serialize_run_context",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 775,
+ "end_line": 783,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Map one persisted launch run context into stable API DTO output for SQL Lab handoff confirmation."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetRunContextDto"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_sql_lab_redirect_url",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 786,
+ "end_line": 806,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Build a stable SQL Lab redirect URL from the configured Superset environment and persisted run context reference."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetRunContextDto"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_documentation_export",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 809,
+ "end_line": 868,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Produce session documentation export content from current persisted review state."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_validation_export",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 871,
+ "end_line": 921,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Produce validation-focused export content from persisted findings and readiness state."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list_sessions",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 924,
+ "end_line": 956,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "List resumable dataset review sessions for the current user."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "list_user_sess"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "start_session",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 959,
+ "end_line": 1007,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Start a new dataset review session from a Superset link or dataset selection.",
+ "PRE": "feature flag enabled, user authenticated, and request body valid.",
+ "POST": "returns persisted session summary scoped to the authenticated user.",
+ "SIDE_EFFECT": "persists session/profile/findings and may enqueue recovery task.",
+ "DATA_CONTRACT": "Input[StartSessionRequest] -> Output[SessionSummary]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "start_session:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "get_session_detail",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1010,
+ "end_line": 1032,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Return the full accessible dataset review session aggregate for current user scope."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_get_owned_session_or_404"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "update_session",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1035,
+ "end_line": 1084,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Update resumable lifecycle status for an owned dataset review session.",
+ "PRE": "session is accessible to current user and requested status is allowed by lifecycle policy.",
+ "POST": "returns updated summary without changing ownership or unrelated aggregates.",
+ "SIDE_EFFECT": "mutates session lifecycle fields in persistence.",
+ "DATA_CONTRACT": "Input[UpdateSessionRequest] -> Output[SessionSummary]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "delete_session",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1087,
+ "end_line": 1141,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Archive or hard-delete a session owned by the current user.",
+ "PRE": "session is owner-scoped to current user.",
+ "POST": "session is archived or deleted and no foreign-session existence is disclosed.",
+ "SIDE_EFFECT": "mutates or deletes persisted session aggregate.",
+ "DATA_CONTRACT": "Input[session_id:str,hard_delete:bool] -> Output[HTTP 204]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "export_documentation",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1144,
+ "end_line": 1185,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Export documentation output for the current session in JSON or Markdown form.",
+ "PRE": "session is accessible to current user and requested format is supported.",
+ "POST": "returns ownership-scoped export payload without fabricating unrelated artifacts.",
+ "SIDE_EFFECT": "none beyond response construction.",
+ "DATA_CONTRACT": "Input[session_id:str,format:ArtifactFormat] -> Output[ExportArtifactResponse]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "export_validation",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1188,
+ "end_line": 1229,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Export validation findings for the current session in JSON or Markdown form.",
+ "PRE": "session is accessible to current user and requested format is supported.",
+ "POST": "returns explicit validation export payload scoped to current user session access.",
+ "SIDE_EFFECT": "none beyond response construction.",
+ "DATA_CONTRACT": "Input[session_id:str,format:ArtifactFormat] -> Output[ExportArtifactResponse]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "get_clarification_state",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1232,
+ "end_line": 1269,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Return the current clarification session summary and one active question payload.",
+ "PRE": "Session is accessible to current user and clarification feature is enabled.",
+ "POST": "Returns at most one active clarification question with why_it_matters, current_guess, and ordered options.",
+ "SIDE_EFFECT": "May normalize clarification pointer and readiness state in persistence.",
+ "DATA_CONTRACT": "Input[session_id:str] -> Output[ClarificationStateResponse]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "build_question_payload:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "resume_clarification",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1272,
+ "end_line": 1310,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Resume clarification mode on the highest-priority unresolved question for an owned session.",
+ "PRE": "Session belongs to the current owner and clarification feature is enabled.",
+ "POST": "Clarification session enters active state with one current question or completes deterministically when no unresolved items remain.",
+ "SIDE_EFFECT": "Mutates clarification pointer, readiness, and recommended action.",
+ "DATA_CONTRACT": "Input[session_id:str] -> Output[ClarificationStateResponse]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "build_question_payload:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "record_clarification_answer",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1313,
+ "end_line": 1365,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist one clarification answer before advancing the active pointer or readiness state.",
+ "PRE": "Target question is the session's active clarification question and current user owns the session.",
+ "POST": "Answer is persisted, changed findings are returned, and unresolved skipped/expert-review questions remain visible.",
+ "SIDE_EFFECT": "Inserts answer row and mutates clarification/session state.",
+ "DATA_CONTRACT": "Input[ClarificationAnswerRequest] -> Output[ClarificationAnswerResultResponse]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "record_answer:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "update_field_semantic",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1368,
+ "end_line": 1415,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Apply one field-level semantic candidate decision or manual override with lock/provenance safeguards.",
+ "PRE": "Session and field belong to the current owner, and request contains a candidate selection or manual override values.",
+ "POST": "Manual overrides set manual provenance plus lock; explicit lock state prevents later silent replacement.",
+ "SIDE_EFFECT": "Mutates field state and accepted/superseded candidate statuses in persistence.",
+ "DATA_CONTRACT": "Input[FieldSemanticUpdateRequest] -> Output[SemanticFieldEntryDto]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_update_semantic_field_state"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "lock_field_semantic",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1418,
+ "end_line": 1459,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Lock one semantic field against later automatic overwrite while preserving the current active value.",
+ "PRE": "Field belongs to the current owner.",
+ "POST": "Field remains active and locked; later imports may add candidates but cannot replace the locked value implicitly.",
+ "SIDE_EFFECT": "Mutates field lock state in persistence.",
+ "DATA_CONTRACT": "Input[session_id:str,field_id:str] -> Output[SemanticFieldEntryDto]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "unlock_field_semantic",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1462,
+ "end_line": 1506,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Unlock one semantic field so later automated candidate application may replace it explicitly.",
+ "PRE": "Field belongs to the current owner.",
+ "POST": "Field becomes unlocked; manual-override provenance is downgraded to unresolved to preserve the lock/provenance invariant.",
+ "SIDE_EFFECT": "Mutates field lock/provenance state in persistence.",
+ "DATA_CONTRACT": "Input[session_id:str,field_id:str] -> Output[SemanticFieldEntryDto]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "approve_batch_semantic_fields",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1509,
+ "end_line": 1564,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Approve multiple semantic candidate decisions in one owner-authorized batch without bypassing single-field semantics.",
+ "PRE": "Session belongs to the current owner and each requested field/candidate pair is contained in the session aggregate.",
+ "POST": "Returns updated semantic fields after applying the same candidate/lock invariants as the single-field endpoint.",
+ "SIDE_EFFECT": "Persists multiple semantic field decisions in one transaction and records one explicit session audit event.",
+ "DATA_CONTRACT": "Input[BatchApproveSemanticRequest] -> Output[List[SemanticFieldEntryDto]]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_update_semantic_field_state"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "list_execution_mappings",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1567,
+ "end_line": 1599,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Return the current mapping-review set for one accessible session.",
+ "PRE": "Session is ownership-accessible to the authenticated user and execution feature is enabled.",
+ "POST": "Returns the persisted mapping review set for the requested session wrapped in the contract collection shape without mutating approval state.",
+ "SIDE_EFFECT": "none.",
+ "DATA_CONTRACT": "Input[session_id:str] -> Output[MappingCollectionResponse]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_get_owned_session_or_404"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "update_execution_mapping",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1602,
+ "end_line": 1677,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist one owner-authorized execution-mapping effective value override and invalidate stale preview truth.",
+ "PRE": "Mapping belongs to the current owner session and request carries an explicit effective value decision.",
+ "POST": "Mapping effective value and override metadata are persisted and any prior preview truth is marked stale for safe relaunch.",
+ "SIDE_EFFECT": "Mutates mapping value/approval state, may mark latest preview stale, and updates session readiness cues.",
+ "DATA_CONTRACT": "Input[UpdateExecutionMappingRequest] -> Output[ExecutionMappingDto]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ExecutionMapping"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "approve_execution_mapping",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1680,
+ "end_line": 1732,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Explicitly approve a warning-sensitive mapping transformation and preserve audit note state.",
+ "PRE": "Mapping belongs to the current owner session and execution feature is enabled.",
+ "POST": "Mapping approval state becomes approved and owner-scoped audit markers are updated.",
+ "SIDE_EFFECT": "Mutates persisted mapping approval state and session readiness cues.",
+ "DATA_CONTRACT": "Input[ApproveMappingRequest] -> Output[ExecutionMappingDto]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ExecutionMapping"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "approve_batch_execution_mappings",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1735,
+ "end_line": 1793,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Approve multiple warning-sensitive execution mappings in one owner-authorized batch.",
+ "PRE": "Session belongs to the current owner and every requested mapping belongs to the same session aggregate.",
+ "POST": "Returns updated mappings after applying the same approval semantics as the single mapping endpoint.",
+ "SIDE_EFFECT": "Persists multiple approvals and records one explicit audit event.",
+ "DATA_CONTRACT": "Input[BatchApproveMappingRequest] -> Output[List[ExecutionMappingDto]]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ExecutionMapping"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "trigger_preview_generation",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1796,
+ "end_line": 1850,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Trigger Superset-side preview compilation for the current owned execution context.",
+ "PRE": "Session belongs to the current owner and required mapping inputs are available.",
+ "POST": "Returns the compiled preview directly for synchronous success or enqueue-state shape when preview generation remains pending.",
+ "SIDE_EFFECT": "Persists preview attempt and updates readiness state.",
+ "DATA_CONTRACT": "Input[session_id:str] -> Output[CompiledPreviewDto | PreviewEnqueueResultResponse]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "prepare_launch_preview:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "launch_dataset",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1853,
+ "end_line": 1909,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Execute the current owned session launch handoff through the orchestrator and return audited SQL Lab run context.",
+ "PRE": "Session belongs to the current owner, execution feature is enabled, and launch gates are satisfied or a deterministic conflict is returned.",
+ "POST": "Returns persisted run context plus redirect URL when launch handoff is accepted.",
+ "SIDE_EFFECT": "Persists launch audit snapshot and may trigger SQL Lab session creation.",
+ "DATA_CONTRACT": "Input[session_id:str] -> Output[LaunchDatasetResponse]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "launch_dataset:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "record_field_feedback",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1912,
+ "end_line": 1952,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist thumbs up/down feedback for AI-assisted semantic field content.",
+ "PRE": "Field belongs to the current owner and feedback value is valid.",
+ "POST": "Field feedback is stored without altering lock or active semantic value.",
+ "SIDE_EFFECT": "Updates one persisted semantic field feedback marker.",
+ "DATA_CONTRACT": "Input[FeedbackRequest] -> Output[FeedbackResponse]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "record_clarification_feedback",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1955,
+ "end_line": 2019,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist thumbs up/down feedback for clarification question/answer content used in guided review.",
+ "PRE": "Clarification question belongs to the current owner session and already has a persisted answer.",
+ "POST": "Feedback is stored on the clarification answer audit record.",
+ "SIDE_EFFECT": "Updates one clarification answer feedback marker in persistence.",
+ "DATA_CONTRACT": "Input[FeedbackRequest] -> Output[FeedbackResponse]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationAnswer"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 2021 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.8071428571428572
+ }
+ },
{
"name": "MigrationApi",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 318,
+ "end_line": 400,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "api, migration, dashboards, sync, dry-run",
@@ -46339,27 +116988,27 @@
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.database"
+ "target": "DatabaseModule"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.superset_client.SupersetClient"
+ "target": "DashboardSelection"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.migration.dry_run_orchestrator.MigrationDryRunService"
+ "target": "DashboardMetadata"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.mapping_service.IdMappingService"
+ "target": "MigrationDryRunService"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.dashboard"
+ "target": "IdMappingService"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.mapping"
+ "target": "ResourceMapping"
}
],
"children": [
@@ -46368,8 +117017,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 40,
- "end_line": 66,
+ "start_line": 43,
+ "end_line": 72,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetch dashboard metadata from a requested environment for migration selection UI.",
@@ -46378,23 +117027,17 @@
"SIDE_EFFECT": "Reads environment configuration and performs remote Superset metadata retrieval over network.",
"DATA_CONTRACT": "Input[str env_id] -> Output[List[DashboardMetadata]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_dashboards_summary"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 40
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 40
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -46402,33 +117045,32 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 68,
- "end_line": 107,
+ "start_line": 75,
+ "end_line": 136,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Validate migration selection and enqueue asynchronous migration task execution.",
"PRE": "DashboardSelection payload is valid and both source/target environments exist.",
"POST": "Returns {\"task_id\": str, \"message\": str} when task creation succeeds; emits HTTP_400/HTTP_500 on failure.",
"SIDE_EFFECT": "Reads configuration, writes task record through task manager, and writes operational logs.",
- "DATA_CONTRACT": "Input[DashboardSelection] -> Output[Dict[str, str]]"
+ "DATA_CONTRACT": "Input[DashboardSelection] -> Output[Dict[str, str]]",
+ "INVARIANT": "Migration task dispatch never occurs before source and target environment ids pass guard validation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "create_task"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DashboardSelection"
+ }
+ ],
"children": [],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 68
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 68
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.95
}
},
{
@@ -46436,33 +117078,32 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 110,
- "end_line": 160,
+ "start_line": 139,
+ "end_line": 203,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Build pre-flight migration diff and risk summary without mutating target systems.",
"PRE": "DashboardSelection is valid, source and target environments exist, differ, and selected_ids is non-empty.",
"POST": "Returns deterministic dry-run payload; emits HTTP_400 for guard violations and HTTP_500 for orchestrator value errors.",
"SIDE_EFFECT": "Reads local mappings from DB and fetches source/target metadata via Superset API.",
- "DATA_CONTRACT": "Input[DashboardSelection] -> Output[Dict[str, Any]]"
+ "DATA_CONTRACT": "Input[DashboardSelection] -> Output[Dict[str, Any]]",
+ "INVARIANT": "Dry-run flow remains read-only and rejects identical source/target environments before service execution."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DashboardSelection"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "MigrationDryRunService"
+ }
+ ],
"children": [],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 110
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 110
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.95
}
},
{
@@ -46470,8 +117111,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 162,
- "end_line": 178,
+ "start_line": 206,
+ "end_line": 225,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Read and return configured migration synchronization cron expression.",
@@ -46480,23 +117121,17 @@
"SIDE_EFFECT": "Reads configuration from config manager.",
"DATA_CONTRACT": "Input[None] -> Output[Dict[str, str]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AppDependencies"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 162
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 162
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -46504,8 +117139,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 180,
- "end_line": 204,
+ "start_line": 228,
+ "end_line": 257,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Validate and persist migration synchronization cron expression update.",
@@ -46514,23 +117149,17 @@
"SIDE_EFFECT": "Mutates configuration and writes persisted config through config manager.",
"DATA_CONTRACT": "Input[Dict[str, str]] -> Output[Dict[str, str]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AppDependencies"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 180
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 180
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -46538,8 +117167,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 206,
- "end_line": 255,
+ "start_line": 260,
+ "end_line": 330,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetch synchronized resource mappings with optional filters and pagination for migration mappings view.",
@@ -46548,23 +117177,17 @@
"SIDE_EFFECT": "Executes database read queries against ResourceMapping table.",
"DATA_CONTRACT": "Input[QueryParams] -> Output[Dict[str, Any]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ResourceMapping"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 206
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 206
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -46572,8 +117195,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 257,
- "end_line": 316,
+ "start_line": 333,
+ "end_line": 398,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Trigger immediate ID synchronization for every configured environment.",
@@ -46582,23 +117205,21 @@
"SIDE_EFFECT": "Upserts Environment rows, commits DB transaction, performs network sync calls, and writes logs.",
"DATA_CONTRACT": "Input[None] -> Output[Dict[str, Any]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "IdMappingService"
+ },
+ {
+ "type": "CALLS",
+ "target": "sync_environment"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 257
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 257
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -46606,7 +117227,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 318 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 400 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -46659,14 +117280,14 @@
}
},
{
- "name": "backend.src.api.routes.clean_release_v2",
+ "name": "CleanReleaseV2Api",
"type": "Module",
- "complexity": 3,
+ "complexity": 4,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 274,
+ "end_line": 328,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "4",
"PURPOSE": "Redesigned clean release API for headless candidate lifecycle."
},
"relations": [],
@@ -46676,8 +117297,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 19,
- "end_line": 25,
+ "start_line": 29,
+ "end_line": 37,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Schema for approval request payload."
@@ -46695,12 +117316,12 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 19
+ "line_number": 29
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 19
+ "line_number": 29
}
],
"score": 0.7
@@ -46711,8 +117332,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 34,
+ "start_line": 40,
+ "end_line": 48,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Schema for publication request payload."
@@ -46730,12 +117351,12 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 28
+ "line_number": 40
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 28
+ "line_number": 40
}
],
"score": 0.7
@@ -46746,8 +117367,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 37,
- "end_line": 43,
+ "start_line": 51,
+ "end_line": 59,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Schema for revocation request payload."
@@ -46765,12 +117386,12 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 37
+ "line_number": 51
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 37
+ "line_number": 51
}
],
"score": 0.7
@@ -46781,8 +117402,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 45,
- "end_line": 75,
+ "start_line": 62,
+ "end_line": 96,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Register a new release candidate.",
@@ -46807,12 +117428,12 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 45
+ "line_number": 62
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 45
+ "line_number": 62
}
],
"score": 0.5499999999999999
@@ -46823,8 +117444,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 77,
- "end_line": 106,
+ "start_line": 99,
+ "end_line": 130,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Associate artifacts with a release candidate.",
@@ -46849,8 +117470,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 108,
- "end_line": 149,
+ "start_line": 133,
+ "end_line": 180,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Generate distribution manifest for a candidate.",
@@ -46880,8 +117501,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 151,
- "end_line": 173,
+ "start_line": 183,
+ "end_line": 209,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Endpoint to record candidate approval."
@@ -46904,8 +117525,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 176,
- "end_line": 198,
+ "start_line": 212,
+ "end_line": 238,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Endpoint to record candidate rejection."
@@ -46928,8 +117549,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 201,
- "end_line": 236,
+ "start_line": 241,
+ "end_line": 283,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Endpoint to publish an approved candidate."
@@ -46952,8 +117573,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 239,
- "end_line": 272,
+ "start_line": 286,
+ "end_line": 326,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Endpoint to revoke a previous publication."
@@ -46973,29 +117594,49 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @LAYER (required for complexity 3)",
- "severity": "WARNING",
+ "message": "Missing Mandatory Tag: @LAYER (required for complexity 4)",
+ "severity": "ERROR",
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
- "severity": "WARNING",
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 4)",
+ "severity": "ERROR",
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 328 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.32500000000000007
+ "score": 0.0
}
},
{
- "name": "backend.src.api.routes.mappings",
+ "name": "MappingsApi",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
@@ -47141,12 +117782,12 @@
{
"name": "SettingsRouter",
"type": "Module",
- "complexity": 3,
+ "complexity": 4,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 527,
+ "end_line": 622,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "4",
"SEMANTICS": "settings, api, router, fastapi",
"PURPOSE": "Provides API endpoints for managing application settings and Superset environments.",
"LAYER": "UI (API)",
@@ -47156,11 +117797,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.config_manager.ConfigManager"
+ "target": "ConfigManager"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.config_models"
+ "target": "get_config_manager:Function"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "has_permission:Function"
}
],
"children": [
@@ -47169,8 +117814,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 39,
+ "start_line": 37,
+ "end_line": 47,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Response model for logging configuration with current task log level.",
@@ -47189,8 +117834,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 44,
- "end_line": 54,
+ "start_line": 52,
+ "end_line": 64,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Canonicalize Superset environment URL to base host/path without trailing /api/v1.",
@@ -47208,12 +117853,12 @@
{
"name": "_validate_superset_connection_fast",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 57,
- "end_line": 74,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 86,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Run lightweight Superset connectivity validation without full pagination scan.",
"PRE": "env contains valid URL and credentials.",
"POST": "Raises on auth/API failures; returns None on success."
@@ -47222,30 +117867,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 57
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 57
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_settings",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 76,
- "end_line": 96,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 111,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Retrieves all application settings.",
"PRE": "Config manager is available.",
"POST": "Returns masked AppConfig.",
@@ -47255,30 +117889,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 76
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 76
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "update_global_settings",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 98,
- "end_line": 116,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 134,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Updates global application settings.",
"PRE": "New settings are provided.",
"POST": "Global settings are updated.",
@@ -47289,30 +117912,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 98
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 98
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_storage_settings",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 118,
- "end_line": 129,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 137,
+ "end_line": 150,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Retrieves storage-specific settings.",
"RETURN": "StorageConfig - The storage configuration."
},
@@ -47320,30 +117932,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 118
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 118
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "update_storage_settings",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 131,
- "end_line": 152,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 153,
+ "end_line": 176,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Updates storage-specific settings.",
"PARAM": "storage (StorageConfig) - The new storage settings.",
"POST": "Storage settings are updated and saved.",
@@ -47353,30 +117954,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 131
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 131
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_environments",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 154,
- "end_line": 172,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 199,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Lists all configured Superset environments.",
"PRE": "Config manager is available.",
"POST": "Returns list of environments.",
@@ -47386,30 +117976,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 154
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 154
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "add_environment",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 174,
- "end_line": 200,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 202,
+ "end_line": 234,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Adds a new Superset environment.",
"PRE": "Environment data is valid and reachable.",
"POST": "Environment is added to config.",
@@ -47420,30 +117999,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 174
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 174
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "update_environment",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 202,
- "end_line": 238,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 237,
+ "end_line": 281,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Updates an existing Superset environment.",
"PRE": "ID and valid environment data are provided.",
"POST": "Environment is updated in config.",
@@ -47454,30 +118022,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 202
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 202
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "delete_environment",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 240,
- "end_line": 255,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 284,
+ "end_line": 300,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Deletes a Superset environment.",
"PRE": "ID is provided.",
"POST": "Environment is removed from config.",
@@ -47487,30 +118044,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 240
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 240
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "test_environment_connection",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 257,
- "end_line": 285,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 303,
+ "end_line": 336,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Tests the connection to a Superset environment.",
"PRE": "ID is provided.",
"POST": "Returns success or error status.",
@@ -47521,30 +118067,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 257
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 257
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_logging_config",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 287,
- "end_line": 305,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 339,
+ "end_line": 359,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Retrieves current logging configuration.",
"PRE": "Config manager is available.",
"POST": "Returns logging configuration.",
@@ -47554,30 +118089,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 287
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 287
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "update_logging_config",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 307,
- "end_line": 333,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 362,
+ "end_line": 392,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Updates logging configuration.",
"PRE": "New logging config is provided.",
"POST": "Logging configuration is updated and saved.",
@@ -47588,19 +118112,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 307
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 307
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -47608,8 +118121,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 335,
- "end_line": 346,
+ "start_line": 395,
+ "end_line": 408,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Response model for consolidated application settings."
@@ -47625,45 +118138,70 @@
{
"name": "get_consolidated_settings",
"type": "Function",
- "complexity": 3,
+ "complexity": 4,
"tier": "STANDARD",
- "start_line": 348,
- "end_line": 400,
+ "start_line": 411,
+ "end_line": 479,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "4",
"PURPOSE": "Retrieves all settings categories in a single call",
"PRE": "Config manager is available.",
"POST": "Returns all consolidated settings.",
"RETURN": "ConsolidatedSettingsResponse - All settings categories."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConfigManager"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "LLMProviderService"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "AppConfigRecord"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionLocal"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "has_permission:Function"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "normalize_llm_settings:Function"
+ }
+ ],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 348
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 411
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 348
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 411
}
],
- "score": 0.5499999999999999
+ "score": 0.0
}
},
{
"name": "update_consolidated_settings",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 402,
- "end_line": 446,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 482,
+ "end_line": 530,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Bulk update application settings from the consolidated view.",
"PRE": "User has admin permissions, config is valid.",
"POST": "Settings are updated and saved via ConfigManager."
@@ -47672,30 +118210,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 402
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 402
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_validation_policies",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 448,
- "end_line": 459,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 533,
+ "end_line": 545,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Lists all validation policies.",
"RETURN": "List[ValidationPolicyResponse] - List of policies."
},
@@ -47703,30 +118230,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 448
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 448
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "create_validation_policy",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 461,
- "end_line": 478,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 548,
+ "end_line": 567,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Creates a new validation policy.",
"PARAM": "policy (ValidationPolicyCreate) - The policy data.",
"RETURN": "ValidationPolicyResponse - The created policy."
@@ -47735,30 +118251,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 461
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 461
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "update_validation_policy",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 480,
- "end_line": 505,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 570,
+ "end_line": 597,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Updates an existing validation policy.",
"PARAM": "policy (ValidationPolicyUpdate) - The updated policy data.",
"RETURN": "ValidationPolicyResponse - The updated policy."
@@ -47767,30 +118272,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 480
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 480
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "delete_validation_policy",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 507,
- "end_line": 525,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 600,
+ "end_line": 620,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Deletes a validation policy.",
"PARAM": "id (str) - The ID of the policy to delete."
},
@@ -47798,32 +118292,36 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 507
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 507
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
{
- "message": "Fractal limit warning: Module length is 527 lines (must be < 300)",
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 622 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -47832,7 +118330,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 345,
+ "end_line": 403,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "api, admin, users, roles, permissions",
@@ -47842,12 +118340,16 @@
},
"relations": [
{
- "type": "USES",
- "target": "backend.src.core.auth.repository.AuthRepository"
+ "type": "DEPENDS_ON",
+ "target": "AuthRepository:Class"
},
{
- "type": "USES",
- "target": "backend.src.dependencies.has_permission"
+ "type": "DEPENDS_ON",
+ "target": "get_auth_db:Function"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "has_permission:Function"
}
],
"children": [
@@ -47856,12 +118358,17 @@
"type": "Variable",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 33,
- "end_line": 36,
+ "start_line": 40,
+ "end_line": 44,
"tags": {
"PURPOSE": "APIRouter instance for admin routes."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "fastapi.APIRouter"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -47874,8 +118381,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 38,
- "end_line": 53,
+ "start_line": 47,
+ "end_line": 64,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Lists all registered users.",
@@ -47884,23 +118391,17 @@
"PARAM": "db (Session) - Auth database session.",
"RETURN": "List[UserSchema] - List of users."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "User"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 38
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 38
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -47908,8 +118409,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 55,
- "end_line": 91,
+ "start_line": 67,
+ "end_line": 106,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Creates a new local user.",
@@ -47918,23 +118419,17 @@
"PARAM": "db (Session) - Auth database session.",
"RETURN": "UserSchema - The created user."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AuthRepository:Class"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 55
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 55
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -47942,8 +118437,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 93,
- "end_line": 132,
+ "start_line": 109,
+ "end_line": 151,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Updates an existing user.",
@@ -47952,23 +118447,17 @@
"PARAM": "db (Session) - Auth database session.",
"RETURN": "UserSchema - The updated user profile."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AuthRepository"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 93
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 93
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -47976,8 +118465,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 134,
- "end_line": 161,
+ "start_line": 154,
+ "end_line": 192,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Deletes a user.",
@@ -47986,23 +118475,17 @@
"PARAM": "db (Session) - Auth database session.",
"RETURN": "None"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "AuthRepository"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 134
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 134
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -48010,8 +118493,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 163,
- "end_line": 175,
+ "start_line": 195,
+ "end_line": 208,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Lists all available roles.",
@@ -48020,7 +118503,7 @@
"relations": [
{
"type": "CALLS",
- "target": "backend.src.models.auth.Role"
+ "target": "Role:Class"
}
],
"children": [],
@@ -48035,8 +118518,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 177,
- "end_line": 213,
+ "start_line": 211,
+ "end_line": 249,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Creates a new system role with associated permissions.",
@@ -48049,7 +118532,7 @@
"relations": [
{
"type": "CALLS",
- "target": "backend.src.core.auth.repository.AuthRepository.get_permission_by_id"
+ "target": "get_permission_by_id:Function"
}
],
"children": [],
@@ -48064,8 +118547,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 215,
- "end_line": 258,
+ "start_line": 252,
+ "end_line": 297,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Updates an existing role's metadata and permissions.",
@@ -48078,7 +118561,7 @@
"relations": [
{
"type": "CALLS",
- "target": "backend.src.core.auth.repository.AuthRepository.get_role_by_id"
+ "target": "get_role_by_id:Function"
}
],
"children": [],
@@ -48093,8 +118576,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 260,
- "end_line": 285,
+ "start_line": 300,
+ "end_line": 327,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Removes a role from the system.",
@@ -48107,7 +118590,7 @@
"relations": [
{
"type": "CALLS",
- "target": "backend.src.core.auth.repository.AuthRepository.get_role_by_id"
+ "target": "get_role_by_id:Function"
}
],
"children": [],
@@ -48122,8 +118605,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 287,
- "end_line": 311,
+ "start_line": 330,
+ "end_line": 360,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Lists all available system permissions for assignment.",
@@ -48149,59 +118632,55 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 313,
- "end_line": 323,
+ "start_line": 363,
+ "end_line": 376,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Lists all AD Group to Role mappings."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "ADGroupMapping"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 313
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 313
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
"name": "create_ad_mapping",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 325,
- "end_line": 343,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 379,
+ "end_line": 401,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Creates a new AD Group mapping."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ADGroupMapping:Class"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "get_auth_db:Function"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "has_permission:Function"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 325
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 325
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
}
],
@@ -48209,33 +118688,23 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 345 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 403 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.47500000000000003
+ "score": 0.775
}
},
{
- "name": "backend.src.api.routes.git_schemas",
+ "name": "GitSchemas",
"type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 1,
+ "tier": "TRIVIAL",
"start_line": 1,
"end_line": 293,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"SEMANTICS": "git, schemas, pydantic, api, contracts",
"PURPOSE": "Defines Pydantic models for the Git integration API layer.",
"LAYER": "API",
@@ -48739,18 +119208,18 @@
"compliance": {
"valid": true,
"issues": [],
- "score": 0.925
+ "score": 1.0
}
},
{
- "name": "backend.src.api.routes.assistant",
+ "name": "AssistantApi",
"type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 5,
+ "tier": "CRITICAL",
"start_line": 1,
- "end_line": 2209,
+ "end_line": 2694,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "5",
"SEMANTICS": "api, assistant, chat, command, confirmation",
"PURPOSE": "API routes for LLM assistant command parsing and safe execution orchestration.",
"LAYER": "API",
@@ -48759,11 +119228,19 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.task_manager.manager.TaskManager"
+ "target": "TaskManager"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.assistant"
+ "target": "AssistantMessageRecord"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "AssistantConfirmationRecord"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "AssistantAuditRecord"
}
],
"children": [
@@ -48772,20 +119249,39 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 57,
+ "start_line": 56,
+ "end_line": 70,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Input payload for assistant message endpoint.",
+ "DATA_CONTRACT": "Input[conversation_id?:str, message:str(1..4000)] -> Output[AssistantMessageRequest]",
+ "SIDE_EFFECT": "None (schema declaration only).",
"PRE": "message length is within accepted bounds.",
- "POST": "Request object provides message text and optional conversation binding."
+ "POST": "Request object provides message text and optional conversation binding.",
+ "INVARIANT": "message is always non-empty and no longer than 4000 characters."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "send_message"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 56
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 56
+ }
+ ],
+ "score": 0.7
}
},
{
@@ -48793,15 +119289,239 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 60,
- "end_line": 69,
+ "start_line": 73,
+ "end_line": 88,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "UI action descriptor returned with assistant responses.",
+ "DATA_CONTRACT": "Input[type:str, label:str, target?:str] -> Output[AssistantAction]",
+ "SIDE_EFFECT": "None (schema declaration only).",
"PRE": "type and label are provided by orchestration logic.",
- "POST": "Action can be rendered as button on frontend."
+ "POST": "Action can be rendered as button on frontend.",
+ "INVARIANT": "type and label are required for every UI action."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "AssistantMessageResponse"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 73
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 73
+ }
+ ],
+ "score": 0.7
+ }
+ },
+ {
+ "name": "AssistantMessageResponse",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 91,
+ "end_line": 114,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Output payload contract for assistant interaction endpoints.",
+ "DATA_CONTRACT": "Input[conversation_id,response_id,state,text,intent?,confirmation_id?,task_id?,actions[],created_at] -> Output[AssistantMessageResponse]",
+ "SIDE_EFFECT": "None (schema declaration only).",
+ "PRE": "Response includes deterministic state and text.",
+ "POST": "Payload may include task_id/confirmation_id/actions for UI follow-up.",
+ "INVARIANT": "created_at and state are always present in endpoint responses."
+ },
+ "relations": [
+ {
+ "type": "RETURNED_BY",
+ "target": "send_message"
+ },
+ {
+ "type": "RETURNED_BY",
+ "target": "confirm_operation"
+ },
+ {
+ "type": "RETURNED_BY",
+ "target": "cancel_operation"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: RETURNED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 91
+ },
+ {
+ "message": "Invalid @RELATION predicate: RETURNED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 91
+ },
+ {
+ "message": "Invalid @RELATION predicate: RETURNED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 91
+ },
+ {
+ "message": "Invalid @RELATION predicate: RETURNED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 91
+ },
+ {
+ "message": "Invalid @RELATION predicate: RETURNED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 91
+ },
+ {
+ "message": "Invalid @RELATION predicate: RETURNED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 91
+ }
+ ],
+ "score": 0.10000000000000009
+ }
+ },
+ {
+ "name": "ConfirmationRecord",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 117,
+ "end_line": 139,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "In-memory confirmation token model for risky operation dispatch.",
+ "DATA_CONTRACT": "Input[id,user_id,conversation_id,intent,dispatch,expires_at,state?,created_at] -> Output[ConfirmationRecord]",
+ "SIDE_EFFECT": "None (schema declaration only).",
+ "PRE": "intent/dispatch/user_id are populated at confirmation request time.",
+ "POST": "Record tracks lifecycle state and expiry timestamp.",
+ "INVARIANT": "state defaults to \"pending\" and expires_at bounds confirmation validity."
+ },
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "send_message"
+ },
+ {
+ "type": "USED_BY",
+ "target": "confirm_operation"
+ },
+ {
+ "type": "USED_BY",
+ "target": "cancel_operation"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 117
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 117
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 117
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 117
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 117
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 117
+ }
+ ],
+ "score": 0.10000000000000009
+ }
+ },
+ {
+ "name": "_append_history",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 200,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Append conversation message to in-memory history buffer.",
+ "DATA_CONTRACT": "Input[user_id,conversation_id,role,text,state?,task_id?,confirmation_id?] -> Output[None]",
+ "SIDE_EFFECT": "Mutates in-memory CONVERSATIONS store for user conversation history.",
+ "PRE": "user_id and conversation_id identify target conversation bucket.",
+ "POST": "Message entry is appended to CONVERSATIONS key list.",
+ "INVARIANT": "every appended entry includes generated message_id and created_at timestamp."
+ },
+ "relations": [
+ {
+ "type": "UPDATES",
+ "target": "CONVERSATIONS"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: UPDATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 165
+ },
+ {
+ "message": "Invalid @RELATION predicate: UPDATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 165
+ }
+ ],
+ "score": 0.7
+ }
+ },
+ {
+ "name": "_persist_message",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 203,
+ "end_line": 242,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Persist assistant/user message record to database.",
+ "DATA_CONTRACT": "Input[Session,user_id,conversation_id,role,text,state?,task_id?,confirmation_id?,metadata?] -> Output[None]",
+ "SIDE_EFFECT": "Writes AssistantMessageRecord rows and commits or rollbacks the DB session.",
+ "PRE": "db session is writable and message payload is serializable.",
+ "POST": "Message row is committed or persistence failure is logged.",
+ "INVARIANT": "failed persistence attempts always rollback before returning."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AssistantMessageRecord"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -48809,175 +119529,55 @@
"score": 1.0
}
},
- {
- "name": "AssistantMessageResponse",
- "type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 72,
- "end_line": 87,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Output payload contract for assistant interaction endpoints.",
- "PRE": "Response includes deterministic state and text.",
- "POST": "Payload may include task_id/confirmation_id/actions for UI follow-up."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 72
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 72
- }
- ],
- "score": 0.5499999999999999
- }
- },
- {
- "name": "ConfirmationRecord",
- "type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 90,
- "end_line": 104,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "In-memory confirmation token model for risky operation dispatch.",
- "PRE": "intent/dispatch/user_id are populated at confirmation request time.",
- "POST": "Record tracks lifecycle state and expiry timestamp."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 90
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 90
- }
- ],
- "score": 0.5499999999999999
- }
- },
- {
- "name": "_append_history",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 127,
- "end_line": 156,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Append conversation message to in-memory history buffer.",
- "PRE": "user_id and conversation_id identify target conversation bucket.",
- "POST": "Message entry is appended to CONVERSATIONS key list."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 127
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 127
- }
- ],
- "score": 0.5499999999999999
- }
- },
- {
- "name": "_persist_message",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 159,
- "end_line": 192,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Persist assistant/user message record to database.",
- "PRE": "db session is writable and message payload is serializable.",
- "POST": "Message row is committed or persistence failure is logged."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 159
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 159
- }
- ],
- "score": 0.5499999999999999
- }
- },
{
"name": "_audit",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 195,
- "end_line": 205,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 245,
+ "end_line": 263,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Append in-memory audit record for assistant decision trace.",
+ "DATA_CONTRACT": "Input[user_id,payload:Dict[str,Any]] -> Output[None]",
+ "SIDE_EFFECT": "Mutates in-memory ASSISTANT_AUDIT store and emits structured log event.",
"PRE": "payload describes decision/outcome fields.",
- "POST": "ASSISTANT_AUDIT list for user contains new timestamped entry."
+ "POST": "ASSISTANT_AUDIT list for user contains new timestamped entry.",
+ "INVARIANT": "persisted in-memory audit entry always contains created_at in ISO format."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "UPDATES",
+ "target": "ASSISTANT_AUDIT"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: UPDATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 195
+ "line_number": 245
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: UPDATES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 195
+ "line_number": 245
}
],
- "score": 0.5499999999999999
+ "score": 0.7
}
},
{
"name": "_persist_audit",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 208,
- "end_line": 229,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 266,
+ "end_line": 291,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Persist structured assistant audit payload in database.",
"PRE": "db session is writable and payload is JSON-serializable.",
"POST": "Audit row is committed or failure is logged with rollback."
@@ -48986,30 +119586,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 208
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 208
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_persist_confirmation",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 232,
- "end_line": 255,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 294,
+ "end_line": 319,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Persist confirmation token record to database.",
"PRE": "record contains id/user/intent/dispatch/expiry fields.",
"POST": "Confirmation row exists in persistent storage."
@@ -49018,30 +119607,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 232
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 232
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_update_confirmation_state",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 258,
- "end_line": 275,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 322,
+ "end_line": 345,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Update persistent confirmation token lifecycle state.",
"PRE": "confirmation_id references existing row.",
"POST": "State and consumed_at fields are updated when applicable."
@@ -49050,30 +119628,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 258
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 258
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_load_confirmation_from_db",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 278,
- "end_line": 301,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 348,
+ "end_line": 375,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Load confirmation token from database into in-memory model.",
"PRE": "confirmation_id may or may not exist in storage.",
"POST": "Returns ConfirmationRecord when found, otherwise None."
@@ -49082,30 +119649,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 278
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_ensure_conversation",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 304,
- "end_line": 321,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 378,
+ "end_line": 397,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve active conversation id in memory or create a new one.",
"PRE": "user_id identifies current actor.",
"POST": "Returns stable conversation id and updates USER_ACTIVE_CONVERSATION."
@@ -49114,30 +119670,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 304
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 304
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_or_create_conversation",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 324,
- "end_line": 351,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 400,
+ "end_line": 431,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve active conversation using explicit id, memory cache, or persisted history.",
"PRE": "user_id and db session are available.",
"POST": "Returns conversation id and updates USER_ACTIVE_CONVERSATION cache."
@@ -49146,30 +119691,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 324
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 324
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_cleanup_history_ttl",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 354,
- "end_line": 389,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 434,
+ "end_line": 473,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Enforce assistant message retention window by deleting expired rows and in-memory records.",
"PRE": "db session is available and user_id references current actor scope.",
"POST": "Messages older than ASSISTANT_MESSAGE_TTL_DAYS are removed from persistence and memory mirrors."
@@ -49178,30 +119712,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 354
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 354
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_is_conversation_archived",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 392,
- "end_line": 402,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 476,
+ "end_line": 488,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Determine archived state for a conversation based on last update timestamp.",
"PRE": "updated_at can be null for empty conversations.",
"POST": "Returns True when conversation inactivity exceeds archive threshold."
@@ -49210,30 +119733,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 392
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 392
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_coerce_query_bool",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 405,
- "end_line": 416,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 491,
+ "end_line": 504,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Normalize bool-like query values for compatibility in direct handler invocations/tests.",
"PRE": "value may be bool, string, or FastAPI Query metadata object.",
"POST": "Returns deterministic boolean flag."
@@ -49242,30 +119754,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 405
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 405
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_extract_id",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 419,
- "end_line": 430,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 507,
+ "end_line": 520,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Extract first regex match group from text by ordered pattern list.",
"PRE": "patterns contain at least one capture group.",
"POST": "Returns first matched token or None."
@@ -49274,30 +119775,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 419
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 419
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_env_id",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 433,
- "end_line": 448,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 523,
+ "end_line": 542,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve environment identifier/name token to canonical environment id.",
"PRE": "config_manager provides environment list.",
"POST": "Returns matched environment id or None."
@@ -49306,30 +119796,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 433
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 433
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_is_production_env",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 451,
- "end_line": 466,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 545,
+ "end_line": 562,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Determine whether environment token resolves to production-like target.",
"PRE": "config_manager provides environments or token text is provided.",
"POST": "Returns True for production/prod synonyms, else False."
@@ -49338,30 +119817,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 451
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 451
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_provider_id",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 469,
- "end_line": 502,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 565,
+ "end_line": 600,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve provider token to provider id with active/default fallback.",
"PRE": "db session can load provider list through LLMProviderService.",
"POST": "Returns provider id or None when no providers configured."
@@ -49370,30 +119838,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 469
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 469
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_get_default_environment_id",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 505,
- "end_line": 524,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 603,
+ "end_line": 626,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve default environment id from settings or first configured environment.",
"PRE": "config_manager returns environments list.",
"POST": "Returns default environment id or None when environment list is empty."
@@ -49402,30 +119859,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 505
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 505
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_dashboard_id_by_ref",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 527,
- "end_line": 567,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 629,
+ "end_line": 680,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard id by title or slug reference in selected environment.",
"PRE": "dashboard_ref is a non-empty string-like token.",
"POST": "Returns dashboard id when uniquely matched, otherwise None."
@@ -49434,30 +119880,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 527
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 527
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_dashboard_id_entity",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 570,
- "end_line": 599,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 683,
+ "end_line": 723,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard id from intent entities using numeric id or dashboard_ref fallback.",
"PRE": "entities may contain dashboard_id as int/str and optional dashboard_ref.",
"POST": "Returns resolved dashboard id or None when ambiguous/unresolvable."
@@ -49466,30 +119901,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 570
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 570
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_get_environment_name_by_id",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 602,
- "end_line": 612,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 726,
+ "end_line": 742,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve human-readable environment name by id.",
"PRE": "environment id may be None.",
"POST": "Returns matching environment name or fallback id."
@@ -49498,30 +119922,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 602
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 602
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_extract_result_deep_links",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 615,
- "end_line": 669,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 745,
+ "end_line": 815,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Build deep-link actions to verify task result from assistant chat.",
"PRE": "task object is available.",
"POST": "Returns zero or more assistant actions for dashboard open/diff."
@@ -49530,30 +119943,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 615
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 615
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_build_task_observability_summary",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 672,
- "end_line": 733,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 818,
+ "end_line": 883,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Build compact textual summary for completed tasks to reduce \"black box\" effect.",
"PRE": "task may contain plugin-specific result payload.",
"POST": "Returns non-empty summary line for known task types or empty string fallback."
@@ -49562,62 +119964,63 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 672
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 672
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_parse_command",
"type": "Function",
- "complexity": 3,
+ "complexity": 4,
"tier": "STANDARD",
- "start_line": 736,
- "end_line": 927,
+ "start_line": 886,
+ "end_line": 1093,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "4",
"PURPOSE": "Deterministically parse RU/EN command text into intent payload.",
+ "DATA_CONTRACT": "Input[message:str, config_manager:ConfigManager] -> Output[Dict[str,Any]{domain,operation,entities,confidence,risk_level,requires_confirmation}]",
+ "SIDE_EFFECT": "None (pure parsing logic).",
"PRE": "message contains raw user text and config manager resolves environments.",
- "POST": "Returns intent dict with domain/operation/entities/confidence/risk fields."
+ "POST": "Returns intent dict with domain/operation/entities/confidence/risk fields.",
+ "INVARIANT": "every return path includes domain, operation, entities, confidence, risk_level, requires_confirmation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "_extract_id"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_is_production_env"
+ }
+ ],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 736
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 886
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 736
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 886
}
],
- "score": 0.5499999999999999
+ "score": 0.0
}
},
{
"name": "_check_any_permission",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 930,
- "end_line": 945,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1096,
+ "end_line": 1117,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Validate user against alternative permission checks (logical OR).",
"PRE": "checks list contains resource-action tuples.",
"POST": "Returns on first successful permission; raises 403-like HTTPException otherwise."
@@ -49626,30 +120029,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 930
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 930
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_has_any_permission",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 948,
- "end_line": 959,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1120,
+ "end_line": 1133,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Check whether user has at least one permission tuple from the provided list.",
"PRE": "current_user and checks list are valid.",
"POST": "Returns True when at least one permission check passes."
@@ -49658,19 +120050,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 948
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 948
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -49678,8 +120059,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 962,
- "end_line": 1083,
+ "start_line": 1136,
+ "end_line": 1277,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Build current-user tool catalog for LLM planner with operation contracts and defaults.",
@@ -49694,12 +120075,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 962
+ "line_number": 1136
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 962
+ "line_number": 1136
}
],
"score": 0.5499999999999999
@@ -49708,12 +120089,12 @@
{
"name": "_coerce_intent_entities",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1086,
- "end_line": 1104,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1280,
+ "end_line": 1300,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Normalize intent entity value types from LLM output to route-compatible values.",
"PRE": "intent contains entities dict or missing entities.",
"POST": "Returned intent has numeric ids coerced where possible and string values stripped."
@@ -49722,30 +120103,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1086
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1086
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_confirmation_summary",
"type": "Function",
- "complexity": 3,
+ "complexity": 4,
"tier": "STANDARD",
- "start_line": 1111,
- "end_line": 1204,
+ "start_line": 1307,
+ "end_line": 1447,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "4",
"PURPOSE": "Build human-readable confirmation prompt for an intent before execution.",
"PRE": "intent contains operation and entities fields.",
"POST": "Returns descriptive Russian-language text ending with confirmation prompt."
@@ -49753,31 +120123,51 @@
"relations": [],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1111
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1307
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1111
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1307
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1307
+ },
+ {
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1307
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1307
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1307
}
],
- "score": 0.5499999999999999
+ "score": 0.0
}
},
{
"name": "_clarification_text_for_intent",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1207,
- "end_line": 1228,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1450,
+ "end_line": 1475,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Convert technical missing-parameter errors into user-facing clarification prompts.",
"PRE": "state was classified as needs_clarification for current intent/error combination.",
"POST": "Returned text is human-readable and actionable for target operation."
@@ -49786,30 +120176,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1207
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1207
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_plan_intent_with_llm",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1231,
- "end_line": 1339,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1478,
+ "end_line": 1597,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Use active LLM provider to select best tool/operation from dynamic catalog.",
"PRE": "tools list contains allowed operations for current user.",
"POST": "Returns normalized intent dict when planning succeeds; otherwise None."
@@ -49818,30 +120197,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1231
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1231
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_authorize_intent",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1342,
- "end_line": 1351,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1600,
+ "end_line": 1611,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Validate user permissions for parsed intent before confirmation/dispatch.",
"PRE": "intent.operation is present for known assistant command domains.",
"POST": "Returns if authorized; raises HTTPException(403) when denied."
@@ -49850,95 +120218,121 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1342
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1342
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_dispatch_intent",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1354,
- "end_line": 1672,
+ "complexity": 5,
+ "tier": "CRITICAL",
+ "start_line": 1614,
+ "end_line": 2016,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "5",
"PURPOSE": "Execute parsed assistant intent via existing task/plugin/git services.",
+ "DATA_CONTRACT": "Input[intent,current_user,task_manager,config_manager,db] -> Output[Tuple[text:str,task_id:Optional[str],actions:List[AssistantAction]]]",
+ "SIDE_EFFECT": "May enqueue tasks, invoke git operations, and query/update external service state.",
"PRE": "intent operation is known and actor permissions are validated per operation.",
- "POST": "Returns response text, optional task id, and UI actions for follow-up."
+ "POST": "Returns response text, optional task id, and UI actions for follow-up.",
+ "INVARIANT": "unsupported operations are rejected via HTTPException(400)."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "_check_any_permission"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_resolve_dashboard_id_entity"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskManager"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "GitService"
+ }
+ ],
"children": [],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1354
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 5)",
+ "severity": "ERROR",
+ "line_number": 1614
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1354
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 5)",
+ "severity": "ERROR",
+ "line_number": 1614
}
],
- "score": 0.5499999999999999
+ "score": 0.0
}
},
{
"name": "send_message",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1676,
- "end_line": 1842,
+ "complexity": 5,
+ "tier": "CRITICAL",
+ "start_line": 2020,
+ "end_line": 2265,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "5",
"PURPOSE": "Parse assistant command, enforce safety gates, and dispatch executable intent.",
+ "DATA_CONTRACT": "Input[AssistantMessageRequest,User,TaskManager,ConfigManager,Session] -> Output[AssistantMessageResponse]",
+ "SIDE_EFFECT": "Persists chat/audit state, mutates in-memory conversation and confirmation stores, and may create confirmation records.",
"PRE": "Authenticated user is available and message text is non-empty.",
"POST": "Response state is one of clarification/confirmation/started/success/denied/failed.",
- "RETURN": "AssistantMessageResponse with operation feedback and optional actions."
+ "RETURN": "AssistantMessageResponse with operation feedback and optional actions.",
+ "INVARIANT": "non-safe operations are gated with confirmation before execution from this endpoint."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "_plan_intent_with_llm"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_parse_command"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_dispatch_intent"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_append_history"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_persist_message"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "_audit"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1676
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1676
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.95
}
},
{
"name": "confirm_operation",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1846,
- "end_line": 1909,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 2271,
+ "end_line": 2354,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Execute previously requested risky operation after explicit user confirmation.",
"PRE": "confirmation_id exists, belongs to current user, is pending, and not expired.",
"POST": "Confirmation state becomes consumed and operation result is persisted in history.",
@@ -49948,30 +120342,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1846
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1846
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "cancel_operation",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1913,
- "end_line": 1967,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 2360,
+ "end_line": 2431,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Cancel pending risky operation and mark confirmation token as cancelled.",
"PRE": "confirmation_id exists, belongs to current user, and is still pending.",
"POST": "Confirmation becomes cancelled and cannot be executed anymore.",
@@ -49981,30 +120364,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1913
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1913
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "list_conversations",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1970,
- "end_line": 2055,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 2434,
+ "end_line": 2529,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Return paginated conversation list for current user with archived flag and last message preview.",
"PRE": "Authenticated user context and valid pagination params.",
"POST": "Conversations are grouped by conversation_id sorted by latest activity descending.",
@@ -50014,30 +120386,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1970
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1970
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "delete_conversation",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 2058,
- "end_line": 2089,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 2532,
+ "end_line": 2575,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Soft-delete or hard-delete a conversation and clear its in-memory trace.",
"PRE": "conversation_id belongs to current_user.",
"POST": "Conversation records are removed from DB and CONVERSATIONS cache."
@@ -50046,19 +120407,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 2058
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 2058
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -50066,8 +120416,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 2093,
- "end_line": 2164,
+ "start_line": 2579,
+ "end_line": 2647,
"tags": {
"PURPOSE": "Retrieve paginated assistant conversation history for current user.",
"PRE": "Authenticated user is available and page params are valid.",
@@ -50087,8 +120437,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 2168,
- "end_line": 2207,
+ "start_line": 2651,
+ "end_line": 2692,
"tags": {
"PURPOSE": "Return assistant audit decisions for current user from persistent and in-memory stores.",
"PRE": "User has tasks:READ permission.",
@@ -50108,8 +120458,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1116,
- "end_line": 1116,
+ "start_line": 1312,
+ "end_line": 1312,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -50127,8 +120477,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1132,
- "end_line": 1132,
+ "start_line": 1330,
+ "end_line": 1330,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -50143,15 +120493,35 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
{
- "message": "Fractal limit warning: Module length is 2209 lines (must be < 300)",
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 2694 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -50331,12 +120701,12 @@
{
"name": "backend.src.api.routes.clean_release",
"type": "Module",
- "complexity": 3,
+ "complexity": 4,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 445,
+ "end_line": 636,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "4",
"SEMANTICS": "api, clean-release, candidate-preparation, compliance",
"PURPOSE": "Expose clean release endpoints for candidate preparation and subsequent compliance flow.",
"LAYER": "API",
@@ -50358,8 +120728,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 52,
+ "start_line": 55,
+ "end_line": 64,
"tags": {
"PURPOSE": "Request schema for candidate preparation endpoint."
},
@@ -50376,8 +120746,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 62,
+ "start_line": 67,
+ "end_line": 76,
"tags": {
"PURPOSE": "Request schema for clean compliance check run startup."
},
@@ -50394,8 +120764,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 65,
- "end_line": 72,
+ "start_line": 79,
+ "end_line": 88,
"tags": {
"PURPOSE": "Request schema for candidate registration endpoint."
},
@@ -50412,8 +120782,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 79,
+ "start_line": 91,
+ "end_line": 97,
"tags": {
"PURPOSE": "Request schema for candidate artifact import endpoint."
},
@@ -50430,8 +120800,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 86,
+ "start_line": 100,
+ "end_line": 106,
"tags": {
"PURPOSE": "Request schema for manifest build endpoint."
},
@@ -50448,8 +120818,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 94,
+ "start_line": 109,
+ "end_line": 116,
"tags": {
"PURPOSE": "Request schema for compliance run creation with optional manifest pinning."
},
@@ -50466,8 +120836,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 128,
+ "start_line": 119,
+ "end_line": 157,
"tags": {
"PURPOSE": "Register a clean-release candidate for headless lifecycle.",
"PRE": "Candidate identifier is unique.",
@@ -50486,8 +120856,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 131,
- "end_line": 175,
+ "start_line": 160,
+ "end_line": 215,
"tags": {
"PURPOSE": "Import candidate artifacts in headless flow.",
"PRE": "Candidate exists and artifacts array is non-empty.",
@@ -50506,8 +120876,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 178,
- "end_line": 210,
+ "start_line": 218,
+ "end_line": 259,
"tags": {
"PURPOSE": "Build immutable manifest snapshot for prepared candidate.",
"PRE": "Candidate exists and has imported artifacts.",
@@ -50526,8 +120896,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 213,
- "end_line": 282,
+ "start_line": 262,
+ "end_line": 375,
"tags": {
"PURPOSE": "Return expanded candidate overview DTO for headless lifecycle visibility.",
"PRE": "Candidate exists.",
@@ -50546,8 +120916,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 285,
- "end_line": 308,
+ "start_line": 378,
+ "end_line": 409,
"tags": {
"PURPOSE": "Prepare candidate with policy evaluation and deterministic manifest generation.",
"PRE": "Candidate and active policy exist in repository.",
@@ -50566,8 +120936,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 311,
- "end_line": 404,
+ "start_line": 412,
+ "end_line": 545,
"tags": {
"PURPOSE": "Start and finalize a clean compliance check run and persist report artifacts.",
"PRE": "Active policy and candidate exist.",
@@ -50586,8 +120956,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 407,
- "end_line": 428,
+ "start_line": 548,
+ "end_line": 597,
"tags": {
"PURPOSE": "Return terminal/intermediate status payload for a check run.",
"PRE": "check_run_id references an existing run.",
@@ -50606,8 +120976,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 431,
- "end_line": 444,
+ "start_line": 600,
+ "end_line": 635,
"tags": {
"PURPOSE": "Return persisted compliance report by report_id.",
"PRE": "report_id references an existing report.",
@@ -50623,15 +120993,30 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
{
- "message": "Fractal limit warning: Module length is 445 lines (must be < 300)",
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 636 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
@@ -50640,7 +121025,7 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 156,
+ "end_line": 185,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "api, reports, list, detail, pagination, filters",
@@ -50655,11 +121040,19 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.reports.report_service.ReportsService"
+ "target": "ReportsService:Class"
},
{
"type": "DEPENDS_ON",
- "target": "AppDependencies"
+ "target": "get_task_manager:Function"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "get_clean_release_repository:Function"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "has_permission:Function"
}
],
"children": [
@@ -50668,8 +121061,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 63,
+ "start_line": 43,
+ "end_line": 77,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Parse comma-separated query value into enum list.",
@@ -50689,12 +121082,12 @@
{
"name": "list_reports",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 66,
- "end_line": 130,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 153,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Return paginated unified reports list.",
"PRE": "authenticated/authorized request and validated query params.",
"POST": "deterministic error payload for invalid filters.",
@@ -50703,34 +121096,36 @@
"TEST_EDGE": "malformed_query -> raises HTTPException(400)",
"TEST_INVARIANT": "consistent_list_payload -> verifies: [valid_list_request]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_parse_csv_enum_list:Function"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ReportQuery:Class"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ReportsService:Class"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 66
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 66
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_report_detail",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 133,
- "end_line": 154,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 156,
+ "end_line": 183,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Return one normalized report detail with diagnostics and next actions.",
"PRE": "authenticated/authorized request and existing report_id.",
"POST": "returns normalized detail envelope or 404 when report is not found."
@@ -50739,19 +121134,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 133
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 133
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
}
],
@@ -50762,12 +121146,12 @@
}
},
{
- "name": "backend.src.api.routes.profile",
+ "name": "ProfileApiModule",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 147,
+ "end_line": 151,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "api, profile, preferences, self-service, account-lookup",
@@ -50799,13 +121183,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 49,
- "end_line": 59,
+ "end_line": 60,
"tags": {
"PURPOSE": "Build profile service for current request scope.",
"PRE": "db session and config manager are available.",
"POST": "Returns a ready ProfileService instance."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -50818,14 +121207,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 77,
+ "start_line": 63,
+ "end_line": 79,
"tags": {
"PURPOSE": "Get authenticated user's dashboard filter preference.",
"PRE": "Valid JWT and authenticated user context.",
"POST": "Returns preference payload for current user only."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -50838,14 +121232,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 80,
- "end_line": 103,
+ "start_line": 82,
+ "end_line": 106,
"tags": {
"PURPOSE": "Update authenticated user's dashboard filter preference.",
"PRE": "Valid JWT and valid request payload.",
"POST": "Persists normalized preference for current user or raises validation/authorization errors."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -50858,14 +121257,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 106,
- "end_line": 145,
+ "start_line": 109,
+ "end_line": 149,
"tags": {
"PURPOSE": "Lookup Superset account candidates in selected environment.",
"PRE": "Valid JWT, authenticated context, and environment_id query parameter.",
"POST": "Returns success or degraded lookup payload with stable shape."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -50902,12 +121306,12 @@
}
},
{
- "name": "backend.src.api.routes.__init__",
+ "name": "ApiRoutesModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 23,
+ "end_line": 24,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "routes, lazy-import, module-registry",
@@ -50917,23 +121321,47 @@
},
"relations": [
{
- "type": "DEPENDS_ON",
- "target": "importlib"
+ "type": "CALLS",
+ "target": "ApiRoutesGetAttr"
}
],
"children": [
+ {
+ "name": "ApiRoutesGetAttr",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 12,
+ "end_line": 23,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Lazily import route module by attribute name.",
+ "PRE": "name is module candidate exposed in __all__.",
+ "POST": "Returns imported submodule or raises AttributeError."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ApiRoutesModule"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
{
"name": "__getattr__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 22,
+ "start_line": 18,
+ "end_line": 18,
"tags": {
- "COMPLEXITY": "1",
- "PURPOSE": "Lazily import route module by attribute name.",
- "PRE": "name is module candidate exposed in __all__.",
- "POST": "Returns imported submodule or raises AttributeError."
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
},
"relations": [],
"children": [],
@@ -50953,12 +121381,12 @@
{
"name": "TasksRouter",
"type": "Module",
- "complexity": 4,
+ "complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 324,
+ "end_line": 337,
"tags": {
- "COMPLEXITY": "4",
+ "COMPLEXITY": "3",
"SEMANTICS": "api, router, tasks, create, list, get, logs",
"PURPOSE": "Defines the FastAPI router for task-related endpoints, allowing clients to create, list, and get the status of tasks.",
"LAYER": "UI (API)"
@@ -50966,15 +121394,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.task_manager.manager.TaskManager"
+ "target": "TaskManager"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.config_manager.ConfigManager"
+ "target": "ConfigManager"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.llm_provider.LLMProviderService"
+ "target": "LLMProviderService"
}
],
"children": [
@@ -51015,12 +121443,12 @@
{
"name": "list_tasks",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 109,
"end_line": 147,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Retrieve a list of tasks with pagination and optional status filter.",
"PARAM": "task_manager (TaskManager) - The task manager instance.",
"PRE": "task_manager must be available.",
@@ -51031,30 +121459,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 109
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 109
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_task",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 149,
"end_line": 168,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Retrieve the details of a specific task.",
"PARAM": "task_manager (TaskManager) - The task manager instance.",
"PRE": "task_id must exist.",
@@ -51065,19 +121482,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 149
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 149
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -51086,7 +121492,7 @@
"complexity": 5,
"tier": "CRITICAL",
"start_line": 170,
- "end_line": 214,
+ "end_line": 213,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Retrieve logs for a specific task with optional filtering.",
@@ -51142,12 +121548,12 @@
{
"name": "get_task_log_stats",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 216,
- "end_line": 235,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 215,
+ "end_line": 249,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Get statistics about logs for a task (counts by level and source).",
"PARAM": "task_manager (TaskManager) - The task manager instance.",
"PRE": "task_id must exist.",
@@ -51158,30 +121564,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 216
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 216
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_task_log_sources",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 237,
- "end_line": 256,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 251,
+ "end_line": 269,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Get unique sources for a task's logs.",
"PARAM": "task_manager (TaskManager) - The task manager instance.",
"PRE": "task_id must exist.",
@@ -51192,30 +121587,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 237
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 237
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "resolve_task",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 258,
- "end_line": 280,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 271,
+ "end_line": 293,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve a task that is awaiting mapping.",
"PARAM": "task_manager (TaskManager) - The task manager instance.",
"PRE": "task must be in AWAITING_MAPPING status.",
@@ -51226,30 +121610,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 258
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 258
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "resume_task",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 282,
- "end_line": 304,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 295,
+ "end_line": 317,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resume a task that is awaiting input (e.g., passwords).",
"PARAM": "task_manager (TaskManager) - The task manager instance.",
"PRE": "task must be in AWAITING_INPUT status.",
@@ -51260,30 +121633,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 282
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 282
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "clear_tasks",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 306,
- "end_line": 322,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 319,
+ "end_line": 335,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Clear tasks matching the status filter.",
"PARAM": "task_manager (TaskManager) - The task manager instance.",
"PRE": "task_manager is available.",
@@ -51293,56 +121655,30 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 306
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 306
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 324 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 337 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.775
}
},
{
- "name": "backend.src.api.routes.dashboards",
+ "name": "DashboardsApi",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 1278,
+ "end_line": 1618,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "api, dashboards, resources, hub",
@@ -51365,23 +121701,23 @@
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.resource_service.ResourceService"
+ "target": "ResourceService"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.superset_client.SupersetClient"
+ "target": "SupersetClient"
}
],
"children": [
{
"name": "GitStatus",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 68,
- "end_line": 76,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 79,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "DTO for dashboard Git synchronization status."
},
"relations": [],
@@ -51395,12 +121731,12 @@
{
"name": "LastTask",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 78,
- "end_line": 88,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 94,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "DTO for the most recent background task associated with a dashboard."
},
"relations": [],
@@ -51414,12 +121750,12 @@
{
"name": "DashboardItem",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 90,
- "end_line": 104,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 113,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "DTO representing a single dashboard with projected metadata."
},
"relations": [],
@@ -51433,12 +121769,12 @@
{
"name": "EffectiveProfileFilter",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 106,
- "end_line": 117,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 116,
+ "end_line": 129,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "Metadata about applied profile filters for UI context."
},
"relations": [],
@@ -51452,12 +121788,12 @@
{
"name": "DashboardsResponse",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 119,
- "end_line": 129,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 132,
+ "end_line": 144,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "Envelope DTO for paginated dashboards list."
},
"relations": [],
@@ -51471,12 +121807,12 @@
{
"name": "DashboardChartItem",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 131,
- "end_line": 141,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": 159,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "DTO for a chart linked to a dashboard."
},
"relations": [],
@@ -51490,12 +121826,12 @@
{
"name": "DashboardDatasetItem",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 143,
- "end_line": 153,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 162,
+ "end_line": 174,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "DTO for a dataset associated with a dashboard."
},
"relations": [],
@@ -51509,12 +121845,12 @@
{
"name": "DashboardDetailResponse",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 155,
- "end_line": 170,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 177,
+ "end_line": 194,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "Detailed dashboard metadata including children."
},
"relations": [],
@@ -51528,12 +121864,12 @@
{
"name": "DashboardTaskHistoryItem",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 172,
- "end_line": 184,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 197,
+ "end_line": 211,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "Individual history record entry."
},
"relations": [],
@@ -51547,12 +121883,12 @@
{
"name": "DashboardTaskHistoryResponse",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 186,
- "end_line": 192,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 214,
+ "end_line": 222,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "Collection DTO for task history."
},
"relations": [],
@@ -51566,12 +121902,12 @@
{
"name": "DatabaseMapping",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 194,
- "end_line": 203,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 225,
+ "end_line": 236,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "DTO for cross-environment database ID mapping."
},
"relations": [],
@@ -51585,12 +121921,12 @@
{
"name": "DatabaseMappingsResponse",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 205,
- "end_line": 210,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 239,
+ "end_line": 246,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "Wrapper for database mappings."
},
"relations": [],
@@ -51604,12 +121940,12 @@
{
"name": "_find_dashboard_id_by_slug",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 213,
- "end_line": 238,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 249,
+ "end_line": 284,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard numeric ID by slug using Superset list endpoint.",
"PRE": "`dashboard_slug` is non-empty.",
"POST": "Returns dashboard ID when found, otherwise None."
@@ -51618,30 +121954,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 213
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 213
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_dashboard_id_from_ref",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 241,
- "end_line": 263,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 287,
+ "end_line": 311,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard ID from slug-first reference with numeric fallback.",
"PRE": "`dashboard_ref` is provided in route path.",
"POST": "Returns a valid dashboard ID or raises HTTPException(404)."
@@ -51650,30 +121975,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 241
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 241
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_find_dashboard_id_by_slug_async",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 266,
- "end_line": 291,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 314,
+ "end_line": 349,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard numeric ID by slug using async Superset list endpoint.",
"PRE": "dashboard_slug is non-empty.",
"POST": "Returns dashboard ID when found, otherwise None."
@@ -51682,30 +121996,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 266
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 266
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_dashboard_id_from_ref_async",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 294,
- "end_line": 315,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 352,
+ "end_line": 375,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve dashboard ID from slug-first reference using async Superset client.",
"PRE": "dashboard_ref is provided in route path.",
"POST": "Returns valid dashboard ID or raises HTTPException(404)."
@@ -51714,30 +122017,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 294
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 294
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_normalize_filter_values",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 318,
- "end_line": 332,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 378,
+ "end_line": 394,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Normalize query filter values to lower-cased non-empty tokens.",
"PRE": "values may be None or list of strings.",
"POST": "Returns trimmed normalized list preserving input order."
@@ -51746,30 +122038,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 318
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 318
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_dashboard_git_filter_value",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 335,
- "end_line": 353,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 397,
+ "end_line": 417,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Build comparable git status token for dashboards filtering.",
"PRE": "dashboard payload may contain git_status or None.",
"POST": "Returns one of ok|diff|no_repo|error|pending."
@@ -51778,30 +122059,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 335
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 335
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_normalize_actor_alias_token",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 355,
- "end_line": 363,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 420,
+ "end_line": 430,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Normalize actor alias token to comparable trim+lower text.",
"PRE": "value can be scalar/None.",
"POST": "Returns normalized token or None."
@@ -51810,30 +122080,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 355
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 355
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_normalize_owner_display_token",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 366,
- "end_line": 390,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 433,
+ "end_line": 461,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Project owner payload value into stable display string for API response contracts.",
"PRE": "owner can be scalar, dict or None.",
"POST": "Returns trimmed non-empty owner display token or None."
@@ -51842,30 +122101,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 366
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 366
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_normalize_dashboard_owner_values",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 393,
- "end_line": 415,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 464,
+ "end_line": 488,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Normalize dashboard owners payload to optional list of display strings.",
"PRE": "owners payload can be None, scalar, or list with mixed values.",
"POST": "Returns deduplicated owner labels preserving order, or None when absent."
@@ -51874,30 +122122,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 393
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 393
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_project_dashboard_response_items",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 418,
- "end_line": 432,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 491,
+ "end_line": 509,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Project dashboard payloads to response-contract-safe shape.",
"PRE": "dashboards is a list of dict-like dashboard payloads.",
"POST": "Returned items satisfy DashboardItem owners=list[str]|None contract."
@@ -51906,30 +122143,40 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 418
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 418
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_profile_filter_binding",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 512,
+ "end_line": 568,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Resolve dashboard profile-filter binding through current or legacy profile service contracts.",
+ "PRE": "profile_service implements get_dashboard_filter_binding or get_my_preference.",
+ "POST": "Returns normalized binding payload with deterministic defaults."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_resolve_profile_actor_aliases",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 435,
- "end_line": 497,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 571,
+ "end_line": 633,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Resolve stable actor aliases for profile filtering without per-dashboard detail fan-out.",
"PRE": "bound username is available and env is valid.",
"POST": "Returns at least normalized username; may include Superset display-name alias.",
@@ -51939,30 +122186,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 435
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 435
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "_matches_dashboard_actor_aliases",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 500,
- "end_line": 519,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 636,
+ "end_line": 657,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Apply profile actor matching against multiple aliases (username + optional display name).",
"PRE": "actor_aliases contains normalized non-empty tokens.",
"POST": "Returns True when any alias matches owners OR modified_by."
@@ -51971,19 +122207,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 500
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 500
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -51991,8 +122216,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 522,
- "end_line": 823,
+ "start_line": 660,
+ "end_line": 1032,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetch list of dashboards from a specific environment with Git status and last task status",
@@ -52017,12 +122242,12 @@
{
"name": "get_database_mappings",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 825,
- "end_line": 879,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1035,
+ "end_line": 1105,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Get database mapping suggestions between source and target environments",
"PRE": "source_env_id and target_env_id are valid environment IDs",
"POST": "Returns list of suggested database mappings with confidence scores",
@@ -52039,18 +122264,18 @@
"compliance": {
"valid": true,
"issues": [],
- "score": 0.85
+ "score": 1.0
}
},
{
"name": "get_dashboard_detail",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 881,
- "end_line": 916,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1108,
+ "end_line": 1151,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Fetch detailed dashboard info with related charts and datasets",
"PRE": "env_id must be valid and dashboard ref (slug or id) must exist",
"POST": "Returns dashboard detail payload for overview page"
@@ -52058,25 +122283,25 @@
"relations": [
{
"type": "CALLS",
- "target": "backend.src.core.async_superset_client.AsyncSupersetClient.get_dashboard_detail_async"
+ "target": "AsyncSupersetClient"
}
],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 0.85
+ "score": 1.0
}
},
{
"name": "_task_matches_dashboard",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 919,
- "end_line": 950,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1154,
+ "end_line": 1189,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Checks whether task params are tied to a specific dashboard and environment.",
"PRE": "task-like object exposes plugin_id and params fields.",
"POST": "Returns True only for supported task plugins tied to dashboard_id (+optional env_id)."
@@ -52085,30 +122310,19 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 919
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 919
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "get_dashboard_tasks_history",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 953,
- "end_line": 1037,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1192,
+ "end_line": 1292,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Returns history of backup and LLM validation tasks for a dashboard.",
"PRE": "dashboard ref (slug or id) is valid.",
"POST": "Response contains sorted task history (newest first)."
@@ -52117,19 +122331,8 @@
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 953
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 953
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -52137,8 +122340,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1040,
- "end_line": 1132,
+ "start_line": 1295,
+ "end_line": 1417,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Proxies Superset dashboard thumbnail with cache support.",
@@ -52153,12 +122356,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1040
+ "line_number": 1295
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1040
+ "line_number": 1295
}
],
"score": 0.5499999999999999
@@ -52167,12 +122370,12 @@
{
"name": "MigrateRequest",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1134,
- "end_line": 1143,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1420,
+ "end_line": 1435,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "DTO for dashboard migration requests."
},
"relations": [],
@@ -52186,12 +122389,12 @@
{
"name": "TaskResponse",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1145,
- "end_line": 1150,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1438,
+ "end_line": 1445,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "DTO for async task ID return."
},
"relations": [],
@@ -52205,12 +122408,12 @@
{
"name": "migrate_dashboards",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1152,
- "end_line": 1211,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1448,
+ "end_line": 1529,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Trigger bulk migration of dashboards from source to target environment",
"PRE": "dashboard_ids is a non-empty list",
"POST": "Task is created and queued for execution",
@@ -52224,25 +122427,25 @@
},
{
"type": "CALLS",
- "target": "task_manager:create_task"
+ "target": "TaskManager"
}
],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 0.85
+ "score": 1.0
}
},
{
"name": "BackupRequest",
"type": "DataClass",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1213,
- "end_line": 1220,
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1532,
+ "end_line": 1543,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "1",
"PURPOSE": "DTO for dashboard backup requests."
},
"relations": [],
@@ -52256,12 +122459,12 @@
{
"name": "backup_dashboards",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1222,
- "end_line": 1276,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1546,
+ "end_line": 1616,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Trigger bulk backup of dashboards with optional cron schedule",
"PRE": "dashboard_ids is a non-empty list",
"POST": "If schedule is provided, a scheduled task is created",
@@ -52275,14 +122478,52 @@
},
{
"type": "CALLS",
- "target": "task_manager:create_task"
+ "target": "TaskManager"
}
],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 0.85
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_read_optional_string",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 520,
+ "end_line": 520,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_read_bool",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 523,
+ "end_line": 523,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -52290,8 +122531,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 754,
- "end_line": 754,
+ "start_line": 941,
+ "end_line": 941,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -52309,8 +122550,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 995,
- "end_line": 995,
+ "start_line": 1241,
+ "end_line": 1241,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -52328,7 +122569,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 1278 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 1618 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -52337,20 +122578,20 @@
}
},
{
- "name": "backend.src.api.routes.__tests__.test_dashboards",
+ "name": "DashboardsApiTests",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 877,
+ "end_line": 1051,
"tags": {
"COMPLEXITY": "3",
- "PURPOSE": "Unit tests for Dashboards API endpoints",
+ "PURPOSE": "Unit tests for dashboards API endpoints.",
"LAYER": "API"
},
"relations": [
{
- "type": "TESTS",
+ "type": "DEPENDS_ON",
"target": "backend.src.api.routes.dashboards"
}
],
@@ -52360,15 +122601,21 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 59,
- "end_line": 94,
+ "start_line": 74,
+ "end_line": 113,
"tags": {
+ "PURPOSE": "Validate dashboards listing returns a populated response that satisfies the schema contract.",
"TEST": "GET /api/dashboards returns 200 and valid schema",
"PRE": "env_id exists",
"POST": "Response matches DashboardsResponse schema",
"TEST_FIXTURE": "dashboard_list_happy -> {\"id\": 1, \"title\": \"Main Revenue\"}"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52381,14 +122628,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 125,
+ "start_line": 116,
+ "end_line": 159,
"tags": {
+ "PURPOSE": "Validate dashboards listing applies the search filter and returns only matching rows.",
"TEST": "GET /api/dashboards filters by search term",
"PRE": "search parameter provided",
"POST": "Filtered result count must match search"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52401,12 +122654,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 128,
- "end_line": 145,
+ "start_line": 162,
+ "end_line": 183,
"tags": {
+ "PURPOSE": "Validate dashboards listing returns an empty payload for an environment without dashboards.",
"TEST_EDGE": "empty_dashboards -> {env_id: 'empty_env', expected_total: 0}"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52419,12 +122678,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 148,
- "end_line": 163,
+ "start_line": 186,
+ "end_line": 205,
"tags": {
+ "PURPOSE": "Validate dashboards listing surfaces a 503 contract when Superset access fails.",
"TEST_EDGE": "external_superset_failure -> {env_id: 'bad_conn', status: 503}"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52437,14 +122702,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 166,
- "end_line": 178,
+ "start_line": 208,
+ "end_line": 222,
"tags": {
+ "PURPOSE": "Validate dashboards listing returns 404 when the requested environment does not exist.",
"TEST": "GET /api/dashboards returns 404 if env_id missing",
"PRE": "env_id does not exist",
"POST": "Returns 404 error"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52457,14 +122728,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 181,
- "end_line": 198,
+ "start_line": 225,
+ "end_line": 246,
"tags": {
+ "PURPOSE": "Validate dashboards listing rejects invalid pagination parameters with 400 responses.",
"TEST": "GET /api/dashboards returns 400 for invalid page/page_size",
"PRE": "page < 1 or page_size > 100",
"POST": "Returns 400 error"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52477,12 +122754,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 201,
- "end_line": 250,
+ "start_line": 249,
+ "end_line": 302,
"tags": {
+ "PURPOSE": "Validate dashboard detail returns charts and datasets for an existing dashboard.",
"TEST": "GET /api/dashboards/{id} returns dashboard detail with charts and datasets"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52495,12 +122778,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 253,
- "end_line": 262,
+ "start_line": 305,
+ "end_line": 318,
"tags": {
+ "PURPOSE": "Validate dashboard detail returns 404 when the requested environment is missing.",
"TEST": "GET /api/dashboards/{id} returns 404 for missing environment"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52513,14 +122802,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 265,
- "end_line": 297,
+ "start_line": 321,
+ "end_line": 355,
"tags": {
"TEST": "POST /api/dashboards/migrate creates migration task",
"PRE": "Valid source_env_id, target_env_id, dashboard_ids",
+ "PURPOSE": "Validate dashboard migration request creates an async task and returns its identifier.",
"POST": "Returns task_id and create_task was called"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52533,14 +122828,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 300,
- "end_line": 318,
+ "start_line": 358,
+ "end_line": 378,
"tags": {
"TEST": "POST /api/dashboards/migrate returns 400 for empty dashboard_ids",
"PRE": "dashboard_ids is empty",
+ "PURPOSE": "Validate dashboard migration rejects empty dashboard identifier lists.",
"POST": "Returns 400 error"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52553,12 +122854,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 321,
- "end_line": 336,
+ "start_line": 381,
+ "end_line": 396,
"tags": {
+ "PURPOSE": "Validate migration creation returns 404 when the source environment cannot be resolved.",
"PRE": "source_env_id and target_env_id are valid environment IDs"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52571,14 +122878,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 339,
- "end_line": 368,
+ "start_line": 399,
+ "end_line": 426,
"tags": {
"TEST": "POST /api/dashboards/backup creates backup task",
"PRE": "Valid env_id, dashboard_ids",
+ "PURPOSE": "Validate dashboard backup request creates an async backup task and returns its identifier.",
"POST": "Returns task_id and create_task was called"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52591,12 +122904,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 371,
- "end_line": 385,
+ "start_line": 429,
+ "end_line": 443,
"tags": {
+ "PURPOSE": "Validate backup task creation returns 404 when the target environment is missing.",
"PRE": "env_id is a valid environment ID"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52609,14 +122928,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 388,
- "end_line": 418,
+ "start_line": 446,
+ "end_line": 482,
"tags": {
"TEST": "GET /api/dashboards/db-mappings returns mapping suggestions",
"PRE": "Valid source_env_id, target_env_id",
+ "PURPOSE": "Validate database mapping suggestions are returned for valid source and target environments.",
"POST": "Returns list of database mappings"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52629,12 +122954,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 421,
- "end_line": 428,
+ "start_line": 485,
+ "end_line": 498,
"tags": {
+ "PURPOSE": "Validate database mapping suggestions return 404 when either environment is missing.",
"PRE": "source_env_id and target_env_id are valid environment IDs"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52647,12 +122978,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 431,
- "end_line": 472,
+ "start_line": 501,
+ "end_line": 549,
"tags": {
+ "PURPOSE": "Validate dashboard task history returns only related backup and LLM tasks.",
"TEST": "GET /api/dashboards/{id}/tasks returns backup and llm tasks for dashboard"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52665,12 +123002,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 475,
- "end_line": 502,
+ "start_line": 552,
+ "end_line": 583,
"tags": {
+ "PURPOSE": "Validate dashboard thumbnail endpoint proxies image bytes and content type from Superset.",
"TEST": "GET /api/dashboards/{id}/thumbnail proxies image bytes from Superset"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52683,14 +123026,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 505,
- "end_line": 518,
+ "start_line": 586,
+ "end_line": 604,
"tags": {
"PURPOSE": "Creates profile preference payload stub for dashboards filter contract tests.",
"PRE": "username can be empty; enabled indicates profile-default toggle state.",
"POST": "Returns object compatible with ProfileService.get_my_preference contract."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52703,14 +123051,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 521,
- "end_line": 538,
+ "start_line": 607,
+ "end_line": 629,
"tags": {
"PURPOSE": "Applies trim + case-insensitive owners OR modified_by matching used by route contract tests.",
"PRE": "owners can be None or list-like values.",
"POST": "Returns True when bound username matches any owner or modified_by."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52723,14 +123076,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 541,
- "end_line": 597,
+ "start_line": 632,
+ "end_line": 696,
"tags": {
"TEST": "GET /api/dashboards applies profile-default filter with owners OR modified_by trim+case-insensitive semantics.",
+ "PURPOSE": "Validate profile-default filtering matches owner and modifier aliases using normalized Superset actor values.",
"PRE": "Current user has enabled profile-default preference and bound username.",
"POST": "Response includes only matching dashboards and effective_profile_filter metadata."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52743,14 +123102,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 600,
- "end_line": 638,
+ "start_line": 699,
+ "end_line": 757,
"tags": {
"TEST": "GET /api/dashboards honors override_show_all and disables profile-default filter for current page.",
+ "PURPOSE": "Validate override_show_all bypasses profile-default filtering without changing dashboard list semantics.",
"PRE": "Profile-default preference exists but override_show_all=true query is provided.",
"POST": "Response remains unfiltered and effective_profile_filter.applied is false."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52763,14 +123128,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 641,
- "end_line": 693,
+ "start_line": 760,
+ "end_line": 820,
"tags": {
"TEST": "GET /api/dashboards returns empty result set when profile-default filter is active and no dashboard actors match.",
+ "PURPOSE": "Validate profile-default filtering returns an empty dashboard page when no actor aliases match the bound user.",
"PRE": "Profile-default preference is enabled with bound username and all dashboards are non-matching.",
"POST": "Response total is 0 with deterministic pagination and active effective_profile_filter metadata."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52783,14 +123154,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 696,
- "end_line": 734,
+ "start_line": 823,
+ "end_line": 881,
"tags": {
"TEST": "GET /api/dashboards does not auto-apply profile-default filter outside dashboards_main page context.",
+ "PURPOSE": "Validate non-dashboard page contexts suppress profile-default filtering and preserve unfiltered results.",
"PRE": "Profile-default preference exists but page_context=other query is provided.",
"POST": "Response remains unfiltered and metadata reflects source_page=other."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52803,14 +123180,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 737,
- "end_line": 807,
+ "start_line": 884,
+ "end_line": 966,
"tags": {
"TEST": "GET /api/dashboards resolves Superset display-name alias once and filters without per-dashboard detail calls.",
+ "PURPOSE": "Validate profile-default filtering reuses resolved Superset display aliases without triggering per-dashboard detail fanout.",
"PRE": "Profile-default filter is active, bound username is `admin`, dashboard actors contain display labels.",
"POST": "Route matches by alias (`Superset Admin`) and does not call `SupersetClient.get_dashboard` in list filter path."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52823,14 +123206,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 810,
- "end_line": 874,
+ "start_line": 969,
+ "end_line": 1048,
"tags": {
"TEST": "GET /api/dashboards profile-default filter matches Superset owner object payloads.",
+ "PURPOSE": "Validate profile-default filtering accepts owner object payloads once aliases resolve to the bound Superset username.",
"PRE": "Profile-default preference is enabled and owners list contains dict payloads.",
"POST": "Response keeps dashboards where owner object resolves to bound username alias."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DashboardsApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52843,8 +123232,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 27,
- "end_line": 27,
+ "start_line": 35,
+ "end_line": 35,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -52862,8 +123251,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 107,
- "end_line": 107,
+ "start_line": 128,
+ "end_line": 128,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -52881,8 +123270,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 489,
- "end_line": 489,
+ "start_line": 568,
+ "end_line": 568,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -52905,26 +123294,21 @@
"line_number": 1
},
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 877 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 1051 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.4
+ "score": 0.5499999999999999
}
},
{
- "name": "backend.src.api.routes.__tests__.test_git_status_route",
+ "name": "TestGitStatusRoute",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 440,
+ "end_line": 454,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, git, api, status, no_repo",
@@ -52934,7 +123318,7 @@
"relations": [
{
"type": "VERIFIES",
- "target": "backend.src.api.routes.git"
+ "target": "GitApi"
}
],
"children": [
@@ -52944,13 +123328,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 16,
- "end_line": 36,
+ "end_line": 37,
"tags": {
"PURPOSE": "Ensure missing local repository is represented as NO_REPO payload instead of an API error.",
"PRE": "GitService.get_status raises HTTPException(404).",
"POST": "Route returns a deterministic NO_REPO status payload."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52963,14 +123352,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 39,
- "end_line": 59,
+ "start_line": 40,
+ "end_line": 61,
"tags": {
"PURPOSE": "Ensure HTTP exceptions other than 404 are not masked.",
"PRE": "GitService.get_status raises HTTPException with non-404 status.",
"POST": "Raised exception preserves original status and detail."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -52983,14 +123377,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 78,
+ "start_line": 64,
+ "end_line": 81,
"tags": {
"PURPOSE": "Ensure diff endpoint preserves domain HTTP errors from GitService.",
"PRE": "GitService.get_diff raises HTTPException.",
"POST": "Endpoint raises same HTTPException values."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53003,14 +123402,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 81,
- "end_line": 97,
+ "start_line": 84,
+ "end_line": 101,
"tags": {
"PURPOSE": "Ensure non-HTTP exceptions in history endpoint become deterministic 500 errors.",
"PRE": "GitService.get_commit_history raises ValueError.",
"POST": "Endpoint returns HTTPException with status 500 and route context."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53023,14 +123427,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 120,
+ "start_line": 104,
+ "end_line": 125,
"tags": {
"PURPOSE": "Ensure commit endpoint does not leak unexpected errors as 400.",
"PRE": "GitService.commit_changes raises RuntimeError.",
"POST": "Endpoint raises HTTPException(500) with route context."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53043,14 +123452,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 123,
- "end_line": 147,
+ "start_line": 128,
+ "end_line": 153,
"tags": {
"PURPOSE": "Ensure batch endpoint returns per-dashboard statuses in one response.",
"PRE": "Some repositories are missing and some are initialized.",
"POST": "Returned map includes resolved status for each requested dashboard ID."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53063,14 +123477,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 150,
- "end_line": 172,
+ "start_line": 156,
+ "end_line": 179,
"tags": {
"PURPOSE": "Ensure batch endpoint marks failed items as ERROR without failing entire request.",
"PRE": "GitService raises non-HTTP exception for one dashboard.",
"POST": "Failed dashboard status is marked as ERROR."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53083,14 +123502,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 175,
- "end_line": 197,
+ "start_line": 182,
+ "end_line": 205,
"tags": {
"PURPOSE": "Ensure batch endpoint protects server from oversized payloads.",
"PRE": "request includes duplicate IDs and more than MAX_REPOSITORY_STATUS_BATCH entries.",
"POST": "Result contains unique IDs up to configured cap."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53103,14 +123527,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 200,
- "end_line": 258,
+ "start_line": 208,
+ "end_line": 267,
"tags": {
"PURPOSE": "Ensure commit route configures repository identity from profile preferences before commit call.",
"PRE": "Profile preference contains git_username/git_email for current user.",
"POST": "git_service.configure_identity receives resolved identity and commit proceeds."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53123,14 +123552,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 261,
- "end_line": 314,
+ "start_line": 270,
+ "end_line": 324,
"tags": {
"PURPOSE": "Ensure pull route configures repository identity from profile preferences before pull call.",
"PRE": "Profile preference contains git_username/git_email for current user.",
"POST": "git_service.configure_identity receives resolved identity and pull proceeds."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53143,14 +123577,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 317,
- "end_line": 346,
+ "start_line": 327,
+ "end_line": 357,
"tags": {
"PURPOSE": "Ensure merge status route returns service payload as-is.",
"PRE": "git_service.get_merge_status returns unfinished merge payload.",
"POST": "Route response contains has_unfinished_merge=True."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53163,14 +123602,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 349,
- "end_line": 383,
+ "start_line": 360,
+ "end_line": 395,
"tags": {
"PURPOSE": "Ensure merge resolve route forwards parsed resolutions to service.",
"PRE": "resolve_data has one file strategy.",
"POST": "Service receives normalized list and route returns resolved files."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53183,14 +123627,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 386,
- "end_line": 407,
+ "start_line": 398,
+ "end_line": 420,
"tags": {
"PURPOSE": "Ensure abort route delegates to service.",
"PRE": "Service abort_merge returns aborted status.",
"POST": "Route returns aborted status."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53203,14 +123652,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 410,
- "end_line": 437,
+ "start_line": 423,
+ "end_line": 451,
"tags": {
"PURPOSE": "Ensure continue route passes commit message to service.",
"PRE": "continue_data.message is provided.",
"POST": "Route returns committed status and hash."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitStatusRoute"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53223,8 +123677,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 22,
- "end_line": 22,
+ "start_line": 23,
+ "end_line": 23,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53242,8 +123696,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 25,
+ "start_line": 26,
+ "end_line": 26,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53261,8 +123715,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 45,
+ "start_line": 47,
+ "end_line": 47,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53280,8 +123734,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 48,
+ "start_line": 50,
+ "end_line": 50,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53299,8 +123753,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 68,
- "end_line": 68,
+ "start_line": 71,
+ "end_line": 71,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53318,8 +123772,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 87,
- "end_line": 87,
+ "start_line": 91,
+ "end_line": 91,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53337,8 +123791,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 106,
- "end_line": 106,
+ "start_line": 111,
+ "end_line": 111,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53356,8 +123810,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 129,
- "end_line": 129,
+ "start_line": 135,
+ "end_line": 135,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53375,8 +123829,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 132,
- "end_line": 132,
+ "start_line": 138,
+ "end_line": 138,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53394,8 +123848,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 156,
- "end_line": 156,
+ "start_line": 163,
+ "end_line": 163,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53413,8 +123867,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 159,
- "end_line": 159,
+ "start_line": 166,
+ "end_line": 166,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53432,8 +123886,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 181,
- "end_line": 181,
+ "start_line": 189,
+ "end_line": 189,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53451,8 +123905,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 184,
- "end_line": 184,
+ "start_line": 192,
+ "end_line": 192,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53470,8 +123924,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 206,
- "end_line": 206,
+ "start_line": 215,
+ "end_line": 215,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53489,8 +123943,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 210,
- "end_line": 210,
+ "start_line": 219,
+ "end_line": 219,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53508,8 +123962,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 213,
- "end_line": 213,
+ "start_line": 222,
+ "end_line": 222,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53527,8 +123981,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 221,
- "end_line": 221,
+ "start_line": 230,
+ "end_line": 230,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53546,8 +124000,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 224,
- "end_line": 224,
+ "start_line": 233,
+ "end_line": 233,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53565,8 +124019,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 228,
- "end_line": 228,
+ "start_line": 237,
+ "end_line": 237,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53584,8 +124038,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 267,
- "end_line": 267,
+ "start_line": 277,
+ "end_line": 277,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53603,8 +124057,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 271,
- "end_line": 271,
+ "start_line": 281,
+ "end_line": 281,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53622,8 +124076,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 274,
- "end_line": 274,
+ "start_line": 284,
+ "end_line": 284,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53641,8 +124095,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 282,
- "end_line": 282,
+ "start_line": 292,
+ "end_line": 292,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53660,8 +124114,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 285,
- "end_line": 285,
+ "start_line": 295,
+ "end_line": 295,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53679,8 +124133,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 289,
- "end_line": 289,
+ "start_line": 299,
+ "end_line": 299,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53698,8 +124152,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 323,
- "end_line": 323,
+ "start_line": 334,
+ "end_line": 334,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53717,8 +124171,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 357,
- "end_line": 357,
+ "start_line": 369,
+ "end_line": 369,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53736,8 +124190,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 364,
- "end_line": 364,
+ "start_line": 376,
+ "end_line": 376,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53755,8 +124209,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 392,
- "end_line": 392,
+ "start_line": 405,
+ "end_line": 405,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53774,8 +124228,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 416,
- "end_line": 416,
+ "start_line": 430,
+ "end_line": 430,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -53798,7 +124252,7 @@
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 440 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 454 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -53807,12 +124261,12 @@
}
},
{
- "name": "backend.tests.test_reports_openapi_conformance",
+ "name": "TestReportsOpenapiConformance",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 81,
+ "end_line": 118,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, reports, openapi, conformance",
@@ -53822,42 +124276,29 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "specs/020-task-reports-design/contracts/reports-api.openapi.yaml"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
{
- "name": "__init__",
- "type": "Function",
+ "name": "_FakeTaskManager",
+ "type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
+ "start_line": 19,
+ "end_line": 32,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "COMPLEXITY": "1",
+ "PURPOSE": "Minimal task-manager fake exposing static task list for OpenAPI conformance checks.",
+ "INVARIANT": "get_all_tasks returns seeded tasks unchanged."
},
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_all_tasks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 23,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsOpenapiConformance"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53870,13 +124311,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 27,
- "end_line": 27,
+ "start_line": 35,
+ "end_line": 43,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Provide admin principal fixture required by reports routes in conformance tests."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsOpenapiConformance"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53889,13 +124334,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 32,
- "end_line": 32,
+ "start_line": 46,
+ "end_line": 62,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Construct deterministic task fixture consumed by reports list/detail payload assertions."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsOpenapiConformance"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53908,13 +124357,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 45,
+ "start_line": 65,
+ "end_line": 95,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify reports list endpoint includes all required OpenAPI top-level keys."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsOpenapiConformance"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -53927,56 +124380,26 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 65,
- "end_line": 65,
+ "start_line": 98,
+ "end_line": 117,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify reports detail endpoint returns payload containing the report object key."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsOpenapiConformance"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
"score": 1.0
}
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.775
- }
- },
- {
- "name": "backend.tests.api.routes.test_clean_release_source_policy",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 100,
- "tags": {
- "COMPLEXITY": "3",
- "SEMANTICS": "tests, api, clean-release, source-policy",
- "PURPOSE": "Validate API behavior for source isolation violations in clean release preparation.",
- "LAYER": "Domain",
- "INVARIANT": "External endpoints must produce blocking violation entries."
- },
- "relations": [
+ },
{
- "type": "TESTS",
- "target": "backend.src.api.routes.clean_release"
- }
- ],
- "children": [
- {
- "name": "_repo_with_seed_data",
+ "name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -53995,60 +124418,7 @@
}
},
{
- "name": "test_prepare_candidate_blocks_external_source",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 75,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.775
- }
- },
- {
- "name": "backend.tests.api.routes.test_clean_release_api",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 138,
- "tags": {
- "COMPLEXITY": "3",
- "SEMANTICS": "tests, api, clean-release, checks, reports",
- "PURPOSE": "Contract tests for clean release checks and reports endpoints.",
- "LAYER": "Domain",
- "INVARIANT": "API returns deterministic payload shapes for checks and reports."
- },
- "relations": [
- {
- "type": "TESTS",
- "target": "backend.src.api.routes.clean_release"
- }
- ],
- "children": [
- {
- "name": "_repo_with_seed_data",
+ "name": "get_all_tasks",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -54065,19 +124435,158 @@
"issues": [],
"score": 1.0
}
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "TestCleanReleaseSourcePolicy",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 114,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, api, clean-release, source-policy",
+ "PURPOSE": "Validate API behavior for source isolation violations in clean release preparation.",
+ "LAYER": "Domain",
+ "INVARIANT": "External endpoints must produce blocking violation entries."
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "_repo_with_seed_data",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 78,
+ "tags": {
+ "PURPOSE": "Seed repository with candidate, registry, and active policy for source isolation test flow."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseSourcePolicy"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_prepare_candidate_blocks_external_source",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 113,
+ "tags": {
+ "PURPOSE": "Verify candidate preparation is blocked when at least one source host is external to the trusted registry."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseSourcePolicy"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "TestCleanReleaseApi",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 193,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, api, clean-release, checks, reports",
+ "PURPOSE": "Contract tests for clean release checks and reports endpoints.",
+ "LAYER": "Domain",
+ "INVARIANT": "API returns deterministic payload shapes for checks and reports."
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "_repo_with_seed_data",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 77,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
},
{
"name": "test_start_check_and_get_status_contract",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 75,
+ "start_line": 80,
+ "end_line": 115,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate checks start endpoint returns expected identifiers and status endpoint reflects the same run."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -54090,13 +124599,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 105,
- "end_line": 105,
+ "start_line": 118,
+ "end_line": 132,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate reports endpoint returns 404 for an unknown report identifier."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -54109,13 +124622,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 115,
- "end_line": 115,
+ "start_line": 135,
+ "end_line": 162,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate reports endpoint returns persisted report payload for an existing report identifier."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -54128,8 +124645,162 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 140,
- "end_line": 140,
+ "start_line": 165,
+ "end_line": 192,
+ "tags": {
+ "PURPOSE": "Validate candidate preparation endpoint returns prepared status and manifest identifier on valid input."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "test_tasks_logs_module",
+ "type": "Module",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 108,
+ "tags": {
+ "COMPLEXITY": "2",
+ "SEMANTICS": "tests, tasks, logs, api, contract, validation",
+ "PURPOSE": "Contract testing for task logs API endpoints.",
+ "LAYER": "Domain (Tests)",
+ "TEST_FIXTURE": "valid_task_logs_request",
+ "INVARIANT": "unconstrained mock \u2014 no spec= enforced",
+ "TEST_CONTRACT": "get_task_logs_api -> Invariants"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "src.api.routes.tasks:Module"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_get_task_logs_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Validate task logs endpoint returns filtered logs for an existing task.",
+ "TEST_EDGE": "task_not_found"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_tasks_logs_module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_task_logs_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Validate task logs endpoint returns 404 when the task identifier is missing.",
+ "TEST_EDGE": "invalid_limit"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_tasks_logs_module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_task_logs_invalid_limit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Validate task logs endpoint enforces query validation for limit lower bound.",
+ "TEST_INVARIANT": "response_purity"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_tasks_logs_module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_task_log_stats_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 91,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Validate log stats endpoint returns success payload for an existing task."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_tasks_logs_module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "client",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -54147,7 +124818,243 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "TestReportsApi",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 249,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, reports, api, contract, pagination, filtering",
+ "PURPOSE": "Contract tests for GET /api/reports defaults, pagination, and filtering behavior.",
+ "LAYER": "Domain (Tests)",
+ "INVARIANT": "API response contract contains {items,total,page,page_size,has_next,applied_filters}.",
+ "DEBT": "Divergent _FakeTaskManager definition. Canonical version should be in conftest.py. Authz variant is missing get_all_tasks()."
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "_FakeTaskManager",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 33,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Minimal task-manager double exposing only get_all_tasks used by reports route tests.",
+ "INVARIANT": "Returns pre-seeded tasks without mutation or side effects."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_admin_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Build deterministic admin principal accepted by reports authorization guard."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_task",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 69,
+ "tags": {
+ "PURPOSE": "Build Task fixture with controlled timestamps/status for reports list/detail normalization."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_reports_default_pagination_contract",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 123,
+ "tags": {
+ "PURPOSE": "Validate reports list endpoint default pagination and contract keys for mixed task statuses."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_reports_filter_and_pagination",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 126,
+ "end_line": 177,
+ "tags": {
+ "PURPOSE": "Validate reports list endpoint applies task-type/status filters and pagination boundaries."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_reports_handles_mixed_naive_and_aware_datetimes",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 180,
+ "end_line": 217,
+ "tags": {
+ "PURPOSE": "Validate reports sorting remains stable when task timestamps mix naive and timezone-aware datetimes."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_reports_invalid_filter_returns_400",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 220,
+ "end_line": 248,
+ "tags": {
+ "PURPOSE": "Validate reports list endpoint rejects unsupported task type filters with HTTP 400."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_all_tasks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -54156,21 +125063,786 @@
}
},
{
- "name": "test_tasks_logs",
+ "name": "DatasetsApiTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 326,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "datasets, api, tests, pagination, mapping, docs",
+ "PURPOSE": "Unit tests for datasets API endpoints.",
+ "LAYER": "API",
+ "INVARIANT": "unconstrained mock \u2014 no spec= enforced; attribute typos will silently pass"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "src.api.routes.datasets:Module"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_get_datasets_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 75,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Validate successful datasets listing contract for an existing environment.",
+ "TEST": "GET /api/datasets returns 200 and valid schema",
+ "PRE": "env_id exists",
+ "POST": "Response matches DatasetsResponse schema"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_datasets_env_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Validate datasets listing returns 404 when the requested environment does not exist.",
+ "TEST": "GET /api/datasets returns 404 if env_id missing",
+ "PRE": "env_id does not exist",
+ "POST": "Returns 404 error"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_datasets_invalid_pagination",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 132,
+ "end_line": 159,
+ "tags": {
+ "PURPOSE": "Validate datasets listing rejects invalid pagination parameters with 400 responses.",
+ "TEST": "GET /api/datasets returns 400 for invalid page/page_size",
+ "PRE": "page < 1 or page_size > 100",
+ "POST": "Returns 400 error",
+ "TEST_EDGE": "page_size > 100 exceeds max"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_map_columns_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 162,
+ "end_line": 191,
+ "tags": {
+ "PURPOSE": "Validate map-columns request creates an async mapping task and returns its identifier.",
+ "TEST": "POST /api/datasets/map-columns creates mapping task",
+ "PRE": "Valid env_id, dataset_ids, source_type",
+ "POST": "Returns task_id"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_map_columns_invalid_source_type",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 194,
+ "end_line": 210,
+ "tags": {
+ "PURPOSE": "Validate map-columns rejects unsupported source types with a 400 contract response.",
+ "TEST": "POST /api/datasets/map-columns returns 400 for invalid source_type",
+ "PRE": "source_type is not 'postgresql' or 'xlsx'",
+ "POST": "Returns 400 error"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_generate_docs_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 213,
+ "end_line": 242,
+ "tags": {
+ "TEST": "POST /api/datasets/generate-docs creates doc generation task",
+ "PRE": "Valid env_id, dataset_ids, llm_provider",
+ "PURPOSE": "Validate generate-docs request creates an async documentation task and returns its identifier.",
+ "POST": "Returns task_id"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_map_columns_empty_ids",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 245,
+ "end_line": 261,
+ "tags": {
+ "PURPOSE": "Validate map-columns rejects empty dataset identifier lists.",
+ "TEST": "POST /api/datasets/map-columns returns 400 for empty dataset_ids",
+ "PRE": "dataset_ids is empty",
+ "POST": "Returns 400 error"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_generate_docs_empty_ids",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 264,
+ "end_line": 280,
+ "tags": {
+ "PURPOSE": "Validate generate-docs rejects empty dataset identifier lists.",
+ "TEST": "POST /api/datasets/generate-docs returns 400 for empty dataset_ids",
+ "PRE": "dataset_ids is empty",
+ "POST": "Returns 400 error"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_generate_docs_env_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 283,
+ "end_line": 300,
+ "tags": {
+ "TEST": "POST /api/datasets/generate-docs returns 404 for missing env",
+ "PRE": "env_id does not exist",
+ "PURPOSE": "Validate generate-docs returns 404 when the requested environment cannot be resolved.",
+ "POST": "Returns 404 error"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_datasets_superset_failure",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 303,
+ "end_line": 323,
+ "tags": {
+ "PURPOSE": "Validate datasets listing surfaces a 503 contract when Superset access fails.",
+ "TEST_EDGE": "external_superset_failure -> {status: 503}",
+ "POST": "Returns 503 with stable error detail when upstream dataset fetch fails."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetsApiTests:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mock_deps",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 326 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "TestProfileApi",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 307,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, profile, api, preferences, lookup, contract",
+ "PURPOSE": "Verifies profile API route contracts for preference read/update and Superset account lookup.",
+ "LAYER": "API"
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "mock_profile_route_dependencies",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Provides deterministic dependency overrides for profile route tests.",
+ "PRE": "App instance is initialized.",
+ "POST": "Dependencies are overridden for current test and restored afterward."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "profile_route_deps_fixture",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Pytest fixture wrapper for profile route dependency overrides.",
+ "PRE": "None.",
+ "POST": "Yields overridden dependencies and clears overrides after test."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_preference_response",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Builds stable profile preference response payload for route tests.",
+ "PRE": "user_id is provided.",
+ "POST": "Returns ProfilePreferenceResponse object with deterministic timestamps."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_profile_preferences_returns_self_payload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Verifies GET /api/profile/preferences returns stable self-scoped payload.",
+ "PRE": "Authenticated user context is available.",
+ "POST": "Response status is 200 and payload contains current user preference."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_patch_profile_preferences_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": 195,
+ "tags": {
+ "PURPOSE": "Verifies PATCH /api/profile/preferences persists valid payload through route mapping.",
+ "PRE": "Valid request payload and authenticated user.",
+ "POST": "Response status is 200 with saved preference payload."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_patch_profile_preferences_validation_error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 198,
+ "end_line": 222,
+ "tags": {
+ "PURPOSE": "Verifies route maps domain validation failure to HTTP 422 with actionable details.",
+ "PRE": "Service raises ProfileValidationError.",
+ "POST": "Response status is 422 and includes validation messages."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_patch_profile_preferences_cross_user_denied",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 225,
+ "end_line": 248,
+ "tags": {
+ "PURPOSE": "Verifies route maps domain authorization guard failure to HTTP 403.",
+ "PRE": "Service raises ProfileAuthorizationError.",
+ "POST": "Response status is 403 with denial message."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_lookup_superset_accounts_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 251,
+ "end_line": 285,
+ "tags": {
+ "PURPOSE": "Verifies lookup route returns success payload with normalized candidates.",
+ "PRE": "Valid environment_id and service success response.",
+ "POST": "Response status is 200 and items list is returned."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_lookup_superset_accounts_env_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 288,
+ "end_line": 305,
+ "tags": {
+ "PURPOSE": "Verifies lookup route maps missing environment to HTTP 404.",
+ "PRE": "Service raises EnvironmentNotFoundError.",
+ "POST": "Response status is 404 with explicit message."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestProfileApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 307 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.625
+ }
+ },
+ {
+ "name": "TestReportsDetailApi",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 122,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, reports, api, detail, diagnostics",
+ "PURPOSE": "Contract tests for GET /api/reports/{report_id} detail endpoint behavior.",
+ "LAYER": "Domain (Tests)",
+ "INVARIANT": "Detail endpoint tests must keep deterministic assertions for success and not-found contracts.",
+ "DEBT": "Divergent _FakeTaskManager definition. Canonical version should be in conftest.py. Authz variant is missing get_all_tasks()."
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "_FakeTaskManager",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 33,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Minimal task-manager double exposing pre-seeded tasks to detail endpoint under test.",
+ "INVARIANT": "get_all_tasks returns exactly seeded tasks list."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsDetailApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_admin_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 44,
+ "tags": {
+ "PURPOSE": "Provide admin principal fixture accepted by reports detail authorization policy."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsDetailApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_task",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 65,
+ "tags": {
+ "PURPOSE": "Build deterministic Task payload for reports detail endpoint contract assertions."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsDetailApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_report_detail_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 101,
+ "tags": {
+ "PURPOSE": "Validate report detail endpoint returns report body with diagnostics and next actions for existing task."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsDetailApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_report_detail_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 104,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Validate report detail endpoint returns 404 when requested report identifier is absent."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportsDetailApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_all_tasks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "RoutesTestsConftest",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 73,
+ "end_line": 45,
"tags": {
- "PURPOSE": "Auto-generated module for backend/src/api/routes/__tests__/test_tasks_logs.py",
"COMPLEXITY": "1",
- "LAYER": "Unknown"
+ "PURPOSE": "Shared low-fidelity test doubles for API route test modules."
},
"relations": [],
"children": [
{
- "name": "client",
+ "name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -54189,12 +125861,12 @@
}
},
{
- "name": "test_get_task_logs_success",
+ "name": "filter",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 30,
- "end_line": 30,
+ "start_line": 19,
+ "end_line": 19,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -54208,12 +125880,12 @@
}
},
{
- "name": "test_get_task_logs_not_found",
+ "name": "order_by",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 49,
+ "start_line": 24,
+ "end_line": 24,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -54227,12 +125899,12 @@
}
},
{
- "name": "test_get_task_logs_invalid_limit",
+ "name": "limit",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 58,
- "end_line": 58,
+ "start_line": 27,
+ "end_line": 27,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -54246,12 +125918,69 @@
}
},
{
- "name": "test_get_task_log_stats_success",
+ "name": "offset",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 65,
- "end_line": 65,
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "first",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 35,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 38,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -54272,817 +126001,12 @@
}
},
{
- "name": "backend.tests.test_reports_api",
+ "name": "TestCleanReleaseLegacyCompat",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 139,
- "tags": {
- "COMPLEXITY": "3",
- "SEMANTICS": "tests, reports, api, contract, pagination, filtering",
- "PURPOSE": "Contract tests for GET /api/reports defaults, pagination, and filtering behavior.",
- "LAYER": "Domain (Tests)",
- "INVARIANT": "API response contract contains {items,total,page,page_size,has_next,applied_filters}."
- },
- "relations": [
- {
- "type": "TESTS",
- "target": "backend.src.api.routes.reports"
- }
- ],
- "children": [
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_all_tasks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 23,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_admin_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 27,
- "end_line": 27,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_make_task",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 32,
- "end_line": 32,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_reports_default_pagination_contract",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 44,
- "end_line": 44,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_reports_filter_and_pagination",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 72,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_reports_handles_mixed_naive_and_aware_datetimes",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 100,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_reports_invalid_filter_returns_400",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 122,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.775
- }
- },
- {
- "name": "backend.src.api.routes.__tests__.test_datasets",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 300,
- "tags": {
- "COMPLEXITY": "3",
- "SEMANTICS": "datasets, api, tests, pagination, mapping, docs",
- "PURPOSE": "Unit tests for Datasets API endpoints",
- "LAYER": "API",
- "INVARIANT": "Endpoint contracts remain stable for success and validation failure paths."
- },
- "relations": [
- {
- "type": "TESTS",
- "target": "backend.src.api.routes.datasets"
- }
- ],
- "children": [
- {
- "name": "test_get_datasets_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 53,
- "end_line": 88,
- "tags": {
- "PURPOSE": "Validate successful datasets listing contract for an existing environment.",
- "TEST": "GET /api/datasets returns 200 and valid schema",
- "PRE": "env_id exists",
- "POST": "Response matches DatasetsResponse schema"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_env_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 91,
- "end_line": 104,
- "tags": {
- "TEST": "GET /api/datasets returns 404 if env_id missing",
- "PRE": "env_id does not exist",
- "POST": "Returns 404 error"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_invalid_pagination",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 107,
- "end_line": 132,
- "tags": {
- "TEST": "GET /api/datasets returns 400 for invalid page/page_size",
- "PRE": "page < 1 or page_size > 100",
- "POST": "Returns 400 error",
- "TEST_EDGE": "page_size > 100 exceeds max"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_map_columns_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 135,
- "end_line": 166,
- "tags": {
- "TEST": "POST /api/datasets/map-columns creates mapping task",
- "PRE": "Valid env_id, dataset_ids, source_type",
- "POST": "Returns task_id"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_map_columns_invalid_source_type",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 169,
- "end_line": 187,
- "tags": {
- "TEST": "POST /api/datasets/map-columns returns 400 for invalid source_type",
- "PRE": "source_type is not 'postgresql' or 'xlsx'",
- "POST": "Returns 400 error"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_generate_docs_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 190,
- "end_line": 221,
- "tags": {
- "TEST": "POST /api/datasets/generate-docs creates doc generation task",
- "PRE": "Valid env_id, dataset_ids, llm_provider",
- "POST": "Returns task_id"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_map_columns_empty_ids",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 224,
- "end_line": 240,
- "tags": {
- "TEST": "POST /api/datasets/map-columns returns 400 for empty dataset_ids",
- "PRE": "dataset_ids is empty",
- "POST": "Returns 400 error"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_generate_docs_empty_ids",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 243,
- "end_line": 259,
- "tags": {
- "TEST": "POST /api/datasets/generate-docs returns 400 for empty dataset_ids",
- "PRE": "dataset_ids is empty",
- "POST": "Returns 400 error"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_generate_docs_env_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 262,
- "end_line": 279,
- "tags": {
- "TEST": "POST /api/datasets/generate-docs returns 404 for missing env",
- "PRE": "env_id does not exist",
- "POST": "Returns 404 error"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_superset_failure",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 282,
- "end_line": 297,
- "tags": {
- "TEST_EDGE": "external_superset_failure -> {status: 503}"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "mock_deps",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 25,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 300 lines (must be < 300)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.625
- }
- },
- {
- "name": "backend.src.api.routes.__tests__.test_profile_api",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 298,
- "tags": {
- "COMPLEXITY": "3",
- "SEMANTICS": "tests, profile, api, preferences, lookup, contract",
- "PURPOSE": "Verifies profile API route contracts for preference read/update and Superset account lookup.",
- "LAYER": "API"
- },
- "relations": [
- {
- "type": "TESTS",
- "target": "backend.src.api.routes.profile"
- }
- ],
- "children": [
- {
- "name": "mock_profile_route_dependencies",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 53,
- "tags": {
- "PURPOSE": "Provides deterministic dependency overrides for profile route tests.",
- "PRE": "App instance is initialized.",
- "POST": "Dependencies are overridden for current test and restored afterward."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "profile_route_deps_fixture",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 56,
- "end_line": 68,
- "tags": {
- "PURPOSE": "Pytest fixture wrapper for profile route dependency overrides.",
- "PRE": "None.",
- "POST": "Yields overridden dependencies and clears overrides after test."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_build_preference_response",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 71,
- "end_line": 108,
- "tags": {
- "PURPOSE": "Builds stable profile preference response payload for route tests.",
- "PRE": "user_id is provided.",
- "POST": "Returns ProfilePreferenceResponse object with deterministic timestamps."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_profile_preferences_returns_self_payload",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 111,
- "end_line": 140,
- "tags": {
- "PURPOSE": "Verifies GET /api/profile/preferences returns stable self-scoped payload.",
- "PRE": "Authenticated user context is available.",
- "POST": "Response status is 200 and payload contains current user preference."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_patch_profile_preferences_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 143,
- "end_line": 190,
- "tags": {
- "PURPOSE": "Verifies PATCH /api/profile/preferences persists valid payload through route mapping.",
- "PRE": "Valid request payload and authenticated user.",
- "POST": "Response status is 200 with saved preference payload."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_patch_profile_preferences_validation_error",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 193,
- "end_line": 216,
- "tags": {
- "PURPOSE": "Verifies route maps domain validation failure to HTTP 422 with actionable details.",
- "PRE": "Service raises ProfileValidationError.",
- "POST": "Response status is 422 and includes validation messages."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_patch_profile_preferences_cross_user_denied",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 219,
- "end_line": 241,
- "tags": {
- "PURPOSE": "Verifies route maps domain authorization guard failure to HTTP 403.",
- "PRE": "Service raises ProfileAuthorizationError.",
- "POST": "Response status is 403 with denial message."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_lookup_superset_accounts_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 244,
- "end_line": 277,
- "tags": {
- "PURPOSE": "Verifies lookup route returns success payload with normalized candidates.",
- "PRE": "Valid environment_id and service success response.",
- "POST": "Response status is 200 and items list is returned."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_lookup_superset_accounts_env_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 280,
- "end_line": 296,
- "tags": {
- "PURPOSE": "Verifies lookup route maps missing environment to HTTP 404.",
- "PRE": "Service raises EnvironmentNotFoundError.",
- "POST": "Response status is 404 with explicit message."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.775
- }
- },
- {
- "name": "backend.tests.test_reports_detail_api",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 84,
- "tags": {
- "COMPLEXITY": "3",
- "SEMANTICS": "tests, reports, api, detail, diagnostics",
- "PURPOSE": "Contract tests for GET /api/reports/{report_id} detail endpoint behavior.",
- "LAYER": "Domain (Tests)",
- "INVARIANT": "Detail endpoint tests must keep deterministic assertions for success and not-found contracts."
- },
- "relations": [
- {
- "type": "TESTS",
- "target": "backend.src.api.routes.reports"
- }
- ],
- "children": [
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_all_tasks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 23,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_admin_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 27,
- "end_line": 27,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_make_task",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 32,
- "end_line": 32,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_report_detail_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 45,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_report_detail_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 70,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.775
- }
- },
- {
- "name": "backend.src.api.routes.__tests__.test_clean_release_legacy_compat",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 165,
+ "end_line": 187,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Compatibility tests for legacy clean-release API paths retained during v2 migration.",
@@ -55090,8 +126014,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.api.routes.clean_release"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -55100,14 +126024,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 111,
+ "start_line": 33,
+ "end_line": 119,
"tags": {
"PURPOSE": "Seed in-memory repository with minimum trusted data for legacy endpoint contracts.",
"PRE": "Repository is empty.",
"POST": "Candidate, policy, registry and manifest are available for legacy checks flow."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseLegacyCompat"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55120,13 +126049,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 114,
- "end_line": 114,
+ "start_line": 122,
+ "end_line": 149,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify legacy prepare endpoint remains reachable and returns a status payload."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseLegacyCompat"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55139,13 +126072,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 136,
- "end_line": 136,
+ "start_line": 152,
+ "end_line": 186,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify legacy checks start/status endpoints remain available during v2 transition."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseLegacyCompat"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55163,7 +126100,7 @@
"line_number": 1
},
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -55172,31 +126109,660 @@
}
},
{
- "name": "test_clean_release_v2_api",
+ "name": "DatasetReviewApiTests",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 93,
+ "end_line": 1503,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset_review, api, tests, lifecycle, exports, orchestration",
+ "PURPOSE": "Verify backend US1 dataset review lifecycle, export, parsing, and dictionary-resolution contracts.",
+ "LAYER": "API"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApi"
+ },
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewOrchestrator"
+ }
+ ],
+ "children": [
+ {
+ "name": "_make_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 87,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_config_manager",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 109,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 112,
+ "end_line": 135,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_us2_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 138,
+ "end_line": 253,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_us3_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 256,
+ "end_line": 323,
+ "tags": {
+ "RISK": "No spec= guard \u2014 enum/field contract changes are undetectable at test time."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_preview_ready_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 326,
+ "end_line": 336,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dataset_review_api_dependencies",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 339,
+ "end_line": 359,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_parse_superset_link_dashboard_partial_recovery",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 362,
+ "end_line": 396,
+ "tags": {
+ "PURPOSE": "Verify dashboard links recover dataset context and preserve explicit partial-recovery markers."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_parse_superset_link_dashboard_slug_recovery",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 399,
+ "end_line": 433,
+ "tags": {
+ "PURPOSE": "Verify dashboard slug links resolve through dashboard detail endpoints and recover dataset context."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_parse_superset_link_dashboard_permalink_partial_recovery",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 436,
+ "end_line": 528,
+ "tags": {
+ "PURPOSE": "Verify dashboard permalink links no longer fail parsing and preserve permalink filter state for partial recovery."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_parse_superset_link_dashboard_permalink_recovers_dataset_from_nested_dashboard_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 483,
+ "end_line": 527,
+ "tags": {
+ "PURPOSE": "Verify permalink state with nested dashboard id recovers dataset binding and keeps imported filters."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_resolve_from_dictionary_prefers_exact_match",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 531,
+ "end_line": 573,
+ "tags": {
+ "PURPOSE": "Verify trusted dictionary exact matches outrank fuzzy candidates and unresolved fields stay explicit."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_orchestrator_start_session_preserves_partial_recovery",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 576,
+ "end_line": 641,
+ "tags": {
+ "PURPOSE": "Verify session start persists usable recovery-required state when Superset intake is partial."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_orchestrator_start_session_bootstraps_recovery_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 644,
+ "end_line": 749,
+ "tags": {
+ "PURPOSE": "Verify session start persists recovered filters, template variables, and initial execution mappings for review workspace bootstrap."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_start_session_endpoint_returns_created_summary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 752,
+ "end_line": 782,
+ "tags": {
+ "PURPOSE": "Verify POST session lifecycle endpoint returns a persisted ownership-scoped summary."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_session_detail_export_and_lifecycle_endpoints",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 785,
+ "end_line": 892,
+ "tags": {
+ "PURPOSE": "Verify lifecycle get/patch/delete plus documentation and validation exports remain ownership-scoped and usable."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_us2_clarification_endpoints_persist_answer_and_feedback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 895,
+ "end_line": 956,
+ "tags": {
+ "PURPOSE": "Clarification endpoints should expose one current question, persist the answer before advancement, and store feedback on the answer audit record."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_us2_field_semantic_override_lock_unlock_and_feedback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 959,
+ "end_line": 1029,
+ "tags": {
+ "PURPOSE": "Semantic field endpoints should apply manual overrides with lock/provenance invariants and persist feedback independently."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_us3_mapping_patch_approval_preview_and_launch_endpoints",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1032,
+ "end_line": 1201,
+ "tags": {
+ "PURPOSE": "US3 execution endpoints should persist manual overrides, preserve explicit approval semantics, return contract-shaped preview truth, and expose audited launch handoff."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_us3_preview_endpoint_returns_failed_preview_without_false_dashboard_not_found_contract_drift",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1204,
+ "end_line": 1252,
+ "tags": {
+ "PURPOSE": "Preview endpoint should preserve API contract and surface generic upstream preview failures without fabricating dashboard-not-found semantics for non-dashboard 404s."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_execution_snapshot_includes_recovered_imported_filters_without_template_mapping",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1255,
+ "end_line": 1325,
+ "tags": {
+ "PURPOSE": "Recovered imported filters with values should flow into preview filter context even when no template variable mapping exists."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_execution_snapshot_preserves_mapped_template_variables_and_filter_context",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1328,
+ "end_line": 1364,
+ "tags": {
+ "PURPOSE": "Mapped template variables should still populate template params while contributing their effective filter context."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_execution_snapshot_skips_partial_imported_filters_without_values",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1367,
+ "end_line": 1406,
+ "tags": {
+ "PURPOSE": "Partial imported filters without raw or normalized values must not emit bogus active preview filters."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_us3_launch_endpoint_requires_launch_permission",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1409,
+ "end_line": 1462,
+ "tags": {
+ "PURPOSE": "Launch endpoint should enforce the contract RBAC permission instead of the generic session-manage permission."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_semantic_source_version_propagation_preserves_locked_fields",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1465,
+ "end_line": 1501,
+ "tags": {
+ "PURPOSE": "Updated semantic source versions should mark unlocked fields reviewable while preserving locked manual values."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "DatasetReviewApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_add_side_effect",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 908,
+ "end_line": 908,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 1503 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "CleanReleaseV2ApiTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 115,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "API contract tests for redesigned clean release endpoints.",
"LAYER": "Domain"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.api.routes.clean_release_v2"
+ }
+ ],
"children": [
{
"name": "test_candidate_registration_contract",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
+ "start_line": 28,
+ "end_line": 49,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate candidate registration endpoint creates a draft candidate with expected identifier contract."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "CleanReleaseV2ApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55209,13 +126775,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 43,
- "end_line": 43,
+ "start_line": 52,
+ "end_line": 84,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate artifact import endpoint accepts candidate artifacts and returns success status payload."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "CleanReleaseV2ApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55228,13 +126798,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 72,
+ "start_line": 87,
+ "end_line": 114,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Validate manifest build endpoint produces manifest payload linked to the target candidate."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "CleanReleaseV2ApiTests"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55250,29 +126824,26 @@
"message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
"severity": "WARNING",
"line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
}
],
- "score": 0.5499999999999999
+ "score": 0.7
}
},
{
- "name": "backend.src.api.routes.__tests__.test_assistant_authz",
+ "name": "TestAssistantAuthz",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 1,
- "end_line": 306,
+ "start_line": 4,
+ "end_line": 359,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, assistant, authz, confirmation, rbac",
"PURPOSE": "Verify assistant confirmation ownership, expiration, and deny behavior for restricted users.",
"LAYER": "UI (API Tests)",
- "INVARIANT": "Security-sensitive flows fail closed for unauthorized actors."
+ "INVARIANT": "Security-sensitive flows fail closed for unauthorized actors.",
+ "DEBT": "Divergent _FakeTaskManager definition. Canonical version should be in conftest.py. Authz variant is missing get_all_tasks().",
+ "CONTRACT": "Partial ConfigManager stub for authz tests. Missing: get_config()."
},
"relations": [
{
@@ -55286,15 +126857,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 30,
- "end_line": 39,
+ "start_line": 37,
+ "end_line": 47,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Execute async endpoint handler in synchronous test context.",
"PRE": "coroutine is awaitable endpoint invocation.",
"POST": "Returns coroutine result or raises propagated exception."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55307,13 +126883,20 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 50,
+ "start_line": 50,
+ "end_line": 63,
"tags": {
"COMPLEXITY": "1",
- "PURPOSE": "Lightweight task model used for assistant authz tests."
+ "PURPOSE": "Lightweight task model used for assistant authz tests.",
+ "PRE": "task_id is non-empty string.",
+ "POST": "Returns task with provided id, status, and user_id accessible as attributes."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55324,15 +126907,21 @@
{
"name": "_FakeTaskManager",
"type": "Class",
- "complexity": 1,
+ "complexity": 2,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 74,
+ "start_line": 65,
+ "end_line": 95,
"tags": {
- "COMPLEXITY": "1",
- "PURPOSE": "Minimal task manager for deterministic operation creation and lookup."
+ "COMPLEXITY": "2",
+ "PURPOSE": "In-memory task manager double that records assistant-created tasks deterministically.",
+ "INVARIANT": "Only create_task/get_task/get_tasks behavior used by assistant authz routes is emulated."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55345,13 +126934,21 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 86,
+ "start_line": 97,
+ "end_line": 117,
"tags": {
"COMPLEXITY": "1",
- "PURPOSE": "Provide deterministic environment aliases required by intent parsing."
+ "PURPOSE": "Provide deterministic environment aliases required by intent parsing.",
+ "PRE": "No external config or DB state is required.",
+ "POST": "get_environments() returns two deterministic SimpleNamespace stubs with id/name.",
+ "INVARIANT": "get_config() is absent; only get_environments() is emulated. Safe only for routes that do not invoke get_config() on the injected ConfigManager \u2014 verify against assistant.py route handler code before adding new test cases that use this fake."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55364,15 +126961,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 87,
- "end_line": 97,
+ "start_line": 118,
+ "end_line": 129,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Build admin principal fixture.",
"PRE": "Test requires privileged principal for risky operations.",
"POST": "Returns admin-like user stub with Admin role."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55385,15 +126987,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 98,
- "end_line": 108,
+ "start_line": 130,
+ "end_line": 141,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Build second admin principal fixture for ownership tests.",
"PRE": "Ownership mismatch scenario needs distinct authenticated actor.",
"POST": "Returns alternate admin-like user stub."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55406,15 +127013,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 109,
- "end_line": 119,
+ "start_line": 142,
+ "end_line": 153,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Build limited principal without required assistant execution privileges.",
"PRE": "Permission denial scenario needs non-admin actor.",
"POST": "Returns restricted user stub."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55427,13 +127039,19 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 120,
- "end_line": 151,
+ "start_line": 156,
+ "end_line": 190,
"tags": {
"COMPLEXITY": "1",
- "PURPOSE": "Minimal chainable query object for fake DB interactions."
+ "PURPOSE": "Minimal chainable query object for fake DB interactions.",
+ "INVARIANT": "filter() is predicate-blind; returns all records regardless of user_id scope"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55444,15 +127062,21 @@
{
"name": "_FakeDb",
"type": "Class",
- "complexity": 1,
+ "complexity": 2,
"tier": "TRIVIAL",
- "start_line": 152,
- "end_line": 198,
+ "start_line": 191,
+ "end_line": 239,
"tags": {
- "COMPLEXITY": "1",
- "PURPOSE": "In-memory session substitute for assistant route persistence calls."
+ "COMPLEXITY": "2",
+ "PURPOSE": "In-memory DB session double constrained to assistant message/confirmation/audit persistence paths.",
+ "INVARIANT": "query/add/merge are intentionally narrow and must not claim full SQLAlchemy Session semantics."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55465,15 +127089,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 199,
- "end_line": 211,
+ "start_line": 240,
+ "end_line": 253,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Reset assistant process-local state between test cases.",
"PRE": "Assistant globals may contain state from prior tests.",
"POST": "Assistant in-memory state dictionaries are cleared."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55486,14 +127115,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 212,
- "end_line": 247,
+ "start_line": 256,
+ "end_line": 292,
"tags": {
"PURPOSE": "Confirm endpoint should reject requests from user that does not own the confirmation token.",
"PRE": "Confirmation token is created by first admin actor.",
"POST": "Second actor receives 403 on confirm operation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55506,14 +127140,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 248,
- "end_line": 284,
+ "start_line": 295,
+ "end_line": 334,
"tags": {
"PURPOSE": "Expired confirmation token should be rejected and not create task.",
"PRE": "Confirmation token exists and is manually expired before confirm request.",
"POST": "Confirm endpoint raises 400 and no task is created."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55526,14 +127165,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 285,
- "end_line": 305,
+ "start_line": 337,
+ "end_line": 358,
"tags": {
"PURPOSE": "Limited user should receive denied state for privileged operation.",
"PRE": "Restricted user attempts dangerous deploy command.",
"POST": "Assistant returns denied state and does not execute operation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAssistantAuthz"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -55546,8 +127190,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 44,
- "end_line": 44,
+ "start_line": 57,
+ "end_line": 57,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -55565,8 +127209,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 55,
+ "start_line": 71,
+ "end_line": 71,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -55584,1621 +127228,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 58,
- "end_line": 58,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_task",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 64,
- "end_line": 64,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_tasks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 70,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_environments",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 79,
- "end_line": 79,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 124,
- "end_line": 124,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "filter",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 127,
- "end_line": 127,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "order_by",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 130,
- "end_line": 130,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "first",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 133,
- "end_line": 133,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "all",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 136,
- "end_line": 136,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "limit",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 139,
- "end_line": 139,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "offset",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 143,
- "end_line": 143,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "count",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 147,
- "end_line": 147,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 156,
- "end_line": 156,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "add",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 161,
- "end_line": 161,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "merge",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 170,
- "end_line": 170,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "query",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 182,
- "end_line": 182,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "commit",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 191,
- "end_line": 191,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "rollback",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 194,
- "end_line": 194,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Fractal limit warning: Module length is 306 lines (must be < 300)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.775
- }
- },
- {
- "name": "test_clean_release_v2_release_api",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 107,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "API contract test scaffolding for clean release approval and publication endpoints.",
- "LAYER": "Domain"
- },
- "relations": [
- {
- "type": "IMPLEMENTS",
- "target": "clean_release_v2_release_api_contracts"
- }
- ],
- "children": [
- {
- "name": "_seed_candidate_and_passed_report",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_release_approve_and_publish_revoke_contract",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 55,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_release_reject_contract",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 93,
- "end_line": 93,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.7
- }
- },
- {
- "name": "backend.src.api.routes.__tests__.test_connections_routes",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 72,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Verifies connection routes bootstrap their table before CRUD access.",
- "LAYER": "API"
- },
- "relations": [
- {
- "type": "VERIFIES",
- "target": "backend.src.api.routes.connections"
- }
- ],
- "children": [
- {
- "name": "db_session",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 29,
- "end_line": 29,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_list_connections_bootstraps_missing_table",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_connection_bootstraps_missing_table",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 52,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.5499999999999999
- }
- },
- {
- "name": "backend.src.api.routes.__tests__.test_git_api",
- "type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1,
- "end_line": 310,
- "tags": {
- "PURPOSE": "API tests for Git configurations and repository operations."
- },
- "relations": [
- {
- "type": "VERIFIES",
- "target": "src.api.routes.git"
- }
- ],
- "children": [
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 13,
- "end_line": 13,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "query",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 18,
- "end_line": 18,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "filter",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 22,
- "end_line": 22,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "first",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 31,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "all",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 37,
- "end_line": 37,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "add",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 40,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "delete",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 46,
- "end_line": 46,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "commit",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 51,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "refresh",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 54,
- "end_line": 54,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_git_configs_masks_pat",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 60,
- "end_line": 60,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_git_config_persists_config",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 77,
- "end_line": 77,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_update_git_config_modifies_record",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 100,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "query",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 112,
- "end_line": 112,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "filter",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 113,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "first",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 114,
- "end_line": 114,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "commit",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 115,
- "end_line": 115,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "refresh",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 116,
- "end_line": 116,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_update_git_config_raises_404_if_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 127,
- "end_line": 127,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_delete_git_config_removes_record",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 141,
- "end_line": 141,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "query",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 148,
- "end_line": 148,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "filter",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 149,
- "end_line": 149,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "first",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 150,
- "end_line": 150,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "delete",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 151,
- "end_line": 151,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "commit",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 152,
- "end_line": 152,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_test_git_config_validates_connection_successfully",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 161,
- "end_line": 161,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_connection",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 167,
- "end_line": 167,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_test_git_config_fails_validation",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 183,
- "end_line": 183,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_connection",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 189,
- "end_line": 189,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_list_gitea_repositories_returns_payload",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 207,
- "end_line": 207,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "list_gitea_repositories",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 213,
- "end_line": 213,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_list_gitea_repositories_rejects_non_gitea",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 229,
- "end_line": 229,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_remote_repository_creates_provider_repo",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 246,
- "end_line": 246,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_gitlab_repository",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 252,
- "end_line": 252,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_init_repository_initializes_and_saves_binding",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 276,
- "end_line": 276,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "init_repo",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 284,
- "end_line": 284,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_get_repo_path",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 286,
- "end_line": 286,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 310 lines (must be < 300)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.7
- }
- },
- {
- "name": "AssistantApiTests",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 221,
- "tags": {
- "C": "3",
- "SEMANTICS": "tests, assistant, api",
- "PURPOSE": "Validate assistant API endpoint logic via direct async handler invocation.",
- "INVARIANT": "Every test clears assistant in-memory state before execution."
- },
- "relations": [
- {
- "type": "DEPENDS_ON",
- "target": "backend.src.api.routes.assistant"
- }
- ],
- "children": [
- {
- "name": "_run_async",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 22,
- "end_line": 25,
- "tags": {},
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_FakeTask",
- "type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 40,
- "tags": {},
- "relations": [
- {
- "type": "BINDS_TO",
- "target": "AssistantApiTests"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_FakeTaskManager",
- "type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 43,
- "end_line": 63,
- "tags": {},
- "relations": [
- {
- "type": "BINDS_TO",
- "target": "AssistantApiTests"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_FakeConfigManager",
- "type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 66,
- "end_line": 85,
- "tags": {},
- "relations": [
- {
- "type": "BINDS_TO",
- "target": "AssistantApiTests"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_admin_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 88,
- "end_line": 97,
- "tags": {},
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_limited_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 107,
- "tags": {},
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_FakeQuery",
- "type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 110,
- "end_line": 138,
- "tags": {},
- "relations": [
- {
- "type": "BINDS_TO",
- "target": "AssistantApiTests"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_FakeDb",
- "type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 141,
- "end_line": 166,
- "tags": {},
- "relations": [
- {
- "type": "BINDS_TO",
- "target": "AssistantApiTests"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_clear_assistant_state",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 169,
- "end_line": 175,
- "tags": {},
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_unknown_command_returns_needs_clarification",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 178,
- "end_line": 197,
- "tags": {
- "PURPOSE": "Unknown command should return clarification state and unknown intent."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_capabilities_question_returns_successful_help",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 200,
- "end_line": 216,
- "tags": {
- "PURPOSE": "Capability query should return deterministic help response."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 31,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 46,
- "end_line": 46,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_task",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 49,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_task",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 55,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_tasks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 58,
- "end_line": 58,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_all_tasks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 61,
- "end_line": 61,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 70,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_environments",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 74,
"end_line": 74,
"tags": {
@@ -57213,11 +127242,1747 @@
"score": 1.0
}
},
+ {
+ "name": "get_task",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_tasks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 86,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_all_tasks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 89,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_environments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 105,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "get_config",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
+ "start_line": 111,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 162,
+ "end_line": 162,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 165,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "order_by",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 169,
+ "end_line": 169,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "first",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 172,
+ "end_line": 172,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 175,
+ "end_line": 175,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "limit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 178,
+ "end_line": 178,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "offset",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 182,
+ "end_line": 182,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 186,
+ "end_line": 186,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 197,
+ "end_line": 197,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "add",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 202,
+ "end_line": 202,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 211,
+ "end_line": 211,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "query",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 223,
+ "end_line": 223,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "commit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 232,
+ "end_line": 232,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rollback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 235,
+ "end_line": 235,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 356 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 4
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "CleanReleaseV2ReleaseApiTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 127,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "API contract test scaffolding for clean release approval and publication endpoints.",
+ "LAYER": "Domain"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.api.routes.clean_release_v2"
+ }
+ ],
+ "children": [
+ {
+ "name": "_seed_candidate_and_passed_report",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 62,
+ "tags": {
+ "PURPOSE": "Seed repository with approvable candidate and passed report for release endpoint contracts."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "CleanReleaseV2ReleaseApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_release_approve_and_publish_revoke_contract",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 106,
+ "tags": {
+ "PURPOSE": "Verify approve, publish, and revoke endpoints preserve expected release lifecycle contract."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "CleanReleaseV2ReleaseApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_release_reject_contract",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 109,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Verify reject endpoint returns successful rejection decision payload."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "CleanReleaseV2ReleaseApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.7
+ }
+ },
+ {
+ "name": "ConnectionsRoutesTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 87,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Verifies connection routes bootstrap their table before CRUD access.",
+ "LAYER": "API",
+ "SIDE_EFFECT_WARNING": "os.environ mutation at module import time \u2014 no teardown. This bleeds into all subsequently collected tests. Migrate to pytest.fixture(autouse=True) with monkeypatch.setenv."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConnectionsRouter"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_list_connections_bootstraps_missing_table",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 46,
+ "end_line": 59,
+ "tags": {
+ "PURPOSE": "Ensure listing connections auto-creates missing table and returns empty payload."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ConnectionsRoutesTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_connection_bootstraps_missing_table",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 86,
+ "tags": {
+ "PURPOSE": "Ensure connection creation bootstraps table and persists returned connection fields."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ConnectionsRoutesTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "db_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 33,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.7
+ }
+ },
+ {
+ "name": "TestGitApi",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": null,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "API tests for Git configurations and repository operations."
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "GitApi"
+ }
+ ],
+ "children": [
+ {
+ "name": "DbMock",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 87,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "In-memory session double for git route tests with minimal query/filter persistence semantics.",
+ "INVARIANT": "Supports only the SQLAlchemy-like operations exercised by this test module."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_git_configs_masks_pat",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 90,
+ "end_line": 119,
+ "tags": {
+ "PURPOSE": "Validate listing git configs masks stored PAT values in API-facing responses."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_git_config_persists_config",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 122,
+ "end_line": 152,
+ "tags": {
+ "PURPOSE": "Validate creating git config persists supplied server attributes in backing session."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_update_git_config_modifies_record",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 157,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Validate updating git config modifies mutable fields while preserving masked PAT semantics."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [
+ {
+ "name": "SingleConfigDbMock",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 176,
+ "end_line": null,
+ "tags": {},
+ "relations": [],
+ "children": [
+ {
+ "name": "test_update_git_config_raises_404_if_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 212,
+ "end_line": 234,
+ "tags": {
+ "PURPOSE": "Validate updating non-existent git config raises HTTP 404 contract response."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_delete_git_config_removes_record",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 237,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Validate deleting existing git config removes record and returns success payload."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [
+ {
+ "name": "SingleConfigDbMock",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 247,
+ "end_line": null,
+ "tags": {},
+ "relations": [],
+ "children": [
+ {
+ "name": "test_test_git_config_validates_connection_successfully",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 275,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Validate test-connection endpoint returns success when provider connectivity check passes."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [
+ {
+ "name": "MockGitService",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 284,
+ "end_line": null,
+ "tags": {},
+ "relations": [],
+ "children": [
+ {
+ "name": "test_test_git_config_fails_validation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 308,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Validate test-connection endpoint raises HTTP 400 when provider connectivity check fails."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [
+ {
+ "name": "MockGitService",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 317,
+ "end_line": null,
+ "tags": {},
+ "relations": [],
+ "children": [
+ {
+ "name": "test_list_gitea_repositories_returns_payload",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 343,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Validate gitea repositories endpoint returns normalized list for GITEA provider configs."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [
+ {
+ "name": "MockGitService",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 352,
+ "end_line": null,
+ "tags": {},
+ "relations": [],
+ "children": [
+ {
+ "name": "test_list_gitea_repositories_rejects_non_gitea",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 381,
+ "end_line": 405,
+ "tags": {
+ "PURPOSE": "Validate gitea repositories endpoint rejects non-GITEA providers with HTTP 400."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_remote_repository_creates_provider_repo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 408,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Validate remote repository creation endpoint maps provider response into normalized payload."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [
+ {
+ "name": "MockGitService",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 417,
+ "end_line": null,
+ "tags": {},
+ "relations": [],
+ "children": [
+ {
+ "name": "test_init_repository_initializes_and_saves_binding",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 456,
+ "end_line": null,
+ "tags": {
+ "PURPOSE": "Validate repository initialization endpoint creates local repo and persists dashboard binding."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitApi"
+ }
+ ],
+ "children": [
+ {
+ "name": "MockGitService",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 466,
+ "end_line": null,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 466",
+ "severity": "ERROR",
+ "line_number": 466
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_init_repository_initializes_and_saves_binding:Function] started at line 456",
+ "severity": "ERROR",
+ "line_number": 456
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 417",
+ "severity": "ERROR",
+ "line_number": 417
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_create_remote_repository_creates_provider_repo:Function] started at line 408",
+ "severity": "ERROR",
+ "line_number": 408
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 352",
+ "severity": "ERROR",
+ "line_number": 352
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_list_gitea_repositories_returns_payload:Function] started at line 343",
+ "severity": "ERROR",
+ "line_number": 343
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 317",
+ "severity": "ERROR",
+ "line_number": 317
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_fails_validation:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_fails_validation:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_fails_validation:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_fails_validation:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_fails_validation:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_fails_validation:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_fails_validation:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_fails_validation:Function] started at line 308",
+ "severity": "ERROR",
+ "line_number": 308
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 284",
+ "severity": "ERROR",
+ "line_number": 284
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 284",
+ "severity": "ERROR",
+ "line_number": 284
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 284",
+ "severity": "ERROR",
+ "line_number": 284
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 284",
+ "severity": "ERROR",
+ "line_number": 284
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 284",
+ "severity": "ERROR",
+ "line_number": 284
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 284",
+ "severity": "ERROR",
+ "line_number": 284
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:MockGitService:Class] started at line 284",
+ "severity": "ERROR",
+ "line_number": 284
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_validates_connection_successfully:Function] started at line 275",
+ "severity": "ERROR",
+ "line_number": 275
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_validates_connection_successfully:Function] started at line 275",
+ "severity": "ERROR",
+ "line_number": 275
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_validates_connection_successfully:Function] started at line 275",
+ "severity": "ERROR",
+ "line_number": 275
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_validates_connection_successfully:Function] started at line 275",
+ "severity": "ERROR",
+ "line_number": 275
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_validates_connection_successfully:Function] started at line 275",
+ "severity": "ERROR",
+ "line_number": 275
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_test_git_config_validates_connection_successfully:Function] started at line 275",
+ "severity": "ERROR",
+ "line_number": 275
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:SingleConfigDbMock:Class] started at line 247",
+ "severity": "ERROR",
+ "line_number": 247
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:SingleConfigDbMock:Class] started at line 247",
+ "severity": "ERROR",
+ "line_number": 247
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:SingleConfigDbMock:Class] started at line 247",
+ "severity": "ERROR",
+ "line_number": 247
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:SingleConfigDbMock:Class] started at line 247",
+ "severity": "ERROR",
+ "line_number": 247
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:SingleConfigDbMock:Class] started at line 247",
+ "severity": "ERROR",
+ "line_number": 247
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_delete_git_config_removes_record:Function] started at line 237",
+ "severity": "ERROR",
+ "line_number": 237
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_delete_git_config_removes_record:Function] started at line 237",
+ "severity": "ERROR",
+ "line_number": 237
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_delete_git_config_removes_record:Function] started at line 237",
+ "severity": "ERROR",
+ "line_number": 237
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_delete_git_config_removes_record:Function] started at line 237",
+ "severity": "ERROR",
+ "line_number": 237
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:SingleConfigDbMock:Class] started at line 176",
+ "severity": "ERROR",
+ "line_number": 176
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:SingleConfigDbMock:Class] started at line 176",
+ "severity": "ERROR",
+ "line_number": 176
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:SingleConfigDbMock:Class] started at line 176",
+ "severity": "ERROR",
+ "line_number": 176
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:test_update_git_config_modifies_record:Function] started at line 157",
+ "severity": "ERROR",
+ "line_number": 157
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:test_update_git_config_modifies_record:Function] started at line 157",
+ "severity": "ERROR",
+ "line_number": 157
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 20,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "query",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 26,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 31,
+ "end_line": 31,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "first",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "add",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "delete",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "commit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
"start_line": 77,
"end_line": 77,
"tags": {
@@ -57233,164 +128998,12 @@
}
},
{
- "name": "__init__",
+ "name": "refresh",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 113,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "filter",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 116,
- "end_line": 116,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "order_by",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 119,
- "end_line": 119,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "limit",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 122,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "offset",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 126,
- "end_line": 126,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "first",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 130,
- "end_line": 130,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "all",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 133,
- "end_line": 133,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "count",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 136,
- "end_line": 136,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 144,
- "end_line": 144,
+ "start_line": 80,
+ "end_line": 80,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57408,8 +129021,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 147,
- "end_line": 147,
+ "start_line": 178,
+ "end_line": 178,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57423,12 +129036,31 @@
}
},
{
- "name": "add",
+ "name": "filter",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 152,
- "end_line": 152,
+ "start_line": 181,
+ "end_line": 181,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "first",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 184,
+ "end_line": 184,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57446,46 +129078,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 155,
- "end_line": 155,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "rollback",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 158,
- "end_line": 158,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "merge",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 161,
- "end_line": 161,
+ "start_line": 187,
+ "end_line": 187,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57503,8 +129097,983 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 164,
- "end_line": 164,
+ "start_line": 190,
+ "end_line": 190,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "query",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 249,
+ "end_line": 249,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 252,
+ "end_line": 252,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "first",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 255,
+ "end_line": 255,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "delete",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 258,
+ "end_line": 258,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "commit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 261,
+ "end_line": 261,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_connection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 286,
+ "end_line": 286,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_connection",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 319,
+ "end_line": 319,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list_gitea_repositories",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 354,
+ "end_line": 354,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create_gitlab_repository",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 419,
+ "end_line": 419,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "init_repo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 468,
+ "end_line": 468,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_repo_path",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 471,
+ "end_line": 471,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:TestGitApi:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @LAYER (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "AssistantApiTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 4,
+ "end_line": 293,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, assistant, api",
+ "PURPOSE": "Validate assistant API endpoint logic via direct async handler invocation.",
+ "INVARIANT": "Every test clears assistant in-memory state before execution.",
+ "DEBT": "Divergent _FakeTaskManager definition. Canonical version should be in conftest.py. Authz variant is missing get_all_tasks()."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.api.routes.assistant"
+ }
+ ],
+ "children": [
+ {
+ "name": "_run_async",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 32,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeTask",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 35,
+ "end_line": 60,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Lightweight task model stub used as return value from _FakeTaskManager.create_task in assistant route tests.",
+ "INVARIANT": "status is a bare string not a TaskStatus enum; callers must not depend on enum semantics."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeTaskManager",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 97,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "In-memory task manager stub that records created tasks for route-level assertions.",
+ "INVARIANT": "create_task stores tasks retrievable by get_task/get_tasks without external side effects."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeConfigManager",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 126,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Deterministic config stub providing hardcoded dev/prod environments and minimal settings shape for assistant route tests.",
+ "INVARIANT": "get_config() returns anonymous inner classes, not real GlobalSettings; only default_environment_id and llm fields are safe to access."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_admin_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 143,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Build admin principal with spec=User for assistant route authorization tests."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_limited_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 146,
+ "end_line": 158,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Build limited user principal with empty roles for assistant route denial tests."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeQuery",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 195,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Chainable SQLAlchemy-like query stub returning fixed item lists for assistant message persistence paths.",
+ "INVARIANT": "filter() is predicate-blind; returns all records regardless of user_id scope"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeDb",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 198,
+ "end_line": 228,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Explicit in-memory DB session double limited to assistant message persistence paths.",
+ "INVARIANT": "query() always returns _FakeQuery with intentionally non-evaluated predicates; add/merge stay deterministic and never emulate unrelated SQLAlchemy behavior."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_clear_assistant_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 231,
+ "end_line": 240,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_unknown_command_returns_needs_clarification",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 243,
+ "end_line": 267,
+ "tags": {
+ "PURPOSE": "Unknown command should return clarification state and unknown intent."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_capabilities_question_returns_successful_help",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 270,
+ "end_line": 291,
+ "tags": {
+ "PURPOSE": "Capability query should return deterministic help response."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "AssistantApiTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create_task",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 73,
+ "end_line": 73,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_task",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 85,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_tasks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 88,
+ "end_line": 88,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_all_tasks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 93,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_environments",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 111,
+ "end_line": 111,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_config",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 167,
+ "end_line": 167,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "filter",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 170,
+ "end_line": 170,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "order_by",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 174,
+ "end_line": 174,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "limit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 177,
+ "end_line": 177,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "offset",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 181,
+ "end_line": 181,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "first",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 185,
+ "end_line": 185,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "all",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 188,
+ "end_line": 188,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 191,
+ "end_line": 191,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 204,
+ "end_line": 204,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "query",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 207,
+ "end_line": 207,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "add",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 212,
+ "end_line": 212,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "commit",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 215,
+ "end_line": 215,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rollback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 218,
+ "end_line": 218,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 221,
+ "end_line": 221,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "refresh",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 224,
+ "end_line": 224,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57524,23 +130093,24 @@
{
"message": "Missing Mandatory Tag: @LAYER (required for complexity 3)",
"severity": "WARNING",
- "line_number": 1
+ "line_number": 4
}
],
"score": 0.7
}
},
{
- "name": "backend.src.api.routes.__tests__.test_migration_routes",
+ "name": "TestMigrationRoutes",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 510,
+ "end_line": 656,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for migration API route handlers.",
"LAYER": "API",
+ "SIDE_EFFECT_WARNING": "os.environ mutation at module import time \u2014 no teardown. This bleeds into all subsequently collected tests. Migrate to pytest.fixture(autouse=True) with monkeypatch.setenv.",
"TEST_EDGE": "breaking_reference -> validates high risk on missing dataset link"
},
"relations": [
@@ -57551,17 +130121,19 @@
],
"children": [
{
- "name": "db_session",
+ "name": "_make_config_manager",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 40,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 63,
+ "end_line": 79,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationRoutes"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -57570,12 +130142,54 @@
}
},
{
- "name": "_make_config_manager",
+ "name": "_mock_env",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 55,
+ "start_line": 332,
+ "end_line": 347,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationRoutes"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_make_sync_config_manager",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 350,
+ "end_line": 365,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationRoutes"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "db_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 47,
+ "end_line": 47,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57593,8 +130207,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 70,
+ "start_line": 83,
+ "end_line": 83,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57612,8 +130226,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 84,
- "end_line": 84,
+ "start_line": 97,
+ "end_line": 97,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57631,8 +130245,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 99,
- "end_line": 99,
+ "start_line": 113,
+ "end_line": 113,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57650,8 +130264,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 117,
- "end_line": 117,
+ "start_line": 129,
+ "end_line": 129,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57669,8 +130283,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 137,
- "end_line": 137,
+ "start_line": 148,
+ "end_line": 148,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57688,8 +130302,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 166,
- "end_line": 166,
+ "start_line": 185,
+ "end_line": 185,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57707,8 +130321,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 186,
- "end_line": 186,
+ "start_line": 215,
+ "end_line": 215,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57726,8 +130340,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 200,
- "end_line": 200,
+ "start_line": 253,
+ "end_line": 253,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57745,46 +130359,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 214,
- "end_line": 214,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_mock_env",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 230,
- "end_line": 230,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_make_sync_config_manager",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 243,
- "end_line": 243,
+ "start_line": 291,
+ "end_line": 291,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57802,8 +130378,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 257,
- "end_line": 257,
+ "start_line": 369,
+ "end_line": 369,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57821,8 +130397,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 287,
- "end_line": 287,
+ "start_line": 403,
+ "end_line": 403,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57840,8 +130416,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 301,
- "end_line": 301,
+ "start_line": 417,
+ "end_line": 417,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57859,8 +130435,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 331,
- "end_line": 331,
+ "start_line": 452,
+ "end_line": 452,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57878,8 +130454,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 350,
- "end_line": 350,
+ "start_line": 474,
+ "end_line": 474,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57897,8 +130473,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 364,
- "end_line": 364,
+ "start_line": 490,
+ "end_line": 490,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57916,8 +130492,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 375,
- "end_line": 375,
+ "start_line": 504,
+ "end_line": 504,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57935,8 +130511,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 394,
- "end_line": 394,
+ "start_line": 524,
+ "end_line": 524,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57954,8 +130530,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 411,
- "end_line": 411,
+ "start_line": 541,
+ "end_line": 541,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -57973,8 +130549,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 489,
- "end_line": 489,
+ "start_line": 631,
+ "end_line": 631,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -58002,7 +130578,7 @@
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 510 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 656 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -58011,14 +130587,14 @@
}
},
{
- "name": "backend.src.models.config",
+ "name": "ConfigModels",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 1,
"end_line": 53,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"SEMANTICS": "database, config, settings, sqlalchemy, notification",
"PURPOSE": "Defines SQLAlchemy persistence models for application and notification configuration records.",
"LAYER": "Domain",
@@ -58027,11 +130603,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "sqlalchemy"
- },
- {
- "type": "DEPENDS_ON",
- "target": "backend.src.models.mapping:Base"
+ "target": "MappingModels:Base"
}
],
"children": [
@@ -58143,34 +130715,13 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.925
}
},
{
- "name": "backend.src.models.llm",
+ "name": "LlmModels",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
@@ -58185,7 +130736,7 @@
"relations": [
{
"type": "INHERITS_FROM",
- "target": "backend.src.models.mapping.Base"
+ "target": "MappingModels:Base"
}
],
"children": [
@@ -58356,7 +130907,7 @@
}
},
{
- "name": "backend.src.models.task",
+ "name": "TaskModels",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
@@ -58398,13 +130949,13 @@
{
"name": "TaskLogRecord",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 37,
"end_line": 114,
"tags": {
"PURPOSE": "Represents a single persistent log entry for a task.",
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"INVARIANT": "Each log entry belongs to exactly one task.",
"TEST_CONTRACT": "TaskLogCreate ->",
"TEST_FIXTURE": "basic_info_log ->",
@@ -58419,50 +130970,9 @@
],
"children": [],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -58473,7 +130983,7 @@
}
},
{
- "name": "backend.src.models.connection",
+ "name": "ConnectionModels",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
@@ -58519,13 +131029,852 @@
"score": 1.0
}
},
+ {
+ "name": "DatasetReviewModels",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 683,
+ "tags": {
+ "TIER": "STANDARD",
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset_review, session, profile, findings, semantics, clarification, execution, sqlalchemy",
+ "PURPOSE": "SQLAlchemy models for the dataset review orchestration flow.",
+ "LAYER": "Domain",
+ "INVARIANT": "Session and profile entities are strictly scoped to an authenticated user."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "AuthModels"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "MappingModels"
+ }
+ ],
+ "children": [
+ {
+ "name": "SessionStatus",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 30,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionPhase",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 43,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ReadinessState",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 60,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "RecommendedAction",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 62,
+ "end_line": 75,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionCollaboratorRole",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 82,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionCollaborator",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 84,
+ "end_line": 96,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DatasetReviewSession",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 136,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "BusinessSummarySource",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 138,
+ "end_line": 145,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ConfidenceState",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": 154,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DatasetProfile",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 156,
+ "end_line": 179,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FindingArea",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 181,
+ "end_line": 192,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FindingSeverity",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 194,
+ "end_line": 199,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ResolutionState",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 201,
+ "end_line": 209,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ValidationFinding",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 211,
+ "end_line": 229,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticSourceType",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 231,
+ "end_line": 238,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "TrustLevel",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 240,
+ "end_line": 246,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticSourceStatus",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 248,
+ "end_line": 256,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticSource",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 258,
+ "end_line": 274,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FieldKind",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 276,
+ "end_line": 282,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FieldProvenance",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 284,
+ "end_line": 292,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticFieldEntry",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 294,
+ "end_line": 319,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "CandidateMatchType",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 321,
+ "end_line": 327,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "CandidateStatus",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 329,
+ "end_line": 335,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticCandidate",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 337,
+ "end_line": 354,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FilterSource",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 356,
+ "end_line": 364,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FilterConfidenceState",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 366,
+ "end_line": 373,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "FilterRecoveryStatus",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 375,
+ "end_line": 381,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ImportedFilter",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 383,
+ "end_line": 402,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "VariableKind",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 404,
+ "end_line": 410,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "MappingStatus",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 412,
+ "end_line": 419,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "TemplateVariable",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 421,
+ "end_line": 437,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "MappingMethod",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 439,
+ "end_line": 445,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "MappingWarningLevel",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 447,
+ "end_line": 452,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ApprovalState",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 454,
+ "end_line": 460,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ExecutionMapping",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 462,
+ "end_line": 483,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationStatus",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 485,
+ "end_line": 492,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationSession",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 494,
+ "end_line": 511,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "QuestionState",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 513,
+ "end_line": 520,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationQuestion",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 522,
+ "end_line": 540,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationOption",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 542,
+ "end_line": 554,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AnswerKind",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 556,
+ "end_line": 562,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationAnswer",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 564,
+ "end_line": 578,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "PreviewStatus",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 580,
+ "end_line": 586,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "CompiledPreview",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 588,
+ "end_line": 604,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "LaunchStatus",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 606,
+ "end_line": 611,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DatasetRunContext",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 613,
+ "end_line": 633,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionEvent",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 635,
+ "end_line": 651,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ArtifactType",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 653,
+ "end_line": 658,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ArtifactFormat",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 660,
+ "end_line": 666,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ExportArtifact",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 668,
+ "end_line": 681,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 683 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
{
"name": "MappingModels",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 102,
+ "end_line": 105,
"tags": {
"TIER": "STANDARD",
"COMPLEXITY": "3",
@@ -58547,8 +131896,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 30,
+ "start_line": 24,
+ "end_line": 31,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Enumeration of possible Superset resource types for ID mapping."
@@ -58566,8 +131915,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 33,
- "end_line": 42,
+ "start_line": 34,
+ "end_line": 43,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Enumeration of possible migration job statuses."
@@ -58585,29 +131934,23 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 44,
- "end_line": 54,
+ "start_line": 45,
+ "end_line": 56,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Represents a Superset instance environment."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "MappingModels"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 44
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 44
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -58615,8 +131958,8 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 56,
- "end_line": 70,
+ "start_line": 58,
+ "end_line": 72,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Represents a mapping between source and target databases."
@@ -58629,12 +131972,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 56
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 56
+ "line_number": 58
}
],
"score": 0.5499999999999999
@@ -58645,8 +131988,8 @@
"type": "Class",
"complexity": 2,
"tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 84,
+ "start_line": 74,
+ "end_line": 86,
"tags": {
"COMPLEXITY": "2",
"PURPOSE": "Represents a single migration execution job."
@@ -58664,30 +132007,24 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 86,
- "end_line": 100,
+ "start_line": 88,
+ "end_line": 103,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Maps a universal UUID for a resource to its actual ID on a specific environment.",
"TEST_DATA": "resource_mapping_record -> {'environment_id': 'prod-env-1', 'resource_type': 'chart', 'uuid': '123e4567-e89b-12d3-a456-426614174000', 'remote_integer_id': '42'}"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "MappingModels"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 86
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 86
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -58698,14 +132035,14 @@
}
},
{
- "name": "backend.src.models.report",
+ "name": "ReportModels",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 1,
- "end_line": 235,
+ "end_line": 250,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"SEMANTICS": "reports, models, pydantic, normalization, pagination",
"PURPOSE": "Canonical report schemas for unified task reporting across heterogeneous task types.",
"LAYER": "Domain",
@@ -58718,91 +132055,45 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.task_manager.models"
+ "target": "TaskModels"
}
],
"children": [
{
"name": "TaskType",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 22,
- "end_line": 34,
+ "end_line": 37,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"INVARIANT": "Must contain valid generic task type mappings.",
"SEMANTICS": "enum, type, task",
"PURPOSE": "Supported normalized task report types."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ReportModels"
+ }
+ ],
"children": [],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 22
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.85
}
},
{
"name": "ReportStatus",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 37,
- "end_line": 47,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 40,
+ "end_line": 52,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"INVARIANT": "TaskStatus enum mapping logic holds.",
"SEMANTICS": "enum, status, task",
"PURPOSE": "Supported normalized report status values."
@@ -58810,71 +132101,31 @@
"relations": [],
"children": [],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 40
},
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 37
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 40
}
],
- "score": 0.0
+ "score": 0.5499999999999999
}
},
{
"name": "ErrorContext",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 50,
- "end_line": 72,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 55,
+ "end_line": 79,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"INVARIANT": "The properties accurately describe error state.",
"SEMANTICS": "error, context, payload",
"PURPOSE": "Error and recovery context for failed/partial reports.",
@@ -58885,71 +132136,31 @@
"relations": [],
"children": [],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 55
},
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 50
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 55
}
],
- "score": 0.0
+ "score": 0.5499999999999999
}
},
{
"name": "TaskReport",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 75,
- "end_line": 129,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 82,
+ "end_line": 138,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"INVARIANT": "Must represent canonical task record attributes.",
"SEMANTICS": "report, model, summary",
"PURPOSE": "Canonical normalized report envelope for one task execution.",
@@ -58961,71 +132172,31 @@
"relations": [],
"children": [],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 82
},
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 75
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 82
}
],
- "score": 0.0
+ "score": 0.5499999999999999
}
},
{
"name": "ReportQuery",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 132,
- "end_line": 187,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 141,
+ "end_line": 198,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"INVARIANT": "Time and pagination queries are mutually consistent.",
"SEMANTICS": "query, filter, search",
"PURPOSE": "Query object for server-side report filtering, sorting, and pagination.",
@@ -59037,71 +132208,31 @@
"relations": [],
"children": [],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 141
},
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 132
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 141
}
],
- "score": 0.0
+ "score": 0.5499999999999999
}
},
{
"name": "ReportCollection",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 190,
- "end_line": 212,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 201,
+ "end_line": 225,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"INVARIANT": "Represents paginated data correctly.",
"SEMANTICS": "collection, pagination",
"PURPOSE": "Paginated collection of normalized task reports.",
@@ -59112,71 +132243,31 @@
"relations": [],
"children": [],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 201
},
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 190
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 201
}
],
- "score": 0.0
+ "score": 0.5499999999999999
}
},
{
"name": "ReportDetailView",
"type": "Class",
- "complexity": 5,
- "tier": "CRITICAL",
- "start_line": 215,
- "end_line": 233,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 228,
+ "end_line": 248,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"INVARIANT": "Incorporates a report and logs correctly.",
"SEMANTICS": "view, detail, logs",
"PURPOSE": "Detailed report representation including diagnostics and recovery actions.",
@@ -59187,60 +132278,20 @@
"relations": [],
"children": [],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 228
},
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 215
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 228
}
],
- "score": 0.0
+ "score": 0.5499999999999999
}
},
{
@@ -59248,8 +132299,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 125,
- "end_line": 125,
+ "start_line": 132,
+ "end_line": 132,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -59267,8 +132318,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 169,
- "end_line": 169,
+ "start_line": 178,
+ "end_line": 178,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -59286,8 +132337,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 177,
- "end_line": 177,
+ "start_line": 186,
+ "end_line": 186,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -59305,8 +132356,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 183,
- "end_line": 183,
+ "start_line": 192,
+ "end_line": 192,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -59323,16 +132374,238 @@
"compliance": {
"valid": true,
"issues": [],
- "score": 0.9666666666666667
+ "score": 0.925
}
},
{
- "name": "backend.src.models.assistant",
+ "name": "FilterStateModels",
+ "type": "Module",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 151,
+ "tags": {
+ "COMPLEXITY": "2",
+ "SEMANTICS": "superset, native, filters, pydantic, models, dataclasses",
+ "PURPOSE": "Pydantic models for Superset native filter state extraction and restoration.",
+ "LAYER": "Models"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "pydantic"
+ }
+ ],
+ "children": [
+ {
+ "name": "FilterState",
+ "type": "Model",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 27,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Represents the state of a single native filter.",
+ "DATA_CONTRACT": "Input[extraFormData: Dict, filterState: Dict, ownState: Optional[Dict]] -> Model[FilterState]"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "NativeFilterDataMask",
+ "type": "Model",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 51,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Represents the dataMask containing all native filter states.",
+ "DATA_CONTRACT": "Input[Dict[filter_id, FilterState]] -> Model[NativeFilterDataMask]"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ParsedNativeFilters",
+ "type": "Model",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 79,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Result of parsing native filters from permalink or native_filters_key.",
+ "DATA_CONTRACT": "Input[dataMask: Dict, metadata: Dict] -> Model[ParsedNativeFilters]"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DashboardURLFilterExtraction",
+ "type": "Model",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 97,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Result of parsing a complete dashboard URL for filter information.",
+ "DATA_CONTRACT": "Input[url: str, dashboard_id: Optional, filter_type: Optional, filters: Dict] -> Model[DashboardURLFilterExtraction]"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ExtraFormDataMerge",
+ "type": "Model",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 148,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Configuration for merging extraFormData from different sources.",
+ "DATA_CONTRACT": "Input[append_keys: List[str], override_keys: List[str]] -> Model[ExtraFormDataMerge]"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_filter_ids",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_extra_form_data",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 45,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "has_filters",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 72,
+ "end_line": 72,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_filter_count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 76,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "merge",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "AssistantModels",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 74,
+ "end_line": 83,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "assistant, audit, confirmation, chat",
@@ -59343,7 +132616,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.mapping"
+ "target": "MappingModels"
}
],
"children": [
@@ -59353,30 +132626,24 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 16,
- "end_line": 32,
+ "end_line": 35,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Store audit decisions and outcomes produced by assistant command handling.",
"PRE": "user_id must identify the actor for every record.",
"POST": "Audit payload remains available for compliance and debugging."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "MappingModels"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 16
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 16
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -59384,31 +132651,25 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 35,
- "end_line": 53,
+ "start_line": 38,
+ "end_line": 59,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Persist chat history entries for assistant conversations.",
"PRE": "user_id, conversation_id, role and text must be present.",
"POST": "Message row can be queried in chronological order."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "MappingModels"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 35
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 35
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -59416,31 +132677,25 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 56,
- "end_line": 73,
+ "start_line": 62,
+ "end_line": 82,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Persist risky operation confirmation tokens with lifecycle state.",
"PRE": "intent/dispatch and expiry timestamp must be provided.",
"POST": "State transitions can be tracked and audited."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "MappingModels"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 56
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 56
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -59451,7 +132706,7 @@
}
},
{
- "name": "backend.src.models.storage",
+ "name": "StorageModels",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
@@ -59530,7 +132785,7 @@
}
},
{
- "name": "backend.src.models.dashboard",
+ "name": "DashboardModels",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
@@ -59545,7 +132800,7 @@
"relations": [
{
"type": "USED_BY",
- "target": "backend.src.api.routes.migration"
+ "target": "MigrationApi"
}
],
"children": [
@@ -59601,14 +132856,14 @@
}
},
{
- "name": "backend.src.models.clean_release",
+ "name": "CleanReleaseModels",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 1,
- "end_line": 440,
+ "end_line": 699,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "3",
"SEMANTICS": "clean-release, models, lifecycle, compliance, evidence, immutability",
"PURPOSE": "Define canonical clean release domain entities and lifecycle guards.",
"LAYER": "Domain",
@@ -59618,15 +132873,38 @@
"DATA_CONTRACT": "Model[ReleaseCandidate, CandidateArtifact, DistributionManifest, ComplianceRun, ComplianceReport]",
"INVARIANT": "Immutable snapshots are never mutated; forbidden lifecycle transitions are rejected."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "MappingModels"
+ }
+ ],
"children": [
+ {
+ "name": "ExecutionMode",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 28,
+ "end_line": 34,
+ "tags": {
+ "PURPOSE": "Backward-compatible execution mode enum for legacy TUI/orchestrator tests."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "CheckFinalStatus",
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 31,
+ "start_line": 36,
+ "end_line": 43,
"tags": {
"PURPOSE": "Backward-compatible final status enum for legacy TUI/orchestrator tests."
},
@@ -59643,8 +132921,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 33,
- "end_line": 40,
+ "start_line": 45,
+ "end_line": 52,
"tags": {
"PURPOSE": "Backward-compatible stage name enum for legacy TUI/orchestrator tests."
},
@@ -59661,8 +132939,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 49,
+ "start_line": 54,
+ "end_line": 61,
"tags": {
"PURPOSE": "Backward-compatible stage status enum for legacy TUI/orchestrator tests."
},
@@ -59679,8 +132957,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 58,
+ "start_line": 63,
+ "end_line": 70,
"tags": {
"PURPOSE": "Backward-compatible stage result container for legacy TUI/orchestrator tests."
},
@@ -59697,8 +132975,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 60,
- "end_line": 64,
+ "start_line": 72,
+ "end_line": 76,
"tags": {
"PURPOSE": "Backward-compatible profile enum for legacy TUI bootstrap logic."
},
@@ -59715,8 +132993,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 66,
- "end_line": 71,
+ "start_line": 78,
+ "end_line": 83,
"tags": {
"PURPOSE": "Backward-compatible registry status enum for legacy TUI bootstrap logic."
},
@@ -59733,8 +133011,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 87,
+ "start_line": 85,
+ "end_line": 100,
"tags": {
"PURPOSE": "Backward-compatible release candidate status enum for legacy TUI."
},
@@ -59751,8 +133029,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 98,
+ "start_line": 102,
+ "end_line": 111,
"tags": {
"PURPOSE": "Backward-compatible source entry model for legacy TUI bootstrap logic."
},
@@ -59769,8 +133047,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 114,
+ "start_line": 113,
+ "end_line": 142,
"tags": {
"PURPOSE": "Backward-compatible source registry model for legacy TUI bootstrap logic."
},
@@ -59787,8 +133065,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 116,
- "end_line": 136,
+ "start_line": 144,
+ "end_line": 183,
"tags": {
"PURPOSE": "Backward-compatible policy model for legacy TUI bootstrap logic."
},
@@ -59805,8 +133083,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 138,
- "end_line": 149,
+ "start_line": 185,
+ "end_line": 230,
"tags": {
"PURPOSE": "Backward-compatible run model for legacy TUI typing/import compatibility."
},
@@ -59823,8 +133101,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 151,
- "end_line": 197,
+ "start_line": 232,
+ "end_line": 294,
"tags": {
"PURPOSE": "Represents the release unit being prepared and governed.",
"PRE": "id, version, source_snapshot_ref are non-empty.",
@@ -59843,8 +133121,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 199,
- "end_line": 214,
+ "start_line": 296,
+ "end_line": 311,
"tags": {
"PURPOSE": "Represents one artifact associated with a release candidate."
},
@@ -59861,8 +133139,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 216,
- "end_line": 224,
+ "start_line": 313,
+ "end_line": 321,
"tags": {},
"relations": [],
"children": [],
@@ -59877,8 +133155,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 226,
- "end_line": 232,
+ "start_line": 323,
+ "end_line": 329,
"tags": {},
"relations": [],
"children": [],
@@ -59893,8 +133171,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 234,
- "end_line": 295,
+ "start_line": 331,
+ "end_line": 417,
"tags": {
"PURPOSE": "Immutable snapshot of the candidate payload.",
"INVARIANT": "Immutable after creation."
@@ -59912,8 +133190,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 297,
- "end_line": 310,
+ "start_line": 419,
+ "end_line": 432,
"tags": {
"PURPOSE": "Immutable registry snapshot for allowed sources."
},
@@ -59930,8 +133208,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 312,
- "end_line": 324,
+ "start_line": 434,
+ "end_line": 446,
"tags": {
"PURPOSE": "Immutable policy snapshot used to evaluate a run."
},
@@ -59948,8 +133226,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 326,
- "end_line": 349,
+ "start_line": 448,
+ "end_line": 471,
"tags": {
"PURPOSE": "Operational record for one compliance execution."
},
@@ -59966,8 +133244,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 351,
- "end_line": 364,
+ "start_line": 473,
+ "end_line": 486,
"tags": {
"PURPOSE": "Stage-level execution record inside a run."
},
@@ -59979,13 +133257,49 @@
"score": 1.0
}
},
+ {
+ "name": "ViolationSeverity",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 488,
+ "end_line": 494,
+ "tags": {
+ "PURPOSE": "Backward-compatible violation severity enum for legacy clean-release tests."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ViolationCategory",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 496,
+ "end_line": 504,
+ "tags": {
+ "PURPOSE": "Backward-compatible violation category enum for legacy clean-release tests."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "ComplianceViolation",
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 366,
- "end_line": 380,
+ "start_line": 506,
+ "end_line": 580,
"tags": {
"PURPOSE": "Violation produced by a stage."
},
@@ -60002,8 +133316,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 382,
- "end_line": 395,
+ "start_line": 582,
+ "end_line": 654,
"tags": {
"PURPOSE": "Immutable result derived from a completed run.",
"INVARIANT": "Immutable after creation."
@@ -60021,8 +133335,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 397,
- "end_line": 409,
+ "start_line": 656,
+ "end_line": 668,
"tags": {
"PURPOSE": "Approval or rejection bound to a candidate and report."
},
@@ -60039,8 +133353,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 411,
- "end_line": 424,
+ "start_line": 670,
+ "end_line": 683,
"tags": {
"PURPOSE": "Publication or revocation record."
},
@@ -60057,8 +133371,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 426,
- "end_line": 438,
+ "start_line": 685,
+ "end_line": 697,
"tags": {
"PURPOSE": "Represents a persistent audit log entry for clean release actions."
},
@@ -60071,12 +133385,12 @@
}
},
{
- "name": "id",
+ "name": "populate_legacy_allowlists",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 112,
- "end_line": 112,
+ "start_line": 129,
+ "end_line": 129,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -60094,8 +133408,46 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 130,
- "end_line": 130,
+ "start_line": 140,
+ "end_line": 140,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "validate_enterprise_policy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 177,
+ "end_line": 177,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -60113,8 +133465,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 134,
- "end_line": 134,
+ "start_line": 181,
+ "end_line": 181,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -60128,12 +133480,12 @@
}
},
{
- "name": "candidate_id",
+ "name": "validate_final_status_alignment",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 168,
- "end_line": 168,
+ "start_line": 200,
+ "end_line": 200,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -60147,12 +133499,50 @@
}
},
{
- "name": "transition_to",
+ "name": "id",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 171,
- "end_line": 171,
+ "start_line": 216,
+ "end_line": 216,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "run_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 220,
+ "end_line": 220,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "status",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 224,
+ "end_line": 224,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -60170,8 +133560,122 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 252,
- "end_line": 252,
+ "start_line": 248,
+ "end_line": 248,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "candidate_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 265,
+ "end_line": 265,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "transition_to",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 268,
+ "end_line": 268,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 349,
+ "end_line": 349,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "manifest_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 402,
+ "end_line": 402,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "deterministic_hash",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 406,
+ "end_line": 406,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "summary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 410,
+ "end_line": 410,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -60189,8 +133693,312 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 347,
- "end_line": 347,
+ "start_line": 469,
+ "end_line": 469,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 521,
+ "end_line": 521,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "violation_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 550,
+ "end_line": 550,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "violation_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 554,
+ "end_line": 554,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "check_run_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 558,
+ "end_line": 558,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "category",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 562,
+ "end_line": 562,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "category",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 566,
+ "end_line": 566,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "location",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 570,
+ "end_line": 570,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "remediation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 574,
+ "end_line": 574,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "blocked_release",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 578,
+ "end_line": 578,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 596,
+ "end_line": 596,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "report_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 632,
+ "end_line": 632,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "check_run_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 636,
+ "end_line": 636,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "operator_summary",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 640,
+ "end_line": 640,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "structured_payload_ref",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 644,
+ "end_line": 644,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "violations_count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 648,
+ "end_line": 648,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "blocking_violations_count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 652,
+ "end_line": 652,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -60205,20 +134013,15 @@
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 440 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 699 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.31666666666666665
+ "score": 0.775
}
},
{
@@ -60227,7 +134030,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 108,
+ "end_line": 134,
"tags": {
"TIER": "STANDARD",
"COMPLEXITY": "3",
@@ -60248,13 +134051,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 25,
+ "start_line": 21,
+ "end_line": 29,
"tags": {
"PURPOSE": "Generates a unique UUID string.",
"POST": "Returns a string representation of a new UUID."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "uuid"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -60267,12 +134075,25 @@
"type": "Table",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 27,
- "end_line": 35,
+ "start_line": 31,
+ "end_line": 42,
"tags": {
"PURPOSE": "Association table for many-to-many relationship between Users and Roles."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Base"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "User"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Role"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -60285,12 +134106,25 @@
"type": "Table",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 37,
- "end_line": 45,
+ "start_line": 44,
+ "end_line": 55,
"tags": {
"PURPOSE": "Association table for many-to-many relationship between Roles and Permissions."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "Base"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Role"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "Permission"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -60303,15 +134137,15 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 47,
- "end_line": 65,
+ "start_line": 58,
+ "end_line": 78,
"tags": {
"PURPOSE": "Represents an identity that can authenticate to the system."
},
"relations": [
{
"type": "HAS_MANY",
- "target": "Role (via user_roles)"
+ "target": "Role"
}
],
"children": [],
@@ -60321,72 +134155,72 @@
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Invalid @RELATION predicate: HAS_MANY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Invalid @RELATION predicate: HAS_MANY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 47
+ "line_number": 58
}
],
"score": 0.0
@@ -60397,19 +134231,19 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 67,
- "end_line": 80,
+ "start_line": 81,
+ "end_line": 98,
"tags": {
"PURPOSE": "Represents a collection of permissions."
},
"relations": [
{
"type": "HAS_MANY",
- "target": "User (via user_roles)"
+ "target": "User"
},
{
"type": "HAS_MANY",
- "target": "Permission (via role_permissions)"
+ "target": "Permission"
}
],
"children": [],
@@ -60419,82 +134253,82 @@
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Invalid @RELATION predicate: HAS_MANY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Invalid @RELATION predicate: HAS_MANY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Invalid @RELATION predicate: HAS_MANY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Invalid @RELATION predicate: HAS_MANY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 81
}
],
"score": 0.0
@@ -60505,15 +134339,15 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 82,
- "end_line": 93,
+ "start_line": 101,
+ "end_line": 116,
"tags": {
"PURPOSE": "Represents a specific capability within the system."
},
"relations": [
{
"type": "HAS_MANY",
- "target": "Role (via role_permissions)"
+ "target": "Role"
}
],
"children": [],
@@ -60523,72 +134357,72 @@
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Invalid @RELATION predicate: HAS_MANY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Invalid @RELATION predicate: HAS_MANY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 82
+ "line_number": 101
}
],
"score": 0.0
@@ -60599,8 +134433,8 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 95,
- "end_line": 106,
+ "start_line": 119,
+ "end_line": 132,
"tags": {
"PURPOSE": "Maps an Active Directory group to a local System Role."
},
@@ -60617,62 +134451,62 @@
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 95
+ "line_number": 119
}
],
"score": 0.0
@@ -60697,7 +134531,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 61,
+ "end_line": 62,
"tags": {
"TIER": "STANDARD",
"COMPLEXITY": "3",
@@ -60713,7 +134547,7 @@
},
{
"type": "INHERITS_FROM",
- "target": "Base"
+ "target": "MappingModels:Base"
}
],
"children": [
@@ -60723,28 +134557,22 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 23,
- "end_line": 59,
+ "end_line": 60,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Stores Superset username binding and default \"my dashboards\" toggle for one authenticated user."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "MappingModels:Base"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 23
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
}
],
@@ -60761,7 +134589,7 @@
}
},
{
- "name": "src.models",
+ "name": "ModelsPackage",
"type": "Package",
"complexity": 1,
"tier": "TRIVIAL",
@@ -60784,7 +134612,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 36,
+ "end_line": 37,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Unit tests for data models",
@@ -60803,13 +134631,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 17,
- "end_line": 33,
+ "end_line": 34,
"tags": {
"PURPOSE": "Tests that Environment model correctly stores values.",
"PRE": "Environment class is available.",
"POST": "Values are verified."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_models"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -60844,8 +134677,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.models.report"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -61353,7 +135186,7 @@
"line_number": 1
},
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -61361,13 +135194,204 @@
"score": 0.5499999999999999
}
},
+ {
+ "name": "test_release_candidate_valid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Verify that a valid release candidate can be instantiated."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_clean_release"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_release_candidate_empty_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Verify that a release candidate with an empty ID is rejected.",
+ "TEST_FIXTURE": "valid_enterprise_policy"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_clean_release"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_enterprise_policy_valid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Verify that a valid enterprise policy is accepted.",
+ "TEST_EDGE": "enterprise_policy_missing_prohibited"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_clean_release"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_enterprise_policy_missing_prohibited",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 84,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Verify that an enterprise policy without prohibited categories is rejected.",
+ "TEST_EDGE": "enterprise_policy_external_allowed"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_clean_release"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_enterprise_policy_external_allowed",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 95,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Verify that an enterprise policy allowing external sources is rejected.",
+ "TEST_INVARIANT": "manifest_consistency",
+ "TEST_EDGE": "manifest_count_mismatch"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_clean_release"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_manifest_count_mismatch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 132,
+ "tags": {
+ "PURPOSE": "Verify that a manifest with count mismatches is rejected.",
+ "TEST_INVARIANT": "run_integrity",
+ "TEST_EDGE": "compliant_run_stage_fail"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_clean_release"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_compliant_run_validation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 166,
+ "tags": {
+ "PURPOSE": "Verify compliant run validation logic and mandatory stage checks."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_clean_release"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_report_validation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 188,
+ "tags": {
+ "PURPOSE": "Verify compliance report validation based on status and violation counts."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_clean_release"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "test_clean_release",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 149,
+ "end_line": 188,
"tags": {
"PURPOSE": "Auto-generated module for backend/src/models/__tests__/test_clean_release.py",
"COMPLEXITY": "1",
@@ -61394,165 +135418,13 @@
"score": 1.0
}
},
- {
- "name": "test_release_candidate_valid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 39,
- "end_line": 39,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_release_candidate_empty_id",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 44,
- "end_line": 44,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
{
"name": "valid_policy_data",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 51,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_enterprise_policy_valid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 64,
- "end_line": 64,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_enterprise_policy_missing_prohibited",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 69,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_enterprise_policy_external_allowed",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 75,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_manifest_count_mismatch",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 82,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_compliant_run_validation",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 104,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_report_validation",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 133,
- "end_line": 133,
+ "start_line": 61,
+ "end_line": 61,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -61573,12 +135445,12 @@
}
},
{
- "name": "backend.src.services.profile_service",
+ "name": "profile_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 754,
+ "end_line": 861,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "profile, service, validation, ownership, filtering, superset, preferences",
@@ -61620,91 +135492,73 @@
{
"name": "ProfileValidationError",
"type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 53,
- "end_line": 60,
+ "end_line": 63,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Domain validation error for profile preference update requests."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "Exception"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 53
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 53
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "EnvironmentNotFoundError",
"type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 63,
- "end_line": 68,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 66,
+ "end_line": 74,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Raised when environment_id from lookup request is unknown in app configuration."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "Exception"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 63
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 63
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "ProfileAuthorizationError",
"type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 71,
- "end_line": 76,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 85,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Raised when caller attempts cross-user preference mutation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "Exception"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 71
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 71
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -61712,27 +135566,61 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 79,
- "end_line": 752,
+ "start_line": 88,
+ "end_line": 859,
"tags": {
"COMPLEXITY": "5",
- "PURPOSE": "Implements profile preference read/update flow and Superset account lookup degradation strategy."
+ "PURPOSE": "Implements profile preference read/update flow and Superset account lookup degradation strategy.",
+ "PRE": "Caller provides authenticated User context for external service methods.",
+ "POST": "Preference operations remain user-scoped and return normalized profile/lookup responses.",
+ "SIDE_EFFECT": "Writes preference records and encrypted tokens; performs external account lookups when requested.",
+ "DATA_CONTRACT": "Input[User,ProfilePreferenceUpdateRequest|SupersetAccountLookupRequest] -> Output[ProfilePreferenceResponse|SupersetAccountLookupResponse|bool]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "sqlalchemy.orm.Session"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.core.auth.repository.AuthRepository"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.core.superset_client.SupersetClient"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.core.superset_profile_lookup.SupersetAccountLookupAdapter"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.models.profile.UserDashboardPreference"
+ },
+ {
+ "type": "CALLS",
+ "target": "backend.src.services.rbac_permission_catalog.discover_declared_permissions"
+ }
+ ],
"children": [
{
- "name": "__init__",
+ "name": "init",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 83,
- "end_line": 93,
+ "start_line": 102,
+ "end_line": 114,
"tags": {
"PURPOSE": "Initialize service with DB session and config manager.",
"PRE": "db session is active and config_manager supports get_environments().",
"POST": "Service is ready for preference persistence and lookup operations."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61745,14 +135633,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 95,
- "end_line": 118,
+ "start_line": 116,
+ "end_line": 145,
"tags": {
"PURPOSE": "Return current user's persisted preference or default non-configured view.",
"PRE": "current_user is authenticated.",
"POST": "Returned payload belongs to current_user only."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61765,14 +135658,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 120,
- "end_line": 145,
+ "start_line": 147,
+ "end_line": 180,
"tags": {
"PURPOSE": "Return only dashboard-filter fields required by dashboards listing hot path.",
"PRE": "current_user is authenticated.",
"POST": "Returns normalized username and profile-default filter toggles without security summary expansion."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61785,14 +135683,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 147,
- "end_line": 278,
+ "start_line": 182,
+ "end_line": 329,
"tags": {
"PURPOSE": "Validate and persist current user's profile preference in self-scoped mode.",
"PRE": "current_user is authenticated and payload is provided.",
"POST": "Preference row for current_user is created/updated when validation passes."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61805,14 +135708,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 280,
- "end_line": 354,
+ "start_line": 331,
+ "end_line": 411,
"tags": {
"PURPOSE": "Query Superset users in selected environment and project canonical account candidates.",
"PRE": "current_user is authenticated and environment_id exists.",
"POST": "Returns success payload or degraded payload with warning while preserving manual fallback."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61825,14 +135733,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 356,
- "end_line": 378,
+ "start_line": 413,
+ "end_line": 437,
"tags": {
"PURPOSE": "Apply trim+case-insensitive actor match across owners OR modified_by.",
"PRE": "bound_username can be empty; owners may contain mixed payload.",
"POST": "Returns True when normalized username matches owners or modified_by."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61845,14 +135758,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 380,
- "end_line": 438,
+ "start_line": 439,
+ "end_line": 501,
"tags": {
"PURPOSE": "Build read-only security snapshot with role and permission badges.",
"PRE": "current_user is authenticated.",
"POST": "Returns deterministic security projection for profile UI."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61865,14 +135783,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 440,
- "end_line": 455,
+ "start_line": 503,
+ "end_line": 522,
"tags": {
"PURPOSE": "Collect effective permission tuples from current user's roles.",
"PRE": "current_user can include role/permission graph.",
"POST": "Returns unique normalized (resource, ACTION) tuples."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61885,14 +135808,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 457,
- "end_line": 467,
+ "start_line": 524,
+ "end_line": 536,
"tags": {
"PURPOSE": "Convert normalized permission pair to compact UI key.",
"PRE": "resource and action are normalized.",
"POST": "Returns user-facing badge key."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61905,14 +135833,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 469,
- "end_line": 523,
+ "start_line": 538,
+ "end_line": 596,
"tags": {
"PURPOSE": "Map ORM preference row to API DTO with token metadata.",
"PRE": "preference row can contain nullable optional fields.",
"POST": "Returns normalized ProfilePreference object."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61925,14 +135858,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 525,
- "end_line": 536,
+ "start_line": 598,
+ "end_line": 611,
"tags": {
"PURPOSE": "Build a safe display value for sensitive secrets.",
"PRE": "secret may be None or plaintext.",
"POST": "Returns masked representation or None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61945,14 +135883,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 538,
- "end_line": 547,
+ "start_line": 613,
+ "end_line": 624,
"tags": {
"PURPOSE": "Normalize optional text into trimmed form or None.",
"PRE": "value may be empty or None.",
"POST": "Returns trimmed value or None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61965,14 +135908,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 549,
- "end_line": 560,
+ "start_line": 626,
+ "end_line": 639,
"tags": {
"PURPOSE": "Normalize secret input into trimmed form or None.",
"PRE": "value may be None or blank.",
"POST": "Returns trimmed secret or None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -61985,14 +135933,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 562,
- "end_line": 573,
+ "start_line": 641,
+ "end_line": 654,
"tags": {
"PURPOSE": "Normalize supported start page aliases to canonical values.",
"PRE": "value may be None or alias.",
"POST": "Returns one of SUPPORTED_START_PAGES."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62005,14 +135958,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 575,
- "end_line": 586,
+ "start_line": 656,
+ "end_line": 669,
"tags": {
"PURPOSE": "Normalize supported density aliases to canonical values.",
"PRE": "value may be None or alias.",
"POST": "Returns one of SUPPORTED_DENSITIES."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62025,14 +135983,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 588,
- "end_line": 598,
+ "start_line": 671,
+ "end_line": 683,
"tags": {
"PURPOSE": "Resolve environment model from configured environments by id.",
"PRE": "environment_id is provided.",
"POST": "Returns environment object when found else None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62045,14 +136008,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 600,
- "end_line": 606,
+ "start_line": 685,
+ "end_line": 693,
"tags": {
"PURPOSE": "Return persisted preference row for user or None.",
"PRE": "user_id is provided.",
"POST": "Returns matching row or None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62065,14 +136033,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 608,
- "end_line": 617,
+ "start_line": 695,
+ "end_line": 706,
"tags": {
"PURPOSE": "Return existing preference row or create new unsaved row.",
"PRE": "user_id is provided.",
"POST": "Returned row always contains user_id."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62085,14 +136058,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 619,
- "end_line": 644,
+ "start_line": 708,
+ "end_line": 735,
"tags": {
"PURPOSE": "Build non-persisted default preference DTO for unconfigured users.",
"PRE": "user_id is provided.",
"POST": "Returns ProfilePreference with disabled toggle and empty username."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62105,14 +136083,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 646,
- "end_line": 696,
+ "start_line": 737,
+ "end_line": 791,
"tags": {
"PURPOSE": "Validate username/toggle constraints for preference mutation.",
"PRE": "payload is provided.",
"POST": "Returns validation errors list; empty list means valid."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62125,14 +136108,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 698,
- "end_line": 704,
+ "start_line": 793,
+ "end_line": 801,
"tags": {
"PURPOSE": "Normalize raw username into trimmed form or None for empty input.",
"PRE": "value can be empty or None.",
"POST": "Returns trimmed username or None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62145,14 +136133,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 706,
- "end_line": 715,
+ "start_line": 803,
+ "end_line": 814,
"tags": {
"PURPOSE": "Apply deterministic trim+lower normalization for actor matching.",
"PRE": "value can be empty or None.",
"POST": "Returns lowercase normalized token or None."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62165,14 +136158,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 717,
- "end_line": 751,
+ "start_line": 816,
+ "end_line": 856,
"tags": {
"PURPOSE": "Normalize owners payload into deduplicated lower-cased tokens.",
"PRE": "owners can be iterable of scalars or dict-like values.",
"POST": "Returns list of unique normalized owner tokens."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "ProfileService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -62184,75 +136182,25 @@
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
- },
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
+ "line_number": 88
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
+ "line_number": 88
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 79
+ "line_number": 88
},
{
"message": "Missing @INVARIANT tag (required for complexity 5)",
"severity": "ERROR",
- "line_number": 79
+ "line_number": 88
}
],
"score": 0.0
@@ -62263,8 +136211,27 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 57,
- "end_line": 57,
+ "start_line": 58,
+ "end_line": 58,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -62302,7 +136269,7 @@
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 754 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 861 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -62311,12 +136278,12 @@
}
},
{
- "name": "backend.src.services.resource_service",
+ "name": "ResourceServiceModule",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": null,
+ "end_line": 498,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "service, resources, dashboards, datasets, tasks, git",
@@ -62327,7 +136294,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.superset_client.SupersetClient"
+ "target": "SupersetClient"
},
{
"type": "DEPENDS_ON",
@@ -62339,30 +136306,39 @@
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.git_service.GitService"
+ "target": "GitService"
}
],
"children": [
{
- "name": "backend.src.services.resource_service.ResourceService",
+ "name": "ResourceService",
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
"start_line": 21,
- "end_line": null,
+ "end_line": 497,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Provides centralized access to resource data with enhanced metadata"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetClient"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "GitService"
+ }
+ ],
"children": [
{
- "name": "backend.src.services.resource_service.ResourceService.__init__",
+ "name": "ResourceService_init",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 35,
+ "start_line": 28,
+ "end_line": 37,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Initialize the resource service with dependencies",
@@ -62378,12 +136354,12 @@
}
},
{
- "name": "backend.src.services.resource_service.ResourceService.get_dashboards_with_status",
+ "name": "get_dashboards_with_status",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 37,
- "end_line": null,
+ "start_line": 39,
+ "end_line": 87,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Fetch dashboards from environment with Git status and last task status",
@@ -62395,523 +136371,460 @@
"relations": [
{
"type": "CALLS",
- "target": "backend.src.core.superset_client.SupersetClient.get_dashboards_summary"
+ "target": "SupersetClient.get_dashboards_summary"
},
{
"type": "CALLS",
- "target": "backend.src.services.resource_service.ResourceService._get_git_status_for_dashboard"
+ "target": "_get_git_status_for_dashboard"
},
{
"type": "CALLS",
- "target": "backend.src.services.resource_service.ResourceService._get_last_llm_task_for_dashboard"
- }
- ],
- "children": [
- {
- "name": "get_dashboards_page_with_status",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 87,
- "end_line": 149,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Fetch one dashboard page from environment and enrich only that page with status metadata.",
- "PRE": "env is valid; page >= 1; page_size > 0.",
- "POST": "Returns page items plus total counters without scanning all pages locally.",
- "PARAM": "page_size (int) - Page size.",
- "RETURN": "Dict[str, Any] - {\"dashboards\": List[Dict], \"total\": int, \"total_pages\": int}"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 87
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 87
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 87
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 87
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "_get_last_llm_task_for_dashboard",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 151,
- "end_line": 230,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Get most recent LLM validation task for a dashboard in an environment",
- "PRE": "dashboard_id is a valid integer identifier",
- "POST": "Returns the newest llm_dashboard_validation task summary or None",
- "PARAM": "tasks (Optional[List[Task]]) - List of tasks to search",
- "RETURN": "Optional[Dict] - Task summary with task_id and status"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 151
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 151
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 151
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 151
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "_normalize_task_status",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 232,
- "end_line": 247,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Normalize task status to stable uppercase values for UI/API projections",
- "PRE": "raw_status can be enum or string",
- "POST": "Returns uppercase status without enum class prefix",
- "PARAM": "raw_status (Any) - Raw task status object/value",
- "RETURN": "str - Normalized status token"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 232
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 232
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 232
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 232
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "_normalize_validation_status",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 249,
- "end_line": 263,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Normalize LLM validation status to PASS/FAIL/WARN/UNKNOWN",
- "PRE": "raw_status can be any scalar type",
- "POST": "Returns normalized validation status token or None",
- "PARAM": "raw_status (Any) - Raw validation status from task result",
- "RETURN": "Optional[str] - PASS|FAIL|WARN|UNKNOWN"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 249
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 249
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 249
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 249
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "_normalize_datetime_for_compare",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 265,
- "end_line": 278,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Normalize datetime values to UTC-aware values for safe comparisons.",
- "PRE": "value may be datetime or any scalar.",
- "POST": "Returns UTC-aware datetime; non-datetime values map to minimal UTC datetime.",
- "PARAM": "value (Any) - Candidate datetime-like value.",
- "RETURN": "datetime - UTC-aware comparable datetime."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 265
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 265
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 265
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 265
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "get_datasets_with_status",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 280,
- "end_line": 317,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Fetch datasets from environment with mapping progress and last task status",
- "PRE": "env is a valid Environment object",
- "POST": "Returns list of datasets with enhanced metadata",
- "PARAM": "tasks (List[Task]) - List of tasks to check for status",
- "RETURN": "List[Dict] - Datasets with mapped_fields and last_task fields"
- },
- "relations": [
- {
- "type": "CALLS",
- "target": "SupersetClient:get_datasets_summary"
- },
- {
- "type": "CALLS",
- "target": "self:_get_last_task_for_resource"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 0.85
- }
- },
- {
- "name": "get_activity_summary",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 319,
- "end_line": 357,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Get summary of active and recent tasks for the activity indicator",
- "PRE": "tasks is a list of Task objects",
- "POST": "Returns summary with active_count and recent_tasks",
- "PARAM": "tasks (List[Task]) - List of tasks to summarize",
- "RETURN": "Dict - Activity summary"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 319
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 319
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 319
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 319
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "_get_git_status_for_dashboard",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 359,
- "end_line": 417,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Get Git sync status for a dashboard",
- "PRE": "dashboard_id is a valid integer",
- "POST": "Returns git status or None if no repo exists",
- "PARAM": "dashboard_id (int) - The dashboard ID",
- "RETURN": "Optional[Dict] - Git status with branch and sync_status"
- },
- "relations": [
- {
- "type": "CALLS",
- "target": "GitService:get_repo"
- }
- ],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 0.85
- }
- },
- {
- "name": "_get_last_task_for_resource",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 419,
- "end_line": 455,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Get the most recent task for a specific resource",
- "PRE": "resource_id is a valid string",
- "POST": "Returns task summary or None if no tasks found",
- "PARAM": "tasks (Optional[List[Task]]) - List of tasks to search",
- "RETURN": "Optional[Dict] - Task summary with task_id and status"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 419
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 419
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 419
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 419
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "_extract_resource_name_from_task",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 457,
- "end_line": 467,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Extract resource name from task params",
- "PRE": "task is a valid Task object",
- "POST": "Returns resource name or task ID",
- "PARAM": "task (Task) - The task to extract from",
- "RETURN": "str - Resource name or fallback"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 457
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 457
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 457
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 457
- }
- ],
- "score": 0.25
- }
- },
- {
- "name": "_extract_resource_type_from_task",
- "type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 469,
- "end_line": 479,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Extract resource type from task params",
- "PRE": "task is a valid Task object",
- "POST": "Returns resource type or 'unknown'",
- "PARAM": "task (Task) - The task to extract from",
- "RETURN": "str - Resource type"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 469
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 469
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 469
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 469
- }
- ],
- "score": 0.25
- }
+ "target": "_get_last_llm_task_for_dashboard"
}
],
+ "children": [],
"compliance": {
- "valid": false,
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "get_dashboards_page_with_status",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 89,
+ "end_line": 154,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Fetch one dashboard page from environment and enrich only that page with status metadata.",
+ "PRE": "env is valid; page >= 1; page_size > 0.",
+ "POST": "Returns page items plus total counters without scanning all pages locally.",
+ "PARAM": "page_size (int) - Page size.",
+ "RETURN": "Dict[str, Any] - {\"dashboards\": List[Dict], \"total\": int, \"total_pages\": int}"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_dashboards_summary_page"
+ },
+ {
+ "type": "CALLS",
+ "target": "_get_git_status_for_dashboard"
+ },
+ {
+ "type": "CALLS",
+ "target": "_get_last_llm_task_for_dashboard"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "_get_last_llm_task_for_dashboard",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 156,
+ "end_line": 238,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Get most recent LLM validation task for a dashboard in an environment",
+ "PRE": "dashboard_id is a valid integer identifier",
+ "POST": "Returns the newest llm_dashboard_validation task summary or None",
+ "PARAM": "tasks (Optional[List[Task]]) - List of tasks to search",
+ "RETURN": "Optional[Dict] - Task summary with task_id and status"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_normalize_datetime_for_compare"
+ },
+ {
+ "type": "CALLS",
+ "target": "_normalize_validation_status"
+ },
+ {
+ "type": "CALLS",
+ "target": "_normalize_task_status"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "_normalize_task_status",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 240,
+ "end_line": 256,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Normalize task status to stable uppercase values for UI/API projections",
+ "PRE": "raw_status can be enum or string",
+ "POST": "Returns uppercase status without enum class prefix",
+ "PARAM": "raw_status (Any) - Raw task status object/value",
+ "RETURN": "str - Normalized status token"
+ },
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "_get_last_llm_task_for_dashboard"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
"issues": [
{
- "message": "Unclosed Anchor: [DEF:backend.src.services.resource_service.ResourceService.get_dashboards_with_status:Function] started at line 37",
- "severity": "ERROR",
- "line_number": 37
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 240
},
{
- "message": "Unclosed Anchor: [DEF:backend.src.services.resource_service.ResourceService.get_dashboards_with_status:Function] started at line 37",
- "severity": "ERROR",
- "line_number": 37
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 240
},
{
- "message": "Unclosed Anchor: [DEF:backend.src.services.resource_service.ResourceService.get_dashboards_with_status:Function] started at line 37",
- "severity": "ERROR",
- "line_number": 37
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 240
+ }
+ ],
+ "score": 0.4
+ }
+ },
+ {
+ "name": "_normalize_validation_status",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 258,
+ "end_line": 273,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Normalize LLM validation status to PASS/FAIL/WARN/UNKNOWN",
+ "PRE": "raw_status can be any scalar type",
+ "POST": "Returns normalized validation status token or None",
+ "PARAM": "raw_status (Any) - Raw validation status from task result",
+ "RETURN": "Optional[str] - PASS|FAIL|WARN|UNKNOWN"
+ },
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "_get_last_llm_task_for_dashboard"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 258
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 258
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 258
+ }
+ ],
+ "score": 0.4
+ }
+ },
+ {
+ "name": "_normalize_datetime_for_compare",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 275,
+ "end_line": 290,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Normalize datetime values to UTC-aware values for safe comparisons.",
+ "PRE": "value may be datetime or any scalar.",
+ "POST": "Returns UTC-aware datetime; non-datetime values map to minimal UTC datetime.",
+ "PARAM": "value (Any) - Candidate datetime-like value.",
+ "RETURN": "datetime - UTC-aware comparable datetime."
+ },
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "_get_last_llm_task_for_dashboard"
+ },
+ {
+ "type": "USED_BY",
+ "target": "_get_last_task_for_resource"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 275
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 275
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 275
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 275
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 275
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 275
}
],
"score": 0.0
}
+ },
+ {
+ "name": "get_datasets_with_status",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 292,
+ "end_line": 329,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Fetch datasets from environment with mapping progress and last task status",
+ "PRE": "env is a valid Environment object",
+ "POST": "Returns list of datasets with enhanced metadata",
+ "PARAM": "tasks (List[Task]) - List of tasks to check for status",
+ "RETURN": "List[Dict] - Datasets with mapped_fields and last_task fields"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient.get_datasets_summary"
+ },
+ {
+ "type": "CALLS",
+ "target": "_get_last_task_for_resource"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "get_activity_summary",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 331,
+ "end_line": 371,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Get summary of active and recent tasks for the activity indicator",
+ "PRE": "tasks is a list of Task objects",
+ "POST": "Returns summary with active_count and recent_tasks",
+ "PARAM": "tasks (List[Task]) - List of tasks to summarize",
+ "RETURN": "Dict - Activity summary"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_extract_resource_name_from_task"
+ },
+ {
+ "type": "CALLS",
+ "target": "_extract_resource_type_from_task"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "_get_git_status_for_dashboard",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 373,
+ "end_line": 431,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Get Git sync status for a dashboard",
+ "PRE": "dashboard_id is a valid integer",
+ "POST": "Returns git status or None if no repo exists",
+ "PARAM": "dashboard_id (int) - The dashboard ID",
+ "RETURN": "Optional[Dict] - Git status with branch and sync_status"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "get_repo"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "_get_last_task_for_resource",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 433,
+ "end_line": 470,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Get the most recent task for a specific resource",
+ "PRE": "resource_id is a valid string",
+ "POST": "Returns task summary or None if no tasks found",
+ "PARAM": "tasks (Optional[List[Task]]) - List of tasks to search",
+ "RETURN": "Optional[Dict] - Task summary with task_id and status"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_normalize_datetime_for_compare"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "_extract_resource_name_from_task",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 472,
+ "end_line": 483,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Extract resource name from task params",
+ "PRE": "task is a valid Task object",
+ "POST": "Returns resource name or task ID",
+ "PARAM": "task (Task) - The task to extract from",
+ "RETURN": "str - Resource name or fallback"
+ },
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "get_activity_summary"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 472
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 472
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 472
+ }
+ ],
+ "score": 0.4
+ }
+ },
+ {
+ "name": "_extract_resource_type_from_task",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 485,
+ "end_line": 496,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Extract resource type from task params",
+ "PRE": "task is a valid Task object",
+ "POST": "Returns resource type or 'unknown'",
+ "PARAM": "task (Task) - The task to extract from",
+ "RETURN": "str - Resource type"
+ },
+ "relations": [
+ {
+ "type": "USED_BY",
+ "target": "get_activity_summary"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 485
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 485
+ },
+ {
+ "message": "Invalid @RELATION predicate: USED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 485
+ }
+ ],
+ "score": 0.4
+ }
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Unclosed Anchor: [DEF:backend.src.services.resource_service.ResourceService:Class] started at line 21",
- "severity": "ERROR",
- "line_number": 21
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 21
- },
- {
- "message": "Unclosed Anchor: [DEF:backend.src.services.resource_service.ResourceService:Class] started at line 21",
- "severity": "ERROR",
- "line_number": 21
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 21
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -62919,27 +136832,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 31,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_dashboards_with_status",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 48,
+ "start_line": 33,
+ "end_line": 33,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -62957,8 +136851,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 190,
- "end_line": 190,
+ "start_line": 198,
+ "end_line": 198,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -62973,26 +136867,26 @@
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Unclosed Anchor: [DEF:backend.src.services.resource_service:Module] started at line 1",
- "severity": "ERROR",
+ "message": "Fractal limit warning: Module length is 498 lines (must be < 300)",
+ "severity": "WARNING",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.775
}
},
{
- "name": "backend.src.services.llm_prompt_templates",
+ "name": "llm_prompt_templates",
"type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
"end_line": 200,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"SEMANTICS": "llm, prompts, templates, settings",
"PURPOSE": "Provide default LLM prompt templates and normalization helpers for runtime usage.",
"LAYER": "Domain",
@@ -63001,19 +136895,19 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.config_manager"
+ "target": "backend.src.core.config_manager:Function"
}
],
"children": [
{
"name": "DEFAULT_LLM_PROMPTS",
"type": "Constant",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 15,
"end_line": 61,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Default prompt templates used by documentation, dashboard validation, and git commit generation."
},
"relations": [],
@@ -63027,12 +136921,12 @@
{
"name": "DEFAULT_LLM_PROVIDER_BINDINGS",
"type": "Constant",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 64,
"end_line": 72,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Default provider binding per task domain."
},
"relations": [],
@@ -63046,12 +136940,12 @@
{
"name": "DEFAULT_LLM_ASSISTANT_SETTINGS",
"type": "Constant",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 75,
"end_line": 82,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Default planner settings for assistant chat intent model/provider resolution."
},
"relations": [],
@@ -63194,7 +137088,7 @@
"compliance": {
"valid": true,
"issues": [],
- "score": 0.925
+ "score": 1.0
}
},
{
@@ -63203,7 +137097,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 313,
+ "end_line": 364,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "health, aggregation, dashboards",
@@ -63230,13 +137124,21 @@
"type": "Class",
"complexity": 4,
"tier": "STANDARD",
- "start_line": 22,
- "end_line": 311,
+ "start_line": 23,
+ "end_line": 362,
"tags": {
"COMPLEXITY": "4",
- "PURPOSE": "Aggregate latest dashboard validation state and manage persisted health report lifecycle."
+ "PURPOSE": "Aggregate latest dashboard validation state and manage persisted health report lifecycle.",
+ "PRE": "Service is constructed with a live SQLAlchemy session and optional config manager.",
+ "POST": "Exposes health summary aggregation and validation report deletion operations.",
+ "SIDE_EFFECT": "Maintains in-memory dashboard metadata caches and may coordinate cleanup through collaborators.",
+ "DATA_CONTRACT": "Input[Session, Optional[Any]] -> Output[HealthSummaryResponse|bool]"
},
"relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "sqlalchemy.orm.Session"
+ },
{
"type": "DEPENDS_ON",
"target": "backend.src.models.llm.ValidationRecord"
@@ -63260,57 +137162,65 @@
],
"children": [
{
- "name": "HealthService.__init__",
+ "name": "HealthService_init",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 37,
- "end_line": 46,
+ "start_line": 46,
+ "end_line": 60,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Initialize health service with DB session and optional config access for dashboard metadata resolution.",
"PRE": "db is a valid SQLAlchemy session.",
- "POST": "Service is ready to aggregate summaries and delete health reports."
+ "POST": "Service is ready to aggregate summaries and delete health reports.",
+ "SIDE_EFFECT": "Initializes per-instance dashboard metadata cache.",
+ "DATA_CONTRACT": "Input[db: Session, config_manager: Optional[Any]] -> Output[HealthService]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "backend.src.services.health_service.HealthService"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "sqlalchemy.orm.Session"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 37
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 37
- }
- ],
- "score": 0.4
+ "issues": [],
+ "score": 0.85
}
},
{
- "name": "HealthService._prime_dashboard_meta_cache",
+ "name": "_prime_dashboard_meta_cache",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 48,
- "end_line": 127,
+ "start_line": 62,
+ "end_line": 151,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Warm dashboard slug/title cache with one Superset list fetch per environment.",
"PRE": "records may contain mixed numeric and slug dashboard identifiers.",
"POST": "Numeric dashboard ids for known environments are cached when discoverable.",
- "SIDE_EFFECT": "May call Superset dashboard list API once per referenced environment."
+ "SIDE_EFFECT": "May call Superset dashboard list API once per referenced environment.",
+ "DATA_CONTRACT": "Input[records: List[ValidationRecord]] -> Output[None]"
},
"relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.models.llm.ValidationRecord"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.core.superset_client.SupersetClient"
+ },
+ {
+ "type": "CALLS",
+ "target": "config_manager.get_environments"
+ },
{
"type": "CALLS",
"target": "backend.src.core.superset_client.SupersetClient.get_dashboards_summary"
@@ -63324,17 +137234,18 @@
}
},
{
- "name": "HealthService._resolve_dashboard_meta",
+ "name": "_resolve_dashboard_meta",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 129,
- "end_line": 154,
+ "start_line": 153,
+ "end_line": 182,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Resolve slug/title for a dashboard referenced by persisted validation record.",
"PRE": "dashboard_id may be numeric or slug-like; environment_id may be empty.",
- "POST": "Returns dict with `slug` and `title` keys, using cache when possible."
+ "POST": "Returns dict with `slug` and `title` keys, using cache when possible.",
+ "SIDE_EFFECT": "Writes default cache entries for unresolved numeric dashboard ids."
},
"relations": [],
"children": [],
@@ -63345,12 +137256,12 @@
}
},
{
- "name": "HealthService.get_health_summary",
+ "name": "get_health_summary",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 156,
- "end_line": 232,
+ "start_line": 184,
+ "end_line": 269,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Aggregate latest validation status per dashboard and enrich rows with dashboard slug/title.",
@@ -63377,12 +137288,12 @@
}
},
{
- "name": "HealthService.delete_validation_report",
+ "name": "delete_validation_report",
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 234,
- "end_line": 309,
+ "start_line": 271,
+ "end_line": 359,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Delete one persisted health report and optionally clean linked task/log artifacts.",
@@ -63392,6 +137303,22 @@
"DATA_CONTRACT": "Input[record_id: str, task_manager: Optional[TaskManager]] -> Output[bool]"
},
"relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.models.llm.ValidationRecord"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.core.task_manager.TaskManager"
+ },
+ {
+ "type": "CALLS",
+ "target": "os.path.exists"
+ },
+ {
+ "type": "CALLS",
+ "target": "os.remove"
+ },
{
"type": "CALLS",
"target": "backend.src.core.task_manager.cleanup.TaskCleanupService.delete_task_with_logs"
@@ -63406,40 +137333,9 @@
}
],
"compliance": {
- "valid": false,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 22
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
- "severity": "ERROR",
- "line_number": 22
- }
- ],
- "score": 0.0
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
}
},
{
@@ -63447,25 +137343,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_prime_dashboard_meta_cache",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 55,
"end_line": 55,
"tags": {
@@ -63479,70 +137356,13 @@
"issues": [],
"score": 1.0
}
- },
- {
- "name": "_resolve_dashboard_meta",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 134,
- "end_line": 134,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_health_summary",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 165,
- "end_line": 165,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "delete_validation_report",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 242,
- "end_line": 242,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
}
],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 313 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 364 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -63551,12 +137371,12 @@
}
},
{
- "name": "backend.src.services.llm_provider",
+ "name": "llm_provider",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 206,
+ "end_line": 216,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "service, llm, provider, encryption",
@@ -63566,11 +137386,11 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.database"
+ "target": "backend.src.core.database:Function"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.llm"
+ "target": "backend.src.models.llm:Function"
}
],
"children": [
@@ -63579,58 +137399,35 @@
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 21,
- "end_line": 34,
+ "start_line": 20,
+ "end_line": 44,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Load and validate the Fernet key used for secret encryption.",
"PRE": "ENCRYPTION_KEY environment variable must be set to a valid Fernet key.",
- "POST": "Returns validated key bytes ready for Fernet initialization."
+ "POST": "Returns validated key bytes ready for Fernet initialization.",
+ "SIDE_EFFECT": "Emits belief-state logs for missing or invalid encryption configuration.",
+ "INVARIANT": "Encryption initialization never falls back to a hardcoded secret."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.core.logger:Function"
+ }
+ ],
"children": [],
"compliance": {
"valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
+ "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 21
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 21
+ "line_number": 20
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 21
- },
- {
- "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 21
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 21
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 21
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 21
- },
- {
- "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 21
+ "line_number": 20
}
],
"score": 0.0
@@ -63641,8 +137438,8 @@
"type": "Class",
"complexity": 5,
"tier": "CRITICAL",
- "start_line": 36,
- "end_line": 79,
+ "start_line": 46,
+ "end_line": 89,
"tags": {
"COMPLEXITY": "5",
"PURPOSE": "Handles encryption and decryption of sensitive data like API keys.",
@@ -63655,12 +137452,12 @@
"relations": [],
"children": [
{
- "name": "EncryptionManager.__init__",
+ "name": "EncryptionManager_init",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 53,
- "end_line": 60,
+ "start_line": 63,
+ "end_line": 70,
"tags": {
"PURPOSE": "Initialize the encryption manager with a Fernet key.",
"PRE": "ENCRYPTION_KEY env var must be set to a valid Fernet key.",
@@ -63675,12 +137472,12 @@
}
},
{
- "name": "EncryptionManager.encrypt",
+ "name": "encrypt",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 69,
+ "start_line": 72,
+ "end_line": 79,
"tags": {
"PURPOSE": "Encrypt a plaintext string.",
"PRE": "data must be a non-empty string.",
@@ -63695,12 +137492,12 @@
}
},
{
- "name": "EncryptionManager.decrypt",
+ "name": "decrypt",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 71,
- "end_line": 78,
+ "start_line": 81,
+ "end_line": 88,
"tags": {
"PURPOSE": "Decrypt an encrypted string.",
"PRE": "encrypted_data must be a valid Fernet-encrypted string.",
@@ -63721,52 +137518,52 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @POST (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
"severity": "ERROR",
- "line_number": 36
+ "line_number": 46
}
],
"score": 0.0
@@ -63777,8 +137574,8 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 81,
- "end_line": 204,
+ "start_line": 91,
+ "end_line": 214,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Service to manage LLM provider lifecycle."
@@ -63786,12 +137583,12 @@
"relations": [],
"children": [
{
- "name": "LLMProviderService.__init__",
+ "name": "LLMProviderService_init",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 85,
- "end_line": 92,
+ "start_line": 95,
+ "end_line": 102,
"tags": {
"PURPOSE": "Initialize the service with database session.",
"PRE": "db must be a valid SQLAlchemy Session.",
@@ -63810,8 +137607,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 94,
- "end_line": 102,
+ "start_line": 104,
+ "end_line": 112,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Returns all configured LLM providers.",
@@ -63826,17 +137623,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 94
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 94
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 94
+ "line_number": 104
}
],
"score": 0.4
@@ -63847,8 +137644,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 104,
- "end_line": 112,
+ "start_line": 114,
+ "end_line": 122,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Returns a single LLM provider by ID.",
@@ -63863,17 +137660,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 104
+ "line_number": 114
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 104
+ "line_number": 114
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 104
+ "line_number": 114
}
],
"score": 0.4
@@ -63884,8 +137681,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 114,
- "end_line": 134,
+ "start_line": 124,
+ "end_line": 144,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Creates a new LLM provider with encrypted API key.",
@@ -63900,17 +137697,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 114
+ "line_number": 124
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 114
+ "line_number": 124
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 114
+ "line_number": 124
}
],
"score": 0.4
@@ -63921,8 +137718,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 136,
- "end_line": 163,
+ "start_line": 146,
+ "end_line": 173,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Updates an existing LLM provider.",
@@ -63937,17 +137734,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 136
+ "line_number": 146
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 136
+ "line_number": 146
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 136
+ "line_number": 146
}
],
"score": 0.4
@@ -63958,8 +137755,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 165,
- "end_line": 178,
+ "start_line": 175,
+ "end_line": 188,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Deletes an LLM provider.",
@@ -63974,17 +137771,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 165
+ "line_number": 175
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 165
+ "line_number": 175
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 165
+ "line_number": 175
}
],
"score": 0.4
@@ -63995,8 +137792,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 180,
- "end_line": 202,
+ "start_line": 190,
+ "end_line": 212,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Returns the decrypted API key for a provider.",
@@ -64011,17 +137808,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 180
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 180
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 180
+ "line_number": 190
}
],
"score": 0.4
@@ -64034,12 +137831,12 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 81
+ "line_number": 91
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 81
+ "line_number": 91
}
],
"score": 0.5499999999999999
@@ -64050,46 +137847,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 57,
- "end_line": 57,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "encrypt",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 66,
- "end_line": 66,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "decrypt",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 75,
+ "start_line": 67,
+ "end_line": 67,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -64107,8 +137866,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 89,
+ "start_line": 99,
+ "end_line": 99,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -64129,14 +137888,14 @@
}
},
{
- "name": "backend.src.services.rbac_permission_catalog",
+ "name": "rbac_permission_catalog",
"type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
"end_line": 190,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"SEMANTICS": "rbac, permissions, catalog, sync, discovery",
"PURPOSE": "Discovers declared RBAC permissions from API routes/plugins and synchronizes them into auth database.",
"LAYER": "Service",
@@ -64339,18 +138098,18 @@
"compliance": {
"valid": true,
"issues": [],
- "score": 0.925
+ "score": 1.0
}
},
{
- "name": "backend.src.services",
+ "name": "services",
"type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
"end_line": 21,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"SEMANTICS": "services, package, init",
"PURPOSE": "Package initialization for services module",
"LAYER": "Core",
@@ -64392,16 +138151,16 @@
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.85
}
},
{
- "name": "backend.src.services.auth_service",
+ "name": "auth_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 131,
+ "end_line": 137,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "auth, service, business-logic, login, jwt, adfs, jit-provisioning",
@@ -64416,23 +138175,23 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.auth.repository.AuthRepository"
+ "target": "AuthRepository"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.auth.security.verify_password"
+ "target": "verify_password"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.auth.jwt.create_access_token"
+ "target": "create_access_token"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.auth.User"
+ "target": "User"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.auth.Role"
+ "target": "Role"
}
],
"children": [
@@ -64442,7 +138201,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 29,
- "end_line": 129,
+ "end_line": 135,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Provides high-level authentication services."
@@ -64450,12 +138209,12 @@
"relations": [],
"children": [
{
- "name": "AuthService.__init__",
+ "name": "AuthService_init",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 33,
- "end_line": 44,
+ "end_line": 45,
"tags": {
"COMPLEXITY": "1",
"PURPOSE": "Initializes the authentication service with repository access over an active DB session.",
@@ -64478,8 +138237,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 46,
- "end_line": 71,
+ "start_line": 47,
+ "end_line": 73,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Validates credentials and account state for local username/password authentication.",
@@ -64498,17 +138257,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 46
+ "line_number": 47
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 46
+ "line_number": 47
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 46
+ "line_number": 47
}
],
"score": 0.4
@@ -64519,8 +138278,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 73,
- "end_line": 89,
+ "start_line": 75,
+ "end_line": 92,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Issues an access token payload for an already authenticated user.",
@@ -64539,17 +138298,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 73
+ "line_number": 75
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 73
+ "line_number": 75
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 73
+ "line_number": 75
}
],
"score": 0.4
@@ -64560,8 +138319,8 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 91,
- "end_line": 128,
+ "start_line": 94,
+ "end_line": 132,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Performs ADFS Just-In-Time provisioning and role synchronization from AD group mappings.",
@@ -64580,17 +138339,17 @@
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 91
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 91
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
"severity": "WARNING",
- "line_number": 91
+ "line_number": 94
}
],
"score": 0.4
@@ -64638,8 +138397,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 56,
- "end_line": 56,
+ "start_line": 57,
+ "end_line": 57,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -64657,8 +138416,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 82,
+ "start_line": 84,
+ "end_line": 84,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -64676,8 +138435,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 100,
+ "start_line": 103,
+ "end_line": 103,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -64698,12 +138457,12 @@
}
},
{
- "name": "backend.src.services.git_service",
+ "name": "git_service",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 2035,
+ "end_line": 2049,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "git, service, gitpython, repository, version_control",
@@ -64735,12 +138494,12 @@
],
"children": [
{
- "name": "backend.src.services.git_service.GitService",
+ "name": "GitService",
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
"start_line": 34,
- "end_line": 2034,
+ "end_line": 2048,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Wrapper for GitPython operations with semantic logging and error handling."
@@ -64748,12 +138507,12 @@
"relations": [],
"children": [
{
- "name": "backend.src.services.git_service.GitService.__init__",
+ "name": "GitService_init",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 42,
- "end_line": 55,
+ "end_line": 56,
"tags": {
"PURPOSE": "Initializes the GitService with a base path for repositories.",
"PARAM": "base_path (str) - Root directory for all Git clones.",
@@ -64778,12 +138537,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._ensure_base_path_exists",
+ "name": "_ensure_base_path_exists",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 57,
- "end_line": 68,
+ "start_line": 58,
+ "end_line": 75,
"tags": {
"PURPOSE": "Ensure the repositories root directory exists and is a directory.",
"PRE": "self.base_path is resolved to filesystem path.",
@@ -64803,29 +138562,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 57
+ "line_number": 58
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 57
+ "line_number": 58
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 57
+ "line_number": 58
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._resolve_base_path",
+ "name": "_resolve_base_path",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 111,
+ "start_line": 77,
+ "end_line": 118,
"tags": {
"PURPOSE": "Resolve base repository directory from explicit argument or global storage settings.",
"PRE": "base_path is a string path.",
@@ -64845,29 +138604,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 70
+ "line_number": 77
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 70
+ "line_number": 77
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 70
+ "line_number": 77
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._normalize_repo_key",
+ "name": "_normalize_repo_key",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 123,
+ "start_line": 120,
+ "end_line": 130,
"tags": {
"PURPOSE": "Convert user/dashboard-provided key to safe filesystem directory name.",
"PRE": "repo_key can be None/empty.",
@@ -64887,29 +138646,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 113
+ "line_number": 120
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 113
+ "line_number": 120
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 113
+ "line_number": 120
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._update_repo_local_path",
+ "name": "_update_repo_local_path",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 125,
- "end_line": 147,
+ "start_line": 132,
+ "end_line": 154,
"tags": {
"PURPOSE": "Persist repository local_path in GitRepository table when record exists.",
"PRE": "dashboard_id is valid integer.",
@@ -64929,29 +138688,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 125
+ "line_number": 132
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 125
+ "line_number": 132
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 125
+ "line_number": 132
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._migrate_repo_directory",
+ "name": "_migrate_repo_directory",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 149,
- "end_line": 178,
+ "start_line": 156,
+ "end_line": 185,
"tags": {
"PURPOSE": "Move legacy repository directory to target path and sync DB metadata.",
"PRE": "source_path exists.",
@@ -64972,12 +138731,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._ensure_gitflow_branches",
+ "name": "_ensure_gitflow_branches",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 180,
- "end_line": 263,
+ "start_line": 187,
+ "end_line": 270,
"tags": {
"PURPOSE": "Ensure standard GitFlow branches (main/dev/preprod) exist locally and on origin.",
"PRE": "repo is a valid GitPython Repo instance.",
@@ -64997,29 +138756,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 180
+ "line_number": 187
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 180
+ "line_number": 187
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 180
+ "line_number": 187
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._get_repo_path",
+ "name": "_get_repo_path",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 265,
- "end_line": 314,
+ "start_line": 272,
+ "end_line": 324,
"tags": {
"PURPOSE": "Resolves the local filesystem path for a dashboard's repository.",
"PARAM": "repo_key (Optional[str]) - Slug-like key used when DB local_path is absent.",
@@ -65049,12 +138808,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.init_repo",
+ "name": "init_repo",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 316,
- "end_line": 360,
+ "start_line": 326,
+ "end_line": 374,
"tags": {
"PURPOSE": "Initialize or clone a repository for a dashboard.",
"PARAM": "repo_key (Optional[str]) - Slug-like key for deterministic folder naming on first init.",
@@ -65080,12 +138839,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.delete_repo",
+ "name": "delete_repo",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 362,
- "end_line": 409,
+ "start_line": 376,
+ "end_line": 423,
"tags": {
"PURPOSE": "Remove local repository and DB binding for a dashboard.",
"PRE": "dashboard_id is a valid integer.",
@@ -65106,12 +138865,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.get_repo",
+ "name": "get_repo",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 411,
- "end_line": 428,
+ "start_line": 425,
+ "end_line": 442,
"tags": {
"PURPOSE": "Get Repo object for a dashboard.",
"PRE": "Repository must exist on disk for the given dashboard_id.",
@@ -65132,12 +138891,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.configure_identity",
+ "name": "configure_identity",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 430,
- "end_line": 460,
+ "start_line": 444,
+ "end_line": 474,
"tags": {
"PURPOSE": "Configure repository-local Git committer identity for user-scoped operations.",
"PRE": "dashboard_id repository exists; git_username/git_email may be empty.",
@@ -65158,12 +138917,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.list_branches",
+ "name": "list_branches",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 462,
- "end_line": 515,
+ "start_line": 476,
+ "end_line": 529,
"tags": {
"PURPOSE": "List all branches for a dashboard's repository.",
"PRE": "Repository for dashboard_id exists.",
@@ -65184,12 +138943,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.create_branch",
+ "name": "create_branch",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 517,
- "end_line": 552,
+ "start_line": 531,
+ "end_line": 566,
"tags": {
"PURPOSE": "Create a new branch from an existing one.",
"PARAM": "from_branch (str) - Source branch.",
@@ -65210,12 +138969,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.checkout_branch",
+ "name": "checkout_branch",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 554,
- "end_line": 564,
+ "start_line": 568,
+ "end_line": 578,
"tags": {
"PURPOSE": "Switch to a specific branch.",
"PRE": "Repository exists and the specified branch name exists.",
@@ -65235,12 +138994,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.commit_changes",
+ "name": "commit_changes",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 566,
- "end_line": 591,
+ "start_line": 580,
+ "end_line": 605,
"tags": {
"PURPOSE": "Stage and commit changes.",
"PARAM": "files (List[str]) - Optional list of specific files to stage.",
@@ -65261,12 +139020,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._extract_http_host",
+ "name": "_extract_http_host",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 593,
- "end_line": 615,
+ "start_line": 607,
+ "end_line": 629,
"tags": {
"PURPOSE": "Extract normalized host[:port] from HTTP(S) URL.",
"PRE": "url_value may be empty.",
@@ -65286,29 +139045,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 593
+ "line_number": 607
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 593
+ "line_number": 607
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 593
+ "line_number": 607
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._strip_url_credentials",
+ "name": "_strip_url_credentials",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 617,
- "end_line": 637,
+ "start_line": 631,
+ "end_line": 651,
"tags": {
"PURPOSE": "Remove credentials from URL while preserving scheme/host/path.",
"PRE": "url_value may contain credentials.",
@@ -65328,29 +139087,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 617
+ "line_number": 631
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 617
+ "line_number": 631
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 617
+ "line_number": 631
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._replace_host_in_url",
+ "name": "_replace_host_in_url",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 639,
- "end_line": 676,
+ "start_line": 653,
+ "end_line": 690,
"tags": {
"PURPOSE": "Replace source URL host with host from configured server URL.",
"PRE": "source_url and config_url are HTTP(S) URLs.",
@@ -65370,29 +139129,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 639
+ "line_number": 653
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 639
+ "line_number": 653
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 639
+ "line_number": 653
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._align_origin_host_with_config",
+ "name": "_align_origin_host_with_config",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 678,
- "end_line": 745,
+ "start_line": 692,
+ "end_line": 759,
"tags": {
"PURPOSE": "Auto-align local origin host to configured Git server host when they drift.",
"PRE": "origin remote exists.",
@@ -65421,12 +139180,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.push_changes",
+ "name": "push_changes",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 747,
- "end_line": 860,
+ "start_line": 761,
+ "end_line": 874,
"tags": {
"PURPOSE": "Push local commits to remote.",
"PRE": "Repository exists and has an 'origin' remote.",
@@ -65450,12 +139209,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._read_blob_text",
+ "name": "_read_blob_text",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 862,
- "end_line": 873,
+ "start_line": 876,
+ "end_line": 887,
"tags": {
"PURPOSE": "Read text from a Git blob."
},
@@ -65472,29 +139231,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 862
+ "line_number": 876
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 862
+ "line_number": 876
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 862
+ "line_number": 876
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._get_unmerged_file_paths",
+ "name": "_get_unmerged_file_paths",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 875,
- "end_line": 884,
+ "start_line": 889,
+ "end_line": 898,
"tags": {
"PURPOSE": "List files with merge conflicts."
},
@@ -65511,29 +139270,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 875
+ "line_number": 889
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 875
+ "line_number": 889
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 875
+ "line_number": 889
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._build_unfinished_merge_payload",
+ "name": "_build_unfinished_merge_payload",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 886,
- "end_line": 938,
+ "start_line": 900,
+ "end_line": 952,
"tags": {
"PURPOSE": "Build payload for unfinished merge state."
},
@@ -65551,12 +139310,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.get_merge_status",
+ "name": "get_merge_status",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 940,
- "end_line": 973,
+ "start_line": 954,
+ "end_line": 987,
"tags": {
"PURPOSE": "Get current merge status for a dashboard repository."
},
@@ -65578,12 +139337,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.get_merge_conflicts",
+ "name": "get_merge_conflicts",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 975,
- "end_line": 1000,
+ "start_line": 989,
+ "end_line": 1014,
"tags": {
"PURPOSE": "List all files with conflicts and their contents."
},
@@ -65605,12 +139364,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.resolve_merge_conflicts",
+ "name": "resolve_merge_conflicts",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1002,
- "end_line": 1038,
+ "start_line": 1016,
+ "end_line": 1052,
"tags": {
"PURPOSE": "Resolve conflicts using specified strategy."
},
@@ -65628,12 +139387,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.abort_merge",
+ "name": "abort_merge",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1040,
- "end_line": 1055,
+ "start_line": 1054,
+ "end_line": 1069,
"tags": {
"PURPOSE": "Abort ongoing merge."
},
@@ -65651,12 +139410,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.continue_merge",
+ "name": "continue_merge",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1057,
- "end_line": 1093,
+ "start_line": 1071,
+ "end_line": 1107,
"tags": {
"PURPOSE": "Finalize merge after conflict resolution."
},
@@ -65678,12 +139437,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.pull_changes",
+ "name": "pull_changes",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1095,
- "end_line": 1178,
+ "start_line": 1109,
+ "end_line": 1192,
"tags": {
"PURPOSE": "Pull changes from remote.",
"PRE": "Repository exists and has an 'origin' remote.",
@@ -65707,12 +139466,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.get_status",
+ "name": "get_status",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1180,
- "end_line": 1255,
+ "start_line": 1194,
+ "end_line": 1269,
"tags": {
"PURPOSE": "Get current repository status (dirty files, untracked, etc.)",
"PRE": "Repository for dashboard_id exists.",
@@ -65733,12 +139492,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.get_diff",
+ "name": "get_diff",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1257,
- "end_line": 1275,
+ "start_line": 1271,
+ "end_line": 1289,
"tags": {
"PURPOSE": "Generate diff for a file or the whole repository.",
"PARAM": "staged (bool) - Whether to show staged changes.",
@@ -65760,12 +139519,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.get_commit_history",
+ "name": "get_commit_history",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1277,
- "end_line": 1306,
+ "start_line": 1291,
+ "end_line": 1320,
"tags": {
"PURPOSE": "Retrieve commit history for a repository.",
"PARAM": "limit (int) - Max number of commits to return.",
@@ -65787,12 +139546,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.test_connection",
+ "name": "test_connection",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1308,
- "end_line": 1357,
+ "start_line": 1322,
+ "end_line": 1371,
"tags": {
"PURPOSE": "Test connection to Git provider using PAT.",
"PARAM": "pat (str)",
@@ -65813,29 +139572,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1308
+ "line_number": 1322
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1308
+ "line_number": 1322
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1308
+ "line_number": 1322
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._normalize_git_server_url",
+ "name": "_normalize_git_server_url",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1359,
- "end_line": 1369,
+ "start_line": 1373,
+ "end_line": 1383,
"tags": {
"PURPOSE": "Normalize Git server URL for provider API calls.",
"PRE": "raw_url is non-empty.",
@@ -65851,12 +139610,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._gitea_headers",
+ "name": "_gitea_headers",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1371,
- "end_line": 1385,
+ "start_line": 1385,
+ "end_line": 1399,
"tags": {
"PURPOSE": "Build Gitea API authorization headers.",
"PRE": "pat is provided.",
@@ -65872,12 +139631,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._gitea_request",
+ "name": "_gitea_request",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1387,
- "end_line": 1435,
+ "start_line": 1401,
+ "end_line": 1449,
"tags": {
"PURPOSE": "Execute HTTP request against Gitea API with stable error mapping.",
"PRE": "method and endpoint are valid.",
@@ -65902,12 +139661,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.get_gitea_current_user",
+ "name": "get_gitea_current_user",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1437,
- "end_line": 1449,
+ "start_line": 1451,
+ "end_line": 1463,
"tags": {
"PURPOSE": "Resolve current Gitea user for PAT.",
"PRE": "server_url and pat are valid.",
@@ -65928,12 +139687,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.list_gitea_repositories",
+ "name": "list_gitea_repositories",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1451,
- "end_line": 1467,
+ "start_line": 1465,
+ "end_line": 1481,
"tags": {
"PURPOSE": "List repositories visible to authenticated Gitea user.",
"PRE": "server_url and pat are valid.",
@@ -65954,12 +139713,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.create_gitea_repository",
+ "name": "create_gitea_repository",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1469,
- "end_line": 1504,
+ "start_line": 1483,
+ "end_line": 1518,
"tags": {
"PURPOSE": "Create repository in Gitea for authenticated user.",
"PRE": "name is non-empty and PAT has repo creation permission.",
@@ -65980,12 +139739,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.delete_gitea_repository",
+ "name": "delete_gitea_repository",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1506,
- "end_line": 1526,
+ "start_line": 1520,
+ "end_line": 1540,
"tags": {
"PURPOSE": "Delete repository in Gitea.",
"PRE": "owner and repo_name are non-empty.",
@@ -66005,12 +139764,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._gitea_branch_exists",
+ "name": "_gitea_branch_exists",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1528,
- "end_line": 1552,
+ "start_line": 1542,
+ "end_line": 1566,
"tags": {
"PURPOSE": "Check whether a branch exists in Gitea repository.",
"PRE": "owner/repo/branch are non-empty.",
@@ -66031,12 +139790,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._build_gitea_pr_404_detail",
+ "name": "_build_gitea_pr_404_detail",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1554,
- "end_line": 1588,
+ "start_line": 1568,
+ "end_line": 1602,
"tags": {
"PURPOSE": "Build actionable error detail for Gitea PR 404 responses.",
"PRE": "owner/repo/from_branch/to_branch are provided.",
@@ -66057,12 +139816,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.create_github_repository",
+ "name": "create_github_repository",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1590,
- "end_line": 1641,
+ "start_line": 1604,
+ "end_line": 1655,
"tags": {
"PURPOSE": "Create repository in GitHub or GitHub Enterprise.",
"PRE": "PAT has repository create permission.",
@@ -66083,12 +139842,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.create_gitlab_repository",
+ "name": "create_gitlab_repository",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1643,
- "end_line": 1702,
+ "start_line": 1657,
+ "end_line": 1716,
"tags": {
"PURPOSE": "Create repository(project) in GitLab.",
"PRE": "PAT has api scope.",
@@ -66109,12 +139868,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService._parse_remote_repo_identity",
+ "name": "_parse_remote_repo_identity",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1704,
- "end_line": 1738,
+ "start_line": 1718,
+ "end_line": 1752,
"tags": {
"PURPOSE": "Parse owner/repo from remote URL for Git server API operations.",
"PRE": "remote_url is a valid git URL.",
@@ -66134,29 +139893,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1704
+ "line_number": 1718
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1704
+ "line_number": 1718
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1704
+ "line_number": 1718
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService._derive_server_url_from_remote",
+ "name": "_derive_server_url_from_remote",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1740,
- "end_line": 1761,
+ "start_line": 1754,
+ "end_line": 1775,
"tags": {
"PURPOSE": "Build API base URL from remote repository URL without credentials.",
"PRE": "remote_url may be any git URL.",
@@ -66176,29 +139935,29 @@
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1740
+ "line_number": 1754
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1740
+ "line_number": 1754
},
{
"message": "Invalid @RELATION predicate: USES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
- "line_number": 1740
+ "line_number": 1754
}
],
"score": 0.55
}
},
{
- "name": "backend.src.services.git_service.GitService.promote_direct_merge",
+ "name": "promote_direct_merge",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1763,
- "end_line": 1827,
+ "start_line": 1777,
+ "end_line": 1841,
"tags": {
"PURPOSE": "Perform direct merge between branches in local repo and push target branch.",
"PRE": "Repository exists and both branches are valid.",
@@ -66219,12 +139978,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.create_gitea_pull_request",
+ "name": "create_gitea_pull_request",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1829,
- "end_line": 1920,
+ "start_line": 1843,
+ "end_line": 1934,
"tags": {
"PURPOSE": "Create pull request in Gitea.",
"PRE": "Config and remote URL are valid.",
@@ -66261,12 +140020,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.create_github_pull_request",
+ "name": "create_github_pull_request",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1922,
- "end_line": 1976,
+ "start_line": 1936,
+ "end_line": 1990,
"tags": {
"PURPOSE": "Create pull request in GitHub or GitHub Enterprise.",
"PRE": "Config and remote URL are valid.",
@@ -66291,12 +140050,12 @@
}
},
{
- "name": "backend.src.services.git_service.GitService.create_gitlab_merge_request",
+ "name": "create_gitlab_merge_request",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1978,
- "end_line": 2032,
+ "start_line": 1992,
+ "end_line": 2046,
"tags": {
"PURPOSE": "Create merge request in GitLab.",
"PRE": "Config and remote URL are valid.",
@@ -66356,956 +140115,6 @@
"issues": [],
"score": 1.0
}
- },
- {
- "name": "_ensure_base_path_exists",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 63,
- "end_line": 63,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_resolve_base_path",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 76,
- "end_line": 76,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_normalize_repo_key",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 119,
- "end_line": 119,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_update_repo_local_path",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 131,
- "end_line": 131,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_migrate_repo_directory",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 155,
- "end_line": 155,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_ensure_gitflow_branches",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 186,
- "end_line": 186,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_get_repo_path",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 275,
- "end_line": 275,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "init_repo",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 327,
- "end_line": 327,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "delete_repo",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 368,
- "end_line": 368,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_repo",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 417,
- "end_line": 417,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "configure_identity",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 436,
- "end_line": 436,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "list_branches",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 468,
- "end_line": 468,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_branch",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 524,
- "end_line": 524,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "checkout_branch",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 559,
- "end_line": 559,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "commit_changes",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 573,
- "end_line": 573,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_extract_http_host",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 599,
- "end_line": 599,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_strip_url_credentials",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 623,
- "end_line": 623,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_replace_host_in_url",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 645,
- "end_line": 645,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_align_origin_host_with_config",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 686,
- "end_line": 686,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "push_changes",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 753,
- "end_line": 753,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_read_blob_text",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 865,
- "end_line": 865,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_get_unmerged_file_paths",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 878,
- "end_line": 878,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_build_unfinished_merge_payload",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 889,
- "end_line": 889,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_merge_status",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 944,
- "end_line": 944,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_merge_conflicts",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 979,
- "end_line": 979,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "resolve_merge_conflicts",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1005,
- "end_line": 1005,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "abort_merge",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1043,
- "end_line": 1043,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "continue_merge",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1061,
- "end_line": 1061,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "pull_changes",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1101,
- "end_line": 1101,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_status",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1186,
- "end_line": 1186,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_diff",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1265,
- "end_line": 1265,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_commit_history",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1284,
- "end_line": 1284,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_connection",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1317,
- "end_line": 1317,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_normalize_git_server_url",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1364,
- "end_line": 1364,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_gitea_headers",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1376,
- "end_line": 1376,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_gitea_request",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1394,
- "end_line": 1394,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_gitea_current_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1443,
- "end_line": 1443,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "list_gitea_repositories",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1457,
- "end_line": 1457,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_gitea_repository",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1475,
- "end_line": 1475,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "delete_gitea_repository",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1511,
- "end_line": 1511,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_gitea_branch_exists",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1534,
- "end_line": 1534,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_build_gitea_pr_404_detail",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1560,
- "end_line": 1560,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_github_repository",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1596,
- "end_line": 1596,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_gitlab_repository",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1649,
- "end_line": 1649,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_parse_remote_repo_identity",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1710,
- "end_line": 1710,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_derive_server_url_from_remote",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1746,
- "end_line": 1746,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "promote_direct_merge",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1769,
- "end_line": 1769,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_gitea_pull_request",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1839,
- "end_line": 1839,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_github_pull_request",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1929,
- "end_line": 1929,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "create_gitlab_merge_request",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1985,
- "end_line": 1985,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
}
],
"compliance": {
@@ -67322,7 +140131,7 @@
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 2035 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 2049 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -67331,107 +140140,167 @@
}
},
{
- "name": "backend.src.services.mapping_service",
+ "name": "mapping_service",
"type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 1,
- "end_line": 71,
+ "end_line": 99,
"tags": {
"SEMANTICS": "service, mapping, fuzzy-matching, superset",
"PURPOSE": "Orchestrates database fetching and fuzzy matching suggestions.",
+ "COMPLEXITY": "3",
"LAYER": "Service",
+ "PRE": "source/target environment identifiers are provided by caller.",
+ "POST": "Exposes stateless mapping suggestion orchestration over configured environments.",
+ "SIDE_EFFECT": "Performs remote metadata reads through Superset API clients.",
+ "DATA_CONTRACT": "Input[source_env_id: str, target_env_id: str] -> Output[List[Dict]]",
"INVARIANT": "Suggestions are based on database names."
},
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.superset_client"
+ "target": "SupersetClient"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.utils.matching"
+ "target": "suggest_mappings"
}
],
"children": [
{
"name": "MappingService",
"type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 18,
- "end_line": 69,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 24,
+ "end_line": 97,
"tags": {
- "PURPOSE": "Service for handling database mapping logic."
+ "PURPOSE": "Service for handling database mapping logic.",
+ "COMPLEXITY": "3",
+ "PRE": "config_manager exposes get_environments() with environment objects containing id.",
+ "POST": "Provides client resolution and mapping suggestion methods.",
+ "SIDE_EFFECT": "Instantiates Superset clients and performs upstream metadata reads.",
+ "DATA_CONTRACT": "Input[config_manager] -> Output[List[Dict]]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetClient"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "suggest_mappings"
+ }
+ ],
"children": [
{
- "name": "__init__",
+ "name": "init",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 22,
- "end_line": 30,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 34,
+ "end_line": 45,
"tags": {
"PURPOSE": "Initializes the mapping service with a config manager.",
+ "COMPLEXITY": "3",
"PRE": "config_manager is provided.",
"PARAM": "config_manager (ConfigManager) - The configuration manager.",
"POST": "Service is initialized."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "MappingService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "_get_client",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 32,
- "end_line": 46,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 47,
+ "end_line": 64,
"tags": {
"PURPOSE": "Helper to get an initialized SupersetClient for an environment.",
+ "COMPLEXITY": "3",
"PARAM": "env_id (str) - The ID of the environment.",
"PRE": "environment must exist in config.",
"POST": "Returns an initialized SupersetClient.",
"RETURN": "SupersetClient - Initialized client."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetClient"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "get_suggestions",
"type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 67,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 66,
+ "end_line": 94,
"tags": {
"PURPOSE": "Fetches databases from both environments and returns fuzzy matching suggestions.",
+ "COMPLEXITY": "3",
"PARAM": "target_env_id (str) - Target environment ID.",
"PRE": "Both environments must be accessible.",
"POST": "Returns fuzzy-matched database suggestions.",
"RETURN": "List[Dict] - Suggested mappings."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "_get_client"
+ },
+ {
+ "type": "CALLS",
+ "target": "suggest_mappings"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
}
],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 41,
+ "end_line": 41,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
"compliance": {
"valid": true,
"issues": [],
@@ -67442,7 +140311,7 @@
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.925
}
},
{
@@ -67451,7 +140320,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 137,
+ "end_line": 138,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "encryption, security, fernet, api-keys, tests",
@@ -67461,8 +140330,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.llm_provider.EncryptionManager"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -67472,21 +140341,26 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 18,
- "end_line": 136,
+ "end_line": 137,
"tags": {
"PURPOSE": "Validate EncryptionManager encrypt/decrypt roundtrip, uniqueness, and error handling.",
"PRE": "cryptography package installed.",
"POST": "All encrypt/decrypt invariants verified."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_encryption_manager"
+ }
+ ],
"children": [
{
"name": "test_encrypt_decrypt_roundtrip",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 43,
- "end_line": 54,
+ "start_line": 44,
+ "end_line": 55,
"tags": {
"PURPOSE": "Encrypt then decrypt returns original plaintext.",
"PRE": "Valid plaintext string.",
@@ -67505,8 +140379,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 56,
- "end_line": 66,
+ "start_line": 57,
+ "end_line": 67,
"tags": {
"PURPOSE": "Same plaintext produces different ciphertext (Fernet uses random IV).",
"PRE": "Two encrypt calls with same input.",
@@ -67525,8 +140399,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 68,
- "end_line": 77,
+ "start_line": 69,
+ "end_line": 78,
"tags": {
"PURPOSE": "Different inputs produce different ciphertexts.",
"PRE": "Two different plaintext values.",
@@ -67545,8 +140419,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 79,
- "end_line": 87,
+ "start_line": 80,
+ "end_line": 88,
"tags": {
"PURPOSE": "Decrypting invalid data raises InvalidToken.",
"PRE": "Invalid ciphertext string.",
@@ -67565,8 +140439,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 99,
+ "start_line": 90,
+ "end_line": 100,
"tags": {
"PURPOSE": "Encrypting and decrypting an empty string works.",
"PRE": "Empty string input.",
@@ -67585,8 +140459,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 101,
- "end_line": 111,
+ "start_line": 102,
+ "end_line": 112,
"tags": {
"PURPOSE": "Missing ENCRYPTION_KEY must abort initialization instead of using a fallback secret.",
"PRE": "ENCRYPTION_KEY is unset.",
@@ -67605,8 +140479,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 134,
+ "start_line": 114,
+ "end_line": 135,
"tags": {
"PURPOSE": "Custom Fernet key produces valid roundtrip.",
"PRE": "Generated Fernet key.",
@@ -67632,464 +140506,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 25,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 33,
- "end_line": 33,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "encrypt",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 36,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "decrypt",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 38,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 122,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "encrypt",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 125,
- "end_line": 125,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "decrypt",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 127,
- "end_line": 127,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.775
- }
- },
- {
- "name": "test_health_service",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 7,
- "end_line": 285,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Unit tests for HealthService aggregation logic."
- },
- "relations": [],
- "children": [
- {
- "name": "test_get_health_summary_aggregation",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 12,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_health_summary_empty",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 79,
- "end_line": 79,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_health_summary_resolves_slug_and_title_from_superset",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 94,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_health_summary_reuses_dashboard_metadata_cache_across_service_instances",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 126,
- "end_line": 126,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_delete_validation_report_deletes_dashboard_scope_and_linked_tasks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 162,
- "end_line": 162,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_delete_validation_report_returns_false_for_unknown_record",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 231,
- "end_line": 231,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_delete_validation_report_swallows_linked_task_cleanup_failure",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 240,
- "end_line": 240,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @LAYER (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 7
- },
- {
- "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 7
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 7
- }
- ],
- "score": 0.32500000000000007
- }
- },
- {
- "name": "backend.src.services.__tests__.test_llm_plugin_persistence",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 150,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Regression test for ValidationRecord persistence fields populated from task context."
- },
- "relations": [],
- "children": [
- {
- "name": "_DummyLogger",
- "type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 11,
- "end_line": 28,
- "tags": {
- "PURPOSE": "Minimal logger shim for TaskContext-like objects used in tests."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_FakeDBSession",
- "type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 47,
- "tags": {
- "PURPOSE": "Captures persisted records for assertion and mimics SQLAlchemy session methods used by plugin."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_dashboard_validation_plugin_persists_task_and_environment_ids",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 50,
- "end_line": 147,
- "tags": {
- "PURPOSE": "Ensure db ValidationRecord includes context.task_id and params.environment_id."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "with_source",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 14,
- "end_line": 14,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "info",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 17,
- "end_line": 17,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "debug",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "warning",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 23,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "error",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 26,
"end_line": 26,
"tags": {
@@ -68124,7 +140540,26 @@
}
},
{
- "name": "add",
+ "name": "encrypt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 37,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "decrypt",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -68142,13 +140577,664 @@
"score": 1.0
}
},
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 123,
+ "end_line": 123,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "encrypt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 126,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "decrypt",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
+ {
+ "name": "test_health_service",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 7,
+ "end_line": 306,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Unit tests for HealthService aggregation logic."
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "src.services.health_service.HealthService"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_delete_validation_report_deletes_dashboard_scope_and_linked_tasks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 165,
+ "end_line": 237,
+ "tags": {
+ "RISK": "db.query side_effect chain may not propagate through .filter().first() \u2014 verify mock chain setup is correct for this test."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_health_service"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_delete_validation_report_returns_false_for_unknown_record",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 240,
+ "end_line": 251,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_health_service"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_delete_validation_report_swallows_linked_task_cleanup_failure",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 254,
+ "end_line": 305,
+ "tags": {
+ "RISK": "db.query side_effect chain may not propagate through .filter().first() \u2014 verify mock chain setup is correct for this test."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_health_service"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_health_summary_aggregation",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 14,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_health_summary_empty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 82,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_health_summary_resolves_slug_and_title_from_superset",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 97,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_health_summary_reuses_dashboard_metadata_cache_across_service_instances",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @LAYER (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 7
+ },
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 7
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 7
+ },
+ {
+ "message": "Fractal limit warning: Module length is 300 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 7
+ }
+ ],
+ "score": 0.17500000000000004
+ }
+ },
+ {
+ "name": "test_llm_plugin_persistence",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 221,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Regression test for ValidationRecord persistence fields populated from task context."
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "DashboardValidationPlugin:Class"
+ }
+ ],
+ "children": [
+ {
+ "name": "_DummyLogger",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 12,
+ "end_line": 34,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Minimal logger shim for TaskContext-like objects used in tests.",
+ "INVARIANT": "Logging methods are no-ops and must not mutate test state."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_plugin_persistence:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeDBSession",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 37,
+ "end_line": 58,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Captures persisted records for assertion and mimics SQLAlchemy session methods used by plugin.",
+ "INVARIANT": "add/commit/close provide only persistence signals asserted by this test."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_plugin_persistence:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_dashboard_validation_plugin_persists_task_and_environment_ids",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 61,
+ "end_line": 218,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Ensure db ValidationRecord includes context.task_id and params.environment_id.",
+ "INVARIANT": "Assertions remain restricted to persisted task/environment identity fields and session lifecycle signals."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_plugin_persistence:Module"
+ },
+ {
+ "type": "VERIFIES",
+ "target": "DashboardValidationPlugin:Class"
+ }
+ ],
+ "children": [
+ {
+ "name": "_FakeProviderService",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 98,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "LLM provider service stub returning deterministic provider and decrypted API key for plugin tests.",
+ "INVARIANT": "Returns same provider and key regardless of provider_id argument; no lookup logic."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboard_validation_plugin_persists_task_and_environment_ids:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeScreenshotService",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 112,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Screenshot service stub that accepts capture_dashboard calls without side effects.",
+ "INVARIANT": "capture_dashboard is intentionally permissive for this persistence-focused test and does not validate argument values."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboard_validation_plugin_persists_task_and_environment_ids:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeLLMClient",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 136,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Deterministic LLM client double returning canonical analysis payload for persistence-path assertions.",
+ "INVARIANT": "analyze_dashboard is side-effect free and returns schema-compatible PASS result."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboard_validation_plugin_persists_task_and_environment_ids:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeNotificationService",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 138,
+ "end_line": 150,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Notification service stub that accepts plugin dispatch_report payload without introducing side effects.",
+ "INVARIANT": "dispatch_report accepts arbitrary keyword payloads because this test verifies persistence fields, not notification payload schema."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboard_validation_plugin_persists_task_and_environment_ids:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeConfigManager",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 152,
+ "end_line": 169,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Config manager stub providing storage root path and minimal settings for plugin execution path.",
+ "INVARIANT": "Only storage.root_path and llm fields are safe to access; all other settings fields are absent."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboard_validation_plugin_persists_task_and_environment_ids:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_FakeSupersetClient",
+ "type": "Class",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 171,
+ "end_line": 182,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "Superset client stub exposing network.request as a lambda that returns empty result list.",
+ "INVARIANT": "network.request intentionally accepts arbitrary keyword payloads because response shape, not request signature, is the persistence-path dependency."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboard_validation_plugin_persists_task_and_environment_ids:Function"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 61
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 61
+ }
+ ],
+ "score": 0.7
+ }
+ },
+ {
+ "name": "with_source",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 18,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "info",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 21,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "debug",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "warning",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 27,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "error",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 30,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 43,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "add",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "commit",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
+ "start_line": 51,
+ "end_line": 51,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68166,8 +141252,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 45,
+ "start_line": 54,
+ "end_line": 54,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68185,8 +141271,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 67,
- "end_line": 67,
+ "start_line": 89,
+ "end_line": 89,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68204,8 +141290,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 70,
+ "start_line": 92,
+ "end_line": 92,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68223,101 +141309,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 73,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 77,
- "end_line": 77,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "capture_dashboard",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 80,
- "end_line": 80,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 84,
- "end_line": 84,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "analyze_dashboard",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 87,
- "end_line": 87,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 95,
"end_line": 95,
"tags": {
@@ -68333,12 +141324,12 @@
}
},
{
- "name": "dispatch_report",
+ "name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 98,
- "end_line": 98,
+ "start_line": 106,
+ "end_line": 106,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68352,31 +141343,12 @@
}
},
{
- "name": "get_environment",
+ "name": "capture_dashboard",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 102,
- "end_line": 102,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_config",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 105,
- "end_line": 105,
+ "start_line": 109,
+ "end_line": 109,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68394,8 +141366,122 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 114,
- "end_line": 114,
+ "start_line": 126,
+ "end_line": 126,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "analyze_dashboard",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 129,
+ "end_line": 129,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 144,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "dispatch_report",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": 147,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_environment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 158,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_config",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 161,
+ "end_line": 161,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 177,
+ "end_line": 177,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68423,7 +141509,7 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -68432,12 +141518,12 @@
}
},
{
- "name": "backend.src.services.__tests__.test_llm_prompt_templates",
+ "name": "test_llm_prompt_templates",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 110,
+ "end_line": 126,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, llm, prompts, templates, settings",
@@ -68448,7 +141534,7 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.llm_prompt_templates"
+ "target": "backend.src.services.llm_prompt_templates:Function"
}
],
"children": [
@@ -68458,30 +141544,24 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 20,
- "end_line": 38,
+ "end_line": 41,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Ensure legacy/partial llm settings are expanded with all prompt defaults.",
"PRE": "Input llm settings do not contain complete prompts object.",
"POST": "Returned structure includes required prompt templates with fallback defaults."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_prompt_templates"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 20
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 20
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -68489,31 +141569,25 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 41,
- "end_line": 53,
+ "start_line": 44,
+ "end_line": 57,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Ensure user-customized prompt values are preserved during normalization.",
"PRE": "Input llm settings contain custom prompt override.",
"POST": "Custom prompt value remains unchanged in normalized output."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_prompt_templates"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 41
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 41
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -68521,121 +141595,97 @@
"type": "Function",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 56,
- "end_line": 68,
+ "start_line": 60,
+ "end_line": 75,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Ensure template placeholders are deterministically replaced.",
"PRE": "Template contains placeholders matching provided variables.",
"POST": "Rendered prompt string contains substituted values."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_prompt_templates"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 56
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 56
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
"name": "test_is_multimodal_model_detects_known_vision_models",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 71,
- "end_line": 79,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 89,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Ensure multimodal model detection recognizes common vision-capable model names."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_prompt_templates"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 71
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 71
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "test_resolve_bound_provider_id_prefers_binding_then_default",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 82,
- "end_line": 92,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 105,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Verify provider binding resolution priority."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_prompt_templates"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 82
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 82
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
},
{
"name": "test_normalize_llm_settings_keeps_assistant_planner_settings",
"type": "Function",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 95,
- "end_line": 107,
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 123,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Ensure assistant planner provider/model fields are preserved and normalized."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_prompt_templates"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 95
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 95
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 1.0
}
}
],
@@ -68645,102 +141695,32 @@
"score": 0.925
}
},
- {
- "name": "_test_encryption_key_fixture",
- "type": "Global",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 15,
- "end_line": 18,
- "tags": {
- "PURPOSE": "Ensure encryption-dependent provider tests run with a valid Fernet key."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
{
"name": "test_llm_provider",
"type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 1,
- "end_line": 116,
+ "end_line": 6,
"tags": {
- "PURPOSE": "Auto-generated module for backend/src/services/__tests__/test_llm_provider.py",
- "COMPLEXITY": "1",
- "LAYER": "Unknown"
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, llm-provider, encryption, contract",
+ "PURPOSE": "Contract testing for LLMProviderService and EncryptionManager"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "src.services.llm_provider:Module"
+ }
+ ],
"children": [
- {
- "name": "test_encryption_cycle",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 22,
- "end_line": 22,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_empty_string_encryption",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 31,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_decrypt_invalid_data",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 38,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
{
"name": "mock_db",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 45,
+ "start_line": 75,
+ "end_line": 75,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68758,103 +141738,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 49,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_all_providers",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 52,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_provider",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 57,
- "end_line": 57,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_decrypted_api_key",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 76,
- "end_line": 76,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_decrypted_api_key_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 85,
- "end_line": 85,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_update_provider_ignores_masked_placeholder_api_key",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 89,
+ "start_line": 88,
+ "end_line": 88,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -68868,6 +141753,40 @@
}
}
],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @LAYER (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.5499999999999999
+ }
+ },
+ {
+ "name": "_test_encryption_key_fixture",
+ "type": "Global",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 21,
+ "tags": {
+ "PURPOSE": "Ensure encryption-dependent provider tests run with a valid Fernet key."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "pytest:Module"
+ }
+ ],
+ "children": [],
"compliance": {
"valid": true,
"issues": [],
@@ -68875,12 +141794,249 @@
}
},
{
- "name": "backend.src.services.__tests__.test_resource_service",
+ "name": "test_encryption_cycle",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 39,
+ "tags": {
+ "PURPOSE": "Verify EncryptionManager round-trip encryption/decryption invariant for non-empty secrets.",
+ "TEST_EDGE": "empty_string_encryption"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_empty_string_encryption",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 42,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Verify EncryptionManager preserves empty-string payloads through encrypt/decrypt cycle.",
+ "TEST_EDGE": "decrypt_invalid_data"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_decrypt_invalid_data",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Ensure decrypt rejects invalid ciphertext input by raising an exception.",
+ "TEST_FIXTURE": "mock_db_session"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mock_db",
+ "type": "Fixture",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 80,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "MagicMock(spec=Session) fixture providing a constrained DB session double for LLMProviderService tests.",
+ "INVARIANT": "Chained calls beyond Session spec create unconstrained intermediate mocks; only top-level query/add/commit are spec-enforced.",
+ "RISK": "query() returns unconstrained MagicMock \u2014 chain beyond query() has no spec protection. Consider create_autospec(Session) for full chain safety."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "service",
+ "type": "Fixture",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 83,
+ "end_line": 92,
+ "tags": {
+ "COMPLEXITY": "1",
+ "PURPOSE": "LLMProviderService fixture wired to mock_db for provider CRUD tests."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_all_providers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 95,
+ "end_line": 104,
+ "tags": {
+ "PURPOSE": "Verify provider list retrieval issues query/all calls on the backing DB session."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_provider",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Ensure provider creation persists entity and stores API key in encrypted form."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_decrypted_api_key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 133,
+ "end_line": 146,
+ "tags": {
+ "PURPOSE": "Verify service decrypts stored provider API key for an existing provider record."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_decrypted_api_key_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 149,
+ "end_line": 157,
+ "tags": {
+ "PURPOSE": "Verify missing provider lookup returns None instead of attempting decryption."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_update_provider_ignores_masked_placeholder_api_key",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 160,
+ "end_line": 193,
+ "tags": {
+ "PURPOSE": "Ensure masked placeholder API keys do not overwrite previously encrypted provider secrets."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_llm_provider:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "TestResourceService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 424,
+ "end_line": 455,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "resource-service, tests, dashboards, datasets, activity",
@@ -68889,13 +142045,9 @@
"INVARIANT": "Resource summaries preserve task linkage and status projection behavior."
},
"relations": [
- {
- "type": "TESTS",
- "target": "backend.src.services.resource_service"
- },
{
"type": "VERIFIES",
- "target": "ResourceService"
+ "target": "src.services.resource_service.ResourceService"
}
],
"children": [
@@ -68904,15 +142056,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 15,
- "end_line": 75,
+ "start_line": 14,
+ "end_line": 76,
"tags": {
"PURPOSE": "Validate dashboard enrichment includes git/task status projections.",
"TEST": "get_dashboards_with_status returns dashboards with git and task status",
"PRE": "SupersetClient returns dashboard list",
"POST": "Each dashboard has git_status and last_task fields"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -68925,14 +142082,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 78,
- "end_line": 115,
+ "start_line": 79,
+ "end_line": 116,
"tags": {
"TEST": "get_datasets_with_status returns datasets with task status",
"PRE": "SupersetClient returns dataset list",
"POST": "Each dataset has last_task field"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -68945,14 +142107,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 118,
- "end_line": 152,
+ "start_line": 119,
+ "end_line": 154,
"tags": {
"TEST": "get_activity_summary returns active count and recent tasks",
"PRE": "tasks list provided",
"POST": "Returns dict with active_count and recent_tasks"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -68965,14 +142132,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 155,
- "end_line": 174,
+ "start_line": 157,
+ "end_line": 176,
"tags": {
"TEST": "_get_git_status_for_dashboard returns None when no repo exists",
"PRE": "GitService returns None for repo",
"POST": "Returns None"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -68985,14 +142157,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 177,
- "end_line": 206,
+ "start_line": 179,
+ "end_line": 209,
"tags": {
"TEST": "_get_last_task_for_resource returns most recent task for resource",
"PRE": "tasks list with matching resource_id",
"POST": "Returns task summary with task_id and status"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69005,14 +142182,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 209,
- "end_line": 235,
+ "start_line": 212,
+ "end_line": 239,
"tags": {
"TEST": "_extract_resource_name_from_task extracts name from params",
"PRE": "task has resource_name in params",
"POST": "Returns resource name or fallback"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69025,14 +142207,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 238,
- "end_line": 249,
+ "start_line": 242,
+ "end_line": 256,
"tags": {
"TEST": "_get_last_task_for_resource returns None for empty tasks list",
"PRE": "tasks is empty list",
"POST": "Returns None"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69045,14 +142232,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 252,
- "end_line": 269,
+ "start_line": 259,
+ "end_line": 279,
"tags": {
"TEST": "_get_last_task_for_resource returns None when no tasks match resource_id",
"PRE": "tasks list has no matching resource_id",
"POST": "Returns None"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69065,14 +142257,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 272,
- "end_line": 308,
+ "start_line": 282,
+ "end_line": 322,
"tags": {
"TEST": "get_dashboards_with_status handles mixed naive/aware datetimes without comparison errors.",
"PRE": "Task list includes both timezone-aware and timezone-naive timestamps.",
"POST": "Latest task is selected deterministically and no exception is raised."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69085,14 +142282,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 311,
- "end_line": 351,
+ "start_line": 325,
+ "end_line": 371,
"tags": {
"TEST": "get_dashboards_with_status keeps latest task identity while falling back to older decisive validation status.",
"PRE": "Same dashboard has older WARN and newer UNKNOWN validation tasks.",
"POST": "Returned last_task points to newest task but preserves WARN as last meaningful validation state."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69105,14 +142307,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 354,
- "end_line": 393,
+ "start_line": 374,
+ "end_line": 419,
"tags": {
"TEST": "get_dashboards_with_status still returns newest UNKNOWN when no decisive validation exists.",
"PRE": "Same dashboard has only UNKNOWN validation tasks.",
"POST": "Returned last_task keeps newest UNKNOWN task."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69125,14 +142332,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 396,
- "end_line": 421,
+ "start_line": 422,
+ "end_line": 452,
"tags": {
"TEST": "_get_last_task_for_resource handles mixed naive/aware created_at values.",
"PRE": "Matching tasks include naive and aware created_at timestamps.",
"POST": "Latest task is returned without raising datetime comparison errors."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69144,32 +142356,27 @@
"compliance": {
"valid": true,
"issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
{
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 424 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 455 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.47500000000000003
+ "score": 0.625
}
},
{
- "name": "backend.src.services.__tests__.test_rbac_permission_catalog",
+ "name": "test_rbac_permission_catalog",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 140,
+ "end_line": 144,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, rbac, permissions, catalog, discovery, sync",
@@ -69179,8 +142386,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.rbac_permission_catalog"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -69190,13 +142397,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 17,
- "end_line": 51,
+ "end_line": 52,
"tags": {
"PURPOSE": "Ensures route-scanner extracts has_permission pairs from route files and skips __tests__.",
"PRE": "Temporary route directory contains route and test files.",
"POST": "Returned set includes production route permissions and excludes test-only declarations."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_rbac_permission_catalog"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69209,14 +142421,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 54,
- "end_line": 77,
+ "start_line": 55,
+ "end_line": 79,
"tags": {
"PURPOSE": "Ensures full catalog includes route-level permissions plus dynamic plugin EXECUTE rights.",
"PRE": "Route discovery and plugin loader both return permission sources.",
"POST": "Result set contains union of both sources."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_rbac_permission_catalog"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69229,14 +142446,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 80,
- "end_line": 110,
+ "start_line": 82,
+ "end_line": 113,
"tags": {
"PURPOSE": "Ensures synchronization inserts only missing pairs and normalizes action/resource tokens.",
"PRE": "DB already contains subset of permissions.",
"POST": "Only missing normalized pairs are inserted and commit is executed once."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_rbac_permission_catalog"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69249,14 +142471,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 137,
+ "start_line": 116,
+ "end_line": 141,
"tags": {
"PURPOSE": "Ensures synchronization is idempotent when all declared pairs already exist.",
"PRE": "DB contains full declared permission set.",
"POST": "No inserts are added and commit is not called."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_rbac_permission_catalog"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -69269,7 +142496,7 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -69278,91 +142505,179 @@
}
},
{
- "name": "backend.src.services.notifications.providers",
+ "name": "providers",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 123,
+ "end_line": 177,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "notifications, providers, smtp, slack, telegram, abstraction",
"PURPOSE": "Defines abstract base and concrete implementations for external notification delivery.",
"LAYER": "Infra",
+ "PRE": "Provider configuration dictionaries are supplied by trusted configuration sources.",
+ "POST": "Each provider exposes async send contract returning boolean delivery outcome.",
+ "SIDE_EFFECT": "Performs outbound network I/O to SMTP or HTTP endpoints.",
+ "DATA_CONTRACT": "Input[target, subject, body, context?] -> Output[bool]",
"INVARIANT": "Sensitive credentials must be handled via encrypted config."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDED_ON_BY",
+ "target": "NotificationService"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "NotificationProvider"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SMTPProvider"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TelegramProvider"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SlackProvider"
+ }
+ ],
"children": [
{
"name": "NotificationProvider",
"type": "Class",
- "complexity": 1,
+ "complexity": 2,
"tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 35,
+ "start_line": 31,
+ "end_line": 57,
"tags": {
+ "COMPLEXITY": "2",
"PURPOSE": "Abstract base class for all notification providers."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "DEPENDED_ON_BY",
+ "target": "SMTPProvider"
+ },
+ {
+ "type": "DEPENDED_ON_BY",
+ "target": "TelegramProvider"
+ },
+ {
+ "type": "DEPENDED_ON_BY",
+ "target": "SlackProvider"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: DEPENDED_ON_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 31
+ },
+ {
+ "message": "Invalid @RELATION predicate: DEPENDED_ON_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 31
+ },
+ {
+ "message": "Invalid @RELATION predicate: DEPENDED_ON_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 31
+ },
+ {
+ "message": "Invalid @RELATION predicate: DEPENDED_ON_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 31
+ },
+ {
+ "message": "Invalid @RELATION predicate: DEPENDED_ON_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 31
+ },
+ {
+ "message": "Invalid @RELATION predicate: DEPENDED_ON_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 31
+ }
+ ],
+ "score": 0.10000000000000009
}
},
{
"name": "SMTPProvider",
"type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 68,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 60,
+ "end_line": 102,
"tags": {
+ "COMPLEXITY": "3",
"PURPOSE": "Delivers notifications via SMTP."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "NotificationProvider"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "TelegramProvider",
"type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 71,
- "end_line": 96,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 105,
+ "end_line": 142,
"tags": {
+ "COMPLEXITY": "3",
"PURPOSE": "Delivers notifications via Telegram Bot API."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "NotificationProvider"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
"name": "SlackProvider",
"type": "Class",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 99,
- "end_line": 121,
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 145,
+ "end_line": 175,
"tags": {
+ "COMPLEXITY": "3",
"PURPOSE": "Delivers notifications via Slack Webhooks or API."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "INHERITS",
+ "target": "NotificationProvider"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
- "score": 1.0
+ "score": 0.85
}
},
{
@@ -69370,8 +142685,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 25,
+ "start_line": 39,
+ "end_line": 39,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69389,8 +142704,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 41,
+ "start_line": 65,
+ "end_line": 65,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69408,8 +142723,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 49,
+ "start_line": 73,
+ "end_line": 73,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69427,8 +142742,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 74,
- "end_line": 74,
+ "start_line": 110,
+ "end_line": 110,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69446,8 +142761,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 77,
- "end_line": 77,
+ "start_line": 113,
+ "end_line": 113,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69465,8 +142780,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 102,
- "end_line": 102,
+ "start_line": 150,
+ "end_line": 150,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69484,8 +142799,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 105,
- "end_line": 105,
+ "start_line": 153,
+ "end_line": 153,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69503,36 +142818,16 @@
"valid": false,
"issues": [
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
+ "message": "Invalid @RELATION predicate: DEPENDED_ON_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "ERROR",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.4666666666666667
}
},
{
- "name": "backend.src.services.notifications.service",
+ "name": "service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
@@ -69740,43 +143035,59 @@
}
},
{
- "name": "src.services.notifications",
+ "name": "notifications",
"type": "Package",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 3,
+ "end_line": 4,
"tags": {
"PURPOSE": "Notification service package root."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "EXPORTS",
+ "target": "NotificationService:Class"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: EXPORTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
}
},
{
- "name": "backend.src.services.notifications.__tests__.test_notification_service",
+ "name": "test_notification_service",
"type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 120,
+ "end_line": 121,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Unit tests for NotificationService routing and dispatch logic."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "TESTS",
+ "target": "NotificationService:Class"
+ }
+ ],
"children": [
{
"name": "mock_db",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 16,
- "end_line": 16,
+ "start_line": 17,
+ "end_line": 17,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69794,8 +143105,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 21,
+ "start_line": 22,
+ "end_line": 22,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69813,8 +143124,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 33,
- "end_line": 33,
+ "start_line": 34,
+ "end_line": 34,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69832,8 +143143,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 38,
+ "start_line": 39,
+ "end_line": 39,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69851,8 +143162,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 48,
+ "start_line": 49,
+ "end_line": 49,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69870,8 +143181,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 62,
+ "start_line": 63,
+ "end_line": 63,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69889,8 +143200,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 82,
+ "start_line": 83,
+ "end_line": 83,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69908,8 +143219,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 94,
+ "start_line": 95,
+ "end_line": 95,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69927,8 +143238,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 104,
+ "start_line": 105,
+ "end_line": 105,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -69946,31 +143257,21 @@
"valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @LAYER (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.32500000000000007
+ "score": 0.85
}
},
{
- "name": "backend.src.services.clean_release.compliance_orchestrator",
+ "name": "compliance_orchestrator",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 167,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, orchestrator, compliance-gate, stages",
@@ -70002,20 +143303,20 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 140,
+ "start_line": 42,
+ "end_line": null,
"tags": {
"PURPOSE": "Coordinate clean-release compliance verification stages."
},
"relations": [],
"children": [
{
- "name": "CleanComplianceOrchestrator.__init__",
+ "name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 44,
- "end_line": 53,
+ "start_line": 45,
+ "end_line": null,
"tags": {
"PURPOSE": "Bind repository dependency used for orchestrator persistence and lookups.",
"PRE": "repository is a valid CleanReleaseRepository instance with required methods.",
@@ -70024,131 +143325,145 @@
"DATA_CONTRACT": "Input -> CleanReleaseRepository, Output -> None"
},
"relations": [],
- "children": [],
+ "children": [
+ {
+ "name": "start_check_run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 56,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Initiate a new compliance run session.",
+ "PRE": "candidate_id and policy_id are provided; legacy callers may omit persisted manifest/policy records.",
+ "POST": "Returns initialized ComplianceRun in RUNNING state persisted in repository.",
+ "SIDE_EFFECT": "Reads manifest/policy when present and writes new ComplianceRun via repository.save_check_run.",
+ "DATA_CONTRACT": "Input -> (candidate_id:str, policy_id:str, requested_by:str, manifest_id:str|None), Output -> ComplianceRun"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "execute_stages",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 126,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Execute or accept compliance stage outcomes and set intermediate/final check-run status fields.",
+ "PRE": "check_run exists and references candidate/policy/registry/manifest identifiers resolvable by repository.",
+ "POST": "Returns persisted ComplianceRun with status FAILED on missing dependencies, otherwise SUCCEEDED with final_status set.",
+ "SIDE_EFFECT": "Reads candidate/policy/registry/manifest and persists updated check_run.",
+ "DATA_CONTRACT": "Input -> (check_run:ComplianceRun, forced_results:Optional[List[ComplianceStageRun]]), Output -> ComplianceRun"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "finalize_run",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 181,
+ "end_line": 205,
+ "tags": {
+ "PURPOSE": "Finalize run status based on cumulative stage results.",
+ "PRE": "check_run was started and may already contain a derived final_status from stage execution.",
+ "POST": "Returns persisted ComplianceRun in SUCCEEDED status with final_status guaranteed non-empty.",
+ "SIDE_EFFECT": "Mutates check_run terminal fields and persists via repository.save_check_run.",
+ "DATA_CONTRACT": "Input -> ComplianceRun, Output -> ComplianceRun"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "run_check_legacy",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 209,
+ "end_line": 232,
+ "tags": {
+ "PURPOSE": "Legacy wrapper for compatibility with previous orchestrator call style.",
+ "PRE": "repository and identifiers are valid and resolvable by orchestrator dependencies.",
+ "POST": "Returns finalized ComplianceRun produced by orchestrator start->execute->finalize sequence.",
+ "SIDE_EFFECT": "Reads/writes compliance entities through repository during orchestrator calls.",
+ "DATA_CONTRACT": "Input -> (repository:CleanReleaseRepository, candidate_id:str, policy_id:str, requested_by:str, manifest_id:str), Output -> ComplianceRun"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "start_check_run",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 80,
- "tags": {
- "PURPOSE": "Initiate a new compliance run session.",
- "PRE": "candidate_id/policy_id/manifest_id identify existing records in repository.",
- "POST": "Returns initialized ComplianceRun in RUNNING state persisted in repository.",
- "SIDE_EFFECT": "Reads manifest/policy and writes new ComplianceRun via repository.save_check_run.",
- "DATA_CONTRACT": "Input -> (candidate_id:str, policy_id:str, requested_by:str, manifest_id:str), Output -> ComplianceRun"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "execute_stages",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 122,
- "tags": {
- "PURPOSE": "Execute or accept compliance stage outcomes and set intermediate/final check-run status fields.",
- "PRE": "check_run exists and references candidate/policy/registry/manifest identifiers resolvable by repository.",
- "POST": "Returns persisted ComplianceRun with status FAILED on missing dependencies, otherwise SUCCEEDED with final_status set.",
- "SIDE_EFFECT": "Reads candidate/policy/registry/manifest and persists updated check_run.",
- "DATA_CONTRACT": "Input -> (check_run:ComplianceRun, forced_results:Optional[List[ComplianceStageRun]]), Output -> ComplianceRun"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "finalize_run",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 124,
- "end_line": 139,
- "tags": {
- "PURPOSE": "Finalize run status based on cumulative stage results.",
- "PRE": "check_run was started and may already contain a derived final_status from stage execution.",
- "POST": "Returns persisted ComplianceRun in SUCCEEDED status with final_status guaranteed non-empty.",
- "SIDE_EFFECT": "Mutates check_run terminal fields and persists via repository.save_check_run.",
- "DATA_CONTRACT": "Input -> ComplianceRun, Output -> ComplianceRun"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:__init__:Function] started at line 45",
+ "severity": "ERROR",
+ "line_number": 45
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:__init__:Function] started at line 45",
+ "severity": "ERROR",
+ "line_number": 45
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:__init__:Function] started at line 45",
+ "severity": "ERROR",
+ "line_number": 45
+ }
+ ],
+ "score": 0.0
}
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "run_check_legacy",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 143,
- "end_line": 166,
- "tags": {
- "PURPOSE": "Legacy wrapper for compatibility with previous orchestrator call style.",
- "PRE": "repository and identifiers are valid and resolvable by orchestrator dependencies.",
- "POST": "Returns finalized ComplianceRun produced by orchestrator start->execute->finalize sequence.",
- "SIDE_EFFECT": "Reads/writes compliance entities through repository during orchestrator calls.",
- "DATA_CONTRACT": "Input -> (repository:CleanReleaseRepository, candidate_id:str, policy_id:str, requested_by:str, manifest_id:str), Output -> ComplianceRun"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 50,
- "end_line": 50,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:CleanComplianceOrchestrator:Class] started at line 42",
+ "severity": "ERROR",
+ "line_number": 42
+ },
+ {
+ "message": "Unclosed Anchor: [DEF:CleanComplianceOrchestrator:Class] started at line 42",
+ "severity": "ERROR",
+ "line_number": 42
+ }
+ ],
+ "score": 0.0
}
}
],
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:compliance_orchestrator:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -70174,12 +143489,12 @@
}
},
{
- "name": "backend.src.services.clean_release.compliance_execution_service",
+ "name": "compliance_execution_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 197,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, compliance, execution, stages, immutable-evidence",
@@ -70346,6 +143661,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:compliance_execution_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -70371,12 +143691,12 @@
}
},
{
- "name": "backend.src.services.clean_release.manifest_builder",
+ "name": "manifest_builder",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 109,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, manifest, deterministic-hash, summary",
@@ -70452,18 +143772,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:manifest_builder:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.policy_engine",
+ "name": "policy_engine",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 152,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, policy, classification, source-isolation",
@@ -70487,8 +143813,8 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 151,
+ "start_line": 36,
+ "end_line": 195,
"tags": {
"PRE": "Active policy exists and is internally consistent.",
"POST": "Deterministic classification and source validation are available.",
@@ -70511,8 +143837,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
+ "start_line": 47,
+ "end_line": 47,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -70530,8 +143856,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 46,
- "end_line": 46,
+ "start_line": 55,
+ "end_line": 55,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -70549,8 +143875,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 73,
+ "start_line": 104,
+ "end_line": 104,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -70568,8 +143894,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 89,
+ "start_line": 129,
+ "end_line": 129,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -70587,8 +143913,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 121,
- "end_line": 121,
+ "start_line": 165,
+ "end_line": 165,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -70605,6 +143931,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:policy_engine:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -70661,12 +143992,12 @@
}
},
{
- "name": "backend.src.services.clean_release.candidate_service",
+ "name": "candidate_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 107,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, candidate, artifacts, lifecycle, validation",
@@ -70731,6 +144062,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:candidate_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
@@ -70777,12 +144113,12 @@
}
},
{
- "name": "backend.src.services.clean_release.publication_service",
+ "name": "publication_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 173,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, publication, revoke, gate, lifecycle",
@@ -70913,6 +144249,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:publication_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -70938,12 +144279,12 @@
}
},
{
- "name": "backend.src.services.clean_release.artifact_catalog_loader",
+ "name": "artifact_catalog_loader",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 94,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, artifacts, bootstrap, json, tui",
@@ -70980,18 +144321,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:artifact_catalog_loader:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.audit_service",
+ "name": "audit_service",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 107,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, audit, lifecycle, logging",
@@ -71103,18 +144450,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:audit_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.source_isolation",
+ "name": "source_isolation",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 33,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, source-isolation, internal-only, validation",
@@ -71150,18 +144503,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:source_isolation:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.report_builder",
+ "name": "report_builder",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 68,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, report, audit, counters, violations",
@@ -71245,6 +144604,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:report_builder:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -71270,12 +144634,12 @@
}
},
{
- "name": "backend.src.services.clean_release.repository",
+ "name": "repository",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 124,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, repository, persistence, in-memory",
@@ -71747,18 +145111,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:repository:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.preparation_service",
+ "name": "preparation_service",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 92,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, preparation, manifest, policy-evaluation",
@@ -71786,8 +145156,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 91,
+ "start_line": 85,
+ "end_line": 103,
"tags": {
"PURPOSE": "Legacy compatibility wrapper kept for migration period.",
"PRE": "Same as prepare_candidate.",
@@ -71806,8 +145176,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 22,
- "end_line": 22,
+ "start_line": 23,
+ "end_line": 23,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -71822,9 +145192,15 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:preparation_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
@@ -71955,12 +145331,12 @@
}
},
{
- "name": "backend.src.services.clean_release.policy_resolution_service",
+ "name": "policy_resolution_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 64,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, policy, registry, trusted-resolution, immutable-snapshots",
@@ -72008,6 +145384,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:policy_resolution_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -72033,12 +145414,12 @@
}
},
{
- "name": "backend.src.services.clean_release.demo_data_service",
+ "name": "demo_data_service",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 50,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, demo-mode, namespace, isolation, repository",
@@ -72115,9 +145496,15 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:demo_data_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
@@ -72291,12 +145678,12 @@
}
},
{
- "name": "backend.src.services.clean_release.manifest_service",
+ "name": "manifest_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 88,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, manifest, versioning, immutability, lifecycle",
@@ -72345,6 +145732,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:manifest_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
"severity": "ERROR",
@@ -72360,12 +145752,12 @@
}
},
{
- "name": "backend.src.services.clean_release.approval_service",
+ "name": "approval_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 178,
+ "end_line": null,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, approval, decision, lifecycle, gate",
@@ -72492,6 +145884,11 @@
"compliance": {
"valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:approval_service:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
"severity": "ERROR",
@@ -72517,12 +145914,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_audit_service",
+ "name": "TestAuditService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 27,
+ "end_line": 53,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, clean-release, audit, logging",
@@ -72531,8 +145928,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.clean_release.audit_service"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -72541,13 +145938,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 12,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 17,
+ "end_line": 26,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuditService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72560,13 +145959,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 17,
- "end_line": 17,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 30,
+ "end_line": 39,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuditService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72579,13 +145980,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 22,
- "end_line": 22,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 43,
+ "end_line": 52,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuditService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72598,7 +146001,7 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -72606,13 +146009,147 @@
"score": 0.775
}
},
+ {
+ "name": "test_policy_valid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 43,
+ "end_line": 53,
+ "tags": {
+ "TEST_EDGE": "missing_registry_ref"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_policy_engine"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_missing_registry_ref",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 55,
+ "end_line": 66,
+ "tags": {
+ "TEST_EDGE": "conflicting_registry"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_policy_engine"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_conflicting_registry",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 68,
+ "end_line": 79,
+ "tags": {
+ "TEST_INVARIANT": "deterministic_classification"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_policy_engine"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_classify_artifact",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 81,
+ "end_line": 95,
+ "tags": {
+ "TEST_EDGE": "external_endpoint"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_policy_engine"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_validate_resource_source",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 97,
+ "end_line": 113,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_policy_engine"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_evaluate_candidate",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 137,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_policy_engine"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "test_policy_engine",
"type": "Module",
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 114,
+ "end_line": 137,
"tags": {
"PURPOSE": "Auto-generated module for backend/src/services/clean_release/__tests__/test_policy_engine.py",
"COMPLEXITY": "1",
@@ -72638,120 +146175,6 @@
"issues": [],
"score": 1.0
}
- },
- {
- "name": "test_policy_valid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 43,
- "end_line": 43,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_missing_registry_ref",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 51,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_conflicting_registry",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 60,
- "end_line": 60,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_classify_artifact",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 69,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_validate_resource_source",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 81,
- "end_line": 81,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_evaluate_candidate",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 95,
- "end_line": 95,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
}
],
"compliance": {
@@ -72761,12 +146184,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_compliance_orchestrator",
+ "name": "TestComplianceOrchestrator",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 112,
+ "end_line": 116,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, clean-release, orchestrator, stage-state-machine",
@@ -72776,8 +146199,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.clean_release.compliance_orchestrator"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -72787,11 +146210,16 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 24,
- "end_line": 48,
+ "end_line": 49,
"tags": {
"PURPOSE": "Verify mandatory stage failure forces BLOCKED final status."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceOrchestrator"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72804,12 +146232,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 75,
+ "start_line": 52,
+ "end_line": 77,
"tags": {
"PURPOSE": "Verify happy path where all mandatory stages pass yields COMPLIANT."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceOrchestrator"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72822,12 +146255,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 78,
- "end_line": 92,
+ "start_line": 80,
+ "end_line": 95,
"tags": {
"PURPOSE": "Verify incomplete mandatory stage set cannot end as COMPLIANT and results in FAILED."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceOrchestrator"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72840,12 +146278,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 95,
- "end_line": 111,
+ "start_line": 98,
+ "end_line": 115,
"tags": {
"PURPOSE": "Verify downstream report errors do not mutate orchestrator final status."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceOrchestrator"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72858,7 +146301,7 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -72867,12 +146310,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_report_builder",
+ "name": "TestReportBuilder",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 112,
+ "end_line": 118,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, clean-release, report-builder, counters",
@@ -72882,8 +146325,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.clean_release.report_builder"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -72893,11 +146336,16 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 25,
- "end_line": 39,
+ "end_line": 40,
"tags": {
"PURPOSE": "Build terminal/non-terminal run fixtures for report builder tests."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportBuilder"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72910,12 +146358,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 55,
+ "start_line": 43,
+ "end_line": 57,
"tags": {
"PURPOSE": "Build a blocking violation fixture for blocked report scenarios."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportBuilder"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72928,12 +146381,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 58,
- "end_line": 66,
+ "start_line": 60,
+ "end_line": 69,
"tags": {
"PURPOSE": "Verify BLOCKED run requires at least one blocking violation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportBuilder"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72946,12 +146404,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 86,
+ "start_line": 72,
+ "end_line": 90,
"tags": {
"PURPOSE": "Verify report builder generates conformant payload for a BLOCKED run with violations."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportBuilder"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72964,12 +146427,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 98,
+ "start_line": 93,
+ "end_line": 103,
"tags": {
"PURPOSE": "Verify violations counters remain consistent for blocking payload."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportBuilder"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -72982,12 +146450,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 101,
- "end_line": 111,
+ "start_line": 106,
+ "end_line": 117,
"tags": {
"PURPOSE": "Validate non-terminal run prevents operator summary/report generation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportBuilder"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73000,7 +146473,7 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -73009,12 +146482,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_manifest_builder",
+ "name": "TestManifestBuilder",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 41,
+ "end_line": 42,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "tests, clean-release, manifest, deterministic",
@@ -73035,13 +146508,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 12,
- "end_line": 40,
+ "end_line": 41,
"tags": {
"PURPOSE": "Ensure hash is stable for same candidate/policy/artifact input.",
"PRE": "Same input lists are passed twice.",
"POST": "Hash and summary remain identical."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestManifestBuilder"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73063,12 +146541,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_stages",
+ "name": "TestStages",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 30,
+ "end_line": 70,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, clean-release, compliance, stages",
@@ -73077,8 +146555,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.clean_release.stages"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -73087,13 +146565,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 11,
- "end_line": 11,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 17,
+ "end_line": 27,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestStages"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73106,13 +146586,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 15,
- "end_line": 15,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 30,
+ "end_line": 41,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestStages"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73125,13 +146607,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 44,
+ "end_line": 55,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestStages"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73144,13 +146628,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 24,
- "end_line": 24,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 58,
+ "end_line": 69,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestStages"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73163,7 +146649,7 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -73172,12 +146658,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_source_isolation",
+ "name": "TestSourceIsolation",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 60,
+ "end_line": 74,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, clean-release, source-isolation, internal-only",
@@ -73187,8 +146673,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.clean_release.source_isolation"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -73198,12 +146684,14 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 15,
- "end_line": 15,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "end_line": 43,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSourceIsolation"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73216,13 +146704,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 41,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 46,
+ "end_line": 57,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSourceIsolation"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73235,13 +146725,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 50,
- "end_line": 50,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 60,
+ "end_line": 73,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestSourceIsolation"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73254,7 +146746,7 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -73263,12 +146755,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_preparation_service",
+ "name": "TestPreparationService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 171,
+ "end_line": 229,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, clean-release, preparation, flow",
@@ -73283,164 +146775,22 @@
}
],
"children": [
- {
- "name": "backend.tests.services.clean_release.test_preparation_service._mock_policy",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 24,
- "end_line": 38,
- "tags": {
- "PURPOSE": "Build a valid clean profile policy fixture for preparation tests."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "backend.tests.services.clean_release.test_preparation_service._mock_registry",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 50,
- "tags": {
- "PURPOSE": "Build an internal-only source registry fixture for preparation tests."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "backend.tests.services.clean_release.test_preparation_service._mock_candidate",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 64,
- "tags": {
- "PURPOSE": "Build a draft release candidate fixture with provided identifier."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "backend.tests.services.clean_release.test_preparation_service.test_prepare_candidate_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 66,
- "end_line": 101,
- "tags": {
- "PURPOSE": "Verify candidate transitions to PREPARED when evaluation returns no violations.",
- "TEST_CONTRACT": "[valid_candidate + active_policy + internal_sources + no_violations] -> [status=PREPARED, manifest_persisted, candidate_saved]",
- "TEST_SCENARIO": "[prepare_success] -> [prepared status and persistence side effects are produced]",
- "TEST_FIXTURE": "[INLINE_MOCKS] -> INLINE_JSON",
- "TEST_EDGE": "[external_fail] -> [none; dependency interactions mocked and successful]",
- "TEST_INVARIANT": "[prepared_flow_persists_state] -> VERIFIED_BY: [prepare_success]"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "backend.tests.services.clean_release.test_preparation_service.test_prepare_candidate_with_violations",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 103,
- "end_line": 137,
- "tags": {
- "PURPOSE": "Verify candidate transitions to BLOCKED when evaluation returns blocking violations.",
- "TEST_CONTRACT": "[valid_candidate + active_policy + evaluation_with_violations] -> [status=BLOCKED, violations_exposed]",
- "TEST_SCENARIO": "[prepare_blocked_due_to_policy] -> [blocked status and violation list are produced]",
- "TEST_FIXTURE": "[INLINE_MOCKS] -> INLINE_JSON",
- "TEST_EDGE": "[external_fail] -> [none; dependency interactions mocked and successful]",
- "TEST_INVARIANT": "[blocked_flow_reports_violations] -> VERIFIED_BY: [prepare_blocked_due_to_policy]"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "backend.tests.services.clean_release.test_preparation_service.test_prepare_candidate_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 139,
- "end_line": 152,
- "tags": {
- "PURPOSE": "Verify preparation raises ValueError when candidate does not exist.",
- "TEST_CONTRACT": "[missing_candidate] -> [ValueError('Candidate not found')]",
- "TEST_SCENARIO": "[prepare_missing_candidate] -> [raises candidate not found error]",
- "TEST_FIXTURE": "[INLINE_MOCKS] -> INLINE_JSON",
- "TEST_EDGE": "[missing_field] -> [candidate lookup returns None]",
- "TEST_INVARIANT": "[missing_candidate_is_rejected] -> VERIFIED_BY: [prepare_missing_candidate]"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "backend.tests.services.clean_release.test_preparation_service.test_prepare_candidate_no_active_policy",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 154,
- "end_line": 168,
- "tags": {
- "PURPOSE": "Verify preparation raises ValueError when no active policy is available.",
- "TEST_CONTRACT": "[candidate_present + missing_active_policy] -> [ValueError('Active clean policy not found')]",
- "TEST_SCENARIO": "[prepare_missing_policy] -> [raises active policy missing error]",
- "TEST_FIXTURE": "[INLINE_MOCKS] -> INLINE_JSON",
- "TEST_EDGE": "[invalid_type] -> [policy dependency resolves to None]",
- "TEST_INVARIANT": "[active_policy_required] -> VERIFIED_BY: [prepare_missing_policy]"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
{
"name": "_mock_policy",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
+ "start_line": 25,
+ "end_line": 42,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Build a valid clean profile policy fixture for preparation tests."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPreparationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73453,13 +146803,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
+ "start_line": 45,
+ "end_line": 66,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Build an internal-only source registry fixture for preparation tests."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPreparationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73472,13 +146826,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 54,
- "end_line": 54,
+ "start_line": 69,
+ "end_line": 84,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Build a draft release candidate fixture with provided identifier."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPreparationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73491,13 +146849,22 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 73,
+ "start_line": 87,
+ "end_line": 136,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify candidate transitions to PREPARED when evaluation returns no violations.",
+ "TEST_CONTRACT": "[valid_candidate + active_policy + internal_sources + no_violations] -> [status=PREPARED, manifest_persisted, candidate_saved]",
+ "TEST_SCENARIO": "[prepare_success] -> [prepared status and persistence side effects are produced]",
+ "TEST_FIXTURE": "[INLINE_MOCKS] -> INLINE_JSON",
+ "TEST_EDGE": "[external_fail] -> [none; dependency interactions mocked and successful]",
+ "TEST_INVARIANT": "[prepared_flow_persists_state] -> VERIFIED_BY: [prepare_success]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPreparationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73510,13 +146877,22 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 110,
- "end_line": 110,
+ "start_line": 139,
+ "end_line": 187,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify candidate transitions to BLOCKED when evaluation returns blocking violations.",
+ "TEST_CONTRACT": "[valid_candidate + active_policy + evaluation_with_violations] -> [status=BLOCKED, violations_exposed]",
+ "TEST_SCENARIO": "[prepare_blocked_due_to_policy] -> [blocked status and violation list are produced]",
+ "TEST_FIXTURE": "[INLINE_MOCKS] -> INLINE_JSON",
+ "TEST_EDGE": "[external_fail] -> [none; dependency interactions mocked and successful]",
+ "TEST_INVARIANT": "[blocked_flow_reports_violations] -> VERIFIED_BY: [prepare_blocked_due_to_policy]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPreparationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73529,13 +146905,22 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 146,
- "end_line": 146,
+ "start_line": 190,
+ "end_line": 206,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify preparation raises ValueError when candidate does not exist.",
+ "TEST_CONTRACT": "[missing_candidate] -> [ValueError('Candidate not found')]",
+ "TEST_SCENARIO": "[prepare_missing_candidate] -> [raises candidate not found error]",
+ "TEST_FIXTURE": "[INLINE_MOCKS] -> INLINE_JSON",
+ "TEST_EDGE": "[missing_field] -> [candidate lookup returns None]",
+ "TEST_INVARIANT": "[missing_candidate_is_rejected] -> VERIFIED_BY: [prepare_missing_candidate]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPreparationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73548,13 +146933,22 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 161,
- "end_line": 161,
+ "start_line": 209,
+ "end_line": 226,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify preparation raises ValueError when no active policy is available.",
+ "TEST_CONTRACT": "[candidate_present + missing_active_policy] -> [ValueError('Active clean policy not found')]",
+ "TEST_SCENARIO": "[prepare_missing_policy] -> [raises active policy missing error]",
+ "TEST_FIXTURE": "[INLINE_MOCKS] -> INLINE_JSON",
+ "TEST_EDGE": "[invalid_type] -> [policy dependency resolves to None]",
+ "TEST_INVARIANT": "[active_policy_required] -> VERIFIED_BY: [prepare_missing_policy]"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPreparationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -73570,12 +146964,12 @@
}
},
{
- "name": "backend.src.services.clean_release.stages.no_external_endpoints",
+ "name": "no_external_endpoints",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 82,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, compliance-stage, endpoints, network",
@@ -73635,18 +147029,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:no_external_endpoints:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.stages.internal_sources_only",
+ "name": "internal_sources_only",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 76,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, compliance-stage, source-isolation, registry",
@@ -73706,18 +147106,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:internal_sources_only:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.stages.data_purity",
+ "name": "data_purity",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 66,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, compliance-stage, data-purity",
@@ -73777,18 +147183,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:data_purity:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.stages.base",
+ "name": "base",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 123,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, compliance, stages, contracts, base",
@@ -73922,24 +147334,29 @@
}
],
"compliance": {
- "valid": true,
+ "valid": false,
"issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:base:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ },
{
"message": "Invalid @RELATION predicate: CALLED_BY. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.stages.manifest_consistency",
+ "name": "manifest_consistency",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 70,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, compliance-stage, manifest, consistency, digest",
@@ -73999,18 +147416,24 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:manifest_consistency:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
- "name": "backend.src.services.clean_release.stages",
+ "name": "stages",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 80,
+ "end_line": null,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, compliance, stages, state-machine",
@@ -74030,8 +147453,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 29,
- "end_line": 40,
+ "start_line": 34,
+ "end_line": 45,
"tags": {
"PURPOSE": "Build default deterministic stage pipeline implementation order.",
"PRE": "None.",
@@ -74050,8 +147473,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 43,
- "end_line": 49,
+ "start_line": 48,
+ "end_line": 80,
"tags": {
"PURPOSE": "Convert stage result list to dictionary by stage name.",
"PRE": "stage_results may be empty or contain unique stage names.",
@@ -74070,8 +147493,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 58,
+ "start_line": 83,
+ "end_line": 89,
"tags": {
"PURPOSE": "Identify mandatory stages that are absent from run results.",
"PRE": "stage_status_map contains zero or more known stage statuses.",
@@ -74090,8 +147513,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 61,
- "end_line": 79,
+ "start_line": 92,
+ "end_line": 110,
"tags": {
"PURPOSE": "Derive final run status from stage results with deterministic blocking behavior.",
"PRE": "Stage statuses correspond to compliance checks.",
@@ -74107,9 +147530,15 @@
}
],
"compliance": {
- "valid": true,
- "issues": [],
- "score": 0.925
+ "valid": false,
+ "issues": [
+ {
+ "message": "Unclosed Anchor: [DEF:stages:Module] started at line 1",
+ "severity": "ERROR",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
}
},
{
@@ -75310,7 +148739,7 @@
}
},
{
- "name": "backend.src.services.reports.normalizer",
+ "name": "normalizer",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
@@ -75326,15 +148755,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.task_manager.models.Task"
+ "target": "backend.src.core.task_manager.models.Task:Function"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.report"
+ "target": "backend.src.models.report:Function"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.reports.type_profiles"
+ "target": "backend.src.services.reports.type_profiles:Function"
}
],
"children": [
@@ -75459,14 +148888,14 @@
}
},
{
- "name": "backend.src.services.reports.type_profiles",
+ "name": "type_profiles",
"type": "Module",
- "complexity": 5,
- "tier": "CRITICAL",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 123,
+ "end_line": 129,
"tags": {
- "COMPLEXITY": "5",
+ "COMPLEXITY": "2",
"SEMANTICS": "reports, type_profiles, normalization, fallback",
"PURPOSE": "Deterministic mapping of plugin/task identifiers to canonical report task types and fallback profile metadata.",
"LAYER": "Domain",
@@ -75475,7 +148904,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.report.TaskType"
+ "target": "TaskType"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "resolve_task_type"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "get_type_profile"
}
],
"children": [
@@ -75484,8 +148921,8 @@
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 16,
- "end_line": 26,
+ "start_line": 18,
+ "end_line": 28,
"tags": {
"PURPOSE": "Maps plugin identifiers to normalized report task types."
},
@@ -75502,8 +148939,8 @@
"type": "Data",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 74,
+ "start_line": 30,
+ "end_line": 76,
"tags": {
"PURPOSE": "Profile metadata registry for each normalized task type."
},
@@ -75520,8 +148957,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 77,
- "end_line": 100,
+ "start_line": 79,
+ "end_line": 104,
"tags": {
"PURPOSE": "Resolve canonical task type from plugin/task identifier with guaranteed fallback.",
"PRE": "plugin_id may be None or unknown.",
@@ -75546,8 +148983,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 103,
- "end_line": 121,
+ "start_line": 107,
+ "end_line": 127,
"tags": {
"PURPOSE": "Return deterministic profile metadata for a task type.",
"PRE": "task_type may be known or unknown.",
@@ -75569,34 +149006,24 @@
}
],
"compliance": {
- "valid": false,
+ "valid": true,
"issues": [
{
- "message": "Missing Mandatory Tag: @PRE (required for complexity 5)",
- "severity": "ERROR",
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @POST (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 5)",
- "severity": "ERROR",
- "line_number": 1
- },
- {
- "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for complexity 5)",
- "severity": "ERROR",
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
"line_number": 1
}
],
- "score": 0.0
+ "score": 0.7
}
},
{
- "name": "backend.src.services.reports.report_service",
+ "name": "report_service",
"type": "Module",
"complexity": 5,
"tier": "CRITICAL",
@@ -75612,15 +149039,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.core.task_manager.manager.TaskManager"
+ "target": "backend.src.core.task_manager.manager.TaskManager:Function"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.models.report"
+ "target": "backend.src.models.report:Function"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.reports.normalizer"
+ "target": "backend.src.services.reports.normalizer:Function"
}
],
"children": [
@@ -75645,7 +149072,7 @@
"relations": [],
"children": [
{
- "name": "__init__",
+ "name": "init",
"type": "Function",
"complexity": 5,
"tier": "CRITICAL",
@@ -75908,6 +149335,25 @@
],
"score": 0.0
}
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 51,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
}
],
"compliance": {
@@ -75938,7 +149384,7 @@
}
},
{
- "name": "src.services.reports",
+ "name": "reports",
"type": "Package",
"complexity": 1,
"tier": "TRIVIAL",
@@ -75956,96 +149402,90 @@
}
},
{
- "name": "test_type_profiles",
- "type": "Module",
+ "name": "test_resolve_task_type_fallbacks",
+ "type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 1,
- "end_line": 47,
+ "start_line": 12,
+ "end_line": 22,
"tags": {
- "PURPOSE": "Auto-generated module for backend/src/services/reports/__tests__/test_type_profiles.py",
- "COMPLEXITY": "1",
- "LAYER": "Unknown"
+ "TEST_FIXTURE": "valid_plugin"
},
- "relations": [],
- "children": [
+ "relations": [
{
- "name": "test_resolve_task_type_fallbacks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 12,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_resolve_task_type_valid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_type_profile_valid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 28,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_type_profile_fallback",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 37,
- "end_line": 37,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
+ "type": "BINDS_TO",
+ "target": "__tests__/test_report_type_profiles"
}
],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_resolve_task_type_valid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 34,
+ "tags": {
+ "TEST_FIXTURE": "valid_profile"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_report_type_profiles"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_type_profile_valid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 36,
+ "end_line": 47,
+ "tags": {
+ "TEST_INVARIANT": "always_returns_dict",
+ "TEST_EDGE": "missing_profile"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_report_type_profiles"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_type_profile_fallback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 49,
+ "end_line": 62,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "__tests__/test_report_type_profiles"
+ }
+ ],
+ "children": [],
"compliance": {
"valid": true,
"issues": [],
@@ -76055,19 +149495,19 @@
{
"name": "test_report_service",
"type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 183,
+ "end_line": 187,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"PURPOSE": "Unit tests for ReportsService list/detail operations",
"LAYER": "Domain"
},
"relations": [
{
"type": "TESTS",
- "target": "backend.src.services.reports.report_service.ReportsService"
+ "target": "ReportsService:Class"
}
],
"children": [
@@ -76077,12 +149517,14 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 16,
- "end_line": 16,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "end_line": 33,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_report_service"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -76095,8 +149537,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 34,
+ "start_line": 38,
+ "end_line": 38,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76114,8 +149556,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 40,
+ "start_line": 44,
+ "end_line": 44,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76133,8 +149575,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 48,
+ "start_line": 52,
+ "end_line": 52,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76152,8 +149594,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 57,
- "end_line": 57,
+ "start_line": 61,
+ "end_line": 61,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76171,8 +149613,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 70,
+ "start_line": 74,
+ "end_line": 74,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76190,8 +149632,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 82,
+ "start_line": 86,
+ "end_line": 86,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76209,8 +149651,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 93,
- "end_line": 93,
+ "start_line": 97,
+ "end_line": 97,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76228,8 +149670,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 104,
+ "start_line": 108,
+ "end_line": 108,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76247,8 +149689,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 117,
- "end_line": 117,
+ "start_line": 121,
+ "end_line": 121,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76266,8 +149708,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 130,
- "end_line": 130,
+ "start_line": 134,
+ "end_line": 134,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76285,8 +149727,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 142,
- "end_line": 142,
+ "start_line": 146,
+ "end_line": 146,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76304,8 +149746,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 148,
- "end_line": 148,
+ "start_line": 152,
+ "end_line": 152,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76323,8 +149765,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 155,
- "end_line": 155,
+ "start_line": 159,
+ "end_line": 159,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76342,8 +149784,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 160,
- "end_line": 160,
+ "start_line": 164,
+ "end_line": 164,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76361,8 +149803,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 170,
- "end_line": 170,
+ "start_line": 174,
+ "end_line": 174,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76380,8 +149822,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 176,
- "end_line": 176,
+ "start_line": 180,
+ "end_line": 180,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -76398,29 +149840,24 @@
"compliance": {
"valid": true,
"issues": [
- {
- "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
{
"message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.5499999999999999
+ "score": 0.85
}
},
{
- "name": "backend.tests.test_report_normalizer",
+ "name": "test_report_normalizer",
"type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
+ "complexity": 2,
+ "tier": "TRIVIAL",
"start_line": 1,
- "end_line": 68,
+ "end_line": 84,
"tags": {
- "COMPLEXITY": "3",
+ "COMPLEXITY": "2",
"SEMANTICS": "tests, reports, normalizer, fallback",
"PURPOSE": "Validate unknown task type fallback and partial payload normalization behavior.",
"LAYER": "Domain (Tests)",
@@ -76429,7 +149866,7 @@
"relations": [
{
"type": "TESTS",
- "target": "backend.src.services.reports.normalizer"
+ "target": "normalize_report:Function"
}
],
"children": [
@@ -76439,12 +149876,16 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 15,
- "end_line": 15,
+ "end_line": 36,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Ensure unknown plugin IDs map to unknown profile with populated summary and error context."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_report_normalizer"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -76457,13 +149898,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 33,
- "end_line": 33,
+ "start_line": 39,
+ "end_line": 60,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Ensure missing result payload still yields visible report details with result placeholder."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_report_normalizer"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -76476,13 +149921,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 51,
+ "start_line": 63,
+ "end_line": 83,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Ensure clean-release plugin ID maps to clean_release task profile and summary passthrough."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_report_normalizer"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -76500,7 +149949,2700 @@
"line_number": 1
}
],
- "score": 0.775
+ "score": 0.85
+ }
+ },
+ {
+ "name": "SemanticSourceResolver",
+ "type": "Module",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 400,
+ "tags": {
+ "COMPLEXITY": "4",
+ "SEMANTICS": "dataset_review, semantic_resolution, dictionary, trusted_sources, ranking",
+ "PURPOSE": "Resolve and rank semantic candidates from trusted dictionary-like sources before any inferred fallback.",
+ "LAYER": "Domain",
+ "PRE": "selected source and target field set must be known.",
+ "POST": "candidate ranking follows the configured confidence hierarchy and unresolved fuzzy matches remain reviewable.",
+ "SIDE_EFFECT": "may create conflict findings and semantic candidate records.",
+ "INVARIANT": "Manual overrides are never silently replaced by imported, inferred, or AI-generated values."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "LLMProviderService"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticSource"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticCandidate"
+ }
+ ],
+ "children": [
+ {
+ "name": "imports",
+ "type": "Block",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 17,
+ "end_line": 29,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DictionaryResolutionResult",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 41,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Carries field-level dictionary resolution output with explicit review and partial-recovery state."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SemanticSourceResolver",
+ "type": "Class",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 44,
+ "end_line": 398,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Resolve semantic candidates from trusted sources while preserving manual locks and confidence ordering.",
+ "PRE": "source payload and target field collection are provided by the caller.",
+ "POST": "result contains confidence-ranked candidates and does not overwrite manual locks implicitly.",
+ "SIDE_EFFECT": "emits semantic trace logs for ranking and fallback decisions."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticCandidate"
+ }
+ ],
+ "children": [
+ {
+ "name": "resolve_from_file",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 58,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Normalize uploaded semantic file records into field-level candidates."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "resolve_from_dictionary",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 60,
+ "end_line": 216,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Resolve candidates from connected tabular dictionary sources.",
+ "PRE": "dictionary source exists and fields contain stable field_name values.",
+ "POST": "returns confidence-ranked candidates where exact dictionary matches outrank fuzzy matches and unresolved fields stay explicit.",
+ "SIDE_EFFECT": "emits belief-state logs describing trusted-match and partial-recovery outcomes.",
+ "DATA_CONTRACT": "Input[source_payload:Mapping,fields:Iterable] -> Output[DictionaryResolutionResult]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticCandidate"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "resolve_from_reference_dataset",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 218,
+ "end_line": 227,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Reuse semantic metadata from trusted Superset datasets."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "rank_candidates",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 229,
+ "end_line": 245,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Apply confidence ordering and determine best candidate per field."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticCandidate"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "detect_conflicts",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 247,
+ "end_line": 252,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Mark competing candidate sets that require explicit user review."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "apply_field_decision",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 254,
+ "end_line": 261,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Accept, reject, or manually override a field-level semantic value."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "propagate_source_version_update",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 263,
+ "end_line": 318,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Propagate a semantic source version change to unlocked field entries without silently overwriting manual or locked values.",
+ "PRE": "source is persisted and fields belong to the same session aggregate.",
+ "POST": "unlocked fields linked to the source carry the new source version and are marked reviewable; manual or locked fields keep their active values untouched.",
+ "SIDE_EFFECT": "mutates in-memory field state for the caller to persist.",
+ "DATA_CONTRACT": "Input[SemanticSource,List[SemanticFieldEntry]] -> Output[Dict[str,int]]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticSource"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticFieldEntry"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "_normalize_dictionary_row",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 320,
+ "end_line": 338,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Normalize one dictionary row into a consistent lookup structure."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_find_fuzzy_matches",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 340,
+ "end_line": 356,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Produce confidence-scored fuzzy matches while keeping them reviewable."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_candidate_payload",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 358,
+ "end_line": 377,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Project normalized dictionary rows into semantic candidate payloads."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_match_priority",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 379,
+ "end_line": 390,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Encode trusted-confidence ordering so exact dictionary reuse beats fuzzy invention."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_normalize_key",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 392,
+ "end_line": 397,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Normalize field identifiers for stable exact/fuzzy comparisons."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 400 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.8071428571428572
+ }
+ },
+ {
+ "name": "SessionEventLoggerModule",
+ "type": "Module",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 158,
+ "tags": {
+ "COMPLEXITY": "4",
+ "SEMANTICS": "dataset_review, audit, session_events, persistence, observability",
+ "PURPOSE": "Persist explicit session mutation events for dataset-review audit trails without weakening ownership or approval invariants.",
+ "LAYER": "Domain",
+ "PRE": "Caller provides an owned session scope and an authenticated actor identifier for each persisted mutation event.",
+ "POST": "Every logged event is committed as an explicit, queryable audit record with deterministic event metadata.",
+ "SIDE_EFFECT": "Inserts persisted session event rows and emits runtime belief-state logs for audit-sensitive mutations.",
+ "DATA_CONTRACT": "Input[SessionEventPayload] -> Output[SessionEvent]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionEvent"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [
+ {
+ "name": "SessionEventLoggerImports",
+ "type": "Block",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 15,
+ "end_line": 23,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionEventPayload",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 38,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Typed input contract for one persisted dataset-review session audit event."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "SessionEventLogger",
+ "type": "Class",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 41,
+ "end_line": 156,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist explicit dataset-review session audit events with meaningful runtime reasoning logs.",
+ "PRE": "The database session is live and payload identifiers are non-empty.",
+ "POST": "Returns the committed session event row with a stable identifier and stored detail payload.",
+ "SIDE_EFFECT": "Writes one audit row to persistence and emits logger.reason/logger.reflect traces.",
+ "DATA_CONTRACT": "Input[SessionEventPayload] -> Output[SessionEvent]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionEvent"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionEventPayload"
+ }
+ ],
+ "children": [
+ {
+ "name": "SessionEventLogger_init",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 51,
+ "end_line": 56,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Bind a live SQLAlchemy session to the session-event logger."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "log_event",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 58,
+ "end_line": 129,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist one explicit session event row for an owned dataset-review mutation.",
+ "PRE": "session_id, actor_user_id, event_type, and event_summary are non-empty.",
+ "POST": "Returns the committed SessionEvent record with normalized detail payload.",
+ "SIDE_EFFECT": "Inserts and commits one session_events row.",
+ "DATA_CONTRACT": "Input[SessionEventPayload] -> Output[SessionEvent]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionEvent"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "log_for_session",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 131,
+ "end_line": 155,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Convenience wrapper for logging an event directly from a session aggregate root."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SessionEventLogger.log_event"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 54,
+ "end_line": 54,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9571428571428571
+ }
+ },
+ {
+ "name": "DatasetReviewOrchestrator",
+ "type": "Module",
+ "complexity": 5,
+ "tier": "CRITICAL",
+ "start_line": 1,
+ "end_line": 1180,
+ "tags": {
+ "COMPLEXITY": "5",
+ "SEMANTICS": "dataset_review, orchestration, session_lifecycle, intake, recovery",
+ "PURPOSE": "Coordinate dataset review session startup and lifecycle-safe intake recovery for one authenticated user.",
+ "LAYER": "Domain",
+ "PRE": "session mutations must execute inside a persisted session boundary scoped to one authenticated user.",
+ "POST": "state transitions are persisted atomically and emit observable progress for long-running steps.",
+ "SIDE_EFFECT": "creates task records, updates session aggregates, triggers upstream Superset calls, persists audit artifacts.",
+ "DATA_CONTRACT": "Input[SessionCommand] -> Output[DatasetReviewSession | CompiledPreview | DatasetRunContext]",
+ "INVARIANT": "Launch is blocked unless a current session has no open blocking findings, all launch-sensitive mappings are approved, and a non-stale Superset-generated compiled preview matches the current input fingerprint."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSessionRepository"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticSourceResolver"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetContextExtractor"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetCompilationAdapter"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskManager"
+ },
+ {
+ "type": "CONTAINS",
+ "target": "DatasetReviewOrchestrator"
+ }
+ ],
+ "children": [
+ {
+ "name": "imports",
+ "type": "Block",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 73,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "StartSessionCommand",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 78,
+ "end_line": 89,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Typed input contract for starting a dataset review session."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "StartSessionResult",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 102,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Session-start result carrying the persisted session and intake recovery metadata."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "PreparePreviewCommand",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 105,
+ "end_line": 114,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Typed input contract for compiling one Superset-backed session preview."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "PreparePreviewResult",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 117,
+ "end_line": 127,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Result contract for one persisted compiled preview attempt."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "LaunchDatasetCommand",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 130,
+ "end_line": 139,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Typed input contract for launching one dataset-review session into SQL Lab."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "LaunchDatasetResult",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 142,
+ "end_line": 152,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Launch result carrying immutable run context and any gate blockers surfaced before launch."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "DatasetReviewOrchestrator",
+ "type": "Class",
+ "complexity": 5,
+ "tier": "CRITICAL",
+ "start_line": 155,
+ "end_line": 1178,
+ "tags": {
+ "COMPLEXITY": "5",
+ "PURPOSE": "Coordinate safe session startup while preserving cross-user isolation and explicit partial recovery.",
+ "PRE": "constructor dependencies are valid and tied to the current request/task scope.",
+ "POST": "orchestrator instance can execute session-scoped mutations for one authenticated user.",
+ "SIDE_EFFECT": "downstream operations may persist session/profile/finding state and enqueue background tasks.",
+ "DATA_CONTRACT": "Input[StartSessionCommand] -> Output[StartSessionResult]",
+ "INVARIANT": "session ownership is preserved on every mutation and recovery remains explicit when partial."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSessionRepository"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetContextExtractor"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskManager"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConfigManager"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticSourceResolver"
+ }
+ ],
+ "children": [
+ {
+ "name": "DatasetReviewOrchestrator_init",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 169,
+ "end_line": 191,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Bind repository, config, and task dependencies required by the orchestration boundary.",
+ "PRE": "repository/config_manager are valid collaborators for the current request scope.",
+ "POST": "Instance holds collaborator references used by start/preview/launch orchestration methods.",
+ "SIDE_EFFECT": "Stores dependency references for later session lifecycle operations."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSessionRepository"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ConfigManager"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TaskManager"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SemanticSourceResolver"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "start_session",
+ "type": "Function",
+ "complexity": 5,
+ "tier": "CRITICAL",
+ "start_line": 193,
+ "end_line": 386,
+ "tags": {
+ "COMPLEXITY": "5",
+ "PURPOSE": "Initialize a new session from a Superset link or dataset selection and trigger context recovery.",
+ "PRE": "source input is non-empty and environment is accessible.",
+ "POST": "session exists in persisted storage with intake/recovery state and task linkage when async work is required.",
+ "SIDE_EFFECT": "persists session and may enqueue recovery task.",
+ "DATA_CONTRACT": "Input[StartSessionCommand] -> Output[StartSessionResult]",
+ "INVARIANT": "no cross-user session leakage occurs; session and follow-up task remain owned by the authenticated user."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSessionRepository"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetContextExtractor.parse_superset_link"
+ },
+ {
+ "type": "CALLS",
+ "target": "TaskManager.create_task"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.95
+ }
+ },
+ {
+ "name": "prepare_launch_preview",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 388,
+ "end_line": 498,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Assemble effective execution inputs and trigger Superset-side preview compilation.",
+ "PRE": "all required variables have candidate values or explicitly accepted defaults.",
+ "POST": "returns preview artifact in pending, ready, failed, or stale state.",
+ "SIDE_EFFECT": "persists preview attempt and upstream compilation diagnostics.",
+ "DATA_CONTRACT": "Input[PreparePreviewCommand] -> Output[PreparePreviewResult]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetCompilationAdapter.compile_preview"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "launch_dataset",
+ "type": "Function",
+ "complexity": 5,
+ "tier": "CRITICAL",
+ "start_line": 500,
+ "end_line": 632,
+ "tags": {
+ "COMPLEXITY": "5",
+ "PURPOSE": "Start the approved dataset execution through SQL Lab and persist run context for audit/replay.",
+ "PRE": "session is run-ready and compiled preview is current.",
+ "POST": "returns persisted run context with SQL Lab session reference and launch outcome.",
+ "SIDE_EFFECT": "creates SQL Lab execution session and audit snapshot.",
+ "DATA_CONTRACT": "Input[LaunchDatasetCommand] -> Output[LaunchDatasetResult]",
+ "INVARIANT": "launch remains blocked unless blocking findings are closed, approvals are satisfied, and the latest Superset preview fingerprint matches current execution inputs."
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetCompilationAdapter.create_sql_lab_session"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.95
+ }
+ },
+ {
+ "name": "_parse_dataset_selection",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 634,
+ "end_line": 655,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Normalize dataset-selection payload into canonical session references."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_initial_profile",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 657,
+ "end_line": 698,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Create the first profile snapshot so exports and detail views remain usable immediately after intake."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetProfile"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_partial_recovery_findings",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 700,
+ "end_line": 730,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Project partial Superset intake recovery into explicit findings without blocking session usability.",
+ "PRE": "parsed_context.partial_recovery is true.",
+ "POST": "returns warning-level findings that preserve usable but incomplete state.",
+ "SIDE_EFFECT": "none beyond structured finding creation.",
+ "DATA_CONTRACT": "Input[SupersetParsedContext] -> Output[List[ValidationFinding]]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ValidationFinding"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 700
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 700
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 700
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_build_recovery_bootstrap",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 732,
+ "end_line": 889,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Recover and materialize initial imported filters, template variables, and draft execution mappings after session creation.",
+ "PRE": "session belongs to the just-created review aggregate and parsed_context was produced for the same environment scope.",
+ "POST": "Returns bootstrap imported filters, template variables, execution mappings, and updated findings without persisting them directly.",
+ "SIDE_EFFECT": "Performs Superset reads through the extractor and may append warning findings for incomplete recovery.",
+ "DATA_CONTRACT": "Input[Environment, DatasetReviewSession, SupersetParsedContext, List[ValidationFinding]] -> Output[Tuple[List[ImportedFilter], List[TemplateVariable], List[ExecutionMapping], List[ValidationFinding]]]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "SupersetContextExtractor.recover_imported_filters"
+ },
+ {
+ "type": "CALLS",
+ "target": "SupersetContextExtractor.discover_template_variables"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "_extract_effective_filter_value",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 891,
+ "end_line": 904,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Separate normalized filter payload metadata from the user-facing effective filter value."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_execution_snapshot",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 906,
+ "end_line": 1042,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Build effective filters, template params, approvals, and fingerprint for preview and launch gating.",
+ "PRE": "Session aggregate includes imported filters, template variables, and current execution mappings.",
+ "POST": "returns deterministic execution snapshot for current session state without mutating persistence.",
+ "SIDE_EFFECT": "none.",
+ "DATA_CONTRACT": "Input[DatasetReviewSession] -> Output[Dict[str,Any]]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 906
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 906
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 906
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_build_launch_blockers",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1044,
+ "end_line": 1085,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Enforce launch gates from findings, approvals, and current preview truth.",
+ "PRE": "execution_snapshot was computed from current session state and preview is the latest persisted preview or None.",
+ "POST": "returns explicit blocker codes for every unmet launch invariant.",
+ "SIDE_EFFECT": "none.",
+ "DATA_CONTRACT": "Input[DatasetReviewSession,Dict[str,Any],CompiledPreview|None] -> Output[List[str]]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "CompiledPreview"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1044
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1044
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 1044
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_get_latest_preview",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1087,
+ "end_line": 1106,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Resolve the current latest preview snapshot for one session aggregate."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_compute_preview_fingerprint",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 1108,
+ "end_line": 1115,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Produce deterministic execution fingerprint for preview truth and staleness checks."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_enqueue_recovery_task",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1117,
+ "end_line": 1175,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Link session start to observable async recovery when task infrastructure is available.",
+ "PRE": "session is already persisted.",
+ "POST": "returns task identifier when a task could be enqueued, otherwise None.",
+ "SIDE_EFFECT": "may create one background task for progressive recovery.",
+ "DATA_CONTRACT": "Input[StartSessionCommand,DatasetReviewSession,SupersetParsedContext|None] -> Output[task_id:str|None]"
+ },
+ "relations": [
+ {
+ "type": "CALLS",
+ "target": "TaskManager.create_task"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9571428571428571
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 179,
+ "end_line": 179,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: CONTAINS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 1180 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.31666666666666665
+ }
+ },
+ {
+ "name": "dataset_review",
+ "type": "Module",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 1,
+ "end_line": 8,
+ "tags": {
+ "SEMANTICS": "dataset, review, orchestration",
+ "PURPOSE": "Provides services for dataset-centered orchestration flow.",
+ "LAYER": "Services"
+ },
+ "relations": [
+ {
+ "type": "EXPORTS",
+ "target": "DatasetReviewOrchestrator:Class"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: EXPORTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "ClarificationEngine",
+ "type": "Module",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 552,
+ "tags": {
+ "COMPLEXITY": "4",
+ "SEMANTICS": "dataset_review, clarification, question_payload, answer_persistence, readiness, findings",
+ "PURPOSE": "Manage one-question-at-a-time clarification state, deterministic answer persistence, and readiness/finding updates.",
+ "LAYER": "Domain",
+ "PRE": "Target session contains a persisted clarification aggregate in the current ownership scope.",
+ "POST": "Active clarification payload exposes one highest-priority unresolved question, and each recorded answer is persisted before pointer/readiness mutation.",
+ "SIDE_EFFECT": "Persists clarification answers, question/session states, and related readiness/finding changes.",
+ "DATA_CONTRACT": "Input[DatasetReviewSession|ClarificationAnswerCommand] -> Output[ClarificationStateResult]",
+ "INVARIANT": "Only one active clarification question may exist at a time; skipped and expert-review items remain unresolved and visible."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSessionRepository"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationQuestion"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationAnswer"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ValidationFinding"
+ }
+ ],
+ "children": [
+ {
+ "name": "imports",
+ "type": "Block",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 18,
+ "end_line": 45,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationQuestionPayload",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 48,
+ "end_line": 62,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Typed active-question payload returned to the API layer."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationStateResult",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 65,
+ "end_line": 74,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Clarification state result carrying the current session, active payload, and changed findings."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationAnswerCommand",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 87,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Typed answer command for clarification state mutation."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "ClarificationEngine",
+ "type": "Class",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 90,
+ "end_line": 550,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Provide deterministic one-question-at-a-time clarification selection and answer persistence.",
+ "PRE": "Repository is bound to the current request transaction scope.",
+ "POST": "Returned clarification state is persistence-backed and aligned with session readiness/recommended action.",
+ "SIDE_EFFECT": "Mutates clarification answers, session flags, and related clarification findings."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSessionRepository"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ValidationFinding"
+ }
+ ],
+ "children": [
+ {
+ "name": "ClarificationEngine_init",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 100,
+ "end_line": 105,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Bind repository dependency for clarification persistence operations."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "build_question_payload",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 107,
+ "end_line": 200,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Return the one active highest-priority clarification question payload with why-it-matters, current guess, and options.",
+ "PRE": "Session contains unresolved clarification state or a resumable clarification session.",
+ "POST": "Returns exactly one active/open question payload or None when no unresolved question remains.",
+ "SIDE_EFFECT": "Normalizes the active-question pointer and clarification status in persistence.",
+ "DATA_CONTRACT": "Input[DatasetReviewSession] -> Output[ClarificationQuestionPayload|None]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationQuestion"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationOption"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "record_answer",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 202,
+ "end_line": 329,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist one clarification answer before any pointer/readiness mutation and compute deterministic state impact.",
+ "PRE": "Target question belongs to the session's active clarification session and is still open.",
+ "POST": "Answer row is persisted before current-question pointer advances; skipped/expert-review items remain unresolved and visible.",
+ "SIDE_EFFECT": "Inserts answer row, mutates question/session states, updates clarification findings, and commits.",
+ "DATA_CONTRACT": "Input[ClarificationAnswerCommand] -> Output[ClarificationStateResult]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationAnswer"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ValidationFinding"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "summarize_progress",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 331,
+ "end_line": 339,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Produce a compact progress summary for pause/resume and completion UX."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_latest_clarification_session",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 341,
+ "end_line": 356,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Select the latest clarification session for the current dataset review aggregate."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_find_question",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 358,
+ "end_line": 370,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Resolve a clarification question from the active clarification aggregate."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_select_next_open_question",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 372,
+ "end_line": 387,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Select the next unresolved question in deterministic priority order."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_count_resolved_questions",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 389,
+ "end_line": 398,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Count questions whose answers fully resolved the ambiguity."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_count_remaining_questions",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 400,
+ "end_line": 409,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Count questions still unresolved or deferred after clarification interaction."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_normalize_answer_value",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 411,
+ "end_line": 432,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Validate and normalize answer payload based on answer kind and active question options."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_build_impact_summary",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 434,
+ "end_line": 448,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Build a compact audit note describing how the clarification answer affects session state."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_upsert_clarification_finding",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 450,
+ "end_line": 516,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Keep one finding per clarification topic aligned with answer outcome and unresolved visibility rules."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ValidationFinding"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_derive_readiness_state",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 518,
+ "end_line": 535,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Recompute readiness after clarification mutation while preserving unresolved visibility semantics."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ClarificationSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_derive_recommended_action",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 537,
+ "end_line": 549,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Recompute next-action guidance after clarification mutations."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 552 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.8071428571428572
+ }
+ },
+ {
+ "name": "DatasetReviewSessionRepository",
+ "type": "Module",
+ "complexity": 5,
+ "tier": "CRITICAL",
+ "start_line": 1,
+ "end_line": 415,
+ "tags": {
+ "COMPLEXITY": "5",
+ "PURPOSE": "Persist and retrieve dataset review session aggregates, including readiness, findings, semantic decisions, clarification state, previews, and run contexts.",
+ "LAYER": "Domain",
+ "PRE": "repository operations execute within authenticated request or task scope.",
+ "POST": "session aggregate reads are structurally consistent and writes preserve ownership and version semantics.",
+ "SIDE_EFFECT": "reads and writes SQLAlchemy-backed session aggregates.",
+ "DATA_CONTRACT": "Input[SessionMutation] -> Output[PersistedSessionAggregate]",
+ "INVARIANT": "answers, mapping approvals, preview artifacts, and launch snapshots are never attributed to the wrong user or session."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetProfile"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ValidationFinding"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "CompiledPreview"
+ }
+ ],
+ "children": [
+ {
+ "name": "DatasetReviewSessionRepository",
+ "type": "Class",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 37,
+ "end_line": 413,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Enforce ownership-scoped persistence and retrieval for dataset review session aggregates.",
+ "PRE": "constructor receives a live SQLAlchemy session and callers provide authenticated user scope for guarded reads and writes.",
+ "POST": "repository methods return ownership-scoped aggregates or persisted child records without changing domain meaning.",
+ "SIDE_EFFECT": "mutates and queries the persistence layer through the injected database session.",
+ "DATA_CONTRACT": "Input[OwnedSessionQuery|SessionMutation] -> Output[PersistedSessionAggregate|PersistedChildRecord]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetProfile"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ValidationFinding"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "CompiledPreview"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionEventLogger"
+ }
+ ],
+ "children": [
+ {
+ "name": "init_repo",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 50,
+ "end_line": 57,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Bind one live SQLAlchemy session to the repository instance."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @RELATION (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ },
+ {
+ "message": "Missing Belief State Logging: Function should use belief_scope / molecular methods (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 50
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "get_owned_session",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 59,
+ "end_line": 93,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Resolve one owner-scoped dataset review session for mutation paths without leaking foreign-session state.",
+ "PRE": "session_id and user_id are non-empty identifiers from the authenticated ownership scope.",
+ "POST": "returns the owned session or raises a deterministic access error.",
+ "SIDE_EFFECT": "reads one session row from the current database transaction.",
+ "DATA_CONTRACT": "Input[OwnedSessionQuery] -> Output[DatasetReviewSession|ValueError]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "create_sess",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 95,
+ "end_line": 121,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist an initial dataset review session shell.",
+ "PRE": "session is a new aggregate root bound to the current ownership scope.",
+ "POST": "session is committed, refreshed, and returned with persisted identifiers.",
+ "SIDE_EFFECT": "inserts a session row and commits the active transaction.",
+ "DATA_CONTRACT": "Input[DatasetReviewSession] -> Output[DatasetReviewSession]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "load_detail",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 123,
+ "end_line": 182,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Return the full session aggregate for API and frontend resume flows."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SessionCollaborator"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ },
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ },
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 123
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "save_prof_find",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 184,
+ "end_line": 242,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist profile state and replace validation findings for an owned session in one transaction.",
+ "PRE": "session_id belongs to user_id and the supplied profile/findings belong to the same aggregate scope.",
+ "POST": "stored profile matches the current session and findings are replaced by the supplied collection.",
+ "SIDE_EFFECT": "updates profile rows, deletes stale findings, inserts current findings, and commits the transaction.",
+ "DATA_CONTRACT": "Input[ProfileAndFindingsMutation] -> Output[DatasetReviewSession]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetProfile"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ValidationFinding"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "save_recovery_state",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 244,
+ "end_line": 308,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist imported filters, template variables, and initial execution mappings for one owned session."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "ImportedFilter"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "TemplateVariable"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "ExecutionMapping"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ },
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ },
+ {
+ "message": "Missing Mandatory Tag: @PRE (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ },
+ {
+ "message": "Missing Mandatory Tag: @POST (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for complexity 4)",
+ "severity": "ERROR",
+ "line_number": 244
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "save_prev",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 310,
+ "end_line": 349,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist a preview snapshot and mark prior session previews stale.",
+ "PRE": "session_id belongs to user_id and preview is prepared for the same session aggregate.",
+ "POST": "preview is persisted and the session points to the latest preview identifier.",
+ "SIDE_EFFECT": "updates prior preview statuses, inserts a preview row, mutates the parent session, and commits.",
+ "DATA_CONTRACT": "Input[PreviewMutation] -> Output[CompiledPreview]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "CompiledPreview"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "save_run_ctx",
+ "type": "Function",
+ "complexity": 4,
+ "tier": "STANDARD",
+ "start_line": 351,
+ "end_line": 386,
+ "tags": {
+ "COMPLEXITY": "4",
+ "PURPOSE": "Persist an immutable launch audit snapshot for an owned session.",
+ "PRE": "session_id belongs to user_id and run_context targets the same aggregate.",
+ "POST": "run context is persisted and linked as the latest launch snapshot for the session.",
+ "SIDE_EFFECT": "inserts a run-context row, mutates the parent session pointer, and commits.",
+ "DATA_CONTRACT": "Input[RunContextMutation] -> Output[DatasetRunContext]"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetRunContext"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "list_user_sess",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 388,
+ "end_line": 410,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "List review sessions owned by a specific user ordered by most recent update."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "DatasetReviewSession"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.9400000000000001
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 53,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_get_owned_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 67,
+ "end_line": 67,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "create_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 103,
+ "end_line": 103,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "load_session_detail",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 128,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "save_profile_and_findings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 194,
+ "end_line": 194,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "save_preview",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 319,
+ "end_line": 319,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "save_run_context",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 360,
+ "end_line": 360,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list_sessions_for_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 392,
+ "end_line": 392,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 5)",
+ "severity": "ERROR",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 415 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.2833333333333333
+ }
+ },
+ {
+ "name": "SessionRepositoryTests",
+ "type": "Module",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 311,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Unit tests for DatasetReviewSessionRepository."
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "db_session",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 33,
+ "end_line": 56,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Build isolated in-memory SQLAlchemy session seeded with baseline user/environment rows."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SessionRepositoryTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 59,
+ "end_line": 82,
+ "tags": {
+ "PURPOSE": "Verify session creation and persistence."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SessionRepositoryTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_load_session_detail_ownership",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 85,
+ "end_line": 108,
+ "tags": {
+ "PURPOSE": "Verify ownership enforcement in detail loading."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SessionRepositoryTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_load_session_detail_collaborator",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 111,
+ "end_line": 145,
+ "tags": {
+ "PURPOSE": "Verify collaborator access in detail loading."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SessionRepositoryTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_save_preview_marks_stale",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 148,
+ "end_line": 178,
+ "tags": {
+ "PURPOSE": "Verify that saving a new preview marks old ones as stale."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SessionRepositoryTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_save_profile_and_findings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 181,
+ "end_line": 237,
+ "tags": {
+ "PURPOSE": "Verify persistence of profile and findings."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SessionRepositoryTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_save_run_context",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 240,
+ "end_line": 272,
+ "tags": {
+ "PURPOSE": "Verify saving of run context."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SessionRepositoryTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_list_sessions_for_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 275,
+ "end_line": 310,
+ "tags": {
+ "PURPOSE": "Verify listing of sessions by user."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "SessionRepositoryTests"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "db_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 32,
+ "end_line": 32,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 25
+ }
+ ],
+ "score": 0.85
}
},
{
@@ -79387,32 +155529,42 @@
}
},
{
- "name": "backend.src.plugins.llm_analysis.__tests__.test_service",
+ "name": "TestService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 67,
+ "end_line": 70,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, llm-analysis, fallback, provider-error, unknown-status",
"PURPOSE": "Verify LLM analysis transport/provider failures do not masquerade as dashboard FAIL results."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
"children": [
{
"name": "test_test_runtime_connection_uses_json_completion_transport",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 12,
- "end_line": 37,
+ "start_line": 13,
+ "end_line": 39,
"tags": {
"PURPOSE": "Provider self-test must exercise the same chat completion transport as runtime analysis.",
"PRE": "get_json_completion is available on initialized client.",
"POST": "Self-test forwards a lightweight user message into get_json_completion and returns its payload."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79425,14 +155577,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 40,
- "end_line": 66,
+ "start_line": 42,
+ "end_line": 69,
"tags": {
"PURPOSE": "Infrastructure/provider failures must produce UNKNOWN analysis status rather than FAIL.",
"PRE": "LLMClient.get_json_completion raises provider/auth exception.",
"POST": "Returned payload uses status=UNKNOWN and issue severity UNKNOWN."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79445,8 +155602,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
+ "start_line": 28,
+ "end_line": 28,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -79464,8 +155621,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 56,
- "end_line": 56,
+ "start_line": 59,
+ "end_line": 59,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -79488,7 +155645,7 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -79497,32 +155654,42 @@
}
},
{
- "name": "backend.src.plugins.llm_analysis.__tests__.test_client_headers",
+ "name": "TestClientHeaders",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 30,
+ "end_line": 32,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, llm-client, openrouter, headers",
"PURPOSE": "Verify OpenRouter client initialization includes provider-specific headers."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
"children": [
{
"name": "test_openrouter_client_includes_referer_and_title_headers",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 10,
- "end_line": 29,
+ "start_line": 11,
+ "end_line": 31,
"tags": {
"PURPOSE": "OpenRouter requests should carry site/app attribution headers for compatibility.",
"PRE": "Client is initialized for OPENROUTER provider.",
"POST": "Async client headers include Authorization, HTTP-Referer, and X-Title."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestClientHeaders"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79540,7 +155707,7 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -79549,32 +155716,42 @@
}
},
{
- "name": "backend.src.plugins.llm_analysis.__tests__.test_screenshot_service",
+ "name": "TestScreenshotService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 344,
+ "end_line": 404,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, screenshot-service, navigation, timeout-regression",
"PURPOSE": "Protect dashboard screenshot navigation from brittle networkidle waits."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "src.plugins.llm_analysis.service.ScreenshotService"
+ }
+ ],
"children": [
{
"name": "test_iter_login_roots_includes_child_frames",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 11,
- "end_line": 24,
+ "start_line": 12,
+ "end_line": 28,
"tags": {
"PURPOSE": "Login discovery must search embedded auth frames, not only the main page.",
"PRE": "Page exposes child frames list.",
"POST": "Returned roots include page plus child frames in order."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestScreenshotService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79587,14 +155764,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 27,
- "end_line": 48,
+ "start_line": 31,
+ "end_line": 55,
"tags": {
"PURPOSE": "Direct login fallback must reject responses that render the login screen again.",
"PRE": "Response body contains stable login-page markers.",
"POST": "Helper returns True so caller treats fallback as failed authentication."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestScreenshotService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79607,14 +155789,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 84,
+ "start_line": 58,
+ "end_line": 96,
"tags": {
"PURPOSE": "Locator helper must not reject a selector collection just because its first element is hidden.",
"PRE": "First matched element is hidden and second matched element is visible.",
"POST": "Helper returns the second visible candidate."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestScreenshotService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79627,14 +155814,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 87,
- "end_line": 176,
+ "start_line": 99,
+ "end_line": 207,
"tags": {
"PURPOSE": "Fallback login must submit hidden fields and credentials through the context request cookie jar.",
"PRE": "Login DOM exposes csrf hidden field and request context returns authenticated HTML.",
"POST": "Helper returns True and request payload contains csrf_token plus credentials plus request options."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestScreenshotService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79647,14 +155839,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 179,
- "end_line": 238,
+ "start_line": 210,
+ "end_line": 282,
"tags": {
"PURPOSE": "Fallback login must treat non-login 302 redirect as success without waiting for redirect target.",
"PRE": "Request response is 302 with Location outside login path.",
"POST": "Helper returns True."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestScreenshotService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79667,14 +155864,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 241,
- "end_line": 308,
+ "start_line": 285,
+ "end_line": 365,
"tags": {
"PURPOSE": "Fallback login must fail when POST response still contains login form content.",
"PRE": "Login DOM exposes csrf hidden field and request response renders login markup.",
"POST": "Helper returns False."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestScreenshotService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79687,52 +155889,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 311,
- "end_line": 343,
+ "start_line": 368,
+ "end_line": 403,
"tags": {
"PURPOSE": "Pages with unstable primary wait must retry with fallback wait strategy.",
"PRE": "First page.goto call raises; second succeeds.",
"POST": "Helper returns second response and attempts both wait modes in order."
},
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 58,
- "end_line": 58,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "is_visible",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 62,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestScreenshotService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -79760,31 +155929,12 @@
}
},
{
- "name": "count",
+ "name": "is_visible",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 69,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "nth",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 72,
- "end_line": 72,
+ "start_line": 70,
+ "end_line": 70,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -79802,8 +155952,65 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 94,
+ "start_line": 74,
+ "end_line": 74,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 77,
+ "end_line": 77,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "nth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 80,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 107,
+ "end_line": 107,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -79821,82 +156028,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 98,
- "end_line": 98,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "input_value",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 101,
- "end_line": 101,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 105,
- "end_line": 105,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "count",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 108,
- "end_line": 108,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "nth",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 111,
"end_line": 111,
"tags": {
@@ -79912,7 +156043,26 @@
}
},
{
- "name": "text",
+ "name": "input_value",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 114,
+ "end_line": 114,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -79930,184 +156080,13 @@
"score": 1.0
}
},
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 122,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "post",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 125,
- "end_line": 125,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 137,
- "end_line": 137,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 141,
- "end_line": 141,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "locator",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 145,
- "end_line": 145,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 186,
- "end_line": 186,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "get_attribute",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 190,
- "end_line": 190,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "input_value",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 193,
- "end_line": 193,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 197,
- "end_line": 197,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
{
"name": "count",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 200,
- "end_line": 200,
+ "start_line": 121,
+ "end_line": 121,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80125,8 +156104,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 203,
- "end_line": 203,
+ "start_line": 124,
+ "end_line": 124,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80144,8 +156123,27 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 211,
- "end_line": 211,
+ "start_line": 131,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 135,
+ "end_line": 135,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80163,8 +156161,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 215,
- "end_line": 215,
+ "start_line": 138,
+ "end_line": 138,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80182,8 +156180,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 219,
- "end_line": 219,
+ "start_line": 160,
+ "end_line": 160,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80201,8 +156199,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 223,
- "end_line": 223,
+ "start_line": 164,
+ "end_line": 164,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80220,8 +156218,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 227,
- "end_line": 227,
+ "start_line": 168,
+ "end_line": 168,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80239,8 +156237,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 248,
- "end_line": 248,
+ "start_line": 218,
+ "end_line": 218,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80258,8 +156256,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 252,
- "end_line": 252,
+ "start_line": 222,
+ "end_line": 222,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80277,8 +156275,103 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 255,
- "end_line": 255,
+ "start_line": 225,
+ "end_line": 225,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 229,
+ "end_line": 229,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 232,
+ "end_line": 232,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "nth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 235,
+ "end_line": 235,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "text",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 243,
+ "end_line": 243,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "post",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 247,
+ "end_line": 247,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80310,89 +156403,32 @@
"score": 1.0
}
},
- {
- "name": "count",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 262,
- "end_line": 262,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "nth",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 265,
- "end_line": 265,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "text",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 272,
- "end_line": 272,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "post",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 285,
- "end_line": 285,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 289,
- "end_line": 289,
+ "start_line": 263,
+ "end_line": 263,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "locator",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 267,
+ "end_line": 267,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80425,7 +156461,7 @@
}
},
{
- "name": "locator",
+ "name": "get_attribute",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
@@ -80443,13 +156479,184 @@
"score": 1.0
}
},
+ {
+ "name": "input_value",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 300,
+ "end_line": 300,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 318,
- "end_line": 318,
+ "start_line": 304,
+ "end_line": 304,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "count",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 307,
+ "end_line": 307,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "nth",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 310,
+ "end_line": 310,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "text",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 317,
+ "end_line": 317,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "post",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 330,
+ "end_line": 330,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 342,
+ "end_line": 342,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 346,
+ "end_line": 346,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "locator",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 350,
+ "end_line": 350,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "__init__",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 376,
+ "end_line": 376,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80467,8 +156674,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 321,
- "end_line": 321,
+ "start_line": 379,
+ "end_line": 379,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -80491,12 +156698,12 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 344 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 404 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -81009,7 +157216,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 431,
+ "end_line": 433,
"tags": {
"SEMANTICS": "test, task, persistence, unit_test",
"PURPOSE": "Unit tests for TaskPersistenceService.",
@@ -81019,8 +157226,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "TaskPersistenceService"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -81030,20 +157237,25 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 23,
- "end_line": 109,
+ "end_line": 110,
"tags": {
"PURPOSE": "Test suite for TaskPersistenceService static helper methods.",
"COMPLEXITY": "5"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_task_persistence"
+ }
+ ],
"children": [
{
"name": "test_json_load_if_needed_none",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 28,
- "end_line": 32,
+ "start_line": 29,
+ "end_line": 33,
"tags": {
"PURPOSE": "Test _json_load_if_needed with None input."
},
@@ -81060,8 +157272,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 39,
+ "start_line": 35,
+ "end_line": 40,
"tags": {
"PURPOSE": "Test _json_load_if_needed with dict input."
},
@@ -81078,8 +157290,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 46,
+ "start_line": 42,
+ "end_line": 47,
"tags": {
"PURPOSE": "Test _json_load_if_needed with list input."
},
@@ -81096,8 +157308,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 53,
+ "start_line": 49,
+ "end_line": 54,
"tags": {
"PURPOSE": "Test _json_load_if_needed with JSON string."
},
@@ -81114,8 +157326,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 61,
+ "start_line": 56,
+ "end_line": 62,
"tags": {
"PURPOSE": "Test _json_load_if_needed with empty/null strings."
},
@@ -81132,8 +157344,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 63,
- "end_line": 68,
+ "start_line": 64,
+ "end_line": 69,
"tags": {
"PURPOSE": "Test _json_load_if_needed with non-JSON string."
},
@@ -81150,8 +157362,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 70,
- "end_line": 74,
+ "start_line": 71,
+ "end_line": 75,
"tags": {
"PURPOSE": "Test _json_load_if_needed with integer."
},
@@ -81168,8 +157380,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 76,
- "end_line": 80,
+ "start_line": 77,
+ "end_line": 81,
"tags": {
"PURPOSE": "Test _parse_datetime with None."
},
@@ -81186,8 +157398,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 87,
+ "start_line": 83,
+ "end_line": 88,
"tags": {
"PURPOSE": "Test _parse_datetime with datetime object."
},
@@ -81204,8 +157416,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 89,
- "end_line": 95,
+ "start_line": 90,
+ "end_line": 96,
"tags": {
"PURPOSE": "Test _parse_datetime with ISO string."
},
@@ -81222,8 +157434,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 101,
+ "start_line": 98,
+ "end_line": 102,
"tags": {
"PURPOSE": "Test _parse_datetime with invalid string."
},
@@ -81240,8 +157452,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 103,
- "end_line": 107,
+ "start_line": 104,
+ "end_line": 108,
"tags": {
"PURPOSE": "Test _parse_datetime with non-string, non-datetime."
},
@@ -81256,19 +157468,8 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 23
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 23
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -81276,22 +157477,27 @@
"type": "Class",
"complexity": 3,
"tier": "STANDARD",
- "start_line": 112,
- "end_line": 430,
+ "start_line": 113,
+ "end_line": 432,
"tags": {
"PURPOSE": "Test suite for TaskPersistenceService CRUD operations.",
"COMPLEXITY": "5",
"TEST_DATA": "valid_task -> {\"id\": \"test-uuid-1\", \"plugin_id\": \"backup\", \"status\": \"PENDING\"}"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_task_persistence"
+ }
+ ],
"children": [
{
"name": "setup_class",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 118,
- "end_line": 127,
+ "start_line": 120,
+ "end_line": 129,
"tags": {
"PURPOSE": "Setup in-memory test database."
},
@@ -81308,8 +157514,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 129,
- "end_line": 134,
+ "start_line": 131,
+ "end_line": 136,
"tags": {
"PURPOSE": "Dispose of test database."
},
@@ -81326,8 +157532,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 136,
- "end_line": 144,
+ "start_line": 138,
+ "end_line": 146,
"tags": {
"PURPOSE": "Clean task_records table before each test."
},
@@ -81344,8 +157550,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 164,
- "end_line": 182,
+ "start_line": 166,
+ "end_line": 184,
"tags": {
"PURPOSE": "Test persisting a new task creates a record.",
"PRE": "Empty database.",
@@ -81364,8 +157570,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 184,
- "end_line": 208,
+ "start_line": 186,
+ "end_line": 210,
"tags": {
"PURPOSE": "Test updating an existing task.",
"PRE": "Task already persisted.",
@@ -81384,8 +157590,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 210,
- "end_line": 231,
+ "start_line": 212,
+ "end_line": 233,
"tags": {
"PURPOSE": "Test persisting a task with log entries.",
"PRE": "Task has logs attached.",
@@ -81404,8 +157610,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 233,
- "end_line": 255,
+ "start_line": 235,
+ "end_line": 257,
"tags": {
"PURPOSE": "Test that FAILED task extracts last error message.",
"PRE": "Task has FAILED status with ERROR logs.",
@@ -81424,8 +157630,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 257,
- "end_line": 276,
+ "start_line": 259,
+ "end_line": 278,
"tags": {
"PURPOSE": "Test persisting multiple tasks.",
"PRE": "Empty database.",
@@ -81444,8 +157650,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 278,
- "end_line": 304,
+ "start_line": 280,
+ "end_line": 306,
"tags": {
"PURPOSE": "Test loading tasks from database.",
"PRE": "Tasks persisted.",
@@ -81464,8 +157670,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 306,
- "end_line": 327,
+ "start_line": 308,
+ "end_line": 329,
"tags": {
"PURPOSE": "Test loading tasks filtered by status.",
"PRE": "Tasks with different statuses persisted.",
@@ -81484,8 +157690,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 329,
- "end_line": 347,
+ "start_line": 331,
+ "end_line": 349,
"tags": {
"PURPOSE": "Test loading tasks with limit.",
"PRE": "Multiple tasks persisted.",
@@ -81504,8 +157710,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 349,
- "end_line": 373,
+ "start_line": 351,
+ "end_line": 375,
"tags": {
"PURPOSE": "Test deleting tasks by ID list.",
"PRE": "Tasks persisted.",
@@ -81524,8 +157730,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 375,
- "end_line": 383,
+ "start_line": 377,
+ "end_line": 385,
"tags": {
"PURPOSE": "Test deleting with empty list (no-op).",
"PRE": "None.",
@@ -81544,8 +157750,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 385,
- "end_line": 404,
+ "start_line": 387,
+ "end_line": 406,
"tags": {
"PURPOSE": "Test json_serializable handles datetime in params.",
"PRE": "Task params contain datetime values.",
@@ -81564,8 +157770,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 406,
- "end_line": 428,
+ "start_line": 408,
+ "end_line": 430,
"tags": {
"PURPOSE": "Ensure slug-like environment token resolves to environments.id before persisting task.",
"PRE": "environments table contains env with name convertible to provided slug token.",
@@ -81582,19 +157788,8 @@
],
"compliance": {
"valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 112
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 112
- }
- ],
- "score": 0.5499999999999999
+ "issues": [],
+ "score": 0.85
}
},
{
@@ -81602,8 +157797,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 146,
- "end_line": 146,
+ "start_line": 148,
+ "end_line": 148,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81621,8 +157816,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 153,
- "end_line": 153,
+ "start_line": 155,
+ "end_line": 155,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81640,12 +157835,12 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 431 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 433 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -81659,18 +157854,29 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 4,
- "end_line": 20,
+ "end_line": 21,
"tags": {
"PURPOSE": "Tests that Environment model correctly stores values.",
"PRE": "Environment class is available.",
"POST": "Values are verified."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "TESTS",
+ "target": "Environment"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
- "issues": [],
- "score": 1.0
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 4
+ }
+ ],
+ "score": 0.85
}
},
{
@@ -81679,7 +157885,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 495,
+ "end_line": 503,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "task-manager, lifecycle, CRUD, log-buffer, filtering, tests",
@@ -81689,8 +157895,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.core.task_manager.manager.TaskManager"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -81700,12 +157906,14 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 20,
- "end_line": 20,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "end_line": 55,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_task_manager"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -81718,13 +157926,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 53,
- "end_line": 53,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 57,
+ "end_line": 65,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_task_manager"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -81737,8 +157947,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 62,
+ "start_line": 70,
+ "end_line": 70,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81756,8 +157966,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 69,
+ "start_line": 77,
+ "end_line": 77,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81775,8 +157985,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 76,
- "end_line": 76,
+ "start_line": 84,
+ "end_line": 84,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81794,8 +158004,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 87,
- "end_line": 87,
+ "start_line": 95,
+ "end_line": 95,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81813,8 +158023,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 94,
+ "start_line": 102,
+ "end_line": 102,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81832,8 +158042,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 104,
+ "start_line": 112,
+ "end_line": 112,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81851,8 +158061,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 116,
- "end_line": 116,
+ "start_line": 124,
+ "end_line": 124,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81870,8 +158080,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 135,
- "end_line": 135,
+ "start_line": 143,
+ "end_line": 143,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81889,8 +158099,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 152,
- "end_line": 152,
+ "start_line": 160,
+ "end_line": 160,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81908,8 +158118,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 169,
- "end_line": 169,
+ "start_line": 177,
+ "end_line": 177,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81927,8 +158137,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 198,
- "end_line": 198,
+ "start_line": 206,
+ "end_line": 206,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81946,8 +158156,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 210,
- "end_line": 210,
+ "start_line": 218,
+ "end_line": 218,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81965,8 +158175,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 220,
- "end_line": 220,
+ "start_line": 228,
+ "end_line": 228,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -81984,610 +158194,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 232,
- "end_line": 232,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_add_log_skips_nonexistent_task",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 248,
- "end_line": 248,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_flush_logs_writes_to_persistence",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 256,
- "end_line": 256,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_flush_task_logs_writes_single_task",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 274,
- "end_line": 274,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_flush_logs_requeues_on_failure",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 290,
- "end_line": 290,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_clear_all_non_active",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 311,
- "end_line": 311,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_clear_by_status",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 334,
- "end_line": 334,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_clear_preserves_awaiting_input",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 352,
- "end_line": 352,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_subscribe_creates_queue",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 371,
- "end_line": 371,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_unsubscribe_removes_queue",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 382,
- "end_line": 382,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_multiple_subscribers",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 392,
- "end_line": 392,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_await_input_sets_status",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 408,
- "end_line": 408,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_await_input_not_running_raises",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 429,
- "end_line": 429,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_await_input_nonexistent_raises",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 442,
- "end_line": 442,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_resume_with_password",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 450,
- "end_line": 450,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_resume_not_awaiting_raises",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 469,
- "end_line": 469,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_resume_empty_passwords_raises",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 482,
- "end_line": 482,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 495 lines (must be < 300)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.625
- }
- },
- {
- "name": "backend.tests.test_dashboards_api",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 366,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Comprehensive contract-driven tests for Dashboard Hub API",
- "LAYER": "Domain (Tests)",
- "SEMANTICS": "tests, dashboards, api, contract, remediation",
- "TEST_FIXTURE": "expected_count: 1"
- },
- "relations": [],
- "children": [
- {
- "name": "mock_deps",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 23,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 54,
- "end_line": 54,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_with_search",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 83,
- "end_line": 83,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_empty",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 99,
- "end_line": 99,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_superset_failure",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 115,
- "end_line": 115,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_env_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 129,
- "end_line": 129,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_invalid_pagination",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 135,
- "end_line": 135,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_database_mappings_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 152,
- "end_line": 152,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_database_mappings_env_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 167,
- "end_line": 167,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboard_detail_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 174,
- "end_line": 174,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboard_detail_env_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 194,
- "end_line": 194,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboard_tasks_history_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 201,
- "end_line": 201,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboard_tasks_history_sorting",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 213,
- "end_line": 213,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboard_thumbnail_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 240,
"end_line": 240,
"tags": {
@@ -82603,12 +158209,12 @@
}
},
{
- "name": "test_get_dashboard_thumbnail_env_not_found",
+ "name": "test_add_log_skips_nonexistent_task",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 253,
- "end_line": 253,
+ "start_line": 256,
+ "end_line": 256,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -82621,18 +158227,639 @@
"score": 1.0
}
},
+ {
+ "name": "test_flush_logs_writes_to_persistence",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 264,
+ "end_line": 264,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_flush_task_logs_writes_single_task",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 282,
+ "end_line": 282,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_flush_logs_requeues_on_failure",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 298,
+ "end_line": 298,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_clear_all_non_active",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 319,
+ "end_line": 319,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_clear_by_status",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 342,
+ "end_line": 342,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_clear_preserves_awaiting_input",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 360,
+ "end_line": 360,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_subscribe_creates_queue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 379,
+ "end_line": 379,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_unsubscribe_removes_queue",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 390,
+ "end_line": 390,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_multiple_subscribers",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 400,
+ "end_line": 400,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_await_input_sets_status",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 416,
+ "end_line": 416,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_await_input_not_running_raises",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 437,
+ "end_line": 437,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_await_input_nonexistent_raises",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 450,
+ "end_line": 450,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_resume_with_password",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 458,
+ "end_line": 458,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_resume_not_awaiting_raises",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 477,
+ "end_line": 477,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_resume_empty_passwords_raises",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 490,
+ "end_line": 490,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 503 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.625
+ }
+ },
+ {
+ "name": "TestDashboardsApi",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 586,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Comprehensive contract-driven tests for Dashboard Hub API",
+ "LAYER": "Domain (Tests)",
+ "SEMANTICS": "tests, dashboards, api, contract, remediation"
+ },
+ "relations": [
+ {
+ "type": "VERIFIES",
+ "target": "src.api.routes.dashboards"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_get_dashboards_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 76,
+ "end_line": 115,
+ "tags": {
+ "TEST_FIXTURE": "expected_count: 1"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboards_with_search",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 139,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboards_empty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 142,
+ "end_line": 161,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboards_superset_failure",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 164,
+ "end_line": 181,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboards_env_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 184,
+ "end_line": 193,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboards_invalid_pagination",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 196,
+ "end_line": 216,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_database_mappings_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 219,
+ "end_line": 239,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_database_mappings_env_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 242,
+ "end_line": 254,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboard_detail_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 257,
+ "end_line": 284,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboard_detail_env_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 287,
+ "end_line": 297,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboard_tasks_history_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 300,
+ "end_line": 323,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboard_tasks_history_sorting",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 326,
+ "end_line": 369,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboard_thumbnail_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 372,
+ "end_line": 395,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboard_thumbnail_env_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 398,
+ "end_line": 406,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "test_get_dashboard_thumbnail_202",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 258,
- "end_line": 258,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 409,
+ "end_line": 437,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -82645,13 +158872,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 279,
- "end_line": 279,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 440,
+ "end_line": 458,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -82664,13 +158893,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 291,
- "end_line": 291,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 461,
+ "end_line": 473,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -82683,13 +158914,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 299,
- "end_line": 299,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 476,
+ "end_line": 491,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -82702,13 +158935,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 310,
- "end_line": 310,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 494,
+ "end_line": 509,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -82721,13 +158956,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 321,
- "end_line": 321,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 512,
+ "end_line": 521,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -82740,13 +158977,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 327,
- "end_line": 327,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 524,
+ "end_line": 536,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -82759,13 +158998,15 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 336,
- "end_line": 336,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 539,
+ "end_line": 562,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -82778,116 +159019,29 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 356,
- "end_line": 356,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "start_line": 567,
+ "end_line": 585,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDashboardsApi"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
"issues": [],
"score": 1.0
}
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 366 lines (must be < 300)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.625
- }
- },
- {
- "name": "test_dashboards_api",
- "type": "Test",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 9,
- "end_line": 82,
- "tags": {
- "PURPOSE": "Verify GET /api/dashboards contract compliance",
- "TEST": "Search filter works"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_datasets_api",
- "type": "Test",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 84,
- "end_line": 127,
- "tags": {
- "PURPOSE": "Verify GET /api/datasets contract compliance",
- "TEST": "Negative - Service failure returns 503"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_pagination_boundaries",
- "type": "Test",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 130,
- "end_line": 156,
- "tags": {
- "PURPOSE": "Verify pagination validation for GET endpoints",
- "TEST": "page<1 and page_size>100 return 400"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_resource_hubs",
- "type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 1,
- "end_line": 156,
- "tags": {
- "PURPOSE": "Auto-generated module for backend/tests/test_resource_hubs.py",
- "COMPLEXITY": "1",
- "LAYER": "Unknown"
- },
- "relations": [],
- "children": [
+ },
{
"name": "mock_deps",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 16,
- "end_line": 16,
+ "start_line": 37,
+ "end_line": 37,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -82899,756 +159053,18 @@
"issues": [],
"score": 1.0
}
- },
- {
- "name": "test_get_dashboards_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 62,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 71,
- "end_line": 71,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_search",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 75,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_success",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 91,
- "end_line": 91,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_not_found",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 104,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_search",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 108,
- "end_line": 108,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_service_failure",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 120,
- "end_line": 120,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_pagination_zero_page",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 134,
- "end_line": 134,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_dashboards_pagination_oversize",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 140,
- "end_line": 140,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_pagination_zero_page",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 146,
- "end_line": 146,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_datasets_pagination_oversize",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 151,
- "end_line": 151,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_task_logger",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 374,
- "tags": {
- "SEMANTICS": "test, task_logger, task_context, unit_test",
- "PURPOSE": "Unit tests for TaskLogger and TaskContext.",
- "LAYER": "Test",
- "COMPLEXITY": "3"
- },
- "relations": [
- {
- "type": "TESTS",
- "target": "TaskLogger, TaskContext"
- }
- ],
- "children": [
- {
- "name": "TestTaskLogger",
- "type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 15,
- "end_line": 219,
- "tags": {
- "PURPOSE": "Test suite for TaskLogger.",
- "COMPLEXITY": "3"
- },
- "relations": [],
- "children": [
- {
- "name": "setup_method",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 32,
- "tags": {
- "PURPOSE": "Setup for each test method.",
- "PRE": "None.",
- "POST": "Mock add_log_fn created."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_init",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 43,
- "tags": {
- "PURPOSE": "Test TaskLogger initialization.",
- "PRE": "None.",
- "POST": "Logger instance created with correct attributes."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_with_source",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 56,
- "tags": {
- "PURPOSE": "Test creating a sub-logger with different source.",
- "PRE": "Logger initialized.",
- "POST": "New logger created with different source but same task_id."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_debug",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 58,
- "end_line": 73,
- "tags": {
- "PURPOSE": "Test debug log level.",
- "PRE": "Logger initialized.",
- "POST": "add_log_fn called with DEBUG level."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_info",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 90,
- "tags": {
- "PURPOSE": "Test info log level.",
- "PRE": "Logger initialized.",
- "POST": "add_log_fn called with INFO level."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_warning",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 92,
- "end_line": 107,
- "tags": {
- "PURPOSE": "Test warning log level.",
- "PRE": "Logger initialized.",
- "POST": "add_log_fn called with WARNING level."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_error",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 109,
- "end_line": 124,
- "tags": {
- "PURPOSE": "Test error log level.",
- "PRE": "Logger initialized.",
- "POST": "add_log_fn called with ERROR level."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_error_with_metadata",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 126,
- "end_line": 142,
- "tags": {
- "PURPOSE": "Test error logging with metadata.",
- "PRE": "Logger initialized.",
- "POST": "add_log_fn called with ERROR level and metadata."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_progress",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 144,
- "end_line": 160,
- "tags": {
- "PURPOSE": "Test progress logging.",
- "PRE": "Logger initialized.",
- "POST": "add_log_fn called with INFO level and progress metadata."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_progress_clamping",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 162,
- "end_line": 179,
- "tags": {
- "PURPOSE": "Test progress value clamping (0-100).",
- "PRE": "Logger initialized.",
- "POST": "Progress values clamped to 0-100 range."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_source_override",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 181,
- "end_line": 196,
- "tags": {
- "PURPOSE": "Test overriding the default source.",
- "PRE": "Logger initialized.",
- "POST": "add_log_fn called with overridden source."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_sub_logger_source_independence",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 198,
- "end_line": 217,
- "tags": {
- "PURPOSE": "Test sub-logger independence from parent.",
- "PRE": "Logger and sub-logger initialized.",
- "POST": "Sub-logger has different source, parent unchanged."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 15
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 15
- }
- ],
- "score": 0.5499999999999999
- }
- },
- {
- "name": "TestTaskContext",
- "type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 221,
- "end_line": 373,
- "tags": {
- "PURPOSE": "Test suite for TaskContext.",
- "COMPLEXITY": "3"
- },
- "relations": [],
- "children": [
- {
- "name": "setup_method",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 226,
- "end_line": 240,
- "tags": {
- "PURPOSE": "Setup for each test method.",
- "PRE": "None.",
- "POST": "Mock add_log_fn created."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_init",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 242,
- "end_line": 252,
- "tags": {
- "PURPOSE": "Test TaskContext initialization.",
- "PRE": "None.",
- "POST": "Context instance created with correct attributes."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_task_id_property",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 254,
- "end_line": 261,
- "tags": {
- "PURPOSE": "Test task_id property.",
- "PRE": "Context initialized.",
- "POST": "Returns correct task_id."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_logger_property",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 263,
- "end_line": 273,
- "tags": {
- "PURPOSE": "Test logger property.",
- "PRE": "Context initialized.",
- "POST": "Returns TaskLogger instance."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_params_property",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 275,
- "end_line": 282,
- "tags": {
- "PURPOSE": "Test params property.",
- "PRE": "Context initialized.",
- "POST": "Returns correct params dict."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_param",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 284,
- "end_line": 294,
- "tags": {
- "PURPOSE": "Test getting a specific parameter.",
- "PRE": "Context initialized with params.",
- "POST": "Returns parameter value or default."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_sub_context",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 296,
- "end_line": 308,
- "tags": {
- "PURPOSE": "Test creating a sub-context with different source.",
- "PRE": "Context initialized.",
- "POST": "New context created with different logger source."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_context_logger_delegates_to_task_logger",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 310,
- "end_line": 327,
- "tags": {
- "PURPOSE": "Test context logger delegates to TaskLogger.",
- "PRE": "Context initialized.",
- "POST": "Logger calls are delegated to TaskLogger."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_sub_context_with_source",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 329,
- "end_line": 348,
- "tags": {
- "PURPOSE": "Test sub-context logger uses new source.",
- "PRE": "Context initialized.",
- "POST": "Sub-context logger uses new source."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_multiple_sub_contexts",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 350,
- "end_line": 371,
- "tags": {
- "PURPOSE": "Test creating multiple sub-contexts.",
- "PRE": "Context initialized.",
- "POST": "Each sub-context has independent logger source."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 221
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 221
- }
- ],
- "score": 0.5499999999999999
- }
}
],
"compliance": {
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 374 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 586 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -83656,6 +159072,387 @@
"score": 0.625
}
},
+ {
+ "name": "TestResourceHubs",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 290,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "tests, resource-hubs, dashboards, datasets, pagination, api",
+ "PURPOSE": "Contract tests for resource hub dashboards/datasets listing and pagination boundary validation.",
+ "LAYER": "Domain (Tests)"
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_dashboards_api",
+ "type": "Test",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 20,
+ "end_line": 131,
+ "tags": {
+ "PURPOSE": "Verify GET /api/dashboards contract compliance",
+ "TEST": "Search filter works",
+ "INVARIANT": "unconstrained mock \u2014 no spec= enforced; attribute typos will silently pass"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceHubs"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_get_dashboards_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 92,
+ "end_line": 105,
+ "tags": {
+ "PURPOSE": "Verify dashboards endpoint returns 200 with expected dashboard payload fields."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboards_api"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboards_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 108,
+ "end_line": 116,
+ "tags": {
+ "PURPOSE": "Verify dashboards endpoint returns 404 for unknown environment identifier."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboards_api"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboards_search",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 119,
+ "end_line": 130,
+ "tags": {
+ "PURPOSE": "Verify dashboards endpoint search filter returns matching subset."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_dashboards_api"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_datasets_api",
+ "type": "Test",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 134,
+ "end_line": 232,
+ "tags": {
+ "PURPOSE": "Verify GET /api/datasets contract compliance",
+ "TEST": "Negative - Service failure returns 503"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceHubs"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_get_datasets_success",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 143,
+ "end_line": 169,
+ "tags": {
+ "PURPOSE": "Verify datasets endpoint returns 200 with mapped fields payload."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_datasets_api"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_datasets_not_found",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 172,
+ "end_line": 180,
+ "tags": {
+ "PURPOSE": "Verify datasets endpoint returns 404 for unknown environment identifier."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_datasets_api"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_datasets_search",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 183,
+ "end_line": 215,
+ "tags": {
+ "PURPOSE": "Verify datasets endpoint search filter returns matching dataset subset."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_datasets_api"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_datasets_service_failure",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 218,
+ "end_line": 231,
+ "tags": {
+ "PURPOSE": "Verify datasets endpoint surfaces backend fetch failure as HTTP 503."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_datasets_api"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_pagination_boundaries",
+ "type": "Test",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 235,
+ "end_line": 289,
+ "tags": {
+ "PURPOSE": "Verify pagination validation for GET endpoints",
+ "TEST": "page<1 and page_size>100 return 400"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestResourceHubs"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_get_dashboards_pagination_zero_page",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 241,
+ "end_line": 251,
+ "tags": {
+ "PURPOSE": "Verify dashboards endpoint rejects page=0 with HTTP 400 validation error."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_pagination_boundaries"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_dashboards_pagination_oversize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 254,
+ "end_line": 264,
+ "tags": {
+ "PURPOSE": "Verify dashboards endpoint rejects oversized page_size with HTTP 400."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_pagination_boundaries"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_datasets_pagination_zero_page",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 267,
+ "end_line": 276,
+ "tags": {
+ "PURPOSE": "Verify datasets endpoint rejects page=0 with HTTP 400."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_pagination_boundaries"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_datasets_pagination_oversize",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 279,
+ "end_line": 288,
+ "tags": {
+ "PURPOSE": "Verify datasets endpoint rejects oversized page_size with HTTP 400."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_pagination_boundaries"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "mock_deps",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 29,
+ "end_line": 29,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.775
+ }
+ },
{
"name": "test_smoke_plugins",
"type": "Module",
@@ -83716,12 +159513,12 @@
}
},
{
- "name": "tests.test_logger",
+ "name": "TestLogger",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 222,
+ "end_line": 230,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "logging, tests, belief_state",
@@ -83742,13 +159539,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 20,
- "end_line": 49,
+ "end_line": 50,
"tags": {
"PURPOSE": "Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs at DEBUG level.",
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
"POST": "Logs are verified to contain Entry, Action, and Exit tags at DEBUG level."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -83761,14 +159563,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 81,
+ "start_line": 53,
+ "end_line": 83,
"tags": {
"PURPOSE": "Test that belief_scope logs Coherence:Failed on exception.",
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
"POST": "Logs are verified to contain Coherence:Failed tag."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -83781,14 +159588,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 84,
- "end_line": 110,
+ "start_line": 86,
+ "end_line": 113,
"tags": {
"PURPOSE": "Test that belief_scope logs Coherence:OK on success.",
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
"POST": "Logs are verified to contain Coherence:OK tag."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -83801,14 +159613,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 113,
- "end_line": 132,
+ "start_line": 116,
+ "end_line": 136,
"tags": {
"PURPOSE": "Test that belief_scope Entry/Exit/Coherence logs are NOT visible at INFO level.",
"PRE": "belief_scope is available. caplog fixture is used.",
"POST": "Entry/Exit/Coherence logs are not captured at INFO level."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -83821,14 +159638,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 135,
- "end_line": 143,
+ "start_line": 139,
+ "end_line": 148,
"tags": {
"PURPOSE": "Test that default task log level is INFO.",
"PRE": "None.",
"POST": "Default level is INFO."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -83841,14 +159663,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 146,
- "end_line": 157,
+ "start_line": 151,
+ "end_line": 163,
"tags": {
"PURPOSE": "Test that should_log_task_level correctly filters log levels.",
"PRE": "None.",
"POST": "Filtering works correctly for all level combinations."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -83861,14 +159688,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 160,
- "end_line": 184,
+ "start_line": 166,
+ "end_line": 191,
"tags": {
"PURPOSE": "Test that configure_logger updates task_log_level.",
"PRE": "LoggingConfig is available.",
"POST": "task_log_level is updated correctly."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -83881,14 +159713,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 187,
- "end_line": 221,
+ "start_line": 194,
+ "end_line": 229,
"tags": {
"PURPOSE": "Test that enable_belief_state flag controls belief_scope logging.",
"PRE": "LoggingConfig is available. caplog fixture is used.",
"POST": "belief_scope logs are controlled by the flag."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestLogger"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -83910,26 +159747,274 @@
}
},
{
- "name": "test_auth",
+ "name": "TestAuth",
"type": "Module",
- "complexity": 1,
- "tier": "TRIVIAL",
+ "complexity": 3,
+ "tier": "STANDARD",
"start_line": 1,
- "end_line": 236,
+ "end_line": 332,
"tags": {
- "PURPOSE": "Auto-generated module for backend/tests/test_auth.py",
- "COMPLEXITY": "1",
- "LAYER": "Unknown"
+ "COMPLEXITY": "3",
+ "PURPOSE": "Covers authentication service/repository behavior and auth bootstrap helpers.",
+ "LAYER": "Test"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "TESTS",
+ "target": "AuthService"
+ },
+ {
+ "type": "TESTS",
+ "target": "AuthRepository"
+ },
+ {
+ "type": "TESTS",
+ "target": "create_admin"
+ },
+ {
+ "type": "TESTS",
+ "target": "ensure_encryption_key"
+ }
+ ],
"children": [
+ {
+ "name": "test_create_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 64,
+ "end_line": 85,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_authenticate_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 88,
+ "end_line": 116,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 119,
+ "end_line": 140,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_role_permission_association",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 143,
+ "end_line": 165,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_user_role_association",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 192,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_ad_group_mapping",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 195,
+ "end_line": 218,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_admin_creates_user_with_optional_email",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 221,
+ "end_line": 238,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_create_admin_is_idempotent_for_existing_user",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 241,
+ "end_line": 263,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_ensure_encryption_key_generates_backend_env_file",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 266,
+ "end_line": 284,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_ensure_encryption_key_reuses_existing_env_file_value",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 287,
+ "end_line": 307,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_ensure_encryption_key_prefers_process_environment",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 310,
+ "end_line": 324,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestAuth"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "db_session",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 29,
- "end_line": 29,
+ "start_line": 41,
+ "end_line": 41,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -83947,8 +160032,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
+ "start_line": 55,
+ "end_line": 55,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -83966,217 +160051,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 46,
- "end_line": 46,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 49,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_authenticate_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 67,
- "end_line": 67,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_session",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 92,
- "end_line": 92,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_role_permission_association",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 110,
- "end_line": 110,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_user_role_association",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 129,
- "end_line": 129,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_ad_group_mapping",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 150,
- "end_line": 150,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_admin_creates_user_with_optional_email",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 167,
- "end_line": 167,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_create_admin_is_idempotent_for_existing_user",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 180,
- "end_line": 180,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_ensure_encryption_key_generates_backend_env_file",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 196,
- "end_line": 196,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_ensure_encryption_key_reuses_existing_env_file_value",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 209,
- "end_line": 209,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_ensure_encryption_key_prefers_process_environment",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 222,
- "end_line": 222,
+ "start_line": 60,
+ "end_line": 60,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -84194,494 +160070,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 234,
- "end_line": 234,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_log_persistence",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 338,
- "tags": {
- "SEMANTICS": "test, log, persistence, unit_test",
- "PURPOSE": "Unit tests for TaskLogPersistenceService.",
- "LAYER": "Test",
- "COMPLEXITY": "5"
- },
- "relations": [
- {
- "type": "TESTS",
- "target": "TaskLogPersistenceService"
- }
- ],
- "children": [
- {
- "name": "TestLogPersistence",
- "type": "Class",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 20,
- "end_line": 337,
- "tags": {
- "PURPOSE": "Test suite for TaskLogPersistenceService.",
- "COMPLEXITY": "5",
- "TEST_DATA": "log_entry -> {\"task_id\": \"test-task-1\", \"level\": \"INFO\", \"source\": \"test_source\", \"message\": \"Test message\"}"
- },
- "relations": [],
- "children": [
- {
- "name": "setup_class",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 37,
- "tags": {
- "PURPOSE": "Setup test database and service instance.",
- "PRE": "None.",
- "POST": "In-memory database and service instance created."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "teardown_class",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 39,
- "end_line": 47,
- "tags": {
- "PURPOSE": "Clean up test database.",
- "PRE": "None.",
- "POST": "Database disposed."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "setup_method",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 60,
- "tags": {
- "PURPOSE": "Setup for each test method \u2014 clean task_logs table.",
- "PRE": "None.",
- "POST": "task_logs table is empty."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_add_logs_single",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 95,
- "tags": {
- "PURPOSE": "Test adding a single log entry.",
- "PRE": "Service and session initialized.",
- "POST": "Log entry persisted to database."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_add_logs_batch",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 118,
- "tags": {
- "PURPOSE": "Test adding multiple log entries in batch.",
- "PRE": "Service and session initialized.",
- "POST": "All log entries persisted to database."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_add_logs_empty",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 120,
- "end_line": 134,
- "tags": {
- "PURPOSE": "Test adding empty log list (should be no-op).",
- "PRE": "Service initialized.",
- "POST": "No logs added."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_logs_by_task_id",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 136,
- "end_line": 154,
- "tags": {
- "PURPOSE": "Test retrieving logs by task ID.",
- "PRE": "Service and session initialized, logs exist.",
- "POST": "Returns logs for the specified task."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_logs_with_filters",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 156,
- "end_line": 181,
- "tags": {
- "PURPOSE": "Test retrieving logs with level and source filters.",
- "PRE": "Service and session initialized, logs exist.",
- "POST": "Returns filtered logs."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_logs_with_pagination",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 183,
- "end_line": 203,
- "tags": {
- "PURPOSE": "Test retrieving logs with pagination.",
- "PRE": "Service and session initialized, logs exist.",
- "POST": "Returns paginated logs."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_logs_with_search",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 205,
- "end_line": 223,
- "tags": {
- "PURPOSE": "Test retrieving logs with search query.",
- "PRE": "Service and session initialized, logs exist.",
- "POST": "Returns logs matching search query."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_log_stats",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 225,
- "end_line": 250,
- "tags": {
- "PURPOSE": "Test retrieving log statistics.",
- "PRE": "Service and session initialized, logs exist.",
- "POST": "Returns LogStats model with counts by level and source."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_sources",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 252,
- "end_line": 273,
- "tags": {
- "PURPOSE": "Test retrieving unique log sources.",
- "PRE": "Service and session initialized, logs exist.",
- "POST": "Returns list of unique sources."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_delete_logs_for_task",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 275,
- "end_line": 301,
- "tags": {
- "PURPOSE": "Test deleting logs by task ID.",
- "PRE": "Service and session initialized, logs exist.",
- "POST": "Logs for the task are deleted."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_delete_logs_for_tasks",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 303,
- "end_line": 325,
- "tags": {
- "PURPOSE": "Test deleting logs for multiple tasks.",
- "PRE": "Service and session initialized, logs exist.",
- "POST": "Logs for all specified tasks are deleted."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_delete_logs_for_tasks_empty",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 327,
- "end_line": 335,
- "tags": {
- "PURPOSE": "Test deleting with empty list (no-op).",
- "PRE": "Service initialized.",
- "POST": "No error, no deletion."
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 20
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
- "severity": "WARNING",
- "line_number": 20
- }
- ],
- "score": 0.5499999999999999
- }
- },
- {
- "name": "_patched",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 62,
- "end_line": 62,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- }
- ],
- "compliance": {
- "valid": true,
- "issues": [
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Fractal limit warning: Module length is 338 lines (must be < 300)",
- "severity": "WARNING",
- "line_number": 1
- }
- ],
- "score": 0.625
- }
- },
- {
- "name": "test_clean_release_cli",
- "type": "Module",
- "complexity": 3,
- "tier": "STANDARD",
- "start_line": 1,
- "end_line": 305,
- "tags": {
- "COMPLEXITY": "3",
- "PURPOSE": "Smoke tests for the redesigned clean release CLI.",
- "LAYER": "Domain"
- },
- "relations": [],
- "children": [
- {
- "name": "test_cli_candidate_register_scaffold",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 20,
- "end_line": 20,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_cli_manifest_build_scaffold",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 38,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_cli_compliance_run_scaffold",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 84,
- "end_line": 84,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_cli_release_gate_commands_scaffold",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 184,
- "end_line": 184,
+ "start_line": 327,
+ "end_line": 327,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -84704,12 +160094,545 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 305 lines (must be < 300)",
+ "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 332 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "test_log_persistence",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 339,
+ "tags": {
+ "SEMANTICS": "test, log, persistence, unit_test",
+ "PURPOSE": "Unit tests for TaskLogPersistenceService.",
+ "LAYER": "Test",
+ "COMPLEXITY": "5"
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "TestLogPersistence",
+ "type": "Class",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 20,
+ "end_line": 338,
+ "tags": {
+ "PURPOSE": "Test suite for TaskLogPersistenceService.",
+ "COMPLEXITY": "5",
+ "TEST_DATA": "log_entry -> {\"task_id\": \"test-task-1\", \"level\": \"INFO\", \"source\": \"test_source\", \"message\": \"Test message\"}"
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_log_persistence"
+ }
+ ],
+ "children": [
+ {
+ "name": "setup_class",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 27,
+ "end_line": 38,
+ "tags": {
+ "PURPOSE": "Setup test database and service instance.",
+ "PRE": "None.",
+ "POST": "In-memory database and service instance created."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "teardown_class",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 40,
+ "end_line": 48,
+ "tags": {
+ "PURPOSE": "Clean up test database.",
+ "PRE": "None.",
+ "POST": "Database disposed."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "setup_method",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 61,
+ "tags": {
+ "PURPOSE": "Setup for each test method \u2014 clean task_logs table.",
+ "PRE": "None.",
+ "POST": "task_logs table is empty."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_add_logs_single",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 96,
+ "tags": {
+ "PURPOSE": "Test adding a single log entry.",
+ "PRE": "Service and session initialized.",
+ "POST": "Log entry persisted to database."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_add_logs_batch",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 98,
+ "end_line": 119,
+ "tags": {
+ "PURPOSE": "Test adding multiple log entries in batch.",
+ "PRE": "Service and session initialized.",
+ "POST": "All log entries persisted to database."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_add_logs_empty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 121,
+ "end_line": 135,
+ "tags": {
+ "PURPOSE": "Test adding empty log list (should be no-op).",
+ "PRE": "Service initialized.",
+ "POST": "No logs added."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_logs_by_task_id",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 137,
+ "end_line": 155,
+ "tags": {
+ "PURPOSE": "Test retrieving logs by task ID.",
+ "PRE": "Service and session initialized, logs exist.",
+ "POST": "Returns logs for the specified task."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_logs_with_filters",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 157,
+ "end_line": 182,
+ "tags": {
+ "PURPOSE": "Test retrieving logs with level and source filters.",
+ "PRE": "Service and session initialized, logs exist.",
+ "POST": "Returns filtered logs."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_logs_with_pagination",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 184,
+ "end_line": 204,
+ "tags": {
+ "PURPOSE": "Test retrieving logs with pagination.",
+ "PRE": "Service and session initialized, logs exist.",
+ "POST": "Returns paginated logs."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_logs_with_search",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 206,
+ "end_line": 224,
+ "tags": {
+ "PURPOSE": "Test retrieving logs with search query.",
+ "PRE": "Service and session initialized, logs exist.",
+ "POST": "Returns logs matching search query."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_log_stats",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 226,
+ "end_line": 251,
+ "tags": {
+ "PURPOSE": "Test retrieving log statistics.",
+ "PRE": "Service and session initialized, logs exist.",
+ "POST": "Returns LogStats model with counts by level and source."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_sources",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 253,
+ "end_line": 274,
+ "tags": {
+ "PURPOSE": "Test retrieving unique log sources.",
+ "PRE": "Service and session initialized, logs exist.",
+ "POST": "Returns list of unique sources."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_delete_logs_for_task",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 276,
+ "end_line": 302,
+ "tags": {
+ "PURPOSE": "Test deleting logs by task ID.",
+ "PRE": "Service and session initialized, logs exist.",
+ "POST": "Logs for the task are deleted."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_delete_logs_for_tasks",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 304,
+ "end_line": 326,
+ "tags": {
+ "PURPOSE": "Test deleting logs for multiple tasks.",
+ "PRE": "Service and session initialized, logs exist.",
+ "POST": "Logs for all specified tasks are deleted."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_delete_logs_for_tasks_empty",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 328,
+ "end_line": 336,
+ "tags": {
+ "PURPOSE": "Test deleting with empty list (no-op).",
+ "PRE": "Service initialized.",
+ "POST": "No error, no deletion."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "_patched",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 63,
+ "end_line": 63,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 339 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.625
+ }
+ },
+ {
+ "name": "test_clean_release_cli",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 346,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Smoke tests for the redesigned clean release CLI.",
+ "LAYER": "Domain"
+ },
+ "relations": [
+ {
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
+ }
+ ],
+ "children": [
+ {
+ "name": "test_cli_candidate_register_scaffold",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 26,
+ "end_line": 47,
+ "tags": {
+ "PURPOSE": "Verify candidate-register command exits successfully for valid required arguments."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_cli"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_cli_manifest_build_scaffold",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 50,
+ "end_line": 99,
+ "tags": {
+ "PURPOSE": "Verify candidate-register/artifact-import/manifest-build smoke path succeeds end-to-end."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_cli"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_cli_compliance_run_scaffold",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 102,
+ "end_line": 210,
+ "tags": {
+ "PURPOSE": "Verify compliance run/status/violations/report commands complete for prepared candidate.",
+ "INVARIANT": "SimpleNamespace substitutes for GlobalSettings \u2014 any field rename in GlobalSettings will silently not propagate here; re-verify on GlobalSettings schema changes."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_cli"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_cli_release_gate_commands_scaffold",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 213,
+ "end_line": 345,
+ "tags": {
+ "PURPOSE": "Verify approve/reject/publish/revoke release-gate commands execute with valid fixtures."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_cli"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for complexity 3)",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "severity": "WARNING",
+ "line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 346 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -84718,12 +160641,12 @@
}
},
{
- "name": "backend.tests.scripts.test_clean_release_tui",
+ "name": "TestCleanReleaseTui",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 223,
+ "end_line": 247,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, tui, clean-release, curses",
@@ -84733,11 +160656,137 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.scripts.clean_release_tui"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
+ {
+ "name": "test_headless_fallback",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 49,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseTui"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_tui_initial_render",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 52,
+ "end_line": 86,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseTui"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_tui_run_checks_f5",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 89,
+ "end_line": 125,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseTui"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_tui_exit_f10",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 146,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseTui"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_tui_clear_history_f7",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 149,
+ "end_line": 174,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseTui"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_tui_real_mode_bootstrap_imports_artifacts_catalog",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 177,
+ "end_line": 183,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestCleanReleaseTui"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "mock_stdscr",
"type": "Function",
@@ -84757,127 +160806,13 @@
"score": 1.0
}
},
- {
- "name": "test_headless_fallback",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 30,
- "end_line": 30,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_tui_initial_render",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 48,
- "end_line": 48,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_tui_run_checks_f5",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 81,
- "end_line": 81,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
{
"name": "side_effect",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 97,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_tui_exit_f10",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 116,
- "end_line": 116,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_tui_clear_history_f7",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 133,
- "end_line": 133,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_tui_real_mode_bootstrap_imports_artifacts_catalog",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 157,
- "end_line": 157,
+ "start_line": 107,
+ "end_line": 107,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -84895,7 +160830,7 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -84909,7 +160844,7 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 97,
+ "end_line": 125,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Smoke tests for thin-client TUI action dispatch and blocked transition behavior.",
@@ -84917,8 +160852,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.scripts.clean_release_tui"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -84928,12 +160863,16 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 18,
- "end_line": 18,
+ "end_line": 28,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Build deterministic curses screen mock with default terminal geometry and exit key."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_tui_v2"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -84946,13 +160885,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
+ "start_line": 32,
+ "end_line": 52,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify F5 key dispatch invokes run_checks exactly once before graceful exit."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_tui_v2"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -84965,32 +160908,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 44,
- "end_line": 44,
+ "start_line": 56,
+ "end_line": 83,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify blocked compliance state is surfaced after F5-triggered run action."
},
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_set_blocked_state",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 55,
- "end_line": 55,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_tui_v2"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -85003,13 +160931,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 68,
- "end_line": 68,
+ "start_line": 86,
+ "end_line": 100,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify non-TTY execution returns exit code 2 with actionable stderr guidance."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_tui_v2"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -85022,8 +160954,31 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 80,
- "end_line": 80,
+ "start_line": 104,
+ "end_line": 124,
+ "tags": {
+ "PURPOSE": "Verify F8 path reports disabled action instead of mutating hidden facade state."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_clean_release_tui_v2"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_set_blocked_state",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 70,
+ "end_line": 70,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85046,7 +161001,7 @@
"line_number": 1
},
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -85055,12 +161010,12 @@
}
},
{
- "name": "backend.tests.core.test_git_service_gitea_pr",
+ "name": "TestGitServiceGiteaPr",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 104,
+ "end_line": 107,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "tests, git, gitea, pull_request, fallback",
@@ -85070,8 +161025,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.git_service.create_gitea_pull_request"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -85081,13 +161036,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 21,
- "end_line": 31,
+ "end_line": 32,
"tags": {
"PURPOSE": "Ensure helper returns host base URL and removes embedded credentials.",
"PRE": "remote_url is an https URL with username/token.",
"POST": "Result is scheme+host only."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitServiceGiteaPr"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -85100,14 +161060,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 66,
+ "start_line": 35,
+ "end_line": 68,
"tags": {
"PURPOSE": "Verify create_gitea_pull_request retries with remote URL host after primary 404.",
"PRE": "primary server_url differs from remote_url host.",
"POST": "Method returns success payload from fallback request."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitServiceGiteaPr"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -85120,14 +161085,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 102,
+ "start_line": 71,
+ "end_line": 105,
"tags": {
"PURPOSE": "Ensure Gitea 404 on PR creation is mapped to actionable target-branch validation error.",
"PRE": "PR create call returns 404 and target branch is absent.",
"POST": "Service raises HTTPException 400 with explicit missing target branch message."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestGitServiceGiteaPr"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -85140,8 +161110,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
+ "start_line": 44,
+ "end_line": 44,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85159,8 +161129,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 76,
- "end_line": 76,
+ "start_line": 79,
+ "end_line": 79,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85178,7 +161148,7 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -85187,12 +161157,12 @@
}
},
{
- "name": "backend.tests.core.test_mapping_service",
+ "name": "TestMappingService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 249,
+ "end_line": 345,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for the IdMappingService matching UUIDs to integer IDs.",
@@ -85201,17 +161171,248 @@
"relations": [
{
"type": "VERIFIES",
- "target": "backend.src.core.mapping_service"
+ "target": "src.core.mapping_service.IdMappingService"
}
],
"children": [
+ {
+ "name": "test_sync_environment_upserts_correctly",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 44,
+ "end_line": 71,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_remote_id_returns_integer",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 74,
+ "end_line": 93,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_remote_ids_batch_returns_dict",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 125,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_sync_environment_updates_existing_mapping",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 128,
+ "end_line": 172,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_sync_environment_skips_resources_without_uuid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 175,
+ "end_line": 204,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_sync_environment_handles_api_error_gracefully",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 207,
+ "end_line": 229,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_remote_id_returns_none_for_missing",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 232,
+ "end_line": 241,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_get_remote_ids_batch_returns_empty_for_empty_input",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 244,
+ "end_line": 253,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_mapping_service_alignment_with_test_data",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 256,
+ "end_line": 282,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_sync_environment_requires_existing_env",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 285,
+ "end_line": 305,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_sync_environment_deletes_stale_mappings",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 308,
+ "end_line": 344,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMappingService"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "db_session",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 25,
+ "start_line": 26,
+ "end_line": 26,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85229,8 +161430,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 35,
+ "start_line": 37,
+ "end_line": 37,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85248,122 +161449,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 38,
- "end_line": 38,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_sync_environment_upserts_correctly",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 41,
- "end_line": 41,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_remote_id_returns_integer",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 59,
- "end_line": 59,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_remote_ids_batch_returns_dict",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 75,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_sync_environment_updates_existing_mapping",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 99,
- "end_line": 99,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_sync_environment_skips_resources_without_uuid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 131,
- "end_line": 131,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_sync_environment_handles_api_error_gracefully",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 147,
- "end_line": 147,
+ "start_line": 40,
+ "end_line": 40,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85381,103 +161468,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 150,
- "end_line": 150,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_remote_id_returns_none_for_missing",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 165,
- "end_line": 165,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_get_remote_ids_batch_returns_empty_for_empty_input",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 171,
- "end_line": 171,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_mapping_service_alignment_with_test_data",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 178,
- "end_line": 178,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_sync_environment_requires_existing_env",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 202,
- "end_line": 202,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_sync_environment_deletes_stale_mappings",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 221,
- "end_line": 221,
+ "start_line": 213,
+ "end_line": 213,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85503,9 +161495,140 @@
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 345 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
}
],
- "score": 0.5499999999999999
+ "score": 0.4
+ }
+ },
+ {
+ "name": "test_git_service_get_repo_path_guard",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 14,
+ "end_line": 23,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "UnknownModule"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_git_service_get_repo_path_recreates_base_dir",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 25,
+ "end_line": 37,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "UnknownModule"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_superset_client_import_dashboard_guard",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 39,
+ "end_line": 55,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "UnknownModule"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_git_service_init_repo_reclones_when_path_is_not_a_git_repo",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 57,
+ "end_line": 78,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "UnknownModule"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_git_service_ensure_gitflow_branches_creates_and_pushes_missing_defaults",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 80,
+ "end_line": 136,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "UnknownModule"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_git_service_configure_identity_updates_repo_local_config",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 138,
+ "end_line": 155,
+ "tags": {},
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "UnknownModule"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
}
},
{
@@ -85514,7 +161637,7 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 1,
- "end_line": 132,
+ "end_line": 155,
"tags": {
"PURPOSE": "Auto-generated module for backend/tests/core/test_defensive_guards.py",
"COMPLEXITY": "1",
@@ -85523,88 +161646,12 @@
"relations": [],
"children": [
{
- "name": "test_git_service_get_repo_path_guard",
+ "name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 14,
- "end_line": 14,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_git_service_get_repo_path_recreates_base_dir",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 21,
- "end_line": 21,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_superset_client_import_dashboard_guard",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 31,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_git_service_init_repo_reclones_when_path_is_not_a_git_repo",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 45,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_git_service_ensure_gitflow_branches_creates_and_pushes_missing_defaults",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 64,
- "end_line": 64,
+ "start_line": 87,
+ "end_line": 87,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85622,8 +161669,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 69,
+ "start_line": 91,
+ "end_line": 91,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85641,27 +161688,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 73,
- "end_line": 73,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "__init__",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 78,
- "end_line": 78,
+ "start_line": 96,
+ "end_line": 96,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85679,8 +161707,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 82,
- "end_line": 82,
+ "start_line": 100,
+ "end_line": 100,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85698,8 +161726,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 85,
- "end_line": 85,
+ "start_line": 103,
+ "end_line": 103,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85717,8 +161745,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 90,
- "end_line": 90,
+ "start_line": 108,
+ "end_line": 108,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85736,8 +161764,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 94,
- "end_line": 94,
+ "start_line": 112,
+ "end_line": 112,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85755,8 +161783,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 99,
- "end_line": 99,
+ "start_line": 117,
+ "end_line": 117,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85774,27 +161802,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 104,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_git_service_configure_identity_updates_repo_local_config",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 118,
- "end_line": 118,
+ "start_line": 122,
+ "end_line": 122,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85815,12 +161824,12 @@
}
},
{
- "name": "backend.tests.core.test_migration_engine",
+ "name": "TestMigrationEngine",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 290,
+ "end_line": 365,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for MigrationEngine's cross-filter patching algorithms.",
@@ -85829,17 +161838,296 @@
"relations": [
{
"type": "VERIFIES",
- "target": "backend.src.core.migration_engine"
+ "target": "src.core.migration_engine:Module"
}
],
"children": [
+ {
+ "name": "MockMappingService",
+ "type": "Class",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 30,
+ "end_line": 50,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Deterministic mapping service double for native filter ID remapping scenarios.",
+ "INVARIANT": "Returns mappings only for requested UUID keys present in seeded map.",
+ "INVARIANT_VIOLATION": "resource_type parameter is silently ignored. Lookups are UUID-only; chart and dataset UUIDs share the same namespace. Tests that mix resource types will produce false positives."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "_write_dashboard_yaml",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 53,
+ "end_line": 66,
+ "tags": {
+ "PURPOSE": "Serialize dashboard metadata into YAML fixture with json_metadata payload for patch tests."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_patch_dashboard_metadata_replaces_chart_ids",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 69,
+ "end_line": 93,
+ "tags": {
+ "PURPOSE": "Verify native filter target chartId values are remapped via mapping service results."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_patch_dashboard_metadata_replaces_dataset_ids",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 96,
+ "end_line": 121,
+ "tags": {
+ "PURPOSE": "Verify native filter target datasetId values are remapped via mapping service results."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_patch_dashboard_metadata_skips_when_no_metadata",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 124,
+ "end_line": 144,
+ "tags": {
+ "PURPOSE": "Ensure dashboard files without json_metadata are left unchanged by metadata patching."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_patch_dashboard_metadata_handles_missing_targets",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 147,
+ "end_line": 178,
+ "tags": {
+ "PURPOSE": "Verify patching updates mapped targets while preserving unmapped native filter IDs."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_extract_chart_uuids_from_archive",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 181,
+ "end_line": 207,
+ "tags": {
+ "PURPOSE": "Verify chart archive scan returns complete local chart id-to-uuid mapping."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_transform_yaml_replaces_database_uuid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 210,
+ "end_line": 230,
+ "tags": {
+ "PURPOSE": "Ensure dataset YAML database_uuid fields are replaced when source UUID mapping exists."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_transform_yaml_ignores_unmapped_uuid",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 233,
+ "end_line": 255,
+ "tags": {
+ "PURPOSE": "Ensure transform_yaml leaves dataset files untouched when database_uuid is not mapped."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_transform_zip_end_to_end",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 258,
+ "end_line": 336,
+ "tags": {
+ "PURPOSE": "Validate full ZIP transform pipeline remaps datasets and dashboard cross-filter chart IDs."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_transform_zip_invalid_path",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 339,
+ "end_line": 349,
+ "tags": {
+ "PURPOSE": "Verify transform_zip returns False when source archive path does not exist."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_transform_yaml_nonexistent_file",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 352,
+ "end_line": 364,
+ "tags": {
+ "PURPOSE": "Verify transform_yaml raises FileNotFoundError for missing YAML source files."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestMigrationEngine:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 31,
+ "start_line": 38,
+ "end_line": 38,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -85857,217 +162145,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 34,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "_write_dashboard_yaml",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_patch_dashboard_metadata_replaces_chart_ids",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 52,
- "end_line": 52,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_patch_dashboard_metadata_replaces_dataset_ids",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 75,
- "end_line": 75,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_patch_dashboard_metadata_skips_when_no_metadata",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 98,
- "end_line": 98,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_patch_dashboard_metadata_handles_missing_targets",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 115,
- "end_line": 115,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_extract_chart_uuids_from_archive",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 143,
- "end_line": 143,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_transform_yaml_replaces_database_uuid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 166,
- "end_line": 166,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_transform_yaml_ignores_unmapped_uuid",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 183,
- "end_line": 183,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_transform_zip_end_to_end",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 202,
- "end_line": 202,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_transform_zip_invalid_path",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 274,
- "end_line": 274,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "test_transform_yaml_nonexistent_file",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 281,
- "end_line": 281,
+ "start_line": 41,
+ "end_line": 41,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -86093,30 +162172,32 @@
"message": "Invalid @RELATION predicate: VERIFIES. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
+ },
+ {
+ "message": "Fractal limit warning: Module length is 365 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
}
],
- "score": 0.5499999999999999
+ "score": 0.4
}
},
{
- "name": "backend.tests.core.migration.test_dry_run_orchestrator",
+ "name": "TestDryRunOrchestrator",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 110,
+ "end_line": 130,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for MigrationDryRunService diff and risk computation contracts.",
- "LAYER": "Domain",
- "TEST_CONTRACT": "dry_run_result_contract -> {",
- "TEST_FIXTURE": "migration_dry_run_fixture -> backend/tests/fixtures/migration_dry_run_fixture.json",
- "TEST_EDGE": "breaking_reference -> fixture.transformed_zip_objects.charts[0].dataset_uuid"
+ "LAYER": "Domain"
},
"relations": [
{
"type": "VERIFIES",
- "target": "backend.src.core.migration.dry_run_orchestrator"
+ "target": "MigrationDryRunOrchestratorModule"
}
],
"children": [
@@ -86126,12 +162207,16 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 26,
- "end_line": 26,
+ "end_line": 36,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Load canonical migration dry-run fixture payload used by deterministic orchestration assertions."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDryRunOrchestrator"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86144,13 +162229,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 31,
- "end_line": 31,
+ "start_line": 39,
+ "end_line": 53,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Build isolated in-memory SQLAlchemy session for dry-run service tests."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDryRunOrchestrator"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86163,13 +162252,20 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 42,
- "end_line": 42,
+ "start_line": 56,
+ "end_line": 129,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify dry-run orchestration returns stable diff summary and required risk codes.",
+ "TEST_CONTRACT": "dry_run_result_contract -> {",
+ "TEST_FIXTURE": "migration_dry_run_fixture -> backend/tests/fixtures/migration_dry_run_fixture.json",
+ "TEST_EDGE": "breaking_reference -> fixture.transformed_zip_objects.charts[0].dataset_uuid"
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDryRunOrchestrator"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86196,12 +162292,12 @@
}
},
{
- "name": "backend.tests.core.migration.test_archive_parser",
+ "name": "TestArchiveParser",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 62,
+ "end_line": 74,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Unit tests for MigrationArchiveParser ZIP extraction contract.",
@@ -86220,12 +162316,16 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 23,
- "end_line": 23,
+ "end_line": 73,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify archive parser collects dashboard/chart/dataset YAML objects into typed buckets."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestArchiveParser"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86252,12 +162352,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_publication_service",
+ "name": "TestPublicationService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 148,
+ "end_line": 150,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "tests, clean-release, publication, revoke, gate",
@@ -86267,16 +162367,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "src.services.clean_release.publication_service"
- },
- {
- "type": "TESTS",
- "target": "src.services.clean_release.approval_service"
- },
- {
- "type": "TESTS",
- "target": "src.services.clean_release.repository"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -86285,14 +162377,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 56,
+ "start_line": 21,
+ "end_line": 55,
"tags": {
"PURPOSE": "Seed candidate/report fixtures for publication gate scenarios.",
"PRE": "candidate_id and report_id are non-empty.",
"POST": "Repository contains candidate and PASSED report."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPublicationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86305,14 +162402,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 59,
+ "start_line": 58,
"end_line": 79,
"tags": {
"PURPOSE": "Ensure publish action is blocked until candidate is approved.",
"PRE": "Candidate has PASSED report but status is not APPROVED.",
"POST": "publish_candidate raises PublicationGateError."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPublicationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86326,13 +162428,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 82,
- "end_line": 98,
+ "end_line": 99,
"tags": {
"PURPOSE": "Ensure revocation is rejected for unknown publication id.",
"PRE": "Repository has no matching publication record.",
"POST": "revoke_publication raises PublicationGateError."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPublicationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86345,14 +162452,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 101,
- "end_line": 146,
+ "start_line": 102,
+ "end_line": 148,
"tags": {
"PURPOSE": "Ensure republish after revoke is allowed and creates a new ACTIVE record.",
"PRE": "Candidate is APPROVED and first publication has been revoked.",
"POST": "New publish call returns distinct publication id with ACTIVE status."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPublicationService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86365,31 +162477,21 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.47500000000000003
+ "score": 0.775
}
},
{
- "name": "backend.tests.services.clean_release.test_compliance_task_integration",
+ "name": "TestComplianceTaskIntegration",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 250,
+ "end_line": 309,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "tests, clean-release, compliance, task-manager, integration",
@@ -86399,12 +162501,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.core.task_manager.manager.TaskManager"
- },
- {
- "type": "TESTS",
- "target": "backend.src.services.clean_release.compliance_orchestrator.CleanComplianceOrchestrator"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -86413,14 +162511,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 32,
- "end_line": 97,
+ "start_line": 33,
+ "end_line": 103,
"tags": {
"PURPOSE": "Prepare deterministic candidate/policy/registry/manifest fixtures for task integration tests.",
"PRE": "with_manifest controls manifest availability.",
"POST": "Returns initialized repository and identifiers for compliance run startup."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceTaskIntegration"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86433,12 +162536,17 @@
"type": "Class",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 100,
- "end_line": 129,
+ "start_line": 106,
+ "end_line": 142,
"tags": {
"PURPOSE": "TaskManager plugin shim that executes clean release compliance orchestration."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceTaskIntegration"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86449,14 +162557,22 @@
{
"name": "_PluginLoaderStub",
"type": "Class",
- "complexity": 1,
+ "complexity": 2,
"tier": "TRIVIAL",
- "start_line": 132,
- "end_line": 145,
+ "start_line": 145,
+ "end_line": 179,
"tags": {
- "PURPOSE": "Provide minimal plugin loader contract used by TaskManager in integration tests."
+ "COMPLEXITY": "2",
+ "PURPOSE": "Provide minimal plugin loader contract used by TaskManager in integration tests.",
+ "INVARIANT": "has_plugin/get_plugin only acknowledge the seeded compliance plugin id.",
+ "CONTRACT": "Partial PluginLoader stub. Implements: has_plugin, get_plugin. Stubs (NotImplementedError): list_plugins, get_all_plugins, get_all_plugin_configs."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceTaskIntegration"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86469,13 +162585,18 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 148,
- "end_line": 165,
+ "start_line": 182,
+ "end_line": 207,
"tags": {
"PURPOSE": "Build TaskManager with mocked persistence services for isolated integration tests.",
"POST": "Returns TaskManager ready for async task execution."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceTaskIntegration"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86488,14 +162609,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 168,
- "end_line": 181,
+ "start_line": 210,
+ "end_line": 228,
"tags": {
"PURPOSE": "Poll task registry until target task reaches terminal status.",
"PRE": "task_id exists in manager registry.",
"POST": "Returns task with SUCCESS or FAILED status, otherwise raises TimeoutError."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceTaskIntegration"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86508,14 +162634,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 184,
- "end_line": 217,
+ "start_line": 231,
+ "end_line": 269,
"tags": {
"PURPOSE": "Verify successful compliance execution is observable as TaskManager SUCCESS task.",
"PRE": "Candidate, policy and manifest are available in repository.",
"POST": "Task ends with SUCCESS; run is persisted with SUCCEEDED status and task binding."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceTaskIntegration"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86528,14 +162659,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 220,
- "end_line": 248,
+ "start_line": 272,
+ "end_line": 307,
"tags": {
"PURPOSE": "Verify missing manifest startup failure is surfaced as TaskManager FAILED task.",
"PRE": "Candidate/policy exist but manifest is absent.",
"POST": "Task ends with FAILED and run history remains empty."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceTaskIntegration"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86548,44 +162684,6 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 104,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "name",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 108,
- "end_line": 108,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
- {
- "name": "execute",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
"start_line": 111,
"end_line": 111,
"tags": {
@@ -86600,13 +162698,51 @@
"score": 1.0
}
},
+ {
+ "name": "name",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 115,
+ "end_line": 115,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "execute",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 118,
+ "end_line": 118,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
{
"name": "__init__",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 135,
- "end_line": 135,
+ "start_line": 152,
+ "end_line": 152,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -86624,8 +162760,8 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 138,
- "end_line": 138,
+ "start_line": 155,
+ "end_line": 155,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -86643,8 +162779,65 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 141,
- "end_line": 141,
+ "start_line": 158,
+ "end_line": 158,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "list_plugins",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 163,
+ "end_line": 163,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_all_plugins",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 168,
+ "end_line": 168,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "COMPLEXITY": "1"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "get_all_plugin_configs",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 173,
+ "end_line": 173,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -86662,12 +162855,12 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
},
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Fractal limit warning: Module length is 309 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -86676,12 +162869,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_demo_mode_isolation",
+ "name": "TestDemoModeIsolation",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 87,
+ "end_line": 90,
"tags": {
"COMPLEXITY": "3",
"SEMANTICS": "clean-release, demo-mode, isolation, namespace, repository",
@@ -86701,13 +162894,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 20,
- "end_line": 31,
+ "end_line": 32,
"tags": {
"PURPOSE": "Ensure namespace resolver returns deterministic and distinct namespaces.",
"PRE": "Mode names are provided as user/runtime strings.",
"POST": "Demo and real namespaces are different and stable."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDemoModeIsolation"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86720,14 +162918,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 34,
- "end_line": 46,
+ "start_line": 35,
+ "end_line": 48,
"tags": {
"PURPOSE": "Ensure ID generation prevents demo/real collisions for identical logical IDs.",
"PRE": "Same logical candidate id is used in two different namespaces.",
"POST": "Produced physical IDs differ by namespace prefix."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDemoModeIsolation"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86740,14 +162943,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 49,
- "end_line": 85,
+ "start_line": 51,
+ "end_line": 88,
"tags": {
"PURPOSE": "Verify demo and real repositories do not leak state across mode boundaries.",
"PRE": "Two repositories are created for distinct modes.",
"POST": "Candidate mutations in one mode are not visible in the other mode."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestDemoModeIsolation"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86763,12 +162971,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_report_audit_immutability",
+ "name": "TestReportAuditImmutability",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 114,
+ "end_line": 143,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "tests, clean-release, report, audit, immutability, append-only",
@@ -86778,16 +162986,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "src.services.clean_release.report_builder.ComplianceReportBuilder"
- },
- {
- "type": "TESTS",
- "target": "src.services.clean_release.audit_service"
- },
- {
- "type": "TESTS",
- "target": "src.services.clean_release.repository.CleanReleaseRepository"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -86796,14 +162996,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 25,
- "end_line": 44,
+ "start_line": 32,
+ "end_line": 56,
"tags": {
"PURPOSE": "Build deterministic terminal run fixture for report snapshot tests.",
"PRE": "final_status is a valid ComplianceDecision value.",
"POST": "Returns a terminal ComplianceRun suitable for report generation."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportAuditImmutability"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86816,14 +163021,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 47,
- "end_line": 62,
+ "start_line": 59,
+ "end_line": 77,
"tags": {
"PURPOSE": "Ensure generated report payload is marked immutable and persisted as snapshot.",
"PRE": "Terminal run exists.",
"POST": "Built report has immutable=True and repository stores same immutable object."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportAuditImmutability"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86836,14 +163046,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 65,
- "end_line": 94,
+ "start_line": 80,
+ "end_line": 120,
"tags": {
"PURPOSE": "Define immutability contract that report snapshots cannot be overwritten by same identifier.",
"PRE": "Existing report with id is already persisted.",
"POST": "Second save for same report id is rejected with explicit immutability error."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportAuditImmutability"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86856,14 +163071,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 97,
- "end_line": 112,
+ "start_line": 123,
+ "end_line": 141,
"tags": {
"PURPOSE": "Verify audit hooks emit one event per action call and preserve call order.",
"PRE": "Logger backend is patched.",
"POST": "Three calls produce three ordered info entries with molecular prefixes."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestReportAuditImmutability"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86876,22 +163096,12 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.47500000000000003
+ "score": 0.775
}
},
{
@@ -86900,45 +163110,35 @@
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 203,
+ "end_line": 290,
"tags": {
"COMPLEXITY": "3",
"PURPOSE": "Test lifecycle and manifest versioning for release candidates.",
"LAYER": "Tests"
},
- "relations": [],
- "children": [
+ "relations": [
{
- "name": "db_session",
- "type": "Function",
- "complexity": 1,
- "tier": "TRIVIAL",
- "start_line": 18,
- "end_line": 18,
- "tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
- },
- "relations": [],
- "children": [],
- "compliance": {
- "valid": true,
- "issues": [],
- "score": 1.0
- }
- },
+ "type": "BELONGS_TO",
+ "target": "SrcRoot:Module"
+ }
+ ],
+ "children": [
{
"name": "test_candidate_lifecycle_transitions",
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 26,
- "end_line": 26,
+ "start_line": 33,
+ "end_line": 62,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify release candidate allows legal status transitions and rejects forbidden back-transitions."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86951,13 +163151,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 50,
- "end_line": 50,
+ "start_line": 65,
+ "end_line": 120,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify manifest versions increment monotonically and older snapshots remain queryable."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86970,13 +163174,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 93,
- "end_line": 93,
+ "start_line": 123,
+ "end_line": 137,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Provide canonical valid artifact payload used by candidate registration tests."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -86989,13 +163197,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 104,
- "end_line": 104,
+ "start_line": 140,
+ "end_line": 165,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify duplicate candidate_id registration is rejected by service invariants."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87008,13 +163220,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 126,
- "end_line": 126,
+ "start_line": 168,
+ "end_line": 186,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify candidate registration rejects artifact payloads missing required fields."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87027,13 +163243,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 141,
- "end_line": 141,
+ "start_line": 189,
+ "end_line": 206,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify candidate registration rejects empty artifact collections."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87046,13 +163266,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 155,
- "end_line": 155,
+ "start_line": 209,
+ "end_line": 235,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify repeated manifest build creates a new incremented immutable version."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87065,13 +163289,17 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 174,
- "end_line": 174,
+ "start_line": 238,
+ "end_line": 272,
"tags": {
- "PURPOSE": "Auto-detected function (orphan)",
- "COMPLEXITY": "1"
+ "PURPOSE": "Verify existing manifest snapshot remains immutable when rebuilding newer manifest version."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87084,8 +163312,31 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 197,
- "end_line": 197,
+ "start_line": 275,
+ "end_line": 289,
+ "tags": {
+ "PURPOSE": "Verify manifest build fails with missing candidate identifier."
+ },
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "test_candidate_manifest_services:Module"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "db_session",
+ "type": "Function",
+ "complexity": 1,
+ "tier": "TRIVIAL",
+ "start_line": 24,
+ "end_line": 24,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"COMPLEXITY": "1"
@@ -87108,7 +163359,7 @@
"line_number": 1
},
{
- "message": "Missing Mandatory Tag: @RELATION (required for complexity 3)",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
@@ -87117,12 +163368,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_policy_resolution_service",
+ "name": "TestPolicyResolutionService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 105,
+ "end_line": 123,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "clean-release, policy-resolution, trusted-snapshots, contracts",
@@ -87133,15 +163384,15 @@
"relations": [
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.clean_release.policy_resolution_service"
+ "target": "policy_resolution_service"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.clean_release.repository"
+ "target": "repository"
},
{
"type": "DEPENDS_ON",
- "target": "backend.src.services.clean_release.exceptions"
+ "target": "clean_release_exceptions"
}
],
"children": [
@@ -87150,14 +163401,21 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 32,
+ "start_line": 25,
+ "end_line": 41,
"tags": {
+ "COMPLEXITY": "1",
"PURPOSE": "Build deterministic ConfigManager-like stub for tests.",
+ "INVARIANT": "Only settings.clean_release.active_policy_id and active_registry_id are populated; any other settings field access raises AttributeError.",
"PRE": "policy_id and registry_id may be None or non-empty strings.",
"POST": "Returns object exposing get_config().settings.clean_release active IDs."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPolicyResolutionService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87170,14 +163428,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 35,
- "end_line": 48,
+ "start_line": 44,
+ "end_line": 60,
"tags": {
"PURPOSE": "Ensure resolution fails when trusted profile is not configured.",
"PRE": "active_policy_id is None.",
"POST": "Raises PolicyResolutionError with missing trusted profile reason."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPolicyResolutionService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87190,14 +163453,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 51,
- "end_line": 64,
+ "start_line": 63,
+ "end_line": 79,
"tags": {
"PURPOSE": "Ensure resolution fails when trusted registry is not configured.",
"PRE": "active_registry_id is None and active_policy_id is set.",
"POST": "Raises PolicyResolutionError with missing trusted registry reason."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPolicyResolutionService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87210,14 +163478,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 67,
- "end_line": 103,
+ "start_line": 82,
+ "end_line": 121,
"tags": {
"PURPOSE": "Ensure runtime override attempt is rejected even if snapshots exist.",
"PRE": "valid trusted snapshots exist in repository and override is provided.",
"POST": "Raises PolicyResolutionError with override forbidden reason."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestPolicyResolutionService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87233,12 +163506,12 @@
}
},
{
- "name": "backend.tests.services.clean_release.test_approval_service",
+ "name": "TestApprovalService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 199,
+ "end_line": 203,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "tests, clean-release, approval, lifecycle, gate",
@@ -87248,16 +163521,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "src.services.clean_release.approval_service"
- },
- {
- "type": "TESTS",
- "target": "src.services.clean_release.enums"
- },
- {
- "type": "TESTS",
- "target": "src.services.clean_release.repository"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -87266,14 +163531,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 23,
- "end_line": 60,
+ "start_line": 21,
+ "end_line": 59,
"tags": {
"PURPOSE": "Seed candidate and report fixtures for approval gate tests.",
"PRE": "candidate_id and report_id are non-empty.",
"POST": "Repository contains candidate and report linked by candidate_id."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestApprovalService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87286,14 +163556,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 63,
+ "start_line": 62,
"end_line": 82,
"tags": {
"PURPOSE": "Ensure approve is rejected when latest report final status is not PASSED.",
"PRE": "Candidate has BLOCKED report.",
"POST": "approve_candidate raises ApprovalGateError."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestApprovalService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87307,13 +163582,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 85,
- "end_line": 112,
+ "end_line": 113,
"tags": {
"PURPOSE": "Ensure approve is rejected when report belongs to another candidate.",
"PRE": "Candidate exists, report candidate_id differs.",
"POST": "approve_candidate raises ApprovalGateError."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestApprovalService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87326,14 +163606,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 115,
- "end_line": 142,
+ "start_line": 116,
+ "end_line": 144,
"tags": {
"PURPOSE": "Ensure repeated approve decision for same candidate is blocked.",
"PRE": "Candidate has already been approved once.",
"POST": "Second approve_candidate call raises ApprovalGateError."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestApprovalService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87346,14 +163631,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 145,
- "end_line": 166,
+ "start_line": 147,
+ "end_line": 169,
"tags": {
"PURPOSE": "Ensure reject decision is immutable and does not promote candidate to APPROVED.",
"PRE": "Candidate has PASSED report and CHECK_PASSED lifecycle state.",
"POST": "reject_candidate persists REJECTED decision; candidate status remains unchanged."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestApprovalService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87366,14 +163656,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 169,
- "end_line": 197,
+ "start_line": 172,
+ "end_line": 201,
"tags": {
"PURPOSE": "Ensure latest REJECTED decision blocks publication gate.",
"PRE": "Candidate is rejected for passed report.",
"POST": "publish_candidate raises PublicationGateError."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestApprovalService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87386,31 +163681,21 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.47500000000000003
+ "score": 0.775
}
},
{
- "name": "backend.tests.services.clean_release.test_compliance_execution_service",
+ "name": "TestComplianceExecutionService",
"type": "Module",
"complexity": 3,
"tier": "STANDARD",
"start_line": 1,
- "end_line": 173,
+ "end_line": 176,
"tags": {
"COMPLEXITY": "5",
"SEMANTICS": "tests, clean-release, compliance, pipeline, run-finalization",
@@ -87420,12 +163705,8 @@
},
"relations": [
{
- "type": "TESTS",
- "target": "backend.src.services.clean_release.compliance_orchestrator"
- },
- {
- "type": "TESTS",
- "target": "backend.src.services.clean_release.report_builder"
+ "type": "BELONGS_TO",
+ "target": "SrcRoot"
}
],
"children": [
@@ -87434,14 +163715,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 29,
+ "start_line": 28,
"end_line": 99,
"tags": {
"PURPOSE": "Build deterministic repository state for run startup tests.",
"PRE": "candidate_id and snapshot ids are non-empty.",
"POST": "Returns repository with candidate, policy and registry; manifest is optional."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceExecutionService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87455,13 +163741,18 @@
"complexity": 1,
"tier": "TRIVIAL",
"start_line": 102,
- "end_line": 119,
+ "end_line": 120,
"tags": {
"PURPOSE": "Ensure compliance run cannot start when manifest is unresolved.",
"PRE": "Candidate/policy exist but manifest is missing.",
"POST": "start_check_run raises ValueError and no run is persisted."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceExecutionService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87474,14 +163765,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 122,
- "end_line": 142,
+ "start_line": 123,
+ "end_line": 144,
"tags": {
"PURPOSE": "Ensure execution crash conditions force FAILED run status.",
"PRE": "Run exists, then required dependency becomes unavailable before execute_stages.",
"POST": "execute_stages persists run with FAILED status."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceExecutionService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87494,14 +163790,19 @@
"type": "Function",
"complexity": 1,
"tier": "TRIVIAL",
- "start_line": 145,
- "end_line": 171,
+ "start_line": 147,
+ "end_line": 174,
"tags": {
"PURPOSE": "Ensure blocked runs require blocking violations before report creation.",
"PRE": "Manifest contains prohibited artifacts leading to BLOCKED decision.",
"POST": "finalize keeps BLOCKED and report_builder rejects zero blocking violations."
},
- "relations": [],
+ "relations": [
+ {
+ "type": "BINDS_TO",
+ "target": "TestComplianceExecutionService"
+ }
+ ],
"children": [],
"compliance": {
"valid": true,
@@ -87514,17 +163815,141 @@
"valid": true,
"issues": [
{
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
- "severity": "WARNING",
- "line_number": 1
- },
- {
- "message": "Invalid @RELATION predicate: TESTS. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
+ "message": "Invalid @RELATION predicate: BELONGS_TO. Allowed: BINDS_TO, CALLS, DEPENDS_ON, DISPATCHES, IMPLEMENTS, INHERITS",
"severity": "WARNING",
"line_number": 1
}
],
- "score": 0.625
+ "score": 0.775
+ }
+ },
+ {
+ "name": "SupersetCompatibilityMatrixTests",
+ "type": "Module",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 1,
+ "end_line": 146,
+ "tags": {
+ "COMPLEXITY": "3",
+ "SEMANTICS": "dataset_review, superset, compatibility_matrix, preview, sql_lab, tests",
+ "PURPOSE": "Verifies Superset preview and SQL Lab endpoint fallback strategy used by dataset-review orchestration.",
+ "LAYER": "Tests"
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "backend.src.core.superset_client.SupersetClient"
+ },
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetCompilationAdapter"
+ }
+ ],
+ "children": [
+ {
+ "name": "make_adapter",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 23,
+ "end_line": 42,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Build an adapter with a mock Superset client and deterministic environment for compatibility tests."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetCompilationAdapter"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_preview_prefers_supported_client_method_before_network_fallback",
+ "type": "Function",
+ "complexity": 2,
+ "tier": "TRIVIAL",
+ "start_line": 45,
+ "end_line": 68,
+ "tags": {
+ "COMPLEXITY": "2",
+ "PURPOSE": "Confirms preview compilation uses a supported client method first when the capability exists."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetCompilationAdapter"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "test_preview_falls_back_across_matrix_until_supported_endpoint_returns_sql",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 71,
+ "end_line": 103,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Confirms preview fallback walks the compatibility matrix from preferred to legacy endpoints until one returns compiled SQL.",
+ "FRAGILE": "Positional call assertion \u2014 ordering changes will break this test without indicating a real regression. Prefer content-based assertion."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetCompilationAdapter"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ },
+ {
+ "name": "test_sql_lab_launch_falls_back_to_legacy_execute_endpoint",
+ "type": "Function",
+ "complexity": 3,
+ "tier": "STANDARD",
+ "start_line": 106,
+ "end_line": 143,
+ "tags": {
+ "COMPLEXITY": "3",
+ "PURPOSE": "Confirms SQL Lab launch falls back from modern to legacy execute endpoint and preserves canonical session reference extraction.",
+ "FRAGILE": "Positional call assertion \u2014 ordering changes will break this test without indicating a real regression. Prefer content-based assertion."
+ },
+ "relations": [
+ {
+ "type": "DEPENDS_ON",
+ "target": "SupersetCompilationAdapter"
+ }
+ ],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.85
+ }
+ }
+ ],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 0.925
}
}
]