Simplify investigation replies and derive controller bookkeeping

This commit is contained in:
Nico committed 2026-10-17 00:52:09 +02:00
1 parent 57984e5793
commit 49095ac803
26 files changed
+2072 -207

No files matched your search

+7 -3
View File
@@ -204,7 +204,7 @@ def test_model_loop_uses_project_tools_and_compact_previous_result(tool_case, re
if previous:
assert context["evidence"][eid]["content"]["items"]
assert "inputs" not in context["case"]
assert request["prompt_version"] in ({"investigation_project_v9","investigation_project_v13"} if recall == "upgrade" else {"investigation_project_v9" if recall else "investigation_project_v13"})
assert request["prompt_version"] in ({"investigation_project_v9","investigation_project_v14"} if recall == "upgrade" else {"investigation_project_v9" if recall else "investigation_project_v14"})
reply={"assessment":{"semantic_score":50,"reason":"Scoped fact","evidence_refs":[eid]} if previous else None,
"update":{"confidence":"plausible","evidence_refs":[eid] if previous else [],"resolve_questions":[],"add_questions":[],"note":"Query typed identity"},
"next":{"kind":"finish","reason":"Check complete"} if previous else {"kind":"tool","operation":"project.query","arguments":rows()}}
@@ -216,12 +216,16 @@ def test_model_loop_uses_project_tools_and_compact_previous_result(tool_case, re
assert context['evidence'][recalled]['content']['items']
reply['update']['evidence_refs'] = [recalled]
reply['next'] = {'kind':'finish','reason':'Recalled exact evidence; uncertainty remains'}
if request['prompt_version']=='investigation_project_v13':
if request['prompt_version']=='investigation_project_v14':
reply['update']['causal_review']={'effect':'neutral','support':[],'against':[],
'reason':'Scoped observations are not independent evidence of a defect.'}
if request['prompt_version']=='investigation_project_v13':
if request['prompt_version']=='investigation_project_v14':
reply['update']['working_brief']={'format_version':1,'findings':[],
'uncertainties':['Scoped observations only.'],'next_question':'Check remaining uncertainty.','changes':[]}
if request['prompt_version']=='investigation_project_v14':
b=reply['update']['working_brief'];b['format_version']=2;b.pop('changes');b['retired']=[]
for k in ('evidence_refs','causal_review','note'):reply['update'].pop(k,None)
if reply['assessment']:reply['assessment'].pop('evidence_refs',None)
return ProviderResponse(reply,"fixture",100,10)
adapter=Adapter()
loop=Investigator(store,gateway(adapter),router=InvestigationToolRouter(project_research=service))