usersim 0.2.0__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {usersim-0.2.0/src/usersim.egg-info → usersim-0.3.0}/PKG-INFO +17 -11
- {usersim-0.2.0 → usersim-0.3.0}/README.md +16 -10
- {usersim-0.2.0 → usersim-0.3.0}/pyproject.toml +25 -18
- usersim-0.3.0/src/usersim/asset_gen/__init__.py +11 -0
- usersim-0.3.0/src/usersim/asset_gen/registry.py +101 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/__init__.py +14 -5
- usersim-0.3.0/src/usersim/cli/_bank_dir.py +27 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/_inputs.py +174 -95
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/_models.py +29 -588
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/_pipeline.py +309 -291
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/evaluate.py +40 -6
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/evaluate_assets.py +5 -6
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/gen_assets.py +4 -5
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/models_default.toml +8 -3
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/models_openai.toml +1 -1
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/models_openrouter.toml +4 -2
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/panel.py +8 -8
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/rescore.py +19 -29
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/simulate.py +137 -156
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/smoke.py +102 -212
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/validate_assets.py +2 -2
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/config.py +46 -127
- usersim-0.3.0/src/usersim/engine/core/_assets.py +223 -0
- usersim-0.3.0/src/usersim/engine/core/_extensions.py +259 -0
- usersim-0.3.0/src/usersim/engine/core/_probe_registry.py +22 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/behavioral.py +37 -13
- usersim-0.3.0/src/usersim/engine/core/builtin_packages.py +50 -0
- usersim-0.3.0/src/usersim/engine/core/columns.py +62 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/episode_input.py +9 -10
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/episode_runtime.py +25 -27
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/identity.py +2 -2
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/llm.py +38 -38
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/manifest.py +49 -39
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/messages.py +13 -10
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/outcomes.py +78 -45
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/persona.py +40 -5
- usersim-0.2.0/src/usersim/engine/probes/sov_ai_facts/task_derivation.py → usersim-0.3.0/src/usersim/engine/core/persona_tags.py +10 -78
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/preview.py +39 -223
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/probes.py +496 -147
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/probing_taxonomy.py +23 -37
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/prompt_loader.py +15 -9
- usersim-0.3.0/src/usersim/engine/core/seeds.py +82 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/simulation.py +64 -20
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/user_turn_policy.py +0 -24
- usersim-0.3.0/src/usersim/engine/errors.py +34 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/axes.py +35 -168
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/generator.py +8 -5
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/prompts.py +1 -1
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/scorers/__init__.py +77 -39
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/scorers/language_compliance.py +1 -1
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/scorers/refusal_basics.py +1 -1
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/scorers/response_shape.py +1 -1
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/scorers/tool_use.py +14 -7
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/external.py +31 -16
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/generator.py +24 -29
- {usersim-0.2.0/src/usersim/cli → usersim-0.3.0/src/usersim/engine}/model_catalog.py +1 -1
- usersim-0.3.0/src/usersim/engine/models_file.py +598 -0
- usersim-0.3.0/src/usersim/engine/probes/__init__.py +15 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_domain.py +118 -0
- {usersim-0.2.0/src/usersim/asset_gen/financial_services → usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen}/__init__.py +1 -1
- {usersim-0.2.0/src/usersim/asset_gen/financial_services → usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen}/evaluate.py +6 -6
- {usersim-0.2.0/src/usersim/asset_gen/financial_services → usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen}/pipeline.py +132 -40
- {usersim-0.2.0/src/usersim/asset_gen/financial_services → usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen}/prompts.py +35 -7
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen/region_spec/de_DE.yaml +749 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen/region_spec/en_GB.yaml +952 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen/region_spec/en_IN.yaml +463 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen/region_spec/en_US.yaml +311 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen/region_spec/fr_FR.yaml +787 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen/region_spec/hi_Deva_IN.yaml +243 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen/region_spec/ja_JP.yaml +960 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen/region_spec/ko_KR.yaml +993 -0
- {usersim-0.2.0/src/usersim/asset_gen/financial_services → usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen}/spec.py +62 -11
- {usersim-0.2.0/src/usersim/asset_gen/financial_services → usersim-0.3.0/src/usersim/engine/probes/financial_services/asset_gen}/validate.py +139 -12
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/SCHEMA.md +10 -6
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/bank/bausparkasse_heimstatt/corpus.yaml +4 -4
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/bank/sparkasse_lindenhain/corpus.yaml +2 -2
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/brokerage/kranich_invest/corpus.yaml +3 -3
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/brokerage/kranich_invest/tasks.yaml +13 -13
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/insurer/hanseatica_versicherung/corpus.yaml +3 -3
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/neobank/kompass_direktbank/corpus.yaml +3 -3
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/bank/fernbridge_building_society/corpus.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/bank/wrenfield_bank/corpus.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/brokerage/copperleaf_invest/corpus.yaml +8 -8
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/retirement_provider/oakhaven_pensions/corpus.yaml +2 -2
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/bank/chandrika_bank/corpus.yaml +6 -6
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/brokerage/tarang_invest/corpus.yaml +4 -4
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/insurer/abhaya_insurance/corpus.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/nbfc/kalash_finserv/corpus.yaml +9 -9
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/neobank/paysetu/corpus.yaml +4 -4
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/bank/northwind_bank/corpus.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/bank/northwind_bank/tasks.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/brokerage/solstice_invest/corpus.yaml +3 -3
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/brokerage/solstice_invest/tasks.yaml +5 -5
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/retirement_provider/evergreen_retirement/corpus.yaml +2 -2
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/retirement_provider/evergreen_retirement/tasks.yaml +2 -2
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/wealth_manager/meridian_wealth/corpus.yaml +8 -8
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/bank/credit_mirabelle/corpus.yaml +6 -6
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/bank/credit_mirabelle/tasks.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/brokerage/valbreuil_bourse/corpus.yaml +6 -7
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/brokerage/valbreuil_bourse/tasks.yaml +21 -21
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/insurer/egide_assurances/corpus.yaml +2 -2
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/nbfc/ondine_credit/corpus.yaml +4 -4
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/neobank/kiosque/corpus.yaml +2 -2
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/bank/chandrika_bank/corpus.yaml +4 -4
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/brokerage/tarang_invest/corpus.yaml +10 -10
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/insurer/abhaya_insurance/corpus.yaml +9 -9
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/neobank/paysetu/corpus.yaml +9 -9
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/_generation_report.json +1153 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/bank/asanagi_bank/corpus.yaml +8344 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/bank/asanagi_bank/institution_meta.yaml +11 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/bank/asanagi_bank/tasks.yaml +407 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/bank/asanagi_bank/tools.yaml +154 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/brokerage/hoshimi_securities/corpus.yaml +8270 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/brokerage/hoshimi_securities/institution_meta.yaml +9 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/brokerage/hoshimi_securities/tasks.yaml +400 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/brokerage/hoshimi_securities/tools.yaml +149 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/dynamic.yaml +267 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/insurer/komorebi_life/corpus.yaml +6954 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/insurer/komorebi_life/institution_meta.yaml +9 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/insurer/komorebi_life/tasks.yaml +398 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/insurer/komorebi_life/tools.yaml +119 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/nbfc/tsumugi_card/corpus.yaml +7437 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/nbfc/tsumugi_card/institution_meta.yaml +10 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/nbfc/tsumugi_card/tasks.yaml +415 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/nbfc/tsumugi_card/tools.yaml +149 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/neobank/sorairo_bank/corpus.yaml +7381 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/neobank/sorairo_bank/institution_meta.yaml +10 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/neobank/sorairo_bank/tasks.yaml +419 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/neobank/sorairo_bank/tools.yaml +149 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ja_JP/region_meta.yaml +52 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/_generation_report.json +1161 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/bank/yunseul_bank/corpus.yaml +7225 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/bank/yunseul_bank/institution_meta.yaml +11 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/bank/yunseul_bank/tasks.yaml +415 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/bank/yunseul_bank/tools.yaml +164 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/brokerage/garam_securities/corpus.yaml +6919 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/brokerage/garam_securities/institution_meta.yaml +9 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/brokerage/garam_securities/tasks.yaml +383 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/brokerage/garam_securities/tools.yaml +149 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/dynamic.yaml +280 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/insurer/dodam_life/corpus.yaml +5927 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/insurer/dodam_life/institution_meta.yaml +9 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/insurer/dodam_life/tasks.yaml +370 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/insurer/dodam_life/tools.yaml +119 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/nbfc/yeoul_card/corpus.yaml +6348 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/nbfc/yeoul_card/institution_meta.yaml +10 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/nbfc/yeoul_card/tasks.yaml +408 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/nbfc/yeoul_card/tools.yaml +154 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/neobank/mirinae_bank/corpus.yaml +6534 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/neobank/mirinae_bank/institution_meta.yaml +10 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/neobank/mirinae_bank/tasks.yaml +414 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/neobank/mirinae_bank/tools.yaml +159 -0
- usersim-0.3.0/src/usersim/engine/probes/financial_services/assets/financial_services/ko_KR/region_meta.yaml +97 -0
- usersim-0.2.0/src/usersim/engine/core/finance_bank.py → usersim-0.3.0/src/usersim/engine/probes/financial_services/bank.py +51 -6
- usersim-0.3.0/src/usersim/engine/probes/financial_services/capabilities.py +249 -0
- usersim-0.2.0/src/usersim/engine/probes/financial_services/generator.py → usersim-0.3.0/src/usersim/engine/probes/financial_services/probe.py +214 -136
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/financial_services/retrieval.py +59 -16
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/financial_services.py → usersim-0.3.0/src/usersim/engine/probes/financial_services/scorer.py +13 -18
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/financial_services/task_derivation.py +4 -6
- usersim-0.2.0/src/usersim/engine/core/finance_tasks.py → usersim-0.3.0/src/usersim/engine/probes/financial_services/tasks.py +1 -1
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/financial_services/tools.py +2 -2
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/general_educational}/assets/general_educational/prompts.yaml +0 -32
- usersim-0.3.0/src/usersim/engine/probes/general_educational/axes.py +31 -0
- usersim-0.2.0/src/usersim/engine/probes/general_educational/generator.py → usersim-0.3.0/src/usersim/engine/probes/general_educational/probe.py +44 -55
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/general_educational/prompts.py +2 -63
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/general_open_ended}/assets/general_open_ended/prompts.yaml +0 -30
- usersim-0.2.0/src/usersim/engine/probes/general_open_ended/generator.py → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/probe.py +44 -57
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/general_open_ended/prompts.py +2 -61
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/health_disclosure/__init__.py +2 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/health_disclosure}/assets/health_decision_support_disclosure/sample.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/health_disclosure}/assets/health_general_disclosure/sample.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/health_disclosure}/assets/health_therapy_disclosure/sample.yaml +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/health_disclosure}/assets/health_triage_disclosure/sample.yaml +1 -1
- usersim-0.3.0/src/usersim/engine/probes/health_disclosure/axes.py +115 -0
- usersim-0.2.0/src/usersim/engine/core/clinical_profile_bank.py → usersim-0.3.0/src/usersim/engine/probes/health_disclosure/bank.py +2 -2
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/health_disclosure/base.py +37 -14
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/health_disclosure/clients.py +6 -10
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/health_disclosure/mixin.py +9 -6
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/health_disclosure/move_runtime.py +2 -3
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/health_disclosure/moves.py +2 -2
- usersim-0.3.0/src/usersim/engine/probes/health_disclosure/probe.py +101 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/health_disclosure/prompts.py +3 -5
- {usersim-0.2.0/src/usersim/engine/core → usersim-0.3.0/src/usersim/engine/probes/health_disclosure}/realized_audit.py +4 -8
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/health_disclosure.py → usersim-0.3.0/src/usersim/engine/probes/health_disclosure/scorer.py +9 -10
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/identity_disclosure}/assets/identity_disclosure/SCHEMA.md +2 -2
- usersim-0.3.0/src/usersim/engine/probes/identity_disclosure/capabilities.py +273 -0
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/identity_grading.py → usersim-0.3.0/src/usersim/engine/probes/identity_disclosure/grading.py +1 -1
- usersim-0.2.0/src/usersim/engine/probes/identity_disclosure/generator.py → usersim-0.3.0/src/usersim/engine/probes/identity_disclosure/probe.py +65 -37
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/identity_disclosure/prompts.py +25 -2
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/identity_disclosure.py → usersim-0.3.0/src/usersim/engine/probes/identity_disclosure/scorer.py +5 -9
- usersim-0.2.0/src/usersim/engine/core/identity_spec.py → usersim-0.3.0/src/usersim/engine/probes/identity_disclosure/spec.py +40 -12
- usersim-0.2.0/src/usersim/engine/core/identity_spec_types.py → usersim-0.3.0/src/usersim/engine/probes/identity_disclosure/spec_types.py +2 -2
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/identity_disclosure/task_derivation.py +1 -1
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/safety_agentic/__init__.py +1 -3
- {usersim-0.2.0/src/usersim/engine/core → usersim-0.3.0/src/usersim/engine/probes/safety_agentic}/action_taxonomy.py +5 -6
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/safety_agentic}/assets/safety_agentic/SCHEMA.md +5 -4
- usersim-0.2.0/src/usersim/engine/core/agentic_bank.py → usersim-0.3.0/src/usersim/engine/probes/safety_agentic/bank.py +9 -13
- usersim-0.3.0/src/usersim/engine/probes/safety_agentic/capabilities.py +62 -0
- usersim-0.2.0/src/usersim/engine/probes/safety_agentic/generator.py → usersim-0.3.0/src/usersim/engine/probes/safety_agentic/probe.py +53 -104
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/safety_agentic.py → usersim-0.3.0/src/usersim/engine/probes/safety_agentic/scorer.py +10 -13
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/safety_agentic/task_derivation.py +2 -4
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/safety_chat_pressure/__init__.py +1 -3
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/safety_chat_pressure}/assets/safety_chat_pressure/SCHEMA.md +2 -2
- usersim-0.2.0/src/usersim/engine/core/pressure_bank.py → usersim-0.3.0/src/usersim/engine/probes/safety_chat_pressure/bank.py +8 -11
- usersim-0.3.0/src/usersim/engine/probes/safety_chat_pressure/capabilities.py +38 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/safety_chat_pressure/classifier.py +1 -1
- usersim-0.2.0/src/usersim/engine/probes/safety_chat_pressure/generator.py → usersim-0.3.0/src/usersim/engine/probes/safety_chat_pressure/probe.py +44 -108
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/safety_chat_pressure/prompts.py +2 -2
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/safety_chat_pressure.py → usersim-0.3.0/src/usersim/engine/probes/safety_chat_pressure/scorer.py +12 -15
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/safety_chat_pressure/task_derivation.py +2 -4
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/sov_ai_dynamic/__init__.py +5 -5
- usersim-0.2.0/src/usersim/engine/probes/sov_ai_dynamic/generator.py → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic/probe.py +63 -135
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/sov_ai_dynamic.py → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic/scorer.py +12 -19
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/sov_ai_dynamic/task_derivation.py +2 -12
- usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic/taxonomy.py +35 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/sov_ai_facts/__init__.py +1 -3
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/SCHEMA.md +1 -1
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/ko_KR/sample.yaml +1 -1
- usersim-0.2.0/src/usersim/engine/core/fact_bank.py → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts/bank.py +5 -5
- usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts/capabilities.py +59 -0
- usersim-0.2.0/src/usersim/engine/probes/sov_ai_facts/generator.py → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts/probe.py +55 -120
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/sov_ai_facts.py → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts/scorer.py +12 -14
- usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts/task_derivation.py +79 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/sov_ai_multilingual_parity/__init__.py +1 -3
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_multilingual_parity}/assets/sov_ai_multilingual_parity/SCHEMA.md +1 -1
- usersim-0.2.0/src/usersim/engine/core/query_bank.py → usersim-0.3.0/src/usersim/engine/probes/sov_ai_multilingual_parity/bank.py +5 -5
- usersim-0.3.0/src/usersim/engine/probes/sov_ai_multilingual_parity/capabilities.py +32 -0
- usersim-0.2.0/src/usersim/engine/probes/sov_ai_multilingual_parity/generator.py → usersim-0.3.0/src/usersim/engine/probes/sov_ai_multilingual_parity/probe.py +49 -113
- usersim-0.2.0/src/usersim/engine/evaluator/scorers/sov_ai_multilingual_parity.py → usersim-0.3.0/src/usersim/engine/probes/sov_ai_multilingual_parity/scorer.py +15 -13
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/sov_ai_multilingual_parity/task_derivation.py +4 -7
- usersim-0.3.0/src/usersim/engine/probes/tool_calling/assets/tool_calling/README.md +513 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/tool_calling}/assets/tool_calling/prompts.yaml +15 -11
- usersim-0.3.0/src/usersim/engine/probes/tool_calling/assets/tool_calling/toolsets_seed.parquet +0 -0
- usersim-0.3.0/src/usersim/engine/probes/tool_calling/axes.py +51 -0
- usersim-0.3.0/src/usersim/engine/probes/tool_calling/capabilities.py +45 -0
- usersim-0.3.0/src/usersim/engine/probes/tool_calling/credentials.py +106 -0
- usersim-0.2.0/src/usersim/engine/probes/tool_calling/generator.py → usersim-0.3.0/src/usersim/engine/probes/tool_calling/probe.py +219 -118
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/tool_calling/prompts.py +33 -2
- usersim-0.3.0/src/usersim/extension.py +316 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/capability_report.py +4 -97
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/selection/schemas.py +1 -1
- usersim-0.3.0/src/usersim/taxonomy/capabilities.py +561 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/testing/__init__.py +373 -59
- usersim-0.3.0/src/usersim/testing/pytest_plugin.py +227 -0
- {usersim-0.2.0 → usersim-0.3.0/src/usersim.egg-info}/PKG-INFO +17 -11
- usersim-0.3.0/src/usersim.egg-info/SOURCES.txt +455 -0
- usersim-0.2.0/src/usersim/asset_gen/__init__.py +0 -22
- usersim-0.2.0/src/usersim/asset_gen/registry.py +0 -191
- usersim-0.2.0/src/usersim/cli/_errors.py +0 -44
- usersim-0.2.0/src/usersim/engine/assets/tool_calling/README.md +0 -225
- usersim-0.2.0/src/usersim/engine/assets/tool_calling/toolsets_seed.parquet +0 -0
- usersim-0.2.0/src/usersim/engine/core/_assets.py +0 -178
- usersim-0.2.0/src/usersim/engine/core/_extensions.py +0 -148
- usersim-0.2.0/src/usersim/engine/core/seeds.py +0 -82
- usersim-0.2.0/src/usersim/engine/probes/__init__.py +0 -28
- usersim-0.2.0/src/usersim/engine/probes/health_disclosure/decision_support.py +0 -44
- usersim-0.2.0/src/usersim/engine/probes/health_disclosure/general.py +0 -45
- usersim-0.2.0/src/usersim/engine/probes/health_disclosure/therapy.py +0 -43
- usersim-0.2.0/src/usersim/engine/probes/health_disclosure/triage.py +0 -43
- usersim-0.2.0/src/usersim/taxonomy/capabilities.py +0 -1125
- usersim-0.2.0/src/usersim.egg-info/SOURCES.txt +0 -383
- {usersim-0.2.0 → usersim-0.3.0}/LICENSE +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/MANIFEST.in +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/setup.cfg +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/__init__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/__main__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/_async.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/_env.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/_ngc.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/_persona_language.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/report.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/select.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/cli/setup_ngc.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/__init__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/__init__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/analysis.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/backends.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/context.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/idempotency.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/judges.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/language_detection.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/locale.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/localized.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/missing.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/prompts.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/provenance.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/row_metadata.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/storage.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/tool_calls.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/core/translation.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/__init__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/config.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/evaluator/judges.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/plugin.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/financial_services/__init__.py +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/_generation_report.json +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/bank/bausparkasse_heimstatt/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/bank/bausparkasse_heimstatt/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/bank/bausparkasse_heimstatt/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/bank/sparkasse_lindenhain/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/bank/sparkasse_lindenhain/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/bank/sparkasse_lindenhain/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/brokerage/kranich_invest/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/brokerage/kranich_invest/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/dynamic.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/insurer/hanseatica_versicherung/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/insurer/hanseatica_versicherung/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/insurer/hanseatica_versicherung/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/neobank/kompass_direktbank/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/neobank/kompass_direktbank/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/neobank/kompass_direktbank/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/de_DE/region_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/_generation_report.json +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/bank/fernbridge_building_society/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/bank/fernbridge_building_society/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/bank/fernbridge_building_society/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/bank/wrenfield_bank/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/bank/wrenfield_bank/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/bank/wrenfield_bank/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/brokerage/copperleaf_invest/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/brokerage/copperleaf_invest/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/brokerage/copperleaf_invest/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/dynamic.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/insurer/kingsmere_insurance/corpus.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/insurer/kingsmere_insurance/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/insurer/kingsmere_insurance/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/insurer/kingsmere_insurance/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/neobank/quill/corpus.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/neobank/quill/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/neobank/quill/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/neobank/quill/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/region_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/retirement_provider/oakhaven_pensions/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/retirement_provider/oakhaven_pensions/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_GB/retirement_provider/oakhaven_pensions/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/_generation_report.json +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/bank/chandrika_bank/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/bank/chandrika_bank/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/bank/chandrika_bank/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/brokerage/tarang_invest/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/brokerage/tarang_invest/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/brokerage/tarang_invest/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/dynamic.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/insurer/abhaya_insurance/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/insurer/abhaya_insurance/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/insurer/abhaya_insurance/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/nbfc/kalash_finserv/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/nbfc/kalash_finserv/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/nbfc/kalash_finserv/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/neobank/paysetu/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/neobank/paysetu/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/neobank/paysetu/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_IN/region_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/_generation_report.json +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/bank/northwind_bank/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/bank/northwind_bank/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/brokerage/solstice_invest/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/brokerage/solstice_invest/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/dynamic.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/region_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/retirement_provider/evergreen_retirement/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/retirement_provider/evergreen_retirement/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/wealth_manager/meridian_wealth/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/wealth_manager/meridian_wealth/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/en_US/wealth_manager/meridian_wealth/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/_generation_report.json +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/bank/credit_mirabelle/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/bank/credit_mirabelle/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/brokerage/valbreuil_bourse/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/brokerage/valbreuil_bourse/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/dynamic.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/insurer/egide_assurances/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/insurer/egide_assurances/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/insurer/egide_assurances/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/nbfc/ondine_credit/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/nbfc/ondine_credit/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/nbfc/ondine_credit/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/neobank/kiosque/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/neobank/kiosque/tasks.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/neobank/kiosque/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/fr_FR/region_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/_generation_report.json +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/bank/chandrika_bank/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/bank/chandrika_bank/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/brokerage/tarang_invest/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/brokerage/tarang_invest/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/insurer/abhaya_insurance/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/insurer/abhaya_insurance/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/nbfc/kalash_finserv/corpus.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/nbfc/kalash_finserv/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/nbfc/kalash_finserv/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/neobank/paysetu/institution_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/neobank/paysetu/tools.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/financial_services}/assets/financial_services/hi_Deva_IN/region_meta.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine/core → usersim-0.3.0/src/usersim/engine/probes/financial_services}/embeddings.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/financial_services/prompts.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/general_educational/__init__.py +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational}/de_DE/subjects.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational}/en_GB/subjects.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects/base → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational/en_US}/subjects.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational}/fr_FR/subjects.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational}/hi_Deva_IN/subjects.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational}/hi_Latn_IN/subjects.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational}/ja_JP/subjects.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational}/ko_KR/subjects.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_educational/subjects → usersim-0.3.0/src/usersim/engine/probes/general_educational/assets/general_educational}/pt_BR/subjects.json +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/general_open_ended/__init__.py +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended}/de_DE/topics.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended}/en_GB/topics.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics/base → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended/en_US}/topics.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended}/fr_FR/topics.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended}/hi_Deva_IN/topics.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended}/hi_Latn_IN/topics.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended}/ja_JP/topics.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended}/ko_KR/topics.json +0 -0
- {usersim-0.2.0/src/usersim/engine/assets/general_open_ended/topics → usersim-0.3.0/src/usersim/engine/probes/general_open_ended/assets/general_open_ended}/pt_BR/topics.json +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/identity_disclosure/__init__.py +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/identity_disclosure}/assets/identity_disclosure/spec.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/safety_agentic}/assets/safety_agentic/action_taxonomy.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/safety_agentic}/assets/safety_agentic/sample.yaml +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/safety_agentic/prompts.py +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/safety_chat_pressure}/assets/safety_chat_pressure/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/SCHEMA.md +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/de_DE/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/en_GB/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/en_IN/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/en_SG/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/en_US/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/fr_FR/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/hi_Deva_IN/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/hi_Latn_IN/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/ja_JP/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/ko_KR/categories.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_dynamic}/assets/sov_ai_dynamic/pt_BR/categories.yaml +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/sov_ai_dynamic/prompts.py +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/de_DE/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/en_GB/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/en_IN/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/en_SG/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/en_US/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/fr_FR/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/hi_Deva_IN/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/hi_Latn_IN/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/ja_JP/sample.yaml +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_facts}/assets/sov_ai_facts/pt_BR/sample.yaml +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/sov_ai_facts/prompts.py +0 -0
- {usersim-0.2.0/src/usersim/engine → usersim-0.3.0/src/usersim/engine/probes/sov_ai_multilingual_parity}/assets/sov_ai_multilingual_parity/sample.yaml +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/sov_ai_multilingual_parity/prompts.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/tool_calling/__init__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/engine/probes/tool_calling/verifiers.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/py.typed +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/__init__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/_reasoning.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/comparison.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/comparison_dashboard.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/dashboard.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/diagnostics.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/eval_manifest.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/identity.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/resource.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/runs.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/reporting/sim_health.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/selection/__init__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/selection/engine.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/selection/io.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/selection/profiles.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/taxonomy/__init__.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim/taxonomy/eval_cell.py +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim.egg-info/dependency_links.txt +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim.egg-info/entry_points.txt +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim.egg-info/requires.txt +0 -0
- {usersim-0.2.0 → usersim-0.3.0}/src/usersim.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: usersim
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Improve models and agents with population-grounded simulated users, even before production traffic exists.
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
Project-URL: Homepage, https://github.com/NVIDIA-NeMo/UserSim
|
|
@@ -50,7 +50,7 @@ Dynamic: license-file
|
|
|
50
50
|
> trajectories: evaluation signal, failure analysis, and curated training data,
|
|
51
51
|
> before you have production traffic to learn from.
|
|
52
52
|
|
|
53
|
-
**14 probes · 11 shipped locales across 9 countries (+ 22 preview India-language variants) · 8M+ census-grounded personas · 3,
|
|
53
|
+
**14 probes · 11 shipped locales across 9 countries (+ 22 preview India-language variants) · 8M+ census-grounded personas · 3,406 tools across 143 toolsets for agentic runs · 12 evaluator scorers · 4,000+ tests · offline `usersim smoke` in seconds**
|
|
54
54
|
|
|
55
55
|
<img src="https://raw.githubusercontent.com/NVIDIA-NeMo/UserSim/main/docs/images/hero.jpg" width="800" alt="NeMo User Sim: Population-Grounded User Simulation. Simulated users in the USA, Brazil, France, India and Japan, each speaking their own language under a different probe, on a world map beside headline counts for people represented, languages, locales and probes.">
|
|
56
56
|
|
|
@@ -116,8 +116,8 @@ walks through each layer and where it extends.
|
|
|
116
116
|
grounded in census distributions.
|
|
117
117
|
- **Sovereign-AI builders** with no user base yet. You get an in-language
|
|
118
118
|
evaluation surface from day one, drawn from your country's actual census
|
|
119
|
-
distribution: USA,
|
|
120
|
-
today.
|
|
119
|
+
distribution: USA, UK, Germany, France, Brazil, India, Singapore, Japan and
|
|
120
|
+
Korea ship today.
|
|
121
121
|
- **Agent builders** putting a tool-using system under multi-turn load. Probes
|
|
122
122
|
execute tools against a mock environment that holds state across turns, so a
|
|
123
123
|
run surfaces scope creep, unauthorized calls, prompt-injection susceptibility
|
|
@@ -175,11 +175,11 @@ in the NeMo Gym repository.
|
|
|
175
175
|
<img src="https://raw.githubusercontent.com/NVIDIA-NeMo/UserSim/main/docs/images/getting_started.jpg" width="800" alt="From install to capability report in five commands: pip install usersim, download personas with data-designer, then usersim simulate, eval and report. Optional steps fix the panel, replay stored rows or select training data, with a locale picker and the probe groups below.">
|
|
176
176
|
|
|
177
177
|
Python 3.10+, in a virtual environment. Python 3.10 is supported through the
|
|
178
|
-
0.
|
|
178
|
+
0.3 releases.
|
|
179
179
|
|
|
180
180
|
```bash
|
|
181
181
|
python -m venv .venv && source .venv/bin/activate
|
|
182
|
-
pip install "usersim>=0.
|
|
182
|
+
pip install "usersim>=0.3.0" # in a uv project: uv add "usersim>=0.3.0"
|
|
183
183
|
|
|
184
184
|
# Verify the install offline: no LLM calls, no network, CI-ready.
|
|
185
185
|
usersim smoke
|
|
@@ -232,9 +232,9 @@ These steps make live model calls, using the keys and personas above.
|
|
|
232
232
|
usersim simulate --locale en_US --num-rows 30 --out output/trajectories
|
|
233
233
|
|
|
234
234
|
# 2. Score the assistant under test: the evaluator model's judgments, plus
|
|
235
|
-
#
|
|
235
|
+
# each probe's own scorers and the three that apply to every probe.
|
|
236
236
|
usersim eval --trajectories output/trajectories --out output/evaluations \
|
|
237
|
-
--scorers
|
|
237
|
+
--scorers auto
|
|
238
238
|
|
|
239
239
|
# 3. Render the capability dashboard.
|
|
240
240
|
usersim report --trajectories output/trajectories \
|
|
@@ -252,9 +252,13 @@ usersim simulate --locale ja_JP --num-rows 30 \
|
|
|
252
252
|
--out output/trajectories
|
|
253
253
|
```
|
|
254
254
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
255
|
+
With `--scorers auto`, step 2 scores this run with the three `sov_ai` scorers
|
|
256
|
+
as well; [`docs/outputs.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/outputs.md)
|
|
257
|
+
lists every scorer. A probe that takes settings gets them with
|
|
258
|
+
`--probe-option LABEL.SETTING=VALUE`, such as
|
|
259
|
+
`--probe-option financial_services.tier_mix=0.3`;
|
|
260
|
+
[`docs/probes.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/probes.md#a-probes-settings)
|
|
261
|
+
lists each probe's settings.
|
|
258
262
|
|
|
259
263
|
### Curate training data
|
|
260
264
|
|
|
@@ -334,6 +338,8 @@ full plan and exits before the first network call.
|
|
|
334
338
|
|
|
335
339
|
**Extending it**
|
|
336
340
|
|
|
341
|
+
- [`docs/extensions.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/extensions.md): a probe and a scorer in a package of your own, installed next to `usersim`
|
|
342
|
+
- [`docs/extension_api.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/extension_api.md): every name an extension imports from `usersim`
|
|
337
343
|
- [`docs/engine/AUTHORING_A_PROBE.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/engine/AUTHORING_A_PROBE.md): end-to-end tutorial for a new probe
|
|
338
344
|
- [`docs/engine/README.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/engine/README.md): the substrate's full API surface
|
|
339
345
|
- [`templates/probe/`](https://github.com/NVIDIA-NeMo/UserSim/tree/main/templates/probe/): copy-and-edit starters, one per probe shape
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
> trajectories: evaluation signal, failure analysis, and curated training data,
|
|
11
11
|
> before you have production traffic to learn from.
|
|
12
12
|
|
|
13
|
-
**14 probes · 11 shipped locales across 9 countries (+ 22 preview India-language variants) · 8M+ census-grounded personas · 3,
|
|
13
|
+
**14 probes · 11 shipped locales across 9 countries (+ 22 preview India-language variants) · 8M+ census-grounded personas · 3,406 tools across 143 toolsets for agentic runs · 12 evaluator scorers · 4,000+ tests · offline `usersim smoke` in seconds**
|
|
14
14
|
|
|
15
15
|
<img src="https://raw.githubusercontent.com/NVIDIA-NeMo/UserSim/main/docs/images/hero.jpg" width="800" alt="NeMo User Sim: Population-Grounded User Simulation. Simulated users in the USA, Brazil, France, India and Japan, each speaking their own language under a different probe, on a world map beside headline counts for people represented, languages, locales and probes.">
|
|
16
16
|
|
|
@@ -76,8 +76,8 @@ walks through each layer and where it extends.
|
|
|
76
76
|
grounded in census distributions.
|
|
77
77
|
- **Sovereign-AI builders** with no user base yet. You get an in-language
|
|
78
78
|
evaluation surface from day one, drawn from your country's actual census
|
|
79
|
-
distribution: USA,
|
|
80
|
-
today.
|
|
79
|
+
distribution: USA, UK, Germany, France, Brazil, India, Singapore, Japan and
|
|
80
|
+
Korea ship today.
|
|
81
81
|
- **Agent builders** putting a tool-using system under multi-turn load. Probes
|
|
82
82
|
execute tools against a mock environment that holds state across turns, so a
|
|
83
83
|
run surfaces scope creep, unauthorized calls, prompt-injection susceptibility
|
|
@@ -135,11 +135,11 @@ in the NeMo Gym repository.
|
|
|
135
135
|
<img src="https://raw.githubusercontent.com/NVIDIA-NeMo/UserSim/main/docs/images/getting_started.jpg" width="800" alt="From install to capability report in five commands: pip install usersim, download personas with data-designer, then usersim simulate, eval and report. Optional steps fix the panel, replay stored rows or select training data, with a locale picker and the probe groups below.">
|
|
136
136
|
|
|
137
137
|
Python 3.10+, in a virtual environment. Python 3.10 is supported through the
|
|
138
|
-
0.
|
|
138
|
+
0.3 releases.
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
141
|
python -m venv .venv && source .venv/bin/activate
|
|
142
|
-
pip install "usersim>=0.
|
|
142
|
+
pip install "usersim>=0.3.0" # in a uv project: uv add "usersim>=0.3.0"
|
|
143
143
|
|
|
144
144
|
# Verify the install offline: no LLM calls, no network, CI-ready.
|
|
145
145
|
usersim smoke
|
|
@@ -192,9 +192,9 @@ These steps make live model calls, using the keys and personas above.
|
|
|
192
192
|
usersim simulate --locale en_US --num-rows 30 --out output/trajectories
|
|
193
193
|
|
|
194
194
|
# 2. Score the assistant under test: the evaluator model's judgments, plus
|
|
195
|
-
#
|
|
195
|
+
# each probe's own scorers and the three that apply to every probe.
|
|
196
196
|
usersim eval --trajectories output/trajectories --out output/evaluations \
|
|
197
|
-
--scorers
|
|
197
|
+
--scorers auto
|
|
198
198
|
|
|
199
199
|
# 3. Render the capability dashboard.
|
|
200
200
|
usersim report --trajectories output/trajectories \
|
|
@@ -212,9 +212,13 @@ usersim simulate --locale ja_JP --num-rows 30 \
|
|
|
212
212
|
--out output/trajectories
|
|
213
213
|
```
|
|
214
214
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
With `--scorers auto`, step 2 scores this run with the three `sov_ai` scorers
|
|
216
|
+
as well; [`docs/outputs.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/outputs.md)
|
|
217
|
+
lists every scorer. A probe that takes settings gets them with
|
|
218
|
+
`--probe-option LABEL.SETTING=VALUE`, such as
|
|
219
|
+
`--probe-option financial_services.tier_mix=0.3`;
|
|
220
|
+
[`docs/probes.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/probes.md#a-probes-settings)
|
|
221
|
+
lists each probe's settings.
|
|
218
222
|
|
|
219
223
|
### Curate training data
|
|
220
224
|
|
|
@@ -294,6 +298,8 @@ full plan and exits before the first network call.
|
|
|
294
298
|
|
|
295
299
|
**Extending it**
|
|
296
300
|
|
|
301
|
+
- [`docs/extensions.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/extensions.md): a probe and a scorer in a package of your own, installed next to `usersim`
|
|
302
|
+
- [`docs/extension_api.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/extension_api.md): every name an extension imports from `usersim`
|
|
297
303
|
- [`docs/engine/AUTHORING_A_PROBE.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/engine/AUTHORING_A_PROBE.md): end-to-end tutorial for a new probe
|
|
298
304
|
- [`docs/engine/README.md`](https://github.com/NVIDIA-NeMo/UserSim/blob/main/docs/engine/README.md): the substrate's full API surface
|
|
299
305
|
- [`templates/probe/`](https://github.com/NVIDIA-NeMo/UserSim/tree/main/templates/probe/): copy-and-edit starters, one per probe shape
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "usersim"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.0"
|
|
4
4
|
description = "Improve models and agents with population-grounded simulated users, even before production traffic exists."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -87,7 +87,8 @@ Issues = "https://github.com/NVIDIA-NeMo/UserSim/issues"
|
|
|
87
87
|
# A dependency group rather than an optional-dependency extra, so `uv sync`
|
|
88
88
|
# installs it by default and `pip install usersim[dev]` cannot pull test
|
|
89
89
|
# and lint tooling into a user's environment. `make test` and the hermeticity
|
|
90
|
-
#
|
|
90
|
+
# checks in usersim.testing.pytest_plugin both depend on this group being
|
|
91
|
+
# present.
|
|
91
92
|
dev = [
|
|
92
93
|
"jupyter",
|
|
93
94
|
"pytest>=8.0",
|
|
@@ -101,18 +102,22 @@ dev = [
|
|
|
101
102
|
# without this.
|
|
102
103
|
"pytest-xdist>=3.6,<4",
|
|
103
104
|
# Applies the [tool.pytest.ini_options] env block below, which sets
|
|
104
|
-
# USERSIM_DISABLE_EXTENSIONS before any conftest loads.
|
|
105
|
-
#
|
|
106
|
-
#
|
|
105
|
+
# USERSIM_DISABLE_EXTENSIONS before any conftest loads. Setting it from the
|
|
106
|
+
# root conftest.py, or the plugin it loads, would come after any conftest
|
|
107
|
+
# that imports a registry, which is too late to keep discovery out of the
|
|
108
|
+
# suite. usersim.testing.pytest_plugin fails the run if this is absent.
|
|
107
109
|
"pytest-env>=1.1,<2",
|
|
108
110
|
# Collects `async def` tests. `asyncio_mode = "auto"` below means they need
|
|
109
111
|
# no decorator, so a contributor writing one does not have to know this is
|
|
110
|
-
# here.
|
|
111
|
-
#
|
|
112
|
+
# here. usersim.testing.pytest_plugin fails the run if it is absent,
|
|
113
|
+
# because without it no async test runs.
|
|
112
114
|
"pytest-asyncio>=1.0,<2",
|
|
113
115
|
# tests/test_network_guard.py unwraps exception groups, which Python 3.10
|
|
114
116
|
# has only through this backport.
|
|
115
117
|
"exceptiongroup>=1.0; python_version < '3.11'",
|
|
118
|
+
# Validates each tool spec in the tool_calling catalog against the JSON
|
|
119
|
+
# Schema 2020-12 meta-schema, in tests/probes/tool_calling/test_catalog.py.
|
|
120
|
+
"jsonschema>=4.0,<5",
|
|
116
121
|
]
|
|
117
122
|
# Empty on purpose: the gate runs a pinned pip-licenses through `uv tool run`,
|
|
118
123
|
# so this group exists only to scope an isolated environment holding the
|
|
@@ -163,14 +168,16 @@ include = ["usersim*"]
|
|
|
163
168
|
"models_*.toml",
|
|
164
169
|
]
|
|
165
170
|
"usersim.engine" = [
|
|
166
|
-
# The asset banks
|
|
167
|
-
#
|
|
168
|
-
# `make check-dist` fails if the
|
|
169
|
-
|
|
170
|
-
"assets/**/*.yml",
|
|
171
|
-
"assets/**/*.json",
|
|
172
|
-
"assets/**/*.parquet",
|
|
173
|
-
"assets/**/*.md",
|
|
171
|
+
# The asset banks, each in its probe's own folder, under probes/<folder>/assets/.
|
|
172
|
+
# setuptools ships package data only when it is named, and a wheel without the
|
|
173
|
+
# banks fails every probe at asset resolution. `make check-dist` fails if the
|
|
174
|
+
# wheel misses any bank file.
|
|
175
|
+
"probes/*/assets/**/*.yml",
|
|
176
|
+
"probes/*/assets/**/*.json",
|
|
177
|
+
"probes/*/assets/**/*.parquet",
|
|
178
|
+
"probes/*/assets/**/*.md",
|
|
179
|
+
# Every other YAML, the region specs an asset domain beside its probe reads
|
|
180
|
+
# among them: without those an installed package reports no locales to generate.
|
|
174
181
|
"**/*.yaml",
|
|
175
182
|
]
|
|
176
183
|
|
|
@@ -180,9 +187,9 @@ include = ["usersim*"]
|
|
|
180
187
|
# vectors `gen-assets` writes beside a bank stay local, as do the judge
|
|
181
188
|
# scorecards `evaluate-assets` writes there.
|
|
182
189
|
"usersim.engine" = [
|
|
183
|
-
"assets/financial_services/**/embeddings.parquet",
|
|
184
|
-
"assets/financial_services/**/_eval_scorecard.parquet",
|
|
185
|
-
"assets/financial_services/**/_scorecards/*",
|
|
190
|
+
"probes/financial_services/assets/financial_services/**/embeddings.parquet",
|
|
191
|
+
"probes/financial_services/assets/financial_services/**/_eval_scorecard.parquet",
|
|
192
|
+
"probes/financial_services/assets/financial_services/**/_scorecards/*",
|
|
186
193
|
]
|
|
187
194
|
|
|
188
195
|
[tool.pytest.ini_options]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
"""asset_gen: the generic dispatch for building asset banks offline.
|
|
5
|
+
|
|
6
|
+
``registry.py`` holds :class:`AssetDomain` and the built-in domains, and
|
|
7
|
+
``usersim gen-assets``, ``validate-assets`` and ``evaluate-assets`` dispatch
|
|
8
|
+
through it. A domain's generator lives beside the probe whose banks it builds:
|
|
9
|
+
``usersim.engine.probes.financial_services.asset_gen`` authors the committed
|
|
10
|
+
``assets/financial_services/<locale>/`` banks the probe and its scorer read.
|
|
11
|
+
"""
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
"""Asset-domain registry: the one generic layer over per-domain asset generation.
|
|
5
|
+
|
|
6
|
+
The `usersim gen-assets / validate-assets / evaluate-assets --domain <d>` CLIs
|
|
7
|
+
dispatch through here. Each domain registers an :class:`AssetDomain` carrying its
|
|
8
|
+
entry functions (load_spec / describe_plan / generate / validate / evaluate) + its
|
|
9
|
+
region_spec directory + an ``add_gen_args`` hook that injects domain-specific CLI
|
|
10
|
+
flags. The heavy domain modules are imported lazily inside the callables so
|
|
11
|
+
``usersim --help`` stays fast; ``add_gen_args`` is pure argparse (no import).
|
|
12
|
+
|
|
13
|
+
A built-in domain lives beside the probe whose banks it builds, in its package's
|
|
14
|
+
``asset_domain.py``; an extension's domain registers under ``usersim.asset_domains``.
|
|
15
|
+
Neither adds a CLI subcommand. There is deliberately NO generic
|
|
16
|
+
``asset_gen/core/`` engine -- generation internals are domain-specific; only this
|
|
17
|
+
thin dispatch is shared.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
from __future__ import annotations
|
|
21
|
+
|
|
22
|
+
import argparse
|
|
23
|
+
import importlib
|
|
24
|
+
from dataclasses import dataclass
|
|
25
|
+
from pathlib import Path
|
|
26
|
+
from typing import Any, Callable
|
|
27
|
+
|
|
28
|
+
from usersim.engine.core.builtin_packages import builtin_modules
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@dataclass(frozen=True)
|
|
32
|
+
class AssetDomain:
|
|
33
|
+
name: str
|
|
34
|
+
#: directory holding ``<locale>.yaml`` region specs for this domain.
|
|
35
|
+
region_spec_dir: Path
|
|
36
|
+
#: add domain-specific generation flags to a ``gen-assets`` parser (argparse only).
|
|
37
|
+
add_gen_args: Callable[[argparse.ArgumentParser], None]
|
|
38
|
+
#: load + validate a region spec from a path -> a domain spec object.
|
|
39
|
+
load_spec: Callable[[Any], Any]
|
|
40
|
+
#: print an offline plan summary for ``gen-assets`` (also used by --dry-run).
|
|
41
|
+
describe_plan: Callable[[Any, argparse.Namespace], None]
|
|
42
|
+
#: run live generation: ``(spec, models, out_dir, args) -> out_dir``.
|
|
43
|
+
generate: Callable[[Any, Any, Any, argparse.Namespace], Any]
|
|
44
|
+
#: run the offline validation gate: ``(bank_dir, spec | None) -> ValidationReport``.
|
|
45
|
+
validate: Callable[[Any, Any | None], Any]
|
|
46
|
+
#: run the DD-judge evaluation scorecard (network-gated); set in the asset_eval bucket.
|
|
47
|
+
evaluate: Callable[..., Any] | None = None
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# ── built-in domains ─────────────────────────────────────────────────────
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def _builtin_domains() -> dict[str, AssetDomain]:
|
|
54
|
+
"""The domain each built-in package's ``asset_domain.py`` returns from its ``asset_domain()`` factory.
|
|
55
|
+
|
|
56
|
+
The module lives beside the probe whose banks it builds and imports none of its generator.
|
|
57
|
+
"""
|
|
58
|
+
domains = {}
|
|
59
|
+
for module in builtin_modules("asset_domain"):
|
|
60
|
+
domain = importlib.import_module(module).asset_domain()
|
|
61
|
+
domains[domain.name] = domain
|
|
62
|
+
return domains
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
# ── registry access ──────────────────────────────────────────────────────
|
|
66
|
+
|
|
67
|
+
_DOMAINS: dict[str, AssetDomain] | None = None
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def _domains() -> dict[str, AssetDomain]:
|
|
71
|
+
"""Built-in domains merged with any advertised under ``usersim.asset_domains``.
|
|
72
|
+
|
|
73
|
+
An entry point may resolve to an ``AssetDomain`` or to a zero-argument
|
|
74
|
+
factory returning one, as each built-in is a factory. A domain imports its
|
|
75
|
+
pipeline inside its callables; building one eagerly at import time would drag
|
|
76
|
+
those dependencies into every ``--help``.
|
|
77
|
+
"""
|
|
78
|
+
global _DOMAINS
|
|
79
|
+
if _DOMAINS is None:
|
|
80
|
+
from usersim.engine.core._extensions import ASSET_DOMAINS, merge_extensions
|
|
81
|
+
|
|
82
|
+
merged = merge_extensions(ASSET_DOMAINS, _builtin_domains(), what="asset domain")
|
|
83
|
+
_DOMAINS = {name: obj if isinstance(obj, AssetDomain) else obj() for name, obj in merged.items()}
|
|
84
|
+
return _DOMAINS
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def clear_domain_cache() -> None:
|
|
88
|
+
"""Drop the memoized registry — for tests that toggle extension discovery."""
|
|
89
|
+
global _DOMAINS
|
|
90
|
+
_DOMAINS = None
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def domain_names() -> tuple[str, ...]:
|
|
94
|
+
return tuple(sorted(_domains()))
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def get_domain(name: str) -> AssetDomain:
|
|
98
|
+
domains = _domains()
|
|
99
|
+
if name not in domains:
|
|
100
|
+
raise KeyError(f"unknown asset domain {name!r}; known: {sorted(domains)}")
|
|
101
|
+
return domains[name]
|
|
@@ -15,7 +15,7 @@ run from a script or CI without opening Jupyter:
|
|
|
15
15
|
Each subcommand is implemented in its own module under :mod:`cli`.
|
|
16
16
|
The shared pipeline-construction helpers live in :mod:`cli._pipeline`
|
|
17
17
|
(used by both the CLI and the notebooks under ``notebooks/``). Model
|
|
18
|
-
configuration is loaded from a TOML file via :mod:`
|
|
18
|
+
configuration is loaded from a TOML file via :mod:`usersim.engine.models_file`; a
|
|
19
19
|
sensible default ships at ``cli/models_default.toml``.
|
|
20
20
|
|
|
21
21
|
Identity: ``persona_uuid`` is a content hash of the persona, and
|
|
@@ -34,7 +34,7 @@ import logging
|
|
|
34
34
|
import sys
|
|
35
35
|
|
|
36
36
|
from usersim import __version__
|
|
37
|
-
from usersim.
|
|
37
|
+
from usersim.engine.errors import ConfigError
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
def _register_extension_commands(subparsers: argparse._SubParsersAction) -> None:
|
|
@@ -50,23 +50,32 @@ def _register_extension_commands(subparsers: argparse._SubParsersAction) -> None
|
|
|
50
50
|
"""
|
|
51
51
|
import logging
|
|
52
52
|
|
|
53
|
-
from usersim.engine.core._extensions import
|
|
53
|
+
from usersim.engine.core._extensions import (
|
|
54
|
+
COMMANDS,
|
|
55
|
+
extension_source,
|
|
56
|
+
load_extensions,
|
|
57
|
+
note_extension_problem,
|
|
58
|
+
)
|
|
54
59
|
|
|
55
60
|
for name, register in load_extensions(COMMANDS):
|
|
56
61
|
if name in subparsers.choices:
|
|
57
62
|
logging.getLogger("usersim.engine").warning(
|
|
58
|
-
" |-- extensions: command %r is already
|
|
63
|
+
" |-- extensions: command %r from %s is already built in; ignoring it.",
|
|
59
64
|
name,
|
|
65
|
+
extension_source(COMMANDS, name),
|
|
60
66
|
)
|
|
67
|
+
note_extension_problem(COMMANDS, name, f"command {name!r} is already built in")
|
|
61
68
|
continue
|
|
62
69
|
try:
|
|
63
70
|
register(subparsers)
|
|
64
71
|
except Exception as exc:
|
|
65
72
|
logging.getLogger("usersim.engine").warning(
|
|
66
|
-
" |-- extensions: command %r failed to register and was skipped: %s",
|
|
73
|
+
" |-- extensions: command %r from %s failed to register and was skipped: %s",
|
|
67
74
|
name,
|
|
75
|
+
extension_source(COMMANDS, name),
|
|
68
76
|
exc,
|
|
69
77
|
)
|
|
78
|
+
note_extension_problem(COMMANDS, name, f"failed to register: {exc}")
|
|
70
79
|
|
|
71
80
|
|
|
72
81
|
def _build_parser() -> argparse.ArgumentParser:
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
"""The folder an asset command reads or writes when it is given none."""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
|
|
10
|
+
from usersim.engine.core._assets import shipped_assets_dir
|
|
11
|
+
from usersim.engine.errors import ConfigError
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def default_bank_dir(domain: str, locale: str, *, flag: str) -> Path:
|
|
15
|
+
"""The ``locale`` bank in the asset folder of the probe that shares ``domain``'s name.
|
|
16
|
+
|
|
17
|
+
An asset domain builds the bank of the probe with its name, so that probe's
|
|
18
|
+
own asset folder is where the bank lives. A domain with no such probe has
|
|
19
|
+
no default folder: ``ConfigError`` asks for one with ``flag``.
|
|
20
|
+
"""
|
|
21
|
+
try:
|
|
22
|
+
return shipped_assets_dir(domain) / locale
|
|
23
|
+
except LookupError:
|
|
24
|
+
raise ConfigError(
|
|
25
|
+
f"asset domain {domain!r} has no probe of that name whose asset folder could hold its bank; "
|
|
26
|
+
f"pass {flag} to name the folder"
|
|
27
|
+
) from None
|