267 lines
7.6 KiB
TOML
267 lines
7.6 KiB
TOML
# Operator-controlled bindings. The model cannot override these settings.
|
|
relations_file = "project-relations.vcore.toml"
|
|
[project]
|
|
type = "wow"
|
|
profile = "vcore"
|
|
|
|
[source]
|
|
path = "../service-data/research/viano-core"
|
|
url = "https://gitea.viano-software.de/Nico/Viano-Core"
|
|
commit = "3a6c0b5575f8aaf1bd12ebca26d52fbeb122f086"
|
|
|
|
[database]
|
|
host = "127.0.0.1"
|
|
port = 33079
|
|
database = "cata_world"
|
|
user = "viano_reader"
|
|
password_file = "../service-data/research/world-db/reader.local.txt"
|
|
snapshot_id = "backup-sha256:4964f277ef5cf7f7f98bf4378971dcb55180bac813d49bcda6d2f03ff6969662"
|
|
# Explicit allowlist: no account or character tables.
|
|
tables = ["creature_template", "creature_template_locale", "creature", "quest_template", "quest_template_addon", "smart_scripts", "conditions", "game_event", "game_event_creature", "spell_script_names", "gameobject_template", "gameobject", "creature_equip_template", "item_script_names", "creature_queststarter", "spell_dbc"]
|
|
|
|
# Optional additional databases on this same connection; enable explicitly:
|
|
# [database.additional_databases]
|
|
# cata_hotfixes = ["*"]
|
|
# cata_locale = ["*"]
|
|
# Use individual table names instead of "*" for narrower access.
|
|
|
|
[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"]
|