diff --git a/architecture/assets.md b/architecture/assets.md index 51be88d8..707de136 100644 --- a/architecture/assets.md +++ b/architecture/assets.md @@ -45,17 +45,18 @@ checkout. ## Pre-flight Before any model call, a run verifies that every selected probe's assets -exist, including the locale subtree for the locale-scoped probes: -`financial_services`, `sov_ai_facts` and `sov_ai_dynamic`. A locale that runs -on another locale's bank is checked against that bank, the one the probe loads -in its place: a registered India variant with no subtree of its own runs on -`en_IN`'s. For `financial_services` a subtree counts once it has tasks, and -`hi_Deva_IN` and `hi_Latn_IN` run on `en_IN`'s until theirs does. Every -missing path is reported at once, with what to do: drop the probe or the -locale from the run, or point `--assets-dir` somewhere else. When a probe -can't run one of the run's locales, the refusal also names the locales it can -run and links the feature-request form, and for `financial_services` the guide -to authoring a bank. +exist. A probe whose banks are split by locale declares a `locale_bank_check` +on its class, and the run loads the bank each run locale runs on with it: +`financial_services`, `sov_ai_facts` and `sov_ai_dynamic` declare one. The +class's `bank_locale` names that bank, the one the probe loads in the locale's +place when it has none of its own: a registered India variant with no subtree +of its own runs on `en_IN`'s. For `financial_services` a subtree counts once it +has tasks, and `hi_Deva_IN` and `hi_Latn_IN` run on `en_IN`'s until theirs +does. Every missing path is reported at once, with what to do: drop the probe +or the locale from the run, or point `--assets-dir` somewhere else. When a +probe can't run one of the run's locales, the refusal also names the locales it +can run and the guide the class's `authoring_guide` links, if any, and for a +probe that ships with User Sim, the feature-request form. Without this, a missing bank surfaces from inside a loader partway through a run, after the other probes in the mix have already been paid for, while diff --git a/architecture/cli.md b/architecture/cli.md index 01fac3e6..3d12cb8b 100644 --- a/architecture/cli.md +++ b/architecture/cli.md @@ -43,10 +43,13 @@ them: `api_response_model` for tool-calling probes and `summary_model` for the loop's light work: summaries for context management, early-stop checks, the pressure probe's capitulation check, and translating India-variant openings and `financial_services` search queries. -Without it, `user_model` does that work. `eval` requires `evaluator_model`, -kept distinct from `judge_model` so the in-sim gate and the post-hoc rubric -can be sized independently. A missing required alias fails at config -construction, not mid-run. +Without it, `user_model` does that work. A probe that calls a model of its own +names the alias in `model_aliases` on its class, as `financial_services` does +for the model that embeds its search queries: each declared alias the file +defines reaches the probe, and one it lacks is left out. `eval` requires +`evaluator_model`, kept distinct from `judge_model` so the in-sim gate and the +post-hoc rubric can be sized independently. A missing required alias fails at +config construction, not mid-run. `usersim.cli.model_catalog` holds per-model inference defaults: temperature, top_p, max_tokens, and any model-family-specific `extra_body`. A TOML row diff --git a/architecture/probes.md b/architecture/probes.md index 902b9e87..7f9bddfb 100644 --- a/architecture/probes.md +++ b/architecture/probes.md @@ -111,7 +111,14 @@ A probe's content lives at `engine/assets/