needle / scripts /audit_native_candidates.py
Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
25a2c1c verified
Raw History Blame Contribute Delete
3.49 kB
"""Supplemental development-only five-candidate native output probes."""
import copy,json,resource,time
from pathlib import Path
import needle
from context_adapter import DecisionContext,budget_fits
from decision_policy import validate_decision
from gateway import with_current_facts
from scripts.coverage_workflow import TOOLS,FIXED
def main():
rows=[]
for projected in (False,True):
tools=copy.deepcopy([t for t in TOOLS if t['name'] in {'write_file','read_file','git_status','run_tests','list_files'}])
args={'path':'/project/app.py'}
if projected:
write=next(t for t in tools if t['name']=='write_file')
write['parameters']['properties'].pop('content');write['parameters']['required'].remove('content')
query='write_file /project/app.py'
else:
args['content']=FIXED;query='write_file /project/app.py content '+json.dumps(FIXED)
policy=DecisionContext(workspace='/project',arguments={'write_file':args})
system=with_current_facts('Public disposable repository.',tools,policy)
agent=needle.Needle(tools=tools,system=system,generation=3)
start=time.perf_counter();native=agent.complete(query)
rows.append({'projected':projected,'tools':tools,'query':query,'schema_utf8_bytes':sum(len(json.dumps(t['parameters']).encode()) for t in tools),'prompt_proxy_units':budget_fits(query,system,tools,10**9)[1],'public_max_new_tokens':512,'latency_ms':(time.perf_counter()-start)*1000,'native':native,'validated':validate_decision(native,tools,policy,system+'\n'+query),'serialized_envelope_bytes':len(json.dumps(native).encode()),'host_self_peak_rss_kib':resource.getrusage(resource.RUSAGE_SELF).ru_maxrss})
# Eight nested object levels exercise output structure independently of size.
value='leaf';schema={'type':'string'}
for level in range(8):
value={f'level{level}':value};schema={'type':'object','properties':{f'level{level}':schema},'required':[f'level{level}'],'additionalProperties':False}
nested={'name':'store_config','description':'Store the explicitly supplied configuration','parameters':{'type':'object','properties':{'config':schema},'required':['config'],'additionalProperties':False}}
tools=[nested];policy=DecisionContext(arguments={'store_config':{'config':value}})
query='store_config config '+json.dumps(value);system=with_current_facts('Public disposable configuration.',tools,policy)
agent=needle.Needle(tools=tools,system=system,generation=3);start=time.perf_counter();native=agent.complete(query)
rows.append({'case':'eight_nested_objects','tools':tools,'query':query,'schema_utf8_bytes':len(json.dumps(nested['parameters']).encode()),'prompt_proxy_units':budget_fits(query,system,tools,10**9)[1],'public_max_new_tokens':512,'latency_ms':(time.perf_counter()-start)*1000,'native':native,'validated':validate_decision(native,tools,policy,system+'\n'+query),'serialized_envelope_bytes':len(json.dumps(native).encode()),'host_self_peak_rss_kib':resource.getrusage(resource.RUSAGE_SELF).ru_maxrss})
Path('benchmarks/workflow/results/native-candidate-audit.json').write_text(json.dumps({'methodology':'Supplemental host five-candidate development probes; no executable tools run. Same public default 512 output budget. Proxy units and envelope bytes are not exact native tokens. Not a replacement for gateway filtering or workflow reproduction.','rows':rows},indent=2)+'\n')
if __name__=='__main__':main()