Commit ea662d0
authored
feat: fact_types and mental model exclusion filters for reflect (#615)
* feat: add fact_types and mental model exclusion filters to reflect and mental models
Adds three new filtering options to both the reflect endpoint and mental model creation/refresh:
- `fact_types`: restrict which fact types (world, experience, observation) are retrieved.
Disables irrelevant agent tools entirely (no wasted tokens).
- `exclude_mental_models`: skip the search_mental_models tool altogether.
- `exclude_mental_model_ids`: exclude specific mental models by ID (merged with the
existing self-exclusion logic during mental model refresh).
For mental models, options are persisted in the existing `trigger` JSONB column so they
are automatically applied on every refresh. The `UpdateMentalModelRequest` already
proxies `trigger`, so no extra endpoint changes are needed.
Also fixes the test fixture (`pg0_db_url` in conftest.py) to correctly resolve pg0://
URLs and run migrations before tests, which was causing all DB-dependent tests to fail
with "relation public.banks does not exist" when HINDSIGHT_API_DATABASE_URL=pg0://uuuu.
* fix: guard against disabled-tool hallucination and regenerate clients
- Add enabled_tools guard in reflect agent: if an LLM calls a tool that
was excluded (e.g. recall when fact_types=["observation"]), return an
error result instead of executing it
- Regenerate OpenAPI spec and all SDK clients (Go, Python, TypeScript)
to include new fact_types / exclude_mental_models fields
* fix: add missing ReflectRequest fields in Rust CLI struct initializers
* fix: filter hallucinated tool calls before trace to prevent disabled tools appearing in results
* chore: merge main, fix lint formatting and update skills openapi.json
* feat: expose fact_types, exclude_mental_models, exclude_mental_model_ids in control plane UI
* fix: add missing trigger fields to MentalModel type in control plane api.ts
* fix: add missing trigger fields to local MentalModel interface in mental-models-view
* feat: tabbed mental model dialogs (Basic / Options tabs)
* refactor: shared FactTypeFilter component, tabbed mental model dialogs use General tab, clean up labels
* feat: pill-style toggle buttons for fact type filter (blue/emerald/amber per type)
* fix: add spacing between Fact Types label and pills, rename to Exclude all mental models1 parent 94cf89b commit ea662d0
23 files changed
Lines changed: 1393 additions & 220 deletions
File tree
- hindsight-api-slim
- hindsight_api
- api
- engine
- reflect
- tests
- hindsight-clients
- go
- api
- python/hindsight_client_api/models
- typescript/generated
- hindsight-cli/src/commands
- hindsight-control-plane/src
- app/api/reflect
- components
- lib
- hindsight-docs/static
- skills/hindsight-docs/references
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
669 | 669 | | |
670 | 670 | | |
671 | 671 | | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
672 | 691 | | |
673 | 692 | | |
674 | 693 | | |
| |||
1435 | 1454 | | |
1436 | 1455 | | |
1437 | 1456 | | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
1438 | 1476 | | |
1439 | 1477 | | |
1440 | 1478 | | |
| |||
2505 | 2543 | | |
2506 | 2544 | | |
2507 | 2545 | | |
| 2546 | + | |
| 2547 | + | |
| 2548 | + | |
2508 | 2549 | | |
2509 | 2550 | | |
2510 | 2551 | | |
| |||
Lines changed: 40 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
875 | 875 | | |
876 | 876 | | |
877 | 877 | | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
878 | 884 | | |
| 885 | + | |
879 | 886 | | |
880 | 887 | | |
881 | 888 | | |
882 | 889 | | |
883 | 890 | | |
884 | 891 | | |
885 | | - | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
886 | 895 | | |
887 | 896 | | |
888 | 897 | | |
| |||
5120 | 5129 | | |
5121 | 5130 | | |
5122 | 5131 | | |
| 5132 | + | |
| 5133 | + | |
5123 | 5134 | | |
5124 | 5135 | | |
5125 | 5136 | | |
| |||
5240 | 5251 | | |
5241 | 5252 | | |
5242 | 5253 | | |
| 5254 | + | |
| 5255 | + | |
| 5256 | + | |
| 5257 | + | |
| 5258 | + | |
5243 | 5259 | | |
5244 | 5260 | | |
5245 | 5261 | | |
| |||
5251 | 5267 | | |
5252 | 5268 | | |
5253 | 5269 | | |
| 5270 | + | |
5254 | 5271 | | |
5255 | 5272 | | |
5256 | 5273 | | |
| |||
5273 | 5290 | | |
5274 | 5291 | | |
5275 | 5292 | | |
5276 | | - | |
5277 | | - | |
5278 | | - | |
5279 | | - | |
5280 | | - | |
5281 | | - | |
5282 | | - | |
5283 | | - | |
5284 | | - | |
| 5293 | + | |
| 5294 | + | |
| 5295 | + | |
| 5296 | + | |
| 5297 | + | |
| 5298 | + | |
| 5299 | + | |
| 5300 | + | |
| 5301 | + | |
| 5302 | + | |
| 5303 | + | |
5285 | 5304 | | |
5286 | 5305 | | |
5287 | 5306 | | |
| |||
5306 | 5325 | | |
5307 | 5326 | | |
5308 | 5327 | | |
| 5328 | + | |
| 5329 | + | |
5309 | 5330 | | |
5310 | 5331 | | |
5311 | 5332 | | |
| |||
6437 | 6458 | | |
6438 | 6459 | | |
6439 | 6460 | | |
| 6461 | + | |
| 6462 | + | |
| 6463 | + | |
| 6464 | + | |
| 6465 | + | |
| 6466 | + | |
6440 | 6467 | | |
6441 | 6468 | | |
6442 | 6469 | | |
| |||
6445 | 6472 | | |
6446 | 6473 | | |
6447 | 6474 | | |
6448 | | - | |
| 6475 | + | |
| 6476 | + | |
| 6477 | + | |
6449 | 6478 | | |
6450 | 6479 | | |
6451 | 6480 | | |
| |||
Lines changed: 58 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
316 | 316 | | |
317 | 317 | | |
318 | 318 | | |
| 319 | + | |
| 320 | + | |
319 | 321 | | |
320 | 322 | | |
321 | 323 | | |
| |||
355 | 357 | | |
356 | 358 | | |
357 | 359 | | |
358 | | - | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
359 | 368 | | |
360 | 369 | | |
361 | 370 | | |
| |||
538 | 547 | | |
539 | 548 | | |
540 | 549 | | |
541 | | - | |
542 | | - | |
543 | | - | |
544 | | - | |
545 | | - | |
546 | | - | |
547 | | - | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
552 | | - | |
553 | | - | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
554 | 562 | | |
555 | 563 | | |
556 | 564 | | |
| |||
769 | 777 | | |
770 | 778 | | |
771 | 779 | | |
772 | | - | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
773 | 791 | | |
774 | 792 | | |
775 | 793 | | |
776 | 794 | | |
777 | 795 | | |
778 | 796 | | |
779 | 797 | | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
780 | 815 | | |
781 | 816 | | |
782 | 817 | | |
| |||
785 | 820 | | |
786 | 821 | | |
787 | 822 | | |
| 823 | + | |
788 | 824 | | |
789 | 825 | | |
790 | 826 | | |
| |||
974 | 1010 | | |
975 | 1011 | | |
976 | 1012 | | |
| 1013 | + | |
977 | 1014 | | |
978 | 1015 | | |
979 | 1016 | | |
| |||
1007 | 1044 | | |
1008 | 1045 | | |
1009 | 1046 | | |
| 1047 | + | |
1010 | 1048 | | |
1011 | 1049 | | |
1012 | 1050 | | |
| |||
1046 | 1084 | | |
1047 | 1085 | | |
1048 | 1086 | | |
| 1087 | + | |
1049 | 1088 | | |
1050 | 1089 | | |
1051 | 1090 | | |
1052 | 1091 | | |
1053 | 1092 | | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
1054 | 1097 | | |
1055 | 1098 | | |
1056 | 1099 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
| 203 | + | |
203 | 204 | | |
204 | 205 | | |
205 | 206 | | |
| |||
217 | 218 | | |
218 | 219 | | |
219 | 220 | | |
| 221 | + | |
220 | 222 | | |
221 | 223 | | |
222 | 224 | | |
223 | 225 | | |
| 226 | + | |
| 227 | + | |
224 | 228 | | |
225 | 229 | | |
226 | 230 | | |
227 | 231 | | |
228 | | - | |
| 232 | + | |
229 | 233 | | |
230 | 234 | | |
231 | 235 | | |
| |||
Lines changed: 19 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
227 | 227 | | |
228 | 228 | | |
229 | 229 | | |
230 | | - | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
231 | 236 | | |
232 | 237 | | |
233 | 238 | | |
| |||
239 | 244 | | |
240 | 245 | | |
241 | 246 | | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
242 | 250 | | |
243 | 251 | | |
244 | 252 | | |
245 | 253 | | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
252 | 264 | | |
253 | 265 | | |
254 | 266 | | |
| |||
0 commit comments