luminos/tests
Jeff Smith 2e3d21f774 feat(ai): wire survey output into dir loop (#6)
The survey pass now actually steers dir loop behavior, in two ways:

1. Prompt injection: a new {survey_context} placeholder in
   _DIR_SYSTEM_PROMPT receives the survey description, approach,
   domain_notes, relevant_tools, and skip_tools so the dir-loop agent
   has investigation context before its first turn.

2. Tool schema filtering: _filter_dir_tools() removes any tool listed
   in skip_tools from the schema passed to the API, gated on
   survey confidence >= 0.5. Control-flow tools (submit_report) are
   always preserved. This is hard enforcement — the agent literally
   cannot call a filtered tool, which the smoke test for #5 showed
   was necessary (prompt-only guidance was ignored).

Smoke test on luminos_lib: zero run_command invocations (vs 2 before),
context budget no longer exhausted (87k vs 133k), cost ~$0.34 (vs
$0.46), investigation completes instead of early-exiting.

Adds tests/test_ai_filter.py with 14 tests covering _filter_dir_tools
and _format_survey_block — both pure helpers, no live API needed.
2026-04-06 22:07:12 -06:00
..
__init__.py feat(tests): add unit test coverage for all testable modules (#37) 2026-04-06 16:57:26 -06:00
test_ai_filter.py feat(ai): wire survey output into dir loop (#6) 2026-04-06 22:07:12 -06:00
test_cache.py feat(cache): add low_confidence_entries() query to CacheManager (#3) 2026-04-06 21:13:58 -06:00
test_capabilities.py feat(tests): add unit test coverage for all testable modules (#37) 2026-04-06 16:57:26 -06:00
test_code.py feat(tests): add unit test coverage for all testable modules (#37) 2026-04-06 16:57:26 -06:00
test_disk.py feat(tests): add unit test coverage for all testable modules (#37) 2026-04-06 16:57:26 -06:00
test_filetypes.py feat(tests): add unit test coverage for all testable modules (#37) 2026-04-06 16:57:26 -06:00
test_recency.py feat(tests): add unit test coverage for all testable modules (#37) 2026-04-06 16:57:26 -06:00
test_report.py feat(tests): add unit test coverage for all testable modules (#37) 2026-04-06 16:57:26 -06:00
test_tree.py feat(tests): add unit test coverage for all testable modules (#37) 2026-04-06 16:57:26 -06:00