Files
ss-tools/specs/017-llm-analysis-plugin/data-model.md
2026-02-07 11:26:06 +03:00

2.1 KiB

Data Model: LLM Analysis Plugin

Feature: 017-llm-analysis-plugin

Entities

LLMProviderConfig

Stores configuration for different LLM providers.

Field Type Required Description
id UUID Yes Unique identifier
provider_type Enum Yes openai, openrouter, kilo
name String Yes Display name (e.g., "Production GPT-4")
base_url String Yes API Endpoint URL
api_key String Yes Encrypted API Key
default_model String Yes Model identifier (e.g., gpt-4o)
is_active Boolean Yes Whether this provider is currently enabled

ValidationResult

Stores the outcome of a dashboard validation task.

Field Type Required Description
id UUID Yes Unique identifier
dashboard_id String Yes Reference to the dashboard
timestamp DateTime Yes When the validation ran
status Enum Yes PASS, WARN, FAIL
screenshot_path String No Path to the captured screenshot (if stored)
screenshot_metadata JSON No {width: 1920, height: dynamic, tabs_processed: []}
issues JSON Yes List of detected issues [{severity, message, location}]
raw_response Text No Full LLM response for debugging

TaskConfiguration (Extension)

Extends existing Task model to support validation-specific params.

Field Type Required Description
task_type String Yes dashboard_validation
parameters JSON Yes {dashboard_id, provider_id, screenshot_strategy}

API Contracts

See contracts/ directory for OpenAPI specifications.

Key Interactions

  1. Configure Provider: POST /api/settings/llm/providers
  2. Trigger Validation: POST /api/tasks/dispatch (payload: {type: "dashboard_validation", ...})
  3. Get Results: GET /api/tasks/{task_id}/result (or via WebSocket stream)
  4. Generate Documentation: POST /api/tasks/dispatch (payload: {type: "dataset_documentation", ...})
  5. Generate Commit: POST /api/git/generate-message