Files
VianoBugAnalysis/config/project.vcore-multidb.example.toml

266 lines
7.2 KiB
TOML

# Operator-controlled bindings. The model cannot override these settings.
relations_file = "project-relations.vcore.toml"
[project]
type = "wow"
profile = "vcore"
[source]
path = "/srv/viano-bug-analysis/viano-core"
url = "https://gitea.viano-software.de/Nico/Viano-Core"
commit = "0000000000000000000000000000000000000000"
[database]
host = "127.0.0.1"
port = 3306
database = "cata_world"
user = "buganalysis"
password_env = "VIANO_DB_PASSWORD"
snapshot_id = "CONFIGURE_ME"
# Explicit allowlist: no account or character tables.
tables = ["*"]
# Explicit database scope: no auth, character or locale-reference access.
[database.additional_databases]
cata_hotfixes = ["*"]
cata_locale = ["*"]
[limits]
max_rows = 50
max_result_bytes = 65536
max_files = 20000
max_file_bytes = 2097152
max_search_bytes = 134217728
max_lines = 80
timeout_seconds = 15
max_cached_queries = 256
[enrichment]
max_queries = 24
max_depth = 3
max_relationships = 128
[[enrichment.texts]]
table = "quest_template"
id_column = "ID"
context_role = "quest_definition"
columns = ["LogTitle", "LogDescription", "QuestDescription"]
[[enrichment.queries]]
kind = "source.schema"
text = "CREATE TABLE `creature`"
path_prefix = "sql/base/"
case_sensitive = true
offset = 0
limit = 1
[[enrichment.queries]]
kind = "source.schema"
text = "CREATE TABLE `quest_template`"
path_prefix = "sql/base/"
case_sensitive = true
offset = 0
limit = 1
# Deterministic entity resolution before the first LLM call; no diagnosis.
[[enrichment.entities]]
entity_type = "creature"
table = "creature_template"
column = "entry"
name_column = "name"
columns = ["entry", "name", "subname", "ScriptName", "AIName"]
limit = 1
[[enrichment.entities]]
entity_type = "quest"
table = "quest_template"
column = "ID"
name_column = "LogTitle"
columns = ["ID", "LogTitle", "LogDescription", "QuestDescription", "StartItem", "RequiredNpcOrGo1", "RequiredNpcOrGo2", "RequiredNpcOrGo3", "RequiredNpcOrGo4", "RequiredItemId1", "RequiredItemId2", "RequiredItemId3", "RequiredItemId4", "RequiredItemId5", "RequiredItemId6", "RequiredSpell"]
limit = 1
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "StartItem"
relation = "quest_start_item"
entity_type = "item"
table = "item_script_names"
column = "Id"
columns = ["Id", "ScriptName"]
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "RequiredItemId1"
relation = "quest_required_item"
entity_type = "item"
table = "item_script_names"
column = "Id"
columns = ["Id", "ScriptName"]
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "RequiredItemId2"
relation = "quest_required_item"
entity_type = "item"
table = "item_script_names"
column = "Id"
columns = ["Id", "ScriptName"]
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "ID"
relation = "quest_starter_records"
table = "creature_queststarter"
column = "quest"
columns = ["id", "quest"]
[[enrichment.relationships]]
from_table = "creature_queststarter"
from_id_column = "quest"
from_column = "id"
relation = "quest_giver"
entity_type = "creature"
table = "creature_template"
column = "entry"
columns = ["entry", "name", "AIName", "ScriptName"]
[[enrichment.relationships]]
from_table = "creature_template"
from_id_column = "entry"
from_column = "entry"
when_column = "AIName"
when_value = "SmartAI"
relation = "creature_smartai_records"
table = "smart_scripts"
column = "entryorguid"
columns = ["entryorguid", "source_type", "id", "link", "event_type", "event_param1", "event_param2", "event_param3", "event_param4", "action_type", "action_param1", "action_param2", "action_param3", "action_param4", "action_param5", "action_param6", "target_type", "target_param1", "target_param2", "target_param3", "comment"]
filters = [{column = "source_type", operator = "eq", value = 0}]
limit = 10
[[enrichment.relationships]]
from_table = "creature_template"
from_id_column = "entry"
from_column = "ScriptName"
relation = "creature_script_binding"
kind = "source.symbol"
path_prefix = "src/server/scripts/"
limit = 5
[[enrichment.relationships]]
from_table = "item_script_names"
from_id_column = "Id"
from_column = "ScriptName"
relation = "item_script_binding"
kind = "source.symbol"
path_prefix = "src/server/scripts/"
limit = 5
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "RequiredSpell"
relation = "quest_required_spell"
entity_type = "spell"
table = "spell_script_names"
column = "spell_id"
columns = ["spell_id", "ScriptName"]
[[enrichment.relationships]]
from_table = "spell_script_names"
from_id_column = "spell_id"
from_column = "ScriptName"
relation = "spell_script_binding"
kind = "source.symbol"
path_prefix = "src/server/scripts/"
limit = 5
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "RequiredItemId3"
relation = "quest_required_item"
entity_type = "item"
table = "item_script_names"
column = "Id"
columns = ["Id", "ScriptName"]
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "RequiredItemId4"
relation = "quest_required_item"
entity_type = "item"
table = "item_script_names"
column = "Id"
columns = ["Id", "ScriptName"]
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "RequiredItemId5"
relation = "quest_required_item"
entity_type = "item"
table = "item_script_names"
column = "Id"
columns = ["Id", "ScriptName"]
[[enrichment.relationships]]
from_table = "quest_template"
from_id_column = "ID"
from_column = "RequiredItemId6"
relation = "quest_required_item"
entity_type = "item"
table = "item_script_names"
column = "Id"
columns = ["Id", "ScriptName"]
# Semantic name lookup runs in Case Interpretation, never in the deterministic CaseBuilder.
[entity_resolution]
enabled = true
max_searches = 4
max_candidates = 8
max_invalid_responses = 3
[[entity_resolution.catalogs]]
id = "creatures"
entity_type = "creature"
table = "creature_template"
id_column = "entry"
name_column = "name"
columns = ["entry", "name", "subname", "AIName", "ScriptName", "minlevel", "maxlevel", "faction", "unit_flags"]
[[entity_resolution.catalogs]]
id = "localized_creatures"
entity_type = "creature"
table = "creature_template_locale"
id_column = "entry"
name_column = "Name"
columns = ["entry", "locale", "Name", "Title"]
# Larger read-only source tool; registration naming is project-specific.
[source_analysis]
enabled = true
context_lines = 8
max_searches = 4
max_matches = 12
max_files = 8
max_blocks = 12
max_total_lines = 160
registration_prefixes = ["AddSC_"]
# Context-aware source selection. Domain markers belong to this adapter.
protocol = 2
max_seed_terms = 8
max_candidate_matches = 50
max_weak_hits = 8
code_prefixes = ["src/"]
schema_prefixes = ["sql/base/"]
historical_prefixes = ["sql/old/", "sql/archive/"]
context_fact_names = ["zone_name", "area_name", "world_event_name"]
type_markers = {creature = ["NPC", "CREATURE"], quest = ["QUEST"], spell = ["SPELL"], item = ["ITEM"], gameobject = ["GO", "GAMEOBJECT"]}
entity_tables = [{table = "creature_template", entity_type = "creature", id_column = "entry", script_columns = ["ScriptName"]}]
focus_roles = ["diagnostic_focus", "explicit_quest"]