Cai
16 hours ago cd6bfbea57c2437c00f808317f896aacb2ad2440
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import fs from 'node:fs';
import path from 'node:path';
import crypto from 'node:crypto';
import {pathToFileURL} from 'node:url';
import * as r1 from './detail_strengthening_p0_primary_source_discovery_runtime_repair001_20260730.mjs';
import {parseAuthorityCsv,serializeCsv,serializeManifestDataRows,validateAppendStableManifest} from './artifact_manifest_append_stable_parser_repair001_20260730.mjs';
 
export const ROOT=process.cwd(),CASE_ID=r1.CASE_ID,BASE=r1.BASE,AUDIT_REPORT=r1.AUDIT_REPORT,MANIFEST=r1.MANIFEST,ANOMALY_AUTHORITY=r1.ANOMALY_AUTHORITY,ORIGINAL_TRIAGE_RUN=r1.ORIGINAL_TRIAGE_RUN;
export const DESIGN_RUN='RUN-ANA-ROBOT-DETAIL-STRENGTHENING-P0-PRIMARY-SOURCE-DISCOVERY-DESIGN-REPAIR-002';
export const DESIGN_BATCH='BATCH-ANA-ROBOT-DETAIL-STRENGTHENING-P0-PRIMARY-SOURCE-DISCOVERY-DESIGN-REPAIR-002';
export const EXEC_RUN=r1.EXEC_RUN,EXEC_BATCH=r1.EXEC_BATCH;
export const RELEASE_AUDIT='AUDIT-ANA-ROBOT-DETAIL-STRENGTHENING-P0-PRIMARY-SOURCE-DISCOVERY-DESIGN-REPAIR002-REREVIEW-001';
export const EXEC_TOKEN='EXECUTE_DETAIL_STRENGTHENING_P0_PRIMARY_SOURCE_DISCOVERY_REPAIR002';
export const SCRIPT='dev/ana-dev/detail_strengthening_p0_primary_source_discovery_runtime_repair002_20260730.mjs';
export const TARGET_AUTHORITY=r1.TARGET_AUTHORITY,GAP_AUTHORITY=r1.GAP_AUTHORITY,QUERY_AUTHORITY=r1.QUERY_AUTHORITY,SOURCE_POLICY=r1.SOURCE_POLICY,METHOD_AUTHORITY=r1.METHOD_AUTHORITY;
export const FORMAL_DESIGN_ENTRY_AUTHORITY=`${BASE}/evidence/detail_strengthening_p0_formal_design_entry_authority_repair002_20260730.csv`;
export const CONTRACT=`${BASE}/evidence/detail_strengthening_p0_primary_source_discovery_runtime_contract_repair002_20260730.csv`;
export const SCHEMA=`${BASE}/evidence/detail_strengthening_p0_primary_source_discovery_schema_authority_repair002_20260730.csv`;
export const EXEC_SET=`${BASE}/manifest/detail_strengthening_p0_primary_source_discovery_execution_artifact_set_repair002_20260730.csv`;
export const EXEC_BASELINE=r1.EXEC_BASELINE,METHOD_PREFLIGHT=r1.METHOD_PREFLIGHT,RAW_ARCHIVE=r1.RAW_ARCHIVE,QUERY_LEDGER=r1.QUERY_LEDGER,SUPPLEMENT_LEDGER=r1.SUPPLEMENT_LEDGER,PROVENANCE_LEDGER=r1.PROVENANCE_LEDGER,CANDIDATE_REGISTER=r1.CANDIDATE_REGISTER,OCCURRENCE_DISPOSITION=r1.OCCURRENCE_DISPOSITION,GAP_SUMMARY=r1.GAP_SUMMARY,APPLICATION=r1.APPLICATION,EXEC_REQUEST=r1.EXEC_REQUEST,EXEC_VALIDATION=r1.EXEC_VALIDATION;
export const FORMAL_ENTRY_COLUMNS=r1.FORMAL_ENTRY_COLUMNS,CONTRACT_COLUMNS=r1.CONTRACT_COLUMNS,SCHEMA_COLUMNS=r1.SCHEMA_COLUMNS,EXEC_SET_COLUMNS=r1.EXEC_SET_COLUMNS;
export const GENERATED=[EXEC_BASELINE,METHOD_PREFLIGHT,RAW_ARCHIVE,QUERY_LEDGER,SUPPLEMENT_LEDGER,PROVENANCE_LEDGER,CANDIDATE_REGISTER,OCCURRENCE_DISPOSITION,GAP_SUMMARY,APPLICATION,EXEC_REQUEST,EXEC_VALIDATION];
const DISCOVERY_STAGE=[RAW_ARCHIVE,QUERY_LEDGER,SUPPLEMENT_LEDGER,PROVENANCE_LEDGER,CANDIDATE_REGISTER],DERIVED_STAGE=[OCCURRENCE_DISPOSITION,GAP_SUMMARY,APPLICATION,EXEC_REQUEST,EXEC_VALIDATION];
const abs=value=>path.join(ROOT,...value.split('/')),hash=value=>crypto.createHash('sha256').update(value).digest('hex'),normalize=value=>value.toString('utf8').replace(/^\uFEFF/,'').replace(/\r\n/g,'\n').replace(/\r/g,'\n');
const lineCount=value=>{const text=normalize(value);return text.split('\n').length-(text.endsWith('\n')?1:0);};
const readCsv=file=>{const parsed=parseAuthorityCsv(normalize(fs.readFileSync(abs(file))));if(parsed.errors.length)throw new Error(`CSV:${file}:${parsed.errors.join('|')}`);return parsed;};
const identity=file=>{const buffer=fs.readFileSync(abs(file)),stat=fs.statSync(abs(file));return{rows:file.endsWith('.csv')?readCsv(file).rows.length:lineCount(buffer),bytes:buffer.length,sha256:hash(buffer),mtime:new Date(Math.trunc(stat.mtimeMs)).toISOString(),mtimeMs:Math.trunc(stat.mtimeMs)};};
const write=(file,text)=>{fs.mkdirSync(path.dirname(abs(file)),{recursive:true});fs.writeFileSync(abs(file),text,'utf8');};
const exactColumns=(parsed,columns,code)=>parsed.header.join('|')===columns.join('|')?[]:[`${code}_COLUMNS`];
const equalRows=(actual,expected,columns,code)=>{const errors=[];if(actual.length!==expected.length)return[`${code}_COUNT:${actual.length}:${expected.length}`];for(let i=0;i<expected.length;i++)for(const column of columns)if(String(actual[i]?.[column]??'')!==String(expected[i]?.[column]??'')){errors.push(`${code}_FIELD:${i+1}:${column}`);break;}return errors;};
 
function auditEntry(auditId){const lines=normalize(fs.readFileSync(abs(AUDIT_REPORT))).split('\n'),start=lines.findIndex(line=>line.startsWith('### ')&&line.includes(auditId));if(start<0)return null;let end=lines.length;for(let i=start+1;i<lines.length;i++)if(lines[i].startsWith('### ')){end=i;break;}while(end>start&&lines[end-1]==='')end--;const buffer=Buffer.from(`${lines.slice(start,end).join('\n')}\n`);return{start:start+1,end,lines:end-start,bytes:buffer.length,sha256:hash(buffer),text:buffer.toString('utf8')};}
export function releaseTextErrors(text){const required=['result=PASS','execution_release=EXPLICITLY_RELEASED',`released_batch_id=${EXEC_BATCH}`,`released_run_id=${EXEC_RUN}`,'external_information_method=CODEX_WEB_SEARCH_QUERY_AND_OPEN_APPROVED_EQUIVALENT','network_execution_scope=PUBLIC_WEB_PRIMARY_SOURCE_DISCOVERY_ONLY'];const lines=text.split('\n').map(line=>line.trim().replace(/^[\-*]\s*/,'').replace(/`/g,'')),errors=[];for(const marker of required)if(!lines.includes(marker))errors.push(`RELEASE_MARKER:${marker}`);if(lines.some(line=>/^(?:result|conclusion)=FAIL(?:_|$)/.test(line))||lines.includes('execution_release=NOT_ALLOWED')||lines.includes('execution_release=NOT_RELEASED'))errors.push('RELEASE_CONTRADICTION');return errors;}
export function releaseErrors({requireRelease=true}={}){const entry=auditEntry(RELEASE_AUDIT);return entry?releaseTextErrors(entry.text):requireRelease?['RELEASE_AUDIT_MISSING']:[];}
 
export function authorityBundle(){return{targets:readCsv(TARGET_AUTHORITY).rows,gaps:readCsv(GAP_AUTHORITY).rows,queries:readCsv(QUERY_AUTHORITY).rows,policies:readCsv(SOURCE_POLICY).rows,methods:readCsv(METHOD_AUTHORITY).rows,contracts:readCsv(CONTRACT).rows,schemas:readCsv(SCHEMA).rows,executionSet:readCsv(EXEC_SET).rows};}
export function contractRows(){return r1.contractRows().map(row=>({...row,contract_id:row.contract_id.replace('P0DISCR1','P0DISCR2'),required_value_or_rule:row.scope==='FORMAL_DESIGN'?'append-stable REPAIR-002 entry with literal NO_UPGRADE required':row.required_value_or_rule}));}
export function schemaRows(){return r1.schemaRows().map(row=>({...row,schema_id:row.schema_id.replace('P0DISCR1','P0DISCR2')}));}
export function executionSetRows(){const paths=[SCRIPT,TARGET_AUTHORITY,GAP_AUTHORITY,QUERY_AUTHORITY,SOURCE_POLICY,METHOD_AUTHORITY,FORMAL_DESIGN_ENTRY_AUTHORITY,CONTRACT,SCHEMA,EXEC_BASELINE,METHOD_PREFLIGHT,RAW_ARCHIVE,QUERY_LEDGER,SUPPLEMENT_LEDGER,PROVENANCE_LEDGER,CANDIDATE_REGISTER,OCCURRENCE_DISPOSITION,GAP_SUMMARY,APPLICATION,EXEC_REQUEST,EXEC_VALIDATION];const roles=['RUNTIME_R2','TARGET_AUTHORITY_REUSED','GAP_AUTHORITY_REUSED','QUERY_AUTHORITY_R1_REUSED','SOURCE_POLICY_R1_REUSED','EXTERNAL_METHOD_AUTHORITY_R1_REUSED','FORMAL_DESIGN_ENTRY_AUTHORITY_R2','RUNTIME_CONTRACT_R2','OUTPUT_SCHEMA_R2','EXECUTION_BASELINE_FIRST','METHOD_PREFLIGHT','RAW_ARCHIVE','QUERY_LEDGER','SUPPLEMENT_LEDGER','PROVENANCE_LEDGER','CANDIDATE_REGISTER','OCCURRENCE_DISPOSITION','GAP_SUMMARY','APPLICATION','EXECUTION_REQUEST','VALIDATION_LAST'];return paths.map((artifactPath,index)=>({artifact_id:`P0DISCR2-EXEC-SET-${String(index+1).padStart(3,'0')}`,batch_id:EXEC_BATCH,run_id:EXEC_RUN,generation_order:String(index+1),artifact_path:artifactPath,artifact_role:roles[index],identity_policy:'EXACT_SHA256_BYTES_FILESYSTEM_MTIME_MS'}));}
 
function manifestState({expectedRows=[],expectedRunId='',frozenPrefix=null,expectedPhysicalDelta=null}={}){return validateAppendStableManifest(fs.readFileSync(abs(MANIFEST)),{anomalyRows:readCsv(ANOMALY_AUTHORITY).rows,frozenPrefix,originalRunId:ORIGINAL_TRIAGE_RUN,originalRunExpectedRows:11,expectedRunRows:expectedRows,expectedRunId,expectedPhysicalDelta,filesystemIdentity:{runIds:expectedRunId?[expectedRunId]:[],get:file=>fs.existsSync(abs(file))?identity(file):null}});}
function formalEntryErrors(){const rows=readCsv(FORMAL_DESIGN_ENTRY_AUTHORITY).rows;if(rows.length!==1)return['FORMAL_ENTRY_COUNT'];const row=rows[0],lines=normalize(fs.readFileSync(abs(row.artifact_path))).split('\n'),text=`${lines.slice(Number(row.start_line)-1,Number(row.end_line)).join('\n')}\n`,errors=[];if(hash(Buffer.from(text))!==row.sha256||Buffer.byteLength(text)!==Number(row.bytes)||lineCount(Buffer.from(text))!==Number(row.lines))errors.push('FORMAL_ENTRY_IDENTITY');for(const marker of row.required_markers.split('|'))if(!text.includes(marker))errors.push(`FORMAL_ENTRY_MARKER:${marker}`);return errors;}
export function designInputErrors({requireRelease=false,expectNoExecution=true}={}){const bundle=authorityBundle(),errors=[...r1.queryPolicyErrors(bundle),...r1.methodAuthorityErrors(bundle.methods),...formalEntryErrors(),...releaseErrors({requireRelease})];if(bundle.targets.length!==10)errors.push('TARGET_COUNT');if(bundle.gaps.length!==7)errors.push('GAP_COUNT');if(bundle.queries.length!==14)errors.push('QUERY_COUNT');if(bundle.contracts.length!==46)errors.push(`CONTRACT_COUNT:${bundle.contracts.length}`);if(bundle.schemas.length!==12)errors.push(`SCHEMA_COUNT:${bundle.schemas.length}`);errors.push(...equalRows(bundle.executionSet,executionSetRows(),r1.EXEC_SET_COLUMNS,'EXEC_SET'));const rows=manifestState().logicalRows.filter(row=>row.run_id===DESIGN_RUN);if(rows.length!==11||new Set(rows.map(row=>row.artifact_path)).size!==11)errors.push(`DESIGN_MANIFEST_ROWS:${rows.length}`);for(const row of rows){if(!fs.existsSync(abs(row.artifact_path))){errors.push(`DESIGN_ARTIFACT_MISSING:${row.artifact_path}`);continue;}const id=identity(row.artifact_path);if(row.case_id!==CASE_ID||row.batch_id!==DESIGN_BATCH||row.sha256!==id.sha256||row.bytes!==String(id.bytes)||Date.parse(row.mtime)!==id.mtimeMs)errors.push(`DESIGN_IDENTITY:${row.artifact_path}`);}if(expectNoExecution){if(GENERATED.some(file=>fs.existsSync(abs(file))))errors.push('EXECUTION_FILES_EXIST');if(manifestState().logicalRows.some(row=>row.run_id===EXEC_RUN))errors.push('EXECUTION_MANIFEST_ROWS');}return[...new Set(errors)];}
 
function baselineRows(){const release=auditEntry(RELEASE_AUDIT),manifest=fs.readFileSync(abs(MANIFEST));if(!release)throw new Error('RELEASE_AUDIT_MISSING');const rows=[{baseline_id:'P0DISCR2-EXEC-BASE-001',identity_type:'NORMALIZED_RELEASE_AUDIT_ENTRY',artifact_path:`${AUDIT_REPORT}#L${release.start}-L${release.end}`,rows:String(release.lines),bytes:String(release.bytes),sha256:release.sha256,mtime:'INFO_APPENDABLE_SHARED_FILE',required_state:'EXACT_ENTRY_PASS_RELEASE_METHOD_AND_BATCH_RUN'},{baseline_id:'P0DISCR2-EXEC-BASE-002',identity_type:'RAW_MANIFEST_BEFORE_EXECUTION',artifact_path:MANIFEST,rows:String(manifestState().logicalDataRows),bytes:String(manifest.length),sha256:hash(manifest),mtime:new Date(Math.trunc(fs.statSync(abs(MANIFEST)).mtimeMs)).toISOString(),required_state:'EXACT_APPEND_ONLY_PREFIX'}];for(const file of [SCRIPT,TARGET_AUTHORITY,GAP_AUTHORITY,QUERY_AUTHORITY,SOURCE_POLICY,METHOD_AUTHORITY,FORMAL_DESIGN_ENTRY_AUTHORITY,CONTRACT,SCHEMA,EXEC_SET,ANOMALY_AUTHORITY]){const id=identity(file);rows.push({baseline_id:`P0DISCR2-EXEC-BASE-${String(rows.length+1).padStart(3,'0')}`,identity_type:'PHYSICAL_FILE',artifact_path:file,rows:String(id.rows),bytes:String(id.bytes),sha256:id.sha256,mtime:id.mtime,required_state:'EXACT_FROZEN_EXECUTION_INPUT'});}return rows;}
function baselineErrors(rows){const errors=[];if(rows.length!==13)return[`BASELINE_COUNT:${rows.length}`];const release=auditEntry(RELEASE_AUDIT);if(!release||rows[0].sha256!==release.sha256||rows[0].bytes!==String(release.bytes)||rows[0].rows!==String(release.lines))errors.push('BASELINE_RELEASE_ENTRY');const manifest=fs.readFileSync(abs(MANIFEST)),prefix=rows[1];if(manifest.length<Number(prefix.bytes)||hash(manifest.subarray(0,Number(prefix.bytes)))!==prefix.sha256)errors.push('BASELINE_MANIFEST_PREFIX');for(const row of rows.slice(2)){if(!fs.existsSync(abs(row.artifact_path))){errors.push(`BASELINE_INPUT_MISSING:${row.artifact_path}`);continue;}const id=identity(row.artifact_path);if(row.rows!==String(id.rows)||row.bytes!==String(id.bytes)||row.sha256!==id.sha256||Date.parse(row.mtime)!==id.mtimeMs)errors.push(`BASELINE_INPUT:${row.artifact_path}`);}return errors;}
function makePreflight(method){const darkline=method==='DARKLINE_PUBLIC_PRIMARY_SOURCE_DISCOVERY',equivalent=method==='CODEX_WEB_SEARCH_QUERY_AND_OPEN';return[{preflight_id:'P0DISCR1-PREFLIGHT-001',method_id:'P0DISCR1-METHOD-001',darkline_available:darkline?'YES':'NO',equivalent_method_available:equivalent?'YES':'NO',selected_method:darkline?'DARKLINE_PUBLIC_PRIMARY_SOURCE_DISCOVERY':equivalent?'CODEX_WEB_SEARCH_QUERY_AND_OPEN':'',task_mode:'14_AUTHORITY_QUERIES_PUBLIC_WEB_READ_ONLY',release_gate_status:'PASS_EXACT_RELEASE_BEFORE_NETWORK',checked_at:new Date().toISOString(),status:darkline||equivalent?'PASS':'HELD_BY_REQUIRED_EXTERNAL_INFORMATION_METHOD_UNAVAILABLE'}];}
export function beginDiscovery({token,method}={}){if(token!==EXEC_TOKEN)throw new Error('EXECUTION_TOKEN_MISMATCH');const errors=designInputErrors({requireRelease:true,expectNoExecution:true});if(errors.length)throw new Error(`BEGIN_PREWRITE:${errors.join('|')}`);write(EXEC_BASELINE,serializeCsv(baselineRows(),r1.BASELINE_COLUMNS));const preflight=makePreflight(method);write(METHOD_PREFLIGHT,serializeCsv(preflight,r1.METHOD_PREFLIGHT_COLUMNS));const methodErrors=r1.methodPreflightErrors(preflight);if(methodErrors.length)throw new Error(`METHOD_PREFLIGHT:${methodErrors.join('|')}`);return{status:preflight[0].status==='PASS'?'READY_FOR_EXACT_14_QUERY_DISCOVERY':'HELD_BY_REQUIRED_EXTERNAL_INFORMATION_METHOD_UNAVAILABLE',selected_method:preflight[0].selected_method,network_allowed:preflight[0].status==='PASS',baseline_rows:13};}
 
function discovery(){const raw=r1.parseRawArchive(fs.readFileSync(abs(RAW_ARCHIVE))),query=readCsv(QUERY_LEDGER),supplements=readCsv(SUPPLEMENT_LEDGER),provenance=readCsv(PROVENANCE_LEDGER),candidates=readCsv(CANDIDATE_REGISTER),method=readCsv(METHOD_PREFLIGHT),value={rawRows:raw.rows,queryLedger:query.rows,supplements:supplements.rows,provenance:provenance.rows,candidates:candidates.rows,methodPreflight:method.rows},errors=[...raw.errors,...exactColumns(query,r1.QUERY_LEDGER_COLUMNS,'QUERY'),...exactColumns(supplements,r1.SUPPLEMENT_COLUMNS,'SUPPLEMENT'),...exactColumns(provenance,r1.PROVENANCE_COLUMNS,'PROVENANCE'),...exactColumns(candidates,r1.CANDIDATE_COLUMNS,'CANDIDATE'),...exactColumns(method,r1.METHOD_PREFLIGHT_COLUMNS,'METHOD'),...r1.methodPreflightErrors(value.methodPreflight),...r1.provenanceErrors(value,authorityBundle())];return{...value,errors:[...new Set(errors)]};}
export function validateDiscoveryStaging(){const errors=[...releaseErrors({requireRelease:true})];if(!fs.existsSync(abs(EXEC_BASELINE))||!fs.existsSync(abs(METHOD_PREFLIGHT)))errors.push('BEGIN_ARTIFACTS_MISSING');for(const file of DISCOVERY_STAGE)if(!fs.existsSync(abs(file)))errors.push(`DISCOVERY_MISSING:${file}`);if(errors.length)return errors;errors.push(...baselineErrors(readCsv(EXEC_BASELINE).rows),...discovery().errors);if(DERIVED_STAGE.some(file=>fs.existsSync(abs(file))))errors.push('DERIVED_STAGE_EXISTS');if(manifestState().logicalRows.some(row=>row.run_id===EXEC_RUN))errors.push('EXECUTION_MANIFEST_ROWS');return[...new Set(errors)];}
function requestText(status){return`# P0 一手来源发现执行复审请求(REPAIR-002)\n\ncase_id=${CASE_ID}\nrelease_audit=${RELEASE_AUDIT}\nbatch_id=${EXEC_BATCH}\nrun_id=${EXEC_RUN}\nexternal_information_method=CODEX_WEB_SEARCH_QUERY_AND_OPEN_APPROVED_EQUIVALENT\nnetwork_scope=PUBLIC_WEB_PRIMARY_SOURCE_DISCOVERY_ONLY\nquery_scope=14_FROZEN_AUTHORITY_QUERIES\nrun_status=${status}\ngap_effect=DISCOVERY_ONLY_GAP_REMAINS_OPEN\nclaim_strength_ceiling=PENDING_VERIFICATION_MAX_NO_UPGRADE\nformal_pool_effect=NO_AUTOMATIC_FORMAL_POOL_CHANGE\nevidence_strength_effect=NO_UPGRADE\noutput_mutation=NO_BUSINESS_OUTPUT_MUTATION\n`;} 
function validationRows(d,derived){const runtime=[...d.errors,...r1.derivedErrors({...d,...derived},authorityBundle())],checks=[['RUNTIME_ERRORS','0',String(runtime.length)],['TARGETS','10','10'],['GAPS','7','7'],['QUERIES','14',String(d.queryLedger.length)],['RAW_QUERY_COVERAGE','14',String(new Set(d.rawRows.map(row=>row.query_id)).size)],['SUPPLEMENT_BIJECTION',String(d.rawRows.length),String(d.supplements.length)],['PROVENANCE_BIJECTION',String(d.candidates.length),String(d.provenance.length)],['DISPOSITIONS','10',String(derived.dispositions.length)],['SUMMARY','7',String(derived.summary.length)],['APPLICATION','10',String(derived.applications.length)],['OPEN_GAP','OPEN_RETAINED_GAP',derived.dispositions.every(row=>row.gap_state_after==='OPEN_RETAINED_GAP')?'OPEN_RETAINED_GAP':'MISMATCH'],['CLAIM_CEILING','PENDING_VERIFICATION_MAX_NO_UPGRADE',derived.dispositions.every(row=>row.claim_strength_after==='PENDING_VERIFICATION_MAX_NO_UPGRADE')?'PENDING_VERIFICATION_MAX_NO_UPGRADE':'MISMATCH'],['POOL','NO_AUTOMATIC_FORMAL_POOL_CHANGE',derived.applications.every(row=>row.formal_pool_effect==='NO_AUTOMATIC_FORMAL_POOL_CHANGE')?'NO_AUTOMATIC_FORMAL_POOL_CHANGE':'MISMATCH'],['EVIDENCE','NO_UPGRADE',derived.applications.every(row=>row.evidence_strength_effect==='NO_UPGRADE')?'NO_UPGRADE':'MISMATCH'],['OUTPUT_MUTATION','NO','NO'],['EXACT_SET','21','21'],['METHOD','CODEX_WEB_SEARCH_QUERY_AND_OPEN',d.methodPreflight[0].selected_method],['NETWORK_BOUNDARY','PUBLIC_WEB_READ_ONLY','PUBLIC_WEB_READ_ONLY'],['REVIEW_STATE','PENDING_INDEPENDENT_EXECUTION_AND_OUTPUT_QUALITY_REVIEW','PENDING_INDEPENDENT_EXECUTION_AND_OUTPUT_QUALITY_REVIEW']];const rows=checks.map((item,index)=>({check_id:`P0DISCR2-EXEC-VAL-${String(index+1).padStart(3,'0')}`,check_description:item[0],expected:item[1],actual:item[2],status:item[1]===item[2]?'PASS':'FAIL',evidence:'REPAIR002_SHARED_RUNTIME_ORACLE'}));rows.push({check_id:'P0DISCR2-EXEC-VAL-020',check_description:'SELF_REFERENCE_EXCLUDED',expected:'SELF_REFERENCE_EXCLUDED',actual:'SELF_REFERENCE_EXCLUDED',status:'INFO',evidence:'validation and manifest identities postchecked'});return rows;}
function manifestRowsFor(paths){return paths.map(file=>{const id=identity(file);return{case_id:CASE_ID,run_id:EXEC_RUN,batch_id:EXEC_BATCH,artifact_path:file,sha256:id.sha256,bytes:String(id.bytes),mtime:id.mtime};});}
export function finalizeDiscovery({token}={}){if(token!==EXEC_TOKEN)throw new Error('EXECUTION_TOKEN_MISMATCH');const pre=validateDiscoveryStaging();if(pre.length)throw new Error(`FINALIZE_PREWRITE:${pre.join('|')}`);const manifestBefore=fs.readFileSync(abs(MANIFEST)),d=discovery(),derived=r1.deriveOutputs(d.queryLedger,d.candidates,d.methodPreflight,authorityBundle());try{write(OCCURRENCE_DISPOSITION,serializeCsv(derived.dispositions,r1.DISPOSITION_COLUMNS));write(GAP_SUMMARY,serializeCsv(derived.summary,r1.SUMMARY_COLUMNS));write(APPLICATION,serializeCsv(derived.applications,r1.APPLICATION_COLUMNS));write(EXEC_REQUEST,requestText(derived.runStatus));const validation=validationRows(d,derived);write(EXEC_VALIDATION,serializeCsv(validation,r1.VALIDATION_COLUMNS));if(validation.some(row=>row.status==='FAIL'))throw new Error('VALIDATION_FAIL');const rows=manifestRowsFor(executionSetRows().map(row=>row.artifact_path)),candidate=Buffer.concat([manifestBefore,Buffer.from(serializeManifestDataRows(rows),'utf8')]),state=validateAppendStableManifest(candidate,{anomalyRows:readCsv(ANOMALY_AUTHORITY).rows,frozenPrefix:{bytes:manifestBefore.length,sha256:hash(manifestBefore)},originalRunId:ORIGINAL_TRIAGE_RUN,originalRunExpectedRows:11,expectedRunRows:rows,expectedRunId:EXEC_RUN,expectedPhysicalDelta:21});if(state.errors.length)throw new Error(`MANIFEST_CANDIDATE:${state.errors.join('|')}`);fs.writeFileSync(abs(MANIFEST),candidate);const post=validateExecution();if(post.length)throw new Error(`POSTWRITE:${post.join('|')}`);return{status:'EXECUTED_PENDING_INDEPENDENT_EXECUTION_AND_OUTPUT_QUALITY_REVIEW',queries:14,raw_records:d.rawRows.length,candidates:d.candidates.length,manifest_rows:21,run_status:derived.runStatus};}catch(error){const cleanup=[];try{fs.writeFileSync(abs(MANIFEST),manifestBefore);}catch(failure){cleanup.push(`MANIFEST:${failure.message}`);}for(const file of DERIVED_STAGE)if(fs.existsSync(abs(file)))try{fs.rmSync(abs(file));}catch(failure){cleanup.push(`REMOVE:${file}:${failure.message}`);}if(cleanup.length)throw new Error(`ROLLBACK_INCOMPLETE_HELD:${cleanup.join('|')}:${error.message}`);throw error;}}
export function validateExecution(){const errors=[];for(const file of GENERATED)if(!fs.existsSync(abs(file)))errors.push(`MISSING:${file}`);if(errors.length)return errors;const baseline=readCsv(EXEC_BASELINE),d=discovery(),disp=readCsv(OCCURRENCE_DISPOSITION),summary=readCsv(GAP_SUMMARY),apps=readCsv(APPLICATION),validation=readCsv(EXEC_VALIDATION);errors.push(...exactColumns(baseline,r1.BASELINE_COLUMNS,'BASELINE'),...baselineErrors(baseline.rows),...d.errors,...exactColumns(disp,r1.DISPOSITION_COLUMNS,'DISPOSITION'),...exactColumns(summary,r1.SUMMARY_COLUMNS,'SUMMARY'),...exactColumns(apps,r1.APPLICATION_COLUMNS,'APPLICATION'),...exactColumns(validation,r1.VALIDATION_COLUMNS,'VALIDATION'),...r1.derivedErrors({...d,dispositions:disp.rows,summary:summary.rows,applications:apps.rows},authorityBundle()));if(validation.rows.length!==20||validation.rows.some(row=>row.status==='FAIL'))errors.push('VALIDATION_STATUS');const expected=manifestRowsFor(executionSetRows().map(row=>row.artifact_path)),prefix=baseline.rows[1],state=manifestState({expectedRows:expected,expectedRunId:EXEC_RUN,frozenPrefix:{bytes:Number(prefix.bytes),sha256:prefix.sha256},expectedPhysicalDelta:21});errors.push(...state.errors.map(code=>`MANIFEST:${code}`));return[...new Set(errors)];}
export function negativeRows(){const baseRows=r1.negativeRows().map((row,index)=>({...row,test_id:`P0DISCR2-BASE-${String(index+1).padStart(3,'0')}`})),releaseGood=['result=PASS','execution_release=EXPLICITLY_RELEASED',`released_batch_id=${EXEC_BATCH}`,`released_run_id=${EXEC_RUN}`,'external_information_method=CODEX_WEB_SEARCH_QUERY_AND_OPEN_APPROVED_EQUIVALENT','network_execution_scope=PUBLIC_WEB_PRIMARY_SOURCE_DISCOVERY_ONLY'].join('\n'),cases=[['RELEASE_CLEAN',releaseGood,'ACCEPT','NONE'],['RELEASE_FAIL_MENTIONS_PASS',`result=FAIL\nnotes=${releaseGood.replace(/\n/g,' ')}`,'REJECT','RELEASE_MARKER'],['RELEASE_NO_UPGRADE_ONLY',`${releaseGood}\nNO_UPGRADE`,'ACCEPT','NONE']];const extras=cases.map((item,index)=>{const errors=releaseTextErrors(item[1]),actual=errors.length?'REJECT':'ACCEPT';return{test_id:`P0DISCR2-NEG-${String(index+1).padStart(3,'0')}-${item[0]}`,mutation_applied:index?'YES':'NO_CLEAN_CONTROL',oracle:'releaseTextErrors',expected:item[2],expected_code:item[3],actual,actual_codes:errors.join('|')||'NONE',result:actual===item[2]&&(item[3]==='NONE'||errors.some(code=>code.startsWith(item[3])))?'PASS':'FAIL'};});return[...baseRows,...extras];}
 
if(process.argv[1]&&import.meta.url===pathToFileURL(process.argv[1]).href){const mode=process.argv[2]??'--preview',token=process.argv.find(value=>value.startsWith('--token='))?.slice(8),method=process.argv.find(value=>value.startsWith('--method='))?.slice(9);if(mode==='--preview'){const errors=[...r1.queryPolicyErrors(authorityBundle()),...r1.methodAuthorityErrors(authorityBundle().methods)];console.log(JSON.stringify({status:'PREVIEW_REPAIR002',targets:authorityBundle().targets.length,gaps:authorityBundle().gaps.length,queries:authorityBundle().queries.length,contracts:contractRows().length,schemas:schemaRows().length,exact_set:executionSetRows().length,errors},null,2));if(errors.length)process.exitCode=1;}else if(mode==='--self-test'){const rows=negativeRows();console.log(JSON.stringify(rows,null,2));if(rows.some(row=>row.result!=='PASS'))process.exitCode=1;}else if(mode==='--validate-design-inputs'){const errors=designInputErrors({requireRelease:false,expectNoExecution:true});console.log(JSON.stringify({status:errors.length?'FAIL':'PASS_DESIGN_REPAIR002_INPUTS',errors},null,2));if(errors.length)process.exitCode=1;}else if(mode==='--validate-release'){const errors=designInputErrors({requireRelease:true,expectNoExecution:true});console.log(JSON.stringify({status:errors.length?'HELD':'PASS_RELEASE_BEFORE_NETWORK',errors},null,2));if(errors.length)process.exitCode=1;}else if(mode==='--begin-discovery')console.log(JSON.stringify(beginDiscovery({token,method}),null,2));else if(mode==='--validate-staging'){const errors=validateDiscoveryStaging();console.log(JSON.stringify({status:errors.length?'FAIL':'PASS_DISCOVERY_STAGING',errors},null,2));if(errors.length)process.exitCode=1;}else if(mode==='--finalize')console.log(JSON.stringify(finalizeDiscovery({token}),null,2));else if(mode==='--validate-execution'){const errors=validateExecution();console.log(JSON.stringify({status:errors.length?'FAIL':'PASS_APPEND_STABLE_EXECUTION_STATE',errors},null,2));if(errors.length)process.exitCode=1;}else throw new Error(`UNKNOWN_MODE:${mode}`);}