@wowok/agent-mcp 3.4.1 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/chain-semantics/composition-truth.js +1 -1
  2. package/dist/extensions/capability.js +1 -1
  3. package/dist/extensions/industry-pack.js +1 -1
  4. package/dist/extensions/modes.js +1 -1
  5. package/dist/harness/recover.js +1 -1
  6. package/dist/knowledge/arbitration-templates.js +1 -1
  7. package/dist/knowledge/audit-rules.d.ts +2 -1
  8. package/dist/knowledge/audit-rules.js +1 -1
  9. package/dist/knowledge/builtin-templates.d.ts +17 -1
  10. package/dist/knowledge/builtin-templates.js +1 -1
  11. package/dist/knowledge/fee-param-bindings.js +1 -1
  12. package/dist/knowledge/guard-bindings.js +1 -1
  13. package/dist/knowledge/guard-field-cognition.js +1 -1
  14. package/dist/knowledge/guard-templates.js +1 -1
  15. package/dist/knowledge/param-schema.js +1 -1
  16. package/dist/knowledge/pattern-resolutions.js +1 -1
  17. package/dist/knowledge/scenario-modes.js +1 -1
  18. package/dist/knowledge/template-scanner.js +1 -1
  19. package/dist/knowledge/template-test-profiles.js +1 -1
  20. package/dist/participation/customer-interest.d.ts +4 -0
  21. package/dist/participation/customer-interest.js +1 -1
  22. package/dist/participation/node-action-advisor.d.ts +4 -0
  23. package/dist/participation/node-action-advisor.js +1 -1
  24. package/dist/participation/time-window.d.ts +11 -0
  25. package/dist/participation/time-window.js +1 -1
  26. package/dist/playbooks/service-build/participation-radar.js +1 -1
  27. package/dist/schema/benchmark-migration/index.js +1 -1
  28. package/dist/schema/call/allocation.js +1 -1
  29. package/dist/schema/call/proof.js +1 -1
  30. package/dist/schema/call/service.d.ts +15 -5
  31. package/dist/schema/call/service.js +1 -1
  32. package/dist/schema/operations.d.ts +3 -1
  33. package/dist/schema/query/index.js +1 -1
  34. package/dist/schemas/benchmark_migration_operation.schema.json +1 -1
  35. package/dist/schemas/index.json +1 -1
  36. package/dist/schemas/onchain_operations.schema.json +16 -6
  37. package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
  38. package/dist/schemas/onchain_operations_guard.schema.json +2 -2
  39. package/dist/schemas/onchain_operations_proof.schema.json +1 -1
  40. package/dist/schemas/onchain_operations_service.schema.json +12 -2
  41. package/dist/schemas/query_toolkit.output.json +1 -1
  42. package/dist/tools/handlers/benchmark-migration.d.ts +9 -0
  43. package/dist/tools/handlers/benchmark-migration.js +1 -1
  44. package/dist/tools/handlers/onchain.d.ts +10 -0
  45. package/dist/tools/handlers/onchain.js +1 -1
  46. package/dist/tools/wrap.js +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- import{classifyError,buildDataSemantic}from'../schema/call/semantic.js';import{buildClassifiedErrorResult}from'./shared.js';import{getWipVerifyRecord}from'./wip-verify-ledger.js';import{shouldRunLightHooks,shouldRunHeavyHooks,recordOperationFailure,recordCriticalRisk,recordCriticalOperation,recordSubstepFailure}from'../harness/auto-escalation.js';import{getHarnessTier,setHarnessTier,isEnabled}from'../config/runtime.js';import{getHarness}from'../harness/index.js';import{TASK_BINDING_SLOT,callerIndependentSlots,declaresTaskBindingSlot}from'../knowledge/onchain-constants.js';import{recover}from'../harness/recover.js';import{stableOperationId}from'../harness/operation-id.js';import{recordOperationOutcome}from'../experience/index.js';import{recordIndustrySignal}from'../knowledge/flywheel-loop.js';import{getStageCache}from'../playbooks/service-build/index.js';import{SERVICE_BUILD_STAGES}from'../playbooks/service-build/process.js';import{extractAmount,getAmountThreshold,formatAmount}from'../knowledge/safety-rules.js';import{LocalMark,query_objects,query_serviceContext,ObjectType,objectTypeFromAddress}from'@wowok/wowok';import{arbitrationVotingLockDetail,auditMachineNodes,computeTerminalReachability,formatTaskBindingAdvisory,guardTimeProfileDetail,lintMachineTaskBindingPreflight,lintReviewLockedTerminals,lintTaskBindingAdvisories,rewardRefsOf,serviceRewardsUnfundedDetail}from'../knowledge/audit-rules.js';import{lintGuard}from'../knowledge/guard-lint.js';import{parseGuardNodeGates}from'../knowledge/guard-node-gates.js';import{batchQueryObjectsByIds,batchQueryObjectsByRef,fetchMachineNodes}from'../graph/onchain/sdk-batch.js';import{collectPermissionIndexes,checkPermissionAuthorization,permissionGrantPayloadJson}from'../schema/utils/permission-machine-check.js';import{fetchEntityPermissions}from'../playbooks/service-build/participation-radar.js';import{verifyAllocatorRails}from'../knowledge/allocator-rail-verifier.js';import{auditGuardRelies,verifyGuardBinding}from'../knowledge/guard-binding-verifier.js';function stageIndexOf(a){const b=SERVICE_BUILD_STAGES['indexOf'](a);return b>=0x0?b:0x0;}export function withTimeout(a,b=0x7530,c='operation'){let d;return Promise['race']([a['finally'](()=>{if(d)clearTimeout(d);}),new Promise((e,f)=>{d=setTimeout(()=>{let g='';if(c['includes']('messenger'))g='\x20This\x20is\x20a\x20messenger\x20network\x20operation.\x20Possible\x20causes:\x20'+'(1)\x20messenger\x20server\x20(https://messenger.wowok.net)\x20unreachable,\x20'+'(2)\x20no\x20messenger-enabled\x20account\x20configured\x20(use\x20account_operation\x20to\x20set\x20messenger\x20name),\x20'+'(3)\x20network\x20connectivity\x20issue.\x20'+'Ensure\x20you\x20have\x20a\x20messenger-enabled\x20account\x20and\x20the\x20server\x20is\x20reachable.';else(c['includes']('onchain')||c['includes']('account_operation')||c['includes']('bridge')||c['includes']('workflow')||c['includes']('keeper')||c['includes']('wowok'))&&(g='\x20This\x20tool\x20may\x20submit\x20an\x20ON-CHAIN\x20transaction.\x20The\x20transaction\x20was\x20NOT\x20cancelled\x20'+'by\x20this\x20timeout\x20—\x20it\x20may\x20already\x20be\x20submitted\x20and\x20still\x20finalize\x20on-chain.\x20'+'DO\x20NOT\x20blindly\x20retry\x20(risk\x20of\x20duplicate\x20operations).\x20First\x20verify:\x20'+'(1)\x20if\x20the\x20error\x20above\x20carries\x20a\x20tx\x20digest,\x20check\x20it\x20via\x20query_toolkit\x20'+'(query_type=\x27onchain_transaction\x27);\x20(2)\x20otherwise\x20verify\x20via\x20query_toolkit\x20'+'onchain_events\x20(or\x20the\x20account\x27s\x20recent\x20transactions).\x20Do\x20NOT\x20rely\x20on\x20an\x20'+'onchain_objects\x20read\x20alone:\x20it\x20may\x20serve\x20a\x20pre-transaction\x20cached\x20snapshot,\x20'+'so\x20an\x20unchanged\x20object\x20must\x20never\x20on\x20its\x20own\x20justify\x20a\x20retry.');f(new Error('Operation\x20\x27'+c+'\x27\x20timed\x20out\x20after\x20'+b+'ms.'+g));},b);})]);}export function wrapHandlerWithErrorShape(a,b,c,d,e){return async(f,g)=>{try{return await withTimeout(a(f,g),b,c);}catch(h){let i=h instanceof Error?h['message']:String(h);if(e&&i['includes']('timed\x20out\x20after\x20'+b+'ms'))try{const j=await e(f);if(j){i=i+'\x0a'+j;if(h instanceof Error)h['message']=i;}}catch{}if(d){const k=classifyError(i,h),l={'operation_type':c,'data':f},m=d(i,k,l);return{'content':[{'type':'text','text':'Error:\x20'+i}],'structuredContent':m};}throw h;}};}export const statusErrorShape=(a,b,c)=>({'result':buildClassifiedErrorResult({'status':'error'},a,b),'semantic':buildDataSemantic(undefined,c,!![],a)});export const operationErrorShape=(a,b,c)=>({'result':buildClassifiedErrorResult({'operation':'error'},a,b),'semantic':buildDataSemantic(undefined,c,!![],a)});export const strictStatusErrorShape=(a,b,c)=>({'result':{'status':'error','error':a}});function checkProjectStage(a,b,c){const d={'analyze_intent':'puzzle','aggregate_risks':'risk','trace_substeps':'substeps'},e=d[a];if(!e)return null;const f=getStageCache(b,c);if(!f){if(a==='analyze_intent')return null;return'project_stage:\x20calling\x20\x27'+a+'\x27\x20before\x20\x27analyze_intent\x27\x20—\x20recommend\x20calling\x20analyze_intent\x20first\x20for\x20project\x20\x27'+b+':'+c+'\x27';}if(stageIndexOf(f['stage'])<stageIndexOf(e)-0x1)return'project_stage:\x20calling\x20\x27'+a+'\x27\x20(stage\x20\x27'+e+'\x27)\x20but\x20project\x20is\x20at\x20stage\x20\x27'+f['stage']+'\x27\x20—\x20recommend\x20completing\x20prior\x20stages\x20first\x20for\x20\x27'+b+':'+c+'\x27';return null;}export function dispatchWithHarness(a,b){return async(d,f)=>{const g=[],h=getHarness(),i=shouldRunLightHooks(),j=shouldRunHeavyHooks(),k=isPublishOperation(b,d),l=isSignOperation(b,d),m=isBuyOperation(b,d),n=getHarnessTier();if(b==='goal_operation'&&i)try{const p=d,q=p?.['action'],r=p?.['project'],s=p?.['version'];if(q&&r&&s){const t=checkProjectStage(q,r,s);t&&g['push'](t);}}catch{}k&&n==='lightweight'&&(setHarnessTier('full'),g['push']('pre_publish:\x20tier\x20forced\x20to\x20full\x20for\x20publish-class\x20operation\x20(GLM5-21\x20§3.3)'));if(k&&n!=='off')try{const u=await runPrePublishChecks(b,d);g['push'](...u['warnings']);if(u['critical']['length']>0x0){for(const v of u['critical']){const x=recordCriticalRisk(v);if(x)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+x['reason']);}return buildHarnessBlockResult('pre_publish','Publish\x20BLOCKED\x20by\x20Harness\x20pre-publish\x20gate\x20(GLM5-21\x20V6):\x20'+(u['critical']['length']+'\x20CRITICAL\x20risk(s)\x20must\x20be\x20resolved\x20before\x20publish.'),u['critical'],u['warnings'],'immutable_violation','Fix\x20the\x20CRITICAL\x20risks\x20listed\x20in\x20the\x20message\x20(e.g.\x20rename\x20dispute\x20nodes\x20per\x20R-M1-11\x20—\x20disputes\x20live\x20off-Machine;\x20bare\x20fund-terminal\x20names\x20only\x20warn\x20but\x20must\x20carry\x20an\x20anchored\x20refund\x20rail),\x20add\x20the\x20entry\x20pair\x20prev_node=\x22\x22,\x20then\x20retry\x20publish.\x20Nodes/pairs/forwards\x20are\x20immutable\x20after\x20publish\x20—\x20verify\x20via\x20machineNode2file\x20first.');}}catch(y){g['push']('pre_publish\x20hook\x20failed:\x20'+(y instanceof Error?y['message']:String(y)));}if(b==='onchain_operations'&&n!=='off'){const z=extractOperationType(b,d);if(!isPublishOperation(b,d)){if(isGuardBindingOperation(b,d))try{const A=z==='gen_passport'?d['guard']!==undefined?{'guard':d['guard']}:harnessDataView(d):harnessDataView(d),B=d?.['env']?.['network'],C=A?await lintGuardBindingSemantics(A,z,B):{'critical':[],'warnings':[]};g['push'](...C['warnings']);if(C['critical']['length']>0x0){for(const D of C['critical']){const E=recordCriticalRisk(D);if(E)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+E['reason']);}return buildHarnessBlockResult('guard_binding','Guard\x20binding\x20BLOCKED\x20by\x20Harness\x20guard-binding\x20gate\x20(ruling\x202026-10-31):\x20'+(C['critical']['length']+'\x20CRITICAL\x20structural\x20finding(s)\x20on\x20the\x20guard(s)\x20')+'this\x20call\x20binds\x20—\x20the\x20defect\x20goes\x20LIVE\x20the\x20moment\x20this\x20tx\x20lands.',C['critical'],C['warnings'],'immutable_violation','Fix\x20the\x20CRITICAL\x20findings\x20(per-host\x20binding\x20semantics\x20—\x20see\x20the\x20finding\x20'+'details\x20and\x20guard-host-context),\x20rebuild\x20the\x20guard\x20(guards\x20are\x20immutable:\x20'+'create\x20a\x20NEW\x20guard,\x20then\x20unbind/rebind\x20on\x20the\x20host),\x20and\x20retry\x20the\x20bind.');}}catch(F){g['push']('guard_binding\x20hook\x20failed:\x20'+(F instanceof Error?F['message']:String(F)));}}}if(l&&j)try{const G=harnessDataView(d),H=G?extractAmount(G,{'excludeConfigAmounts':!![]}):null;if(H!==null){const I=getAmountThreshold();let J=null;try{J=BigInt(H);}catch{J=null;}if(J!==null&&J>I){const K=await skuMatchedOrderTotalExemption(G,d?.['env']?.['network']);if(K)g['push']('pre_sign:\x20order\x20total\x20'+H+'\x20exceeds\x20the\x20full-tier\x20threshold\x20'+I['toString']()+'\x20(smallest\x20unit)\x20—\x20'+'EXEMPTED\x20(M-K11-a):\x20exact\x20catalog\x20match\x20Σ\x20price×quantity\x20against\x20the\x20Service\x27s\x20published\x20sales'+(K['coinType']?',\x20payment\x20coin\x20'+K['coinType']:'')+'.');else return buildHarnessBlockResult('pre_sign','Sign\x20BLOCKED\x20by\x20Harness\x20pre-sign\x20gate\x20(GLM5-21\x20V7):\x20amount\x20'+formatAmount(J)+'\x20WOW\x20exceeds\x20the\x20full-tier\x20threshold\x20'+formatAmount(I)+'\x20WOW.',['amount\x20'+H+'\x20(smallest\x20unit)\x20>\x20threshold\x20'+I['toString']()+'\x20(smallest\x20unit)'],[],'invalid_parameter','Raise\x20WOWOK_AMOUNT_THRESHOLD\x20to\x20match\x20the\x20intended\x20amount,\x20split\x20the\x20transaction,\x20or\x20reset\x20the\x20harness\x20tier\x20to\x20lightweight\x20(config_operation)\x20after\x20explicit\x20user\x20confirmation.\x20'+'M-K11-a:\x20catalog-priced\x20order_new\x20buys\x20(total_pay\x20EXACTLY\x20equal\x20to\x20Σ\x20price×quantity\x20of\x20PUBLISHED\x20sales)\x20are\x20exempted\x20automatically\x20—\x20'+'if\x20this\x20IS\x20a\x20catalog-priced\x20buy,\x20verify\x20every\x20item\x20name/quantity\x20against\x20the\x20service\x27s\x20current\x20sales\x20and\x20retry.');}}}catch(L){g['push']('pre_sign\x20hook\x20failed:\x20'+(L instanceof Error?L['message']:String(L)));}if(m&&n!=='off')try{const M=await runPreBuyChecks(b,d);g['push'](...M['warnings']);if(M['critical']['length']>0x0){const N=readHarnessOverrideNote(d);if(N)g['push']('pre_buy\x20HARNESS\x20OVERRIDE:\x20'+M['critical']['length']+'\x20CRITICAL\x20allocator\x20risk(s)\x20suppressed\x20by\x20explicit\x20override\x20note\x20—\x20'+('findings:\x20'+M['critical']['join']('\x20|\x20')+';\x20note:\x20\x22'+N+'\x22.\x20')+'On-chain\x20state\x20is\x20UNCHANGED\x20—\x20the\x20payment\x20may\x20still\x20fail\x20or\x20lock\x20funds.');else{for(const O of M['critical']){const P=recordCriticalRisk(O);if(P)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+P['reason']);}return buildHarnessBlockResult('pre_buy','Purchase\x20BLOCKED\x20by\x20Harness\x20pre-buy\x20gate:\x20'+M['critical']['length']+'\x20CRITICAL\x20allocator\x20risk(s)\x20—\x20'+'paying\x20into\x20this\x20service\x20as\x20currently\x20configured\x20would\x20fail\x20on-chain\x20or\x20lock\x20funds\x20with\x20no\x20distribution\x20path.',M['critical'],M['warnings'],'state_conflict',preBuyRecoveryHint(M['critical']));}}}catch(Q){g['push']('pre_buy\x20hook\x20failed:\x20'+(Q instanceof Error?Q['message']:String(Q)));}let o;try{o=await a(d,f);}catch(R){const S=R instanceof Error?R['message']:String(R),T=recordOperationFailure(b,S);T&&g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+T['reason']);if(b==='onchain_operations')try{const U=classifyError(S,R);if(!U['retryable']&&U['error_code']!=='unknown'){const V=recordCriticalOperation(b,U['error_code']);if(V)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+V['reason']);}}catch{}throw R;}if(b==='onchain_operations')try{if(classifyOutcome(o)==='failed'){const W=extractErrorCode(o)??'',X=classifyError(W);if(!X['retryable']&&X['error_code']!=='unknown'){const Y=recordCriticalOperation(b,X['error_code']);if(Y)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+Y['reason']);}}}catch{}if(i&&!isOutcomeDiscriminated(o)){const Z=stableOperationId(extractIntent(b,d)??b,extractData(d));try{const a0=classifyOutcome(o);if(a0==='failed'){const a1=extractErrorCode(o)??'',a2=classifyError(a1),a3=h['recover'](a2['error_code'],Z,{'operation_type':b,'data':extractData(d),'retryable':a2['retryable']});g['push']('Harness\x20recover:\x20strategy='+a3['strategy']+('\x20(attempt\x20'+a3['current_attempt']+'/'+a3['max_attempts']+')')+(a3['should_retry']?'\x20—\x20retryable':'\x20—\x20do\x20NOT\x20retry\x20blindly')+(a3['user_prompt']?'\x20—\x20'+a3['user_prompt']:'\x20—\x20'+a3['detail']));}else a0==='success'&&h['resetRecovery'](Z);}catch(a4){g['push']('recover\x20hook\x20failed:\x20'+(a4 instanceof Error?a4['message']:String(a4)));}}if(b==='goal_operation')try{const a5=d?.['action'];if(a5==='trace_substeps'){const a6=extractCriticalFindingCount(o);if(a6>0x0){const a7=recordSubstepFailure(String(a5)+':\x20'+a6+'\x20critical\x20finding(s)');if(a7)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+a7['reason']);}}}catch{}if(isWriteClassTool(b)&&!SEMANTIC_RECORDED_TOOLS['has'](b))try{const a8=extractOperationType(b,d)??b,a9=extractIntent(b,d)??b,aa=extractData(d)??d,ab=classifyOutcome(o),ac=extractErrorCode(o),ad=isEnabled('experience_layer');if(ad)recordOperationOutcome(a8,aa,a9,ab,ac);else{const ae=extractIndustry(d);ae&&isEnabled('industry_evolution')&&recordIndustrySignal(ae,{'type':a8},{'success':ab==='success','error_code':ac});}}catch(af){g['push']('signal\x20collection\x20failed:\x20'+(af instanceof Error?af['message']:String(af)));}if(g['length']>0x0){if(o?.['structuredContent']){const ag=o['structuredContent'],ah=ag['semantic'];if(ah){const ai=Array['isArray'](ah['warnings'])?ah['warnings']:[];ah['warnings']=[...ai,...g];}else for(const aj of g){console['warn']('[harness]\x20'+aj);}}else for(const ak of g){console['warn']('[harness]\x20'+ak);}}return o;};}function isPublishOperation(a,b){if(a!=='onchain_operations')return![];const c=extractOperationType(a,b);if(c!=='service'&&c!=='machine')return![];const d=harnessDataView(b);return d?.['publish']===!![]||d?.['bPublished']===!![];}function isSignOperation(a,b){if(a==='wip_file'){const c=b?.['operation_type'];return c==='sign';}return a==='onchain_operations';}function isBuyOperation(a,b){if(a!=='onchain_operations')return![];if(extractOperationType(a,b)!=='service')return![];const c=harnessDataView(b),d=c?.['order_new'],e=c?.['buy']!=null||d!=null&&typeof d==='object'&&d['buy']!=null;return e&&c!=null&&typeof c['object']==='string'&&c['object']!=='';}function extractOperationType(a,b){if(!b||typeof b!=='object')return undefined;const c=b;if(a==='onchain_operations')return typeof c['operation_type']==='string'?c['operation_type']:undefined;if(a==='goal_operation'||a==='industry_pack_operation'||a==='strategy_review_operation')return typeof c['action']==='string'?c['action']:undefined;return typeof c['operation_type']==='string'?c['operation_type']:undefined;}function extractIntent(a,b){if(!b||typeof b!=='object')return undefined;const c=b;if((a==='goal_operation'||a==='industry_pack_operation'||a==='strategy_review_operation')&&typeof c['action']==='string')return a+':'+c['action'];const d=c['operation_type'];if(typeof d==='string')return a+':'+d;return a;}function extractData(a){if(!a||typeof a!=='object')return undefined;const b=a,c=b['data'];return c&&typeof c==='object'?c:undefined;}function harnessDataView(a){const b=a&&typeof a==='object'?a:undefined;if(!b)return undefined;const c=extractData(a);if(c)return c;if(typeof b['data']==='string')try{const g=JSON['parse'](b['data']);if(g&&typeof g==='object'&&!Array['isArray'](g))return g;}catch{}const d=typeof b['operation_type']==='string'?b['operation_type']:undefined;if(d===undefined)return undefined;const e=new Set(['operation_type','env','submission','info','idempotency_key']);if(d==='gen_passport')e['add']('guard');if(d==='gen_proof')for(const h of['proof','server_pubkey','server_signature','proof_type','description','item_count','about_address']){e['add'](h);}const f={};for(const [i,j]of Object['entries'](b)){if(!e['has'](i))f[i]=j;}return Object['keys'](f)['length']>0x0?f:undefined;}export function isGuardBindingOperation(a,b){if(a!=='onchain_operations')return![];const c=extractOperationType(a,b);if(c==='gen_passport'){const e=b&&typeof b==='object'?b:undefined;return e?.['guard']!==undefined||extractData(b)?.['guard']!==undefined;}const d=harnessDataView(b);if(!d)return![];return d['buy_guard']!==undefined||d['order_allocators']!==undefined||d['order_allocators_append']!==undefined||d['external_deposit_guard']!==undefined||d['external_withdraw_guard']!==undefined||d['usage_guard']!==undefined||d['voting_guard']!==undefined||d['claim']!==undefined||d['guard_add']!==undefined||d['guards']!==undefined||d['policy']!==undefined||d['guard']!==undefined||d['node']!==undefined;}export async function skuMatchedOrderTotalExemption(a,b){try{if(!a)return undefined;const c=a['order_new']?.['buy'];if(!c||c['discount']!=null)return undefined;const d=c?.['total_pay']?.['balance']??c?.['total_pay'];if(d===null||d===undefined||typeof d==='object')return undefined;const e=Array['isArray'](c['items'])?c['items']:[];if(e['length']===0x0)return undefined;const f=a['object'];if(typeof f!=='string'||f['length']===0x0)return undefined;const g=f['startsWith']('0x')?f:await LocalMark['Instance']()['get_address'](f)??undefined;if(!g)return undefined;const h=await query_serviceContext({'service':g,'network':b}),i=h?.['service'];if(!i)return undefined;if(i['bPublished']!==!![])return undefined;const j=String(i?.['type_raw']??i?.['type']??'')['match'](/<(.+)>$/)?.[0x1],k=Array['isArray'](i['sales'])?i['sales']:[];let l=0x0n;for(const n of e){const o=k['find'](r=>r?.['name']===n?.['name']);if(!o||o?.['suspension']===!![])return undefined;const p=BigInt(String(o?.['price']?.['balance']??o?.['price']??'0')),q=BigInt(String(n?.['quantity']??'1'));if(q<=0x0n)return undefined;l+=p*q;}let m;try{m=BigInt(String(d));}catch{return undefined;}if(m!==l)return undefined;return{'coinType':j};}catch{return undefined;}}const WRITE_CLASS_TOOLS=new Set(['onchain_operations','goal_operation','industry_pack_operation','strategy_review_operation','wip_file','messenger_operation','bridge_operation']),SEMANTIC_RECORDED_TOOLS=new Set(['onchain_operations','bridge_operation']);function isWriteClassTool(a){return WRITE_CLASS_TOOLS['has'](a);}function classifyOutcome(a){if(!a?.['structuredContent'])return'failed';const b=a['structuredContent'];if(b['outcome']==='failed')return'failed';if(b['outcome']==='executed')return'success';if(b['outcome']==='pending_input')return'partial';const c=b['verdict'];if(c&&typeof c==='object'&&c['buildable']===![])return'failed';const d=typeof b['status']==='string'?b['status']:typeof b['result_type']==='string'?b['result_type']:b['result']&&typeof b['result']==='object'&&typeof b['result']['status']==='string'?b['result']['status']:'';if(d==='error'||d==='failed'||d==='schema_mismatch')return'failed';if(d==='partial')return'partial';return'success';}function isOutcomeDiscriminated(a){const b=a?.['structuredContent'];return!!b&&typeof b==='object'&&'outcome'in b;}function extractErrorCode(a){if(!a?.['structuredContent'])return undefined;const b=a['structuredContent'];if(typeof b['error_code']==='string')return b['error_code'];const c=b['error'];if(typeof c==='string')return c;if(c&&typeof c==='object'){const d=c['code'];if(typeof d==='string')return d;}return undefined;}function extractIndustry(a){if(!a||typeof a!=='object')return undefined;const b=a;if(typeof b['industry']==='string')return b['industry'];const c=b['data'];if(c&&typeof c==='object'){const e=c;if(typeof e['industry']==='string')return e['industry'];}return undefined;}function numericBalance(a){if(typeof a==='number'&&Number['isFinite'](a))return a;if(typeof a==='string'&&a['trim']()!==''&&Number['isFinite'](Number(a)))return Number(a);if(typeof a==='bigint')return Number(a);return undefined;}function collectAllocatorGuards(b){const c=new Map();for(const d of b){const e=d?.['allocators'];if(!Array['isArray'](e))continue;for(const f of e){const g=f?.['guard'];if(typeof g!=='string'||g['trim']()==='')continue;const h=g['toLowerCase']();let i=c['get'](h);!i&&(i={'ref':g,'recipients':new Set(),'slots':new Set()},c['set'](h,i));const j=f?.['sharing'];if(!Array['isArray'](j))continue;for(const k of j){const l=k?.['who'];if(!l||typeof l!=='object')continue;if('Signer'in l)i['recipients']['add']('Signer');else{if('Entity'in l)i['recipients']['add']('Entity');else{if('GuardIdentifier'in l){i['recipients']['add']('GuardIdentifier');const m=l['GuardIdentifier'],o=Number(m);if(Number['isFinite'](o))i['slots']['add'](o);}}}}}}return c;}async function lintAllocatorGuardSet(a,b,c,h){const i=[],j=[],l=collectAllocatorGuards(a);if(l['size']===0x0)return{'critical':i,'warnings':j};let m;try{m=await batchQueryObjectsByRef([...l['values']()]['map'](q=>q['ref']),b,!![]);}catch(q){return j['push'](c+':\x20allocator\x20guard\x20lint\x20skipped\x20—\x20could\x20not\x20query\x20guard\x20objects\x20'+('('+(q instanceof Error?q['message']:String(q))+');\x20')+(c==='pre_buy'?'the\x20guard\x20layer\x20of\x20this\x20service\x27s\x20allocator\x20plan\x20is\x20UNVERIFIED\x20—\x20verify\x20the\x20guards\x20yourself\x20before\x20trusting\x20this\x20buy':'run\x20guard\x20lint\x20manually\x20BEFORE\x20publish\x20(order_allocators\x20immutable\x20after\x20publish,\x20IMMUT-002)')),{'critical':i,'warnings':j};}const n=new Map(),o=new Set(),p=new Map();for(const [r,s]of m){const t=s;if(t?.['type']!=='Guard'){t!=null&&typeof t['object']==='string'&&t['object']!==''&&(o['add'](r['toLowerCase']()),o['add'](String(t['object'])['toLowerCase']()),typeof t['type']==='string'&&t['type']!==''&&p['set'](r['toLowerCase'](),String(t['type'])));continue;}n['set'](r['toLowerCase'](),t);for(const u of[t['query_name'],t['object']]){if(typeof u==='string'&&u!=='')n['set'](u['toLowerCase'](),t);}}for(const [v,w]of l){const x=n['get'](v)??n['get'](w['ref']['toLowerCase']());if(!x){const D=w['ref']['toLowerCase']();if(o['has'](v)||o['has'](D)){const F=p['get'](v)??p['get'](D);if(F!==undefined){const G=c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20resolves\x20to\x20a\x20'+F+'\x20object,\x20not\x20a\x20Guard\x20—\x20'+'no\x20distribution\x20run\x20can\x20pass\x20a\x20guard\x20slot\x20that\x20names\x20a\x20different\x20object\x20type';if(h==='critical')i['push'](G);else j['push'](G);}else j['push'](c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20EXISTS\x20on\x20chain\x20but\x20its\x20object\x20could\x20not\x20be\x20parsed\x20'+'as\x20a\x20Guard\x20(unreadable\x20envelope\x20—\x20usually\x20an\x20SDK/on-chain\x20schema\x20skew)\x20—\x20lint\x20skipped\x20for\x20'+'this\x20guard;\x20verify\x20its\x20definition\x20manually\x20BEFORE\x20'+(c==='pre_buy'?'trusting\x20this\x20buy':'publish\x20(order_allocators\x20immutable\x20after\x20publish,\x20IMMUT-002)'));continue;}const E=c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20not\x20found\x20on-chain\x20—\x20'+(h==='critical'?'the\x20pool\x20accepts\x20funds\x20but\x20no\x20distribution\x20run\x20can\x20ever\x20pass\x20a\x20missing\x20guard\x20(fund-lock\x20risk)':'lint\x20skipped\x20for\x20this\x20guard;\x20verify\x20the\x20guard\x20exists\x20and\x20is\x20final\x20BEFORE\x20publish\x20(order_allocators\x20immutable\x20after\x20publish,\x20IMMUT-002)');if(h==='critical')i['push'](E);else j['push'](E);continue;}const y=x['data']??x,z=Array['isArray'](y?.['table'])?y['table']:[],A=Array['isArray'](y?.['relies'])?y['relies']:[];for(const H of w['slots']){const I=z['find'](K=>Number(K?.['identifier'])===H),J=I!=null&&I['b_submission']===!![]&&String(I['value_type'])==='Address';!J&&i['push'](c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20pays\x20a\x20{GuardIdentifier:\x20'+H+'}\x20leg\x20but\x20its\x20table\x20has\x20'+(I==null?'NO\x20slot\x20'+H+'\x20row':'slot\x20'+H+'\x20as\x20a\x20STATIC\x20row\x20(b_submission:\x20'+(I['b_submission']===!![])+',\x20value_type:\x20'+String(I['value_type'])+')')+'\x20—\x20the\x20passport\x20only\x20emits\x20DECLARED\x20submission\x20slots\x20and\x20allocation\x20asserts\x20the\x20slot\x20equals\x20the\x20paying\x20'+'order,\x20so\x20this\x20rail\x20aborts\x20at\x20alloc\x20(code\x2015,\x20ERECIPIENT_NOT_FOR_OBJECT)\x20with\x20the\x20leg\x27s\x20funds\x20stranded.\x20'+('Declare\x20{identifier:\x20'+H+',\x20b_submission:\x20true,\x20value_type:\x20\x22Address\x22}\x20in\x20the\x20guard\x20table\x20BEFORE\x20publish\x20')+'(templates\x20anchor\x20refund\x20rails\x20on\x20user\x20slot\x200\x20and\x20submit\x20the\x20Order\x20address\x20there).\x20Do\x20NOT\x20reach\x20for\x20'+'protocol\x20slot\x20254\x20as\x20the\x20payee:\x20it\x20is\x20the\x20task-binding/once\x20slot,\x20so\x20naming\x20it\x20arms\x20once-per-order\x20and\x20a\x20'+'second\x20fire\x20on\x20the\x20same\x20order\x20aborts\x20E_ONCE_TRIGGERED\x20(16)');}try{const K=z['some'](N=>Number(N?.['identifier'])===0x0&&N?.['b_submission']===!![]),L=w['slots']['has'](0x0),M=lintTaskBindingAdvisories({'guardRef':w['ref'],'table':z,'allocatorBound':!L&&K,'refundReentry':L});for(const N of M)j['push'](formatTaskBindingAdvisory(N,c));}catch{}const B={'description':typeof y?.['description']==='string'?y['description']:undefined,'table':z['map'](O=>({'identifier':Number(O?.['identifier']??0x0),'b_submission':!!O?.['b_submission'],'value_type':O?.['value_type']!==undefined?String(O['value_type']):undefined,'value':O?.['value'],'name':O?.['name']!==undefined?String(O['name']):undefined,'object_type':O?.['object_type']!==undefined?String(O['object_type']):undefined})),'root':y?.['root'],'rely':A['length']>0x0?{'guards':A['map'](O=>String(O)),'logic_or':!y?.['relies_logic_and']}:undefined,'binding_hint':{'host_object':'Service','binding_field':'order_allocators','sharing_recipients':w['recipients']['size']>0x0?[...w['recipients']]:undefined}},C=guardTimeProfileDetail({'ref':w['ref'],'description':typeof y?.['description']==='string'?y['description']:undefined,'table':z,'root':y?.['root']});if(C){const O=c+':\x20R-TIME-PROFILE\x20—\x20allocator\x20guard\x20\x22'+w['ref']+'\x22:\x20'+C['detail'];if(C['level']==='critical')i['push'](O);else j['push'](O);}try{const P=await lintGuard(B,{'auto_fix':![],'host_published':!![]});for(const Q of P['diagnostics']){const R=c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20'+Q['code']+'\x20('+Q['source']+'):\x20'+Q['message']+'\x20at\x20'+Q['location']['path'];if(Q['severity']==='error')i['push'](R);else{if(Q['severity']==='warning')j['push'](R);}}}catch(S){j['push'](c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20lint\x20failed\x20'+('('+(S instanceof Error?S['message']:String(S))+')\x20—\x20non-blocking'));}}return{'critical':i,'warnings':j};}function collectForwardGuardRefs(a){const b=new Map();for(const c of a){const d=c,e=Array['isArray'](d?.['pairs'])?d['pairs']:Array['isArray'](d?.['value'])?d['value']:[];for(const h of e){const i=h,j=Array['isArray'](i?.['forwards'])?i['forwards']:[];for(const k of j){const l=k,m=l?.['guard'],n=typeof m==='string'&&m['trim']()!==''?m:m&&typeof m==='object'?m['guard']??m['$ref']:undefined;typeof n==='string'&&n['trim']()!==''&&b['set'](n['toLowerCase'](),n);}}}return b;}async function fetchForwardGuardIndex(a,b){const c=collectForwardGuardRefs(a),d=new Map();if(c['size']===0x0)return{'refs':c,'defs':d};try{const f=await batchQueryObjectsByIds([...c['values']()],b,!![]);for(const h of f??[]){const i=h;if(i?.['type']!=='Guard')continue;for(const j of[i['query_name'],i['object']]){if(typeof j==='string'&&j!=='')d['set'](j['toLowerCase'](),i);}}return{'refs':c,'defs':d};}catch(l){return{'refs':c,'defs':d,'error':l instanceof Error?l['message']:String(l)};}}function lintForwardGuardsTaskBinding(a){const b=[],c=[];if(a['refs']['size']===0x0)return{'critical':b,'warnings':c};if(a['error']!==undefined)return c['push']('pre_publish:\x20forward-guard\x20lints\x20(task-binding\x20+\x20review-lock)\x20DEGRADED\x20—\x20could\x20not\x20query\x20guard\x20objects\x20'+('('+a['error']+');\x20verify\x20every\x20forward\x20guard\x20carries\x20the\x20protocol\x20slot\x20254\x20Address\x20submission\x20row\x20and\x20')+'that\x20no\x20settlement\x20rail\x20is\x20review-locked\x20BEFORE\x20publish\x20(immutable\x20after\x20publish,\x20IMMUT-001).\x20'+'If\x20this\x20repeats,\x20fix\x20the\x20read\x20path\x20(RPC/network)\x20—\x20do\x20not\x20publish\x20blind'),{'critical':b,'warnings':c};for(const [d,e]of a['refs']){const f=a['defs']['get'](d);if(!f){const j='pre_publish:\x20forward-bound\x20guard\x20\x22'+e+'\x22\x20not\x20found\x20on-chain\x20—\x20'+(/^0x[0-9a-fA-F]{4,64}$/['test'](e)?'dangling\x20forward\x20binding;\x20publish\x20BLOCKED\x20(fail-closed,\x20IMMUT-001).\x20Bind\x20an\x20existing\x20guard\x20'+'(or\x20create\x20it\x20first)\x20BEFORE\x20publishing\x20—\x20a\x20frozen\x20machine\x20cannot\x20be\x20repaired':'task-binding\x20lint\x20skipped\x20for\x20it;\x20ensure\x20it\x20exists\x20and\x20carries\x20the\x20protocol\x20slot\x20254\x20Address\x20'+'submission\x20row\x20BEFORE\x20publish\x20(immutable\x20after\x20publish,\x20IMMUT-001)');(/^0x[0-9a-fA-F]{4,64}$/['test'](e)?b:c)['push'](j);continue;}const g=f['data']??f,h=Array['isArray'](g?.['table'])?g['table']:[],i=declaresTaskBindingSlot(h);!i&&b['push']('pre_publish:\x20forward-bound\x20guard\x20\x22'+e+'\x22\x20has\x20NO\x20protocol\x20slot\x20'+TASK_BINDING_SLOT+'\x20Address\x20submission\x20row\x20—\x20'+'the\x20passport\x20only\x20emits\x20DECLARED\x20slots,\x20so\x20once\x20a\x20Service\x20binds\x20this\x20Machine\x20EVERY\x20forward\x20this\x20'+'guard\x20gates\x20aborts\x20(code\x2011)\x20and\x20escrowed\x20funds\x20can\x20never\x20advance.\x20Machine\x20topology\x20is\x20immutable\x20'+('after\x20publish\x20(IMMUT-001):\x20add\x20{identifier:'+TASK_BINDING_SLOT+',\x20b_submission:true,\x20value_type:\x22Address\x22}\x20to\x20the\x20')+'guard\x27s\x20table\x20(recreate\x20the\x20guard\x20unfrozen\x20if\x20it\x20is\x20frozen)\x20BEFORE\x20publishing\x20this\x20Machine');}return{'critical':b,'warnings':c};}function lintForwardReviewLocks(a,b){if(b['error']!==undefined||b['refs']['size']===0x0)return{'critical':[],'warnings':[]};const c=new Map();for(const [d,e]of b['defs']){const f=new Set();collectGuardNodeGates(e,f);if(f['size']>0x0)c['set'](d,[...f]);}return lintReviewLockedTerminals(a,c);}function lintForwardGuardsTimeProfile(a){const b=[],c=[];if(a['error']!==undefined||a['refs']['size']===0x0)return{'critical':b,'warnings':c};for(const [d,e]of a['refs']){const f=a['defs']['get'](d);if(!f)continue;const g=f['data']??f,h=guardTimeProfileDetail({'ref':e,'description':g?.['description'],'table':Array['isArray'](g?.['table'])?g['table']:undefined,'root':g?.['root']});if(h){const i='pre_publish:\x20R-TIME-PROFILE\x20—\x20forward-bound\x20guard\x20\x22'+e+'\x22:\x20'+h['detail'];if(h['level']==='critical')b['push'](i);else c['push'](i);}}return{'critical':b,'warnings':c};}function lintForwardGuardServiceConstants(a,b,c){const d=[],e=[];if(a['error']!==undefined||a['refs']['size']===0x0)return{'critical':d,'warnings':e};const f=b?.['toLowerCase']();for(const [g,h]of a['refs']){const i=a['defs']['get'](g);if(!i)continue;const j=i['data']??i,k=Array['isArray'](j?.['table'])?j['table']:[];for(const l of k){if(l?.['b_submission']===!![])continue;if(String(l?.['value_type']??'')!=='Address')continue;const m=l?.['value'];if(typeof m!=='string'||!m['startsWith']('0x'))continue;const n=m['toLowerCase'](),o=objectTypeFromAddress(m);if(o===ObjectType['Service']&&n!==f){const p=c+':\x20forward\x20guard\x20\x22'+h+'\x22\x20pins\x20Service-typed\x20address\x20'+m+'\x20as\x20a\x20STATIC\x20constant'+(f!==undefined?'\x20while\x20the\x20machine\x20binds\x20a\x20DIFFERENT\x20service':'')+'\x20—\x20every\x20forward\x20then\x20aborts\x20(guard\x20verify\x20fail,\x20code\x207)\x20on\x20that\x20service\x20and\x20in-flight\x20orders\x20strand\x20'+'permanently:\x20guards\x20freeze\x20(IMMUT-001)\x20and\x20allocator\x20appends\x20only\x20help\x20NEW\x20orders\x20'+'(mtb-tn-261030\x20P0-3:\x205.8\x20WOW\x20stranded\x20on\x20a\x20machine\x20reused\x20across\x20store\x20versions).\x20'+(f!==undefined?'Rebuild\x20the\x20guard\x20with\x20the\x20self-reference\x20pattern\x20(compare\x20order.service\x20against\x20THIS\x20service\x20'+f+')\x20BEFORE\x20publishing':'Safe\x20ONLY\x20if\x20this\x20machine\x20will\x20ever\x20bind\x20the\x20pinned\x20service;\x20otherwise\x20rebuild\x20the\x20guard\x20BEFORE\x20binding\x20any\x20other\x20service');if(f!==undefined)d['push'](p);else e['push'](p);}else o===null&&f!==undefined&&n!==f&&e['push'](c+':\x20forward\x20guard\x20\x22'+h+'\x22\x20pins\x20untagged\x20address\x20'+m+'\x20(slot\x20#'+l?.['identifier']+')\x20as\x20a\x20STATIC\x20constant\x20—\x20'+'not\x20a\x20protocol\x20object\x20(no\x20first-byte\x20type\x20tag).\x20Wallet\x20references\x20are\x20legal,\x20but\x20a\x20stale/non-object\x20'+'address\x20freezes\x20into\x20the\x20guard\x20(IMMUT-001)\x20and\x20silently\x20fails\x20its\x20comparison\x20against\x20real\x20orders.\x20'+'Confirm\x20this\x20is\x20the\x20intended\x20account\x20BEFORE\x20publish');}}return{'critical':d,'warnings':e};}async function lintMachineGuardServiceConstants(a,b,c,d){let f;try{f=await fetchMachineNodes(a,c,!![]);}catch(h){return{'critical':[],'warnings':[d+':\x20could\x20not\x20fetch\x20machine\x20\x22'+a+'\x22\x20nodes\x20for\x20the\x20guard-constant\x20consistency\x20check\x20'+('('+(h instanceof Error?h['message']:String(h))+')\x20—\x20cross-service\x20guard\x20pins\x20UNVERIFIED.\x20Audit\x20each\x20forward\x20')+'guard\x20manually\x20before\x20trusting\x20orders\x20on\x20this\x20machine\x20(mtb-tn-261030\x20P0-3:\x20a\x20frozen\x20guard\x20pinning\x20ANOTHER\x20'+'service\x27s\x20address\x20strands\x20every\x20order)']};}if(f['length']===0x0)return{'critical':[],'warnings':[]};const g=await fetchForwardGuardIndex(f,c);if(g['error']!==undefined)return{'critical':[],'warnings':[d+':\x20guard-constant\x20consistency\x20check\x20degraded\x20('+g['error']+')\x20—\x20cross-service\x20guard\x20pins\x20UNVERIFIED\x20'+'(mtb-tn-261030\x20P0-3)']};return lintForwardGuardServiceConstants(g,b,d);}async function lintAllocatorGuards(a,b){return lintAllocatorGuardSet([a['order_allocators'],a['order_allocators_append']],b,'pre_publish','warning');}async function lintAllocatorRailPairing(a,b){const c=[],d=[],h=[a['order_allocators'],a['order_allocators_append']],i=collectAllocatorGuards(h);if(i['size']===0x0)return{'critical':c,'warnings':d};let j;try{j=await batchQueryObjectsByRef([...i['values']()]['map'](r=>r['ref']),b,!![]);}catch(r){return d['push']('pre_publish:\x20allocator\x20rail\x20verification\x20skipped\x20—\x20could\x20not\x20query\x20guard\x20objects\x20'+('('+(r instanceof Error?r['message']:String(r))+');\x20run\x20template_scan\x20or\x20guard\x20lint\x20manually\x20')+'BEFORE\x20publish:\x20fund\x20rails\x20must\x20be\x20node-gated\x20with\x20NO\x20claimed_by\x20leg\x20(decision\x2011,\x20'+'R-FUND-RAIL-CLAIMED-BY)\x20and\x20every\x20rail\x20must\x20reach\x20a\x20viable\x20exit,\x20or\x20a\x20claimed\x20order\x20'+'strands\x20its\x20escrow\x20(order_allocators\x20immutable\x20after\x20publish,\x20IMMUT-002)'),{'critical':c,'warnings':d};}const l=new Map();for(const [s,t]of j){const u=t;if(u?.['type']!=='Guard')continue;l['set'](s['toLowerCase'](),u);for(const v of[u['query_name'],u['object']]){if(typeof v==='string'&&v!=='')l['set'](v['toLowerCase'](),u);}}const m=[],n=new Set();for(const [w,x]of i){const y=l['get'](w);if(!y)continue;const z=y?.['data']??y,A=Array['isArray'](z['table'])?z['table']:[];m['push']({'key':x['ref'],'track':x['slots']['has'](0x0)?'refund':'settlement','table':A,'root':z['root']});const B=z['description'];typeof B==='string'&&B['includes']('merchant-declared\x20exemption:\x20rail\x20\x27')&&n['add'](x['ref']);}if(m['length']===0x0)return d['push']('pre_publish:\x20allocator\x20rail\x20verification\x20skipped\x20—\x20no\x20referenced\x20allocator\x20guard\x20was\x20'+'resolvable\x20on-chain;\x20verify\x20the\x20rails\x20BEFORE\x20publish\x20(IMMUT-002)'),{'critical':c,'warnings':d};const o=typeof a['machine']==='string'?a['machine']:undefined;let p=[];if(o&&o['trim']()!=='')try{const C=await fetchMachineNodes(o,b,!![]);p=C['map'](D=>({'name':D['name']}));}catch{d['push']('pre_publish:\x20allocator\x20rail\x20verification\x20ran\x20WITHOUT\x20the\x20machine\x20node\x20matrix\x20'+'(machine\x20fetch\x20failed)\x20—\x20award-exit\x20coverage\x20is\x20evaluated\x20on\x20the\x20payload\x20rails\x20only');}else d['push']('pre_publish:\x20\x27machine\x27\x20absent\x20from\x20THIS\x20call\x20—\x20allocator\x20rail\x20verification\x20evaluated\x20without\x20'+'the\x20node\x20matrix;\x20if\x20the\x20store\x20binds\x20a\x20machine\x20later,\x20re-verify\x20after\x20binding');p['length']===0x0&&(p=[{'name':'*'}]);const q=verifyAllocatorRails(m,p,{'arbitrationBound':!![],'declaredKeys':n});for(const D of q){const E='pre_publish:\x20allocator\x20rail\x20verification\x20—\x20['+D['code']+']\x20'+D['detail'];D['level']==='info'?d['push']('pre_publish:\x20allocator\x20rail\x20DISCLOSURE\x20(not\x20a\x20violation)\x20—\x20['+D['code']+']\x20'+D['detail']):c['push'](E);}return{'critical':c,'warnings':d};}function collectGuardBindingRefs(a,b){const c=[],d=(e,h,i)=>{typeof e==='string'&&e['trim']()!==''&&c['push']({'ref':e['trim'](),'host':h,'facts':i});};if(b==='service'){d(a['buy_guard'],'service_buy_guard');for(const e of collectAllocatorGuards([a['order_allocators'],a['order_allocators_append']])['values']()){c['push']({'ref':e['ref'],'host':'service_allocator_guard'});}}if(b==='treasury'){const h=a['external_deposit_guard'];if(Array['isArray'](h))for(const j of h){d(j?.['guard'],'treasury_external_deposit',{'amount_slot':typeof j?.['identifier']==='number'?j['identifier']:undefined});}const i=a['external_withdraw_guard'];if(Array['isArray'](i))for(const k of i){d(k?.['guard'],'treasury_external_withdraw',{'amount_slot':typeof k?.['identifier']==='number'?k['identifier']:undefined});}}if(b==='arbitration'){d(a['usage_guard'],'arbitration_usage');const l=a['voting_guard'];if(l&&typeof l==='object'&&Array['isArray'](l['guards'])&&l['op']!=='remove'&&l['op']!=='clear')for(const m of l['guards']){d(m?.['guard'],'arbitration_voting');}}if(b==='reward'){d(a['claim'],'reward_claim');const o=a['guard_add'];if(Array['isArray'](o))for(const q of o){d(q?.['guard'],'reward_claim');}}if(b==='demand'){const r=a['guards'];if(Array['isArray'](r))for(const s of r){d(typeof s==='string'?s:s?.['guard'],'demand_present');}}if(b==='permission'){const t=a['policy'];if(Array['isArray'](t))for(const u of t){const v=u?.['write_guard'];if(Array['isArray'](v))for(const w of v){d(typeof w==='string'?w:w?.['guard'],'repository_write');}d(u?.['quote_guard'],'repository_quote');}}if(b==='machine'){const x=a['node'],y=x&&typeof x==='object'&&!('json_or_markdown_file'in x)?x['nodes']:undefined;if(Array['isArray'](y))for(const z of y){const A=Array['isArray'](z?.['pairs'])?z['pairs']:[];for(const B of A){const C=Array['isArray'](B?.['forwards'])?B['forwards']:[];for(const D of C){const E=D?.['guard'];d(typeof E==='string'?E:E?.['guard'],'machine_forward');}}}}if(b==='gen_passport'){const F=a['guard'];if(typeof F==='string')d(F,'gen_passport');else{if(Array['isArray'](F))for(const G of F){d(typeof G==='string'?G:G?.['guard'],'gen_passport');}}}return c;}async function verifyCollectedGuardBindings(a,b){const c=[],d=[];if(a['length']===0x0)return{'critical':c,'warnings':d};const h=new Set(),i=a['filter'](m=>{const n=m['ref']['toLowerCase']()+'|'+m['host'];if(h['has'](n))return![];return h['add'](n),!![];});let j;try{j=await batchQueryObjectsByRef([...new Set(i['map'](m=>m['ref']))],b,!![]);}catch(m){return d['push']('pre_publish:\x20guard-binding\x20semantics\x20check\x20skipped\x20—\x20could\x20not\x20query\x20guard\x20objects\x20'+('('+(m instanceof Error?m['message']:String(m))+');\x20run\x20analyze_guard_semantics\x20on\x20every\x20bound\x20')+'guard\x20BEFORE\x20the\x20binding\x20goes\x20live\x20(guards\x20are\x20immutable\x20after\x20create)'),{'critical':c,'warnings':d};}const l=new Map();for(const [n,o]of j){const p=o;if(p?.['type']!=='Guard')continue;l['set'](n['toLowerCase'](),p);for(const q of[p['query_name'],p['object']]){if(typeof q==='string'&&q!=='')l['set'](q['toLowerCase'](),p);}}for(const r of i){const s=l['get'](r['ref']['toLowerCase']());if(!s)continue;const t=s?.['data']??s,u=Array['isArray'](t['table'])?t['table']:[],v={...r['facts']};r['host']==='machine_forward'&&(v['declared_slots']=callerIndependentSlots(u));const w=verifyGuardBinding({'host':r['host'],'root':t['root'],'facts':v}),x=t['rely']??t['relies'];r['host']!=='guard_relied'&&Array['isArray'](x)&&x['length']>0x0&&w['push'](...auditGuardRelies({'from_host':'','to_host':r['host'],'child_count':x['length']}));for(const y of w){y['level']==='critical'?c['push']('pre_publish:\x20guard\x20binding\x20on\x20'+r['host']+'\x20—\x20['+y['code']+']\x20'+y['detail']):d['push']('pre_publish:\x20guard-binding\x20'+y['level']['toUpperCase']()+'\x20on\x20'+r['host']+'\x20—\x20['+y['code']+']\x20'+y['detail']);}}return{'critical':c,'warnings':d};}export async function lintGuardBindingSemantics(a,b,c){const d=[],g=[],h=collectGuardBindingRefs(a,b);let i=typeof a['machine']==='string'?a['machine']['trim']():'';i===''&&b==='machine'&&typeof a['object']==='string'&&(i=a['object']['trim']());if(i!=='')try{const k=await fetchMachineNodes(i,c,!![]),l=new Set();for(const m of k){for(const o of m['pairs']){for(const q of o['forwards']){if(typeof q['guard']==='string'&&q['guard']['trim']()!=='')l['add'](q['guard']);}}}for(const r of l){h['push']({'ref':r,'host':'machine_forward'});}}catch(s){g['push']('pre_publish:\x20guard-binding\x20check\x20ran\x20WITHOUT\x20the\x20machine\x20forwards\x20(machine\x20fetch\x20failed:\x20'+((s instanceof Error?s['message']:String(s))+')\x20—\x20forward-guard\x20host\x20semantics\x20were\x20not\x20')+'audited\x20here;\x20run\x20analyze_guard_semantics\x20on\x20every\x20forward\x20guard\x20BEFORE\x20publish');}const j=await verifyCollectedGuardBindings(h,c);return{'critical':[...d,...j['critical']],'warnings':[...g,...j['warnings']]};}async function lintServiceEscrowExitCoverage(b,c,d,f){const h=[],i=[],j=new Map();let k=0x0;for(const r of c){if(r===null||r===undefined)continue;const s=Array['isArray'](r)?r:Array['isArray'](r['allocators'])?r['allocators']:[];for(const t of s){k++;const u=t?.['guard'];if(typeof u==='string'&&u['trim']()!=='')j['set'](u['toLowerCase'](),u);}}const l=c['some'](v=>v!==null&&v!==undefined);if(f){let v,w;try{const x=await batchQueryObjectsByIds([f],d,!![]);v=(x??[])['find'](y=>y?.['type']==='Service');}catch(y){w=y;}if(!v&&!b)return h['push']('pre_publish:\x20(R-ESCROW-LEAF)\x20escrow-exit\x20gate\x20could\x20not\x20resolve\x20service\x20\x22'+f+'\x22\x20'+('('+(w instanceof Error?w['message']:String(w))+')\x20—\x20terminal\x20coverage\x20UNVERIFIABLE;\x20publish\x20blocked.\x20')+'Retry\x20when\x20the\x20network\x20is\x20reachable'),{'critical':h,'warnings':i};!v&&w!==undefined&&i['push']('pre_publish:\x20escrow-exit\x20gate\x20DEGRADED\x20—\x20could\x20not\x20query\x20service\x20\x22'+f+'\x22\x20'+('('+(w instanceof Error?w['message']:String(w))+');\x20auditing\x20THIS\x20call\x27s\x20allocator\x20payload\x20only'));if(v){const z=v['data']??v;if(!b&&typeof z['machine']==='string'&&z['machine']['trim']()!=='')b=z['machine'];const A=z['order_allocators'],B=Array['isArray'](A)?A:Array['isArray'](A?.['allocators'])?A['allocators']:[];for(const C of B){const D=C?.['guard'];typeof D==='string'&&D['trim']()!==''&&!j['has'](D['toLowerCase']())&&j['set'](D['toLowerCase'](),D);}}}if(!b)return i['push']('pre_publish:\x20escrow-exit\x20gate\x20skipped\x20—\x20no\x20machine\x20in\x20this\x20call\x20and\x20the\x20published\x20service\x20carries\x20none;\x20'+'there\x20is\x20no\x20topology\x20to\x20cover'),{'critical':h,'warnings':i};let m=[];try{m=await fetchMachineNodes(b,d,!![]);}catch(E){return h['push']('pre_publish:\x20escrow-exit\x20gate\x20could\x20not\x20fetch\x20machine\x20\x22'+b+'\x22\x20nodes\x20'+('('+(E instanceof Error?E['message']:String(E))+')\x20—\x20terminal\x20coverage\x20UNVERIFIABLE;\x20publish\x20blocked.\x20')+'Retry\x20when\x20the\x20network\x20is\x20reachable'),{'critical':h,'warnings':i};}if(m['length']===0x0)return i['push']('pre_publish:\x20escrow-exit\x20gate\x20skipped\x20—\x20machine\x20has\x20no\x20nodes\x20to\x20cover'),{'critical':h,'warnings':i};const n=computeTerminalReachability(m);if(n['terminals']['length']===0x0)return{'critical':h,'warnings':i};if(j['size']===0x0)return l?h['push']('pre_publish:\x20(R-ESCROW-LEAF)\x20machine\x20terminal\x20node(s)\x20'+n['terminals']['map'](F=>'\x22'+F+'\x22')['join'](',\x20')+'\x20have\x20NO\x20allocator\x20rail\x20—\x20'+(k===0x0?'order_allocators\x20is\x20empty\x20in\x20this\x20call,\x20so\x20':'no\x20allocator\x20row\x20carries\x20a\x20guard\x20ref,\x20so\x20')+'an\x20order\x20stopping\x20at\x20any\x20terminal\x20strands\x20its\x20escrow\x20by\x20construction\x20(immutable\x20after\x20publish,\x20IMMUT-002).\x20'+'Every\x20terminal\x20needs\x20a\x20settlement/refund\x20allocator\x20whose\x20guard\x20gates\x20progress.current\x20==\x20<terminal>\x20'+'(canonical\x20designs:\x20tpl_allocator_node_gate_settle\x20/\x20tpl_allocator_node_gate_refund,\x20M-T12)'):i['push']('pre_publish:\x20(R-ESCROW-LEAF)\x20the\x20published\x20service\x20carries\x20NO\x20allocator\x20rails\x20on-chain\x20—\x20'+('if\x20it\x20ever\x20takes\x20payment,\x20every\x20terminal\x20('+n['terminals']['map'](F=>'\x22'+F+'\x22')['join'](',\x20')+')\x20strands\x20escrow\x20')+'with\x20no\x20exit.\x20Zero-payment\x20services\x20may\x20proceed;\x20otherwise\x20bind\x20settlement/refund\x20rails\x20BEFORE\x20publish\x20'+'(canonical\x20designs:\x20tpl_allocator_node_gate_settle\x20/\x20tpl_allocator_node_gate_refund,\x20M-T12;\x20immutable\x20after\x20publish,\x20IMMUT-002)'),{'critical':h,'warnings':i};let o;try{o=await batchQueryObjectsByRef([...j['values']()],d,!![]);}catch(F){return i['push']('pre_publish:\x20escrow-exit\x20coverage\x20UNVERIFIED\x20—\x20could\x20not\x20query\x20allocator\x20guards\x20'+('('+(F instanceof Error?F['message']:String(F))+');\x20run\x20guard\x20lint\x20manually\x20BEFORE\x20publish\x20')+'(terminal(s)\x20in\x20question:\x20'+n['terminals']['join'](',\x20')+')'),{'critical':h,'warnings':i};}const p=new Set();for(const G of o['values']()){const H=G;if(H?.['type']!=='Guard')continue;collectGuardNodeGates(H,p);}const q=n['terminals']['filter'](I=>!p['has'](I));return q['length']>0x0&&h['push']('pre_publish:\x20(R-ESCROW-LEAF)\x20terminal\x20node(s)\x20'+q['map'](I=>'\x22'+I+'\x22')['join'](',\x20')+'\x20have\x20NO\x20allocator\x20rail\x20—\x20'+'an\x20order\x20that\x20reaches\x20a\x20terminal\x20moves\x20no\x20money\x20by\x20itself,\x20so\x20its\x20escrow\x20strands\x20permanently\x20'+'(mainnet:\x200.299\x20stranded\x20at\x20an\x20un-railied\x20terminal;\x20ofshop:\x200.25\x20stranded\x20at\x20\x27expired\x27).\x20Every\x20terminal\x20'+'needs\x20a\x20settlement/refund\x20allocator\x20whose\x20guard\x20gates\x20progress.current\x20==\x20<terminal>\x20(canonical\x20designs:\x20'+'tpl_allocator_node_gate_settle\x20/\x20tpl_allocator_node_gate_refund,\x20M-T12).\x20If\x20the\x20pool\x20legitimately\x20drains\x20'+'at\x20an\x20earlier\x20node,\x20add\x20a\x20zero-value\x20anchor\x20row\x20on\x20the\x20terminal\x20rail\x20so\x20the\x20guard\x20resolves\x20without\x20paying'),{'critical':h,'warnings':i};}function collectGuardNodeGates(a,b){const c=a['data']??a;for(const d of parseGuardNodeGates(c?.['root'],c?.['table']))b['add'](d);}async function checkArbitrationNeutrality(b,c){const d=[],f=[],g=[],h=p=>{const q=typeof p==='string'?p:p?.['object']??p?.['name'];if(typeof q==='string'&&q!==''&&!g['includes'](q))g['push'](q);};for(const p of Array['isArray'](b['arbitrations'])?b['arbitrations']:[])h(p);let i=typeof b['permission']==='string'?b['permission']:undefined;const j=typeof b['object']==='string'?b['object']:undefined;if(j){let q;try{const r=await batchQueryObjectsByIds([j],c,!![]);q=(r??[])['find'](s=>s?.['type']==='Service');}catch(s){f['push']('pre_publish:\x20arbitration\x20neutrality\x20check\x20DEGRADED\x20—\x20could\x20not\x20query\x20service\x20\x22'+j+'\x22\x20'+('('+(s instanceof Error?s['message']:String(s))+').\x20Verify\x20manually\x20that\x20every\x20bound\x20arbitration\x27s\x20')+'Permission\x20owner/admin\x20set\x20is\x20DISJOINT\x20from\x20the\x20service\x27s\x20controller\x20keys\x20before\x20publishing');}if(q){const t=q['data']??q;if(!i&&typeof t['permission']==='string')i=t['permission'];for(const u of Array['isArray'](t['arbitrations'])?t['arbitrations']:[])h(u);}}if(g['length']===0x0)return{'critical':d,'warnings':f};if(!i)return f['push']('pre_publish:\x20arbitration\x20neutrality\x20check\x20DEGRADED\x20—\x20the\x20service\x20Permission\x20address\x20is\x20not\x20resolvable\x20'+'from\x20this\x20call\x20(no\x20payload\x20\x27permission\x27,\x20service\x20object\x20not\x20found).\x20The\x20bound\x20arbitrations\x27\x20controller\x20'+'keys\x20are\x20UNVERIFIED:\x20confirm\x20each\x20arbitration\x20Permission\x27s\x20owner/admin\x20set\x20is\x20disjoint\x20from\x20the\x20service\x27s\x20'+'controller\x20keys\x20(same-controller\x20arbitration\x20=\x20the\x20merchant\x20can\x20rule\x20their\x20own\x20disputes)'),{'critical':d,'warnings':f};let k;try{k=await batchQueryObjectsByIds([i,...g],c,!![]);}catch(v){return f['push']('pre_publish:\x20arbitration\x20neutrality\x20check\x20DEGRADED\x20—\x20object\x20query\x20failed\x20'+('('+(v instanceof Error?v['message']:String(v))+').\x20Verify\x20the\x20arbitration\x20Permissions\x27\x20owner/admin\x20sets\x20')+'are\x20disjoint\x20from\x20the\x20service\x27s\x20controller\x20keys\x20before\x20publishing'),{'critical':d,'warnings':f};}const l=w=>(k??[])['find'](x=>{const y=x;return typeof y?.['object']==='string'&&y['object']['toLowerCase']()===w['toLowerCase']()||typeof y?.['query_name']==='string'&&y['query_name']['toLowerCase']()===w['toLowerCase']();}),m=w=>{if(!w)return new Set();const x=w['data']??w,y=new Set();for(const z of[x['builder']])if(typeof z==='string'&&z)y['add'](z['toLowerCase']());for(const A of Array['isArray'](x['admin'])?x['admin']:[])if(typeof A==='string'&&A)y['add'](A['toLowerCase']());return y;},n=l(i),o=m(n);if(o['size']===0x0)return f['push']('pre_publish:\x20arbitration\x20neutrality\x20check\x20DEGRADED\x20—\x20service\x20Permission\x20\x22'+i+'\x22\x20not\x20found\x20or\x20'+'carries\x20no\x20builder/admin\x20list.\x20The\x20bound\x20arbitrations\x27\x20controller\x20keys\x20are\x20UNVERIFIED\x20—\x20confirm\x20disjointness\x20manually'),{'critical':d,'warnings':f};for(const w of g){const x=l(w);if(!x){f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20not\x20found\x20on-chain\x20(or\x20not\x20yet\x20indexed)\x20—\x20its\x20Permission\x20controller\x20'+'keys\x20are\x20UNVERIFIED.\x20Confirm\x20the\x20arbitration\x20Permission\x27s\x20builder/admin\x20set\x20is\x20disjoint\x20from\x20the\x20service\x27s\x20'+'controller\x20keys\x20(same-controller\x20arbitration\x20=\x20the\x20merchant\x20can\x20rule\x20their\x20own\x20disputes)');continue;}const y=x['data']??x;y['bPaused']===!![]&&d['push']('pre_publish:\x20R-ARB-PAUSED\x20—\x20arbitration\x20\x22'+w+'\x22\x20is\x20PAUSED.\x20Every\x20dispute\x20against\x20this\x20service\x20'+'will\x20abort\x20(arbitration::E_PAUSED)\x20while\x20the\x20arbitration\x20stays\x20paused\x20—\x20case_open,\x20voting\x20and\x20'+'conclusion\x20are\x20all\x20dead-locked.\x20New\x20Arbitrations\x20are\x20created\x20paused\x20by\x20default;\x20the\x20arbitration\x20'+('owner\x20must\x20un-pause\x20it\x20BEFORE\x20this\x20publish:\x20{operation_type:\x22arbitration\x22,\x20data:{object:\x22'+w+'\x22,\x20pause:false}}'));const z=typeof y['permission']==='string'?y['permission']:undefined;if(!z){f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20exposes\x20no\x20permission\x20address\x20—\x20controller-key\x20disjointness\x20UNVERIFIED');continue;}if(z['toLowerCase']()===i['toLowerCase']()){d['push']('pre_publish:\x20R-ARB-SAME-CONTROLLER\x20—\x20arbitration\x20\x22'+w+'\x22\x20shares\x20the\x20service\x27s\x20Permission\x20object\x20'+('('+i+').\x20The\x20chain\x20aborts\x20this\x20binding\x20(E_ARBITRATION_PERMISSION_CONFLICT);\x20bind\x20an\x20')+'arbitration\x20with\x20its\x20own\x20independent\x20Permission');continue;}if(!l(z))try{const D=await batchQueryObjectsByIds([z],c,!![]);k=[...k??[],...D??[]];}catch(E){f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20Permission\x20\x22'+z+'\x22\x20could\x20not\x20be\x20queried\x20'+('('+(E instanceof Error?E['message']:String(E))+')\x20—\x20controller-key\x20disjointness\x20UNVERIFIED'));continue;}const A=m(l(z));if(A['size']===0x0){f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20Permission\x20\x22'+z+'\x22\x20not\x20found\x20or\x20carries\x20no\x20builder/admin\x20list\x20—\x20'+'controller-key\x20disjointness\x20UNVERIFIED');continue;}const B=[...o]['filter'](F=>A['has'](F));B['length']>0x0&&d['push']('pre_publish:\x20R-ARB-SAME-CONTROLLER\x20—\x20the\x20arbitration\x20\x22'+w+'\x22\x20is\x20NOT\x20controller-independent:\x20'+('EOA(s)\x20'+B['join'](',\x20')+'\x20appear\x20in\x20BOTH\x20the\x20service\x20Permission\x20('+i+')\x20and\x20the\x20')+('arbitration\x20Permission\x20('+z+')\x20builder/admin\x20sets.\x20Object\x20isolation\x20is\x20enforced\x20on-chain\x20')+'(different\x20Permission\x20objects),\x20but\x20controller\x20isolation\x20is\x20NOT:\x20a\x20shared\x20EOA\x20can\x20confirm,\x20vote\x20in,\x20'+'and\x20rule\x20the\x20service\x27s\x20disputes\x20—\x20arbitration\x20neutrality\x20collapses\x20(live\x20mainnet:\x20the\x20reused\x20arb\x27s\x20'+'Permission\x20builder\x20AND\x20sole\x20admin\x20was\x20the\x20merchant).\x20Bind\x20an\x20arbitration\x20whose\x20Permission\x20is\x20controlled\x20'+'by\x20physically\x20independent\x20keys');const C=arbitrationVotingLockDetail(y['voting_guard']);C!==null&&d['push']('pre_publish:\x20R-ARB-VOTE-LOCK\x20—\x20arbitration\x20\x22'+w+'\x22:\x20'+C);}return{'critical':d,'warnings':f};}async function runPreBuyChecks(a,b){const c=[],d=[],f=harnessDataView(b)??{},g=b?.['env']?.['network'],h=f['object'];let i;try{i=await batchQueryObjectsByIds([h],g,!![]);}catch(n){return d['push']('pre_buy:\x20allocator\x20screening\x20DEGRADED\x20—\x20could\x20not\x20query\x20service\x20\x22'+h+'\x22\x20'+('('+(n instanceof Error?n['message']:String(n))+');\x20the\x20purchase\x20was\x20NOT\x20screened.\x20')+'Verify\x20the\x20service\x27s\x20order_allocators\x20yourself\x20(query_toolkit\x20query_type=\x27service_panorama\x27)\x20before\x20trusting\x20this\x20buy'),{'critical':c,'warnings':d};}const j=(i??[])['find'](p=>p?.['type']==='Service');if(!j)return d['push']('pre_buy:\x20allocator\x20screening\x20DEGRADED\x20—\x20service\x20\x22'+h+'\x22\x20not\x20found\x20on-chain\x20(or\x20not\x20yet\x20indexed);\x20'+'the\x20purchase\x20was\x20NOT\x20screened.\x20Verify\x20the\x20address/network\x20and\x20the\x20service\x27s\x20order_allocators\x20before\x20trusting\x20this\x20buy'),{'critical':c,'warnings':d};const k=j['data']??j;k['bPublished']!==!![]&&c['push']('pre_buy:\x20service\x20\x22'+h+'\x22\x20is\x20NOT\x20published\x20—\x20the\x20buy\x20aborts\x20on-chain\x20(E_NOT_PUBLISHED)');k['bPaused']===!![]&&c['push']('pre_buy:\x20service\x20\x22'+h+'\x22\x20is\x20paused\x20—\x20the\x20buy\x20aborts\x20on-chain\x20(E_PAUSED)');const l=k['order_allocators'];if(l==null)c['push']('pre_buy:\x20service\x20\x22'+h+'\x22\x20has\x20NO\x20order_allocators\x20—\x20the\x20payment\x20step\x20aborts\x20(no\x20distribution\x20plan).\x20'+'Funds\x20committed\x20to\x20this\x20service\x20would\x20have\x20NO\x20distribution\x20path\x20(the\x20fund-lock\x20incident\x20class).\x20'+'Do\x20not\x20buy\x20until\x20the\x20merchant\x20configures\x20an\x20allocator\x20plan');else{if(!Array['isArray'](l['allocators'])||l['allocators']['length']===0x0)c['push']('pre_buy:\x20service\x20\x22'+h+'\x22\x20order_allocators\x20is\x20EMPTY\x20—\x20the\x20payment\x20step\x20aborts\x20(EALLOCATORS_EMPTY).\x20'+'Do\x20not\x20buy\x20until\x20the\x20merchant\x20configures\x20at\x20least\x20one\x20allocator');else{const o=f['buy'],p=Array['isArray'](o?.['items'])?o['items']:[],q=Array['isArray'](k['sales'])?k['sales']:[];let r=0x0,s=p['length']>0x0;const t=[];for(const w of p){const x=w,y=numericBalance(x?.['quantity']),z=q['find'](B=>B?.['name']===x?.['name']),A=numericBalance(z?.['price']);if(y===undefined||A===undefined){s=![],t['push'](typeof x?.['name']==='string'?x['name']:JSON['stringify'](x?.['name']));continue;}r+=A*y;}const u=numericBalance(l['threshold']);if(!s)d['push']('pre_buy:\x20could\x20not\x20price\x20'+t['length']+'\x20cart\x20item(s)\x20['+t['join'](',\x20')+']\x20against\x20the\x20service\x27s\x20on-chain\x20sales\x20—\x20'+'allocator-threshold\x20coverage\x20UNVERIFIED\x20for\x20this\x20cart\x20(unknown\x20items\x20also\x20abort\x20the\x20quote\x20step).\x20'+'Confirm\x20every\x20item\x20name\x20matches\x20a\x20current\x20sale\x20entry');else u!==undefined&&u>r&&c['push']('pre_buy:\x20allocator\x20threshold\x20'+u+'\x20exceeds\x20this\x20cart\x27s\x20total\x20'+r+'\x20(Σ\x20price×quantity\x20over\x20the\x20on-chain\x20sales)\x20—\x20'+'the\x20payment\x20step\x20aborts\x20(EINSUFFICIENT_BALANCE):\x20pool\x20creation\x20requires\x20amount\x20>=\x20threshold.\x20'+'The\x20merchant\x20must\x20lower\x20the\x20threshold\x20(new\x20service\x20—\x20threshold\x20is\x20frozen\x20at\x20publish)\x20or\x20the\x20cart\x20must\x20grow');o?.['discount']!=null&&s&&u!==undefined&&u<=r&&d['push']('pre_buy:\x20a\x20discount\x20is\x20applied\x20—\x20the\x20discounted\x20total\x20may\x20fall\x20below\x20the\x20list\x20total\x20'+r+'\x20used\x20here;\x20'+('if\x20it\x20lands\x20under\x20the\x20allocator\x20threshold\x20'+u+',\x20the\x20payment\x20step\x20aborts\x20(EINSUFFICIENT_BALANCE)'));const v=await lintAllocatorGuardSet([l],g,'pre_buy','critical');c['push'](...v['critical']),d['push'](...v['warnings']);}}const m=typeof k['machine']==='string'?k['machine']['trim']():'';if(m!=='')try{const B=await lintMachineGuardServiceConstants(m,String(j?.['object']??h),g,'pre_buy');c['push'](...B['critical']),d['push'](...B['warnings']);}catch(C){d['push']('pre_buy:\x20guard-constant\x20consistency\x20check\x20failed\x20'+('('+(C instanceof Error?C['message']:String(C))+')\x20—\x20cross-service\x20guard\x20pins\x20UNVERIFIED\x20(mtb-tn-261030\x20P0-3)'));}return{'critical':c,'warnings':d};}export function lintSalesWipBindings(a,b){const c=[],d=[],e=Array['isArray'](a)?a:[];for(const f of e){const g=typeof f?.['wip']==='string'?f['wip']['trim']():'';if(g==='')continue;const h=typeof f?.['wip_hash']==='string'&&f['wip_hash']['trim']()!==''?f['wip_hash']['trim']():undefined,i=getWipVerifyRecord(g);if(i===undefined){c['push']('pre_publish:\x20a\x20sale\x20binds\x20WIP\x20\x22'+g+'\x22\x20that\x20THIS\x20session\x20never\x20verified\x20—\x20BLOCKED\x20(R2-08②,\x20alg26\x20'+'F-A26-03:\x20upload\x20responses\x20are\x20an\x20infra\x20passthrough\x20that\x20echoed\x20another\x20account\x27s\x20file\x20URL,\x20and\x20the\x20'+'chain\x20only\x20checks\x20hash-vs-URL\x20self-consistency\x20at\x20quote).\x20Before\x20publishing,\x20run\x20'+('wip_file\x20type=\x22verify\x22\x20wipFilePath=\x22'+g+'\x22')+(h!==undefined?'\x20hash_equal=\x22'+h+'\x22':'')+'\x20and\x20retry\x20only\x20on\x20a\x20valid\x20result.\x20(An\x20MCP\x20restart\x20clears\x20the\x20session\x20ledger\x20—\x20re-run\x20the\x20verify.)');continue;}if(h!==undefined){if(i['hash_equal']!==undefined&&i['hash_equal']!==h)c['push']('pre_publish:\x20a\x20sale\x20binds\x20wip_hash\x20\x22'+h+'\x22\x20but\x20the\x20WIP\x20\x22'+g+'\x22\x20was\x20equality-verified\x20'+('against\x20\x22'+i['hash_equal']+'\x22\x20—\x20hash\x20MISMATCH,\x20BLOCKED\x20(R2-08②).\x20Re-verify\x20with\x20')+('hash_equal=\x22'+h+'\x22\x20or\x20correct\x20the\x20sale\x27s\x20wip_hash.'));else i['hash_equal']===undefined&&d['push']('pre_publish:\x20sale\x20binds\x20wip_hash\x20on\x20WIP\x20\x22'+g+'\x22\x20that\x20was\x20only\x20integrity-verified\x20(no\x20'+'hash_equal)\x20—\x20run\x20wip_file\x20verify\x20with\x20hash_equal=\x22'+h+'\x22\x20to\x20close\x20the\x20gap\x20'+'(the\x20chain\x20re-checks\x20at\x20quote,\x20E_WIP_HASH_NOT_MATCH;\x20a\x20mismatched\x20bind\x20surfaces\x20as\x20a\x20buyer-side\x20abort)');}const j=i['upload_account'];j!==undefined&&b!==undefined&&j!==b&&!i['signature_verified']&&c['push']('pre_publish:\x20WIP\x20\x22'+g+'\x22\x20was\x20uploaded\x20by\x20account\x20\x22'+j+'\x22\x20but\x20is\x20bound/published\x20by\x20'+('\x22'+b+'\x22\x20without\x20an\x20owner\x20signature\x20—\x20BLOCKED\x20(R2-08③).\x20Either\x20upload\x20with\x20\x22'+b+'\x22,\x20')+'or\x20re-verify\x20with\x20requireSignature=true\x20(the\x20file\x27s\x20owner\x20signature\x20IS\x20the\x20explicit\x20delegate\x20proof)\x20and\x20retry.');}return{'critical':c,'warnings':d};}export async function runPrePublishChecks(a,b){const c=[],d=[],g=extractOperationType(a,b),h=harnessDataView(b)??{},i=b?.['env']?.['network'];if(g==='machine'){const j=h['node'];let l=Array['isArray'](j)?j:Array['isArray'](j?.['nodes'])?j['nodes']:[];if(l['length']===0x0&&typeof h['object']==='string'){const m=h['object'];try{const n=await fetchMachineNodes(m,i,!![]);n['length']>0x0&&(l=n,d['push']('pre_publish:\x20machine\x20\x22'+m+'\x22\x20published\x20by\x20reference\x20—\x20audited\x20against\x20its\x20'+(n['length']+'\x20on-chain\x20node(s)\x20(effective-state\x20gate)')));}catch(o){c['push']('pre_publish:\x20could\x20not\x20fetch\x20on-chain\x20nodes\x20for\x20machine\x20\x22'+m+'\x22\x20'+('('+(o instanceof Error?o['message']:String(o))+')\x20—\x20topology\x20UNVERIFIABLE;\x20publish\x20blocked.\x20')+'Retry\x20when\x20the\x20network\x20is\x20reachable;\x20every\x20guarded\x20forward\x20must\x20carry\x20the\x20protocol\x20slot\x20254\x20'+'submission\x20row\x20and\x20topology\x20is\x20immutable\x20after\x20publish\x20(IMMUT-001)');}}if(l['length']>0x0){const p=h['reentry_kind'],q=p==='none'||p==='review-loop'||p==='paid-cycle'?p:undefined;p!==undefined&&q===undefined&&d['push']('pre_publish:\x20ignored\x20invalid\x20reentry_kind\x20\x22'+String(p)+'\x22\x20—\x20'+'valid\x20values:\x20none\x20(default,\x20word-stem\x20classification)\x20/\x20review-loop\x20(same-order\x20no-charge\x20revisits)\x20/\x20paid-cycle\x20(per-revisit\x20fee,\x20fund\x20gate\x20required)');const s=auditMachineNodes(l,q);c['push'](...s['critical']),d['push'](...s['warnings']);const t=await fetchForwardGuardIndex(l,i),u=lintForwardGuardsTaskBinding(t);c['push'](...u['critical']),d['push'](...u['warnings']);const v=lintForwardReviewLocks(l,t);c['push'](...v['critical']),d['push'](...v['warnings']);const w=lintForwardGuardsTimeProfile(t);c['push'](...w['critical']),d['push'](...w['warnings']);const x=lintForwardGuardServiceConstants(t,undefined,'pre_publish');c['push'](...x['critical']),d['push'](...x['warnings']);try{const y=lintMachineTaskBindingPreflight({'refs':[...t['refs']['values']()],'resolved':[...t['refs']]['flatMap'](([z,A])=>{const B=t['defs']['get'](z);if(B===undefined)return[];const C=B['data'],D=C!==null&&typeof C==='object'?C:B;return[{'ref':A,'table':D['table']}];}),'readError':t['error']});for(const z of y)d['push'](formatTaskBindingAdvisory(z));}catch{}}else typeof h['object']!=='string'&&d['push']('pre_publish:\x20publishing\x20machine\x20without\x20inline\x20node\x20data\x20—\x20topology\x20not\x20verifiable\x20in\x20this\x20call;\x20'+'verify\x20nodes/pairs/forwards\x20via\x20machineNode2file\x20BEFORE\x20publish\x20(immutable\x20after\x20publish,\x20IMMUT-001)');d['push']('pre_publish:\x20machine\x20nodes/pairs/forwards\x20become\x20immutable\x20after\x20publish\x20(IMMUT-001)');}if(g==='service'){d['push']('pre_publish:\x20service\x20machine/order_allocators/arbitrations\x20become\x20immutable\x20after\x20publish\x20(IMMUT-002);\x20sales\x20remains\x20modifiable');h['machine']===undefined&&d['push']('pre_publish:\x20\x27machine\x27\x20absent\x20from\x20THIS\x20call\x20(the\x20store\x20may\x20already\x20be\x20bound\x20—\x20verify\x20before\x20assuming\x20otherwise):\x20'+'query_toolkit\x20query_type=\x27service_panorama\x27\x20and\x20read\x20service.machine;\x20an\x20unset\x20machine\x20cannot\x20process\x20orders\x20and\x20CANNOT\x20be\x20fixed\x20after\x20publish\x20(IMMUT-002)');const A=h['order_allocators'];if(A!=null&&(!Array['isArray'](A['allocators'])||A['allocators']['length']===0x0))c['push']('pre_publish:\x20order_allocators\x20is\x20EMPTY\x20in\x20THIS\x20publish\x20call\x20—\x20the\x20publish\x20aborts\x20on-chain\x20'+'(\x22No\x20allocator\x20configured\x22).\x20Declare\x20at\x20least\x20one\x20allocator\x20row\x20in\x20the\x20payload\x20'+'(order_allocators\x20is\x20immutable\x20after\x20publish,\x20IMMUT-002)');else{if(A===undefined){const K=h['object'],L=typeof K==='string'?K['trim']():'';let M=![];if(L!=='')try{const N=await batchQueryObjectsByRef([L],i,!![]),O=N['get'](L['toLowerCase']()),P=O?.['data']??O;if(O!=null&&P!=null){M=!![];const Q=P['order_allocators'],R=Array['isArray'](Q?.['allocators'])?Q['allocators']['length']:0x0;R===0x0?c['push']('pre_publish:\x20service\x20\x22'+L+'\x22\x20has\x20NO\x20order_allocators\x20on\x20chain\x20and\x20none\x20in\x20THIS\x20call\x20—\x20'+'the\x20publish\x20aborts\x20on-chain\x20(\x22No\x20allocator\x20configured\x22).\x20Declare\x20at\x20least\x20one\x20allocator\x20row\x20in\x20the\x20publish\x20payload\x20'+'(order_allocators\x20is\x20immutable\x20after\x20publish,\x20IMMUT-002)'):d['push']('pre_publish:\x20\x27order_allocators\x27\x20absent\x20from\x20THIS\x20call\x20—\x20chain\x20state\x20verified:\x20'+R+'\x20allocator\x20row(s)\x20already\x20configured');}}catch{}!M&&d['push']('pre_publish:\x20\x27order_allocators\x27\x20absent\x20from\x20THIS\x20call\x20(the\x20store\x20may\x20already\x20be\x20configured\x20—\x20verify\x20before\x20assuming\x20otherwise):\x20'+'query_toolkit\x20query_type=\x27service_panorama\x27\x20and\x20read\x20order_allocators;\x20immutable\x20after\x20publish,\x20and\x20a\x20NEVER-configured\x20service\x20aborts\x20the\x20publish\x20on-chain\x20'+'(\x22No\x20allocator\x20configured\x22)\x20(IMMUT-002)');}}if(h['publish']===!![])try{const S=h,T=S['object'],U=T??{};let V=typeof S['machine']==='string'?S['machine']:typeof S['machine']?.['object']==='string'?S['machine']['object']:typeof U['machine']==='string'?U['machine']:'',W=typeof U['permission']==='string'?U['permission']:'';const X=typeof T==='string'?T['trim']():'';if((!V||!W)&&X!==''){const Y=await batchQueryObjectsByRef([X],i,!![]),Z=Y['get'](X['toLowerCase']()),a0=Z?.['data']??Z;if(a0!=null){if(!V&&typeof a0['machine']==='string')V=a0['machine'];if(!W&&typeof a0['permission']==='string')W=a0['permission'];}}if(V!==''&&W!==''){const a1=await fetchMachineNodes(V,i,!![]),a2=collectPermissionIndexes(a1),a3=a2['requiredIndexes']['filter'](a4=>a4>=0x3e8);if(a3['length']>0x0){let a4=W;if(!a4['startsWith']('0x')){const a5=await LocalMark['Instance']()['get'](a4)['catch'](()=>undefined);if(a5?.['address'])a4=a5['address'];}if(a4['startsWith']('0x')){const a6=await query_objects({'objects':[a4],'network':i}),a7=a6?.['objects']?.[0x0];if(a7){const a8={'address':a4,'entity_count':a7['entity_count'],'perm_remark':a7['perm_remark'],'owner':a7['owner']??a7['builder'],'admin':a7['admin']};try{a8['entityPermissions']=await fetchEntityPermissions(a4,i);}catch{}const a9=checkPermissionAuthorization(a3,a8);if(!a9['allAuthorized'])d['push']('pre_publish:\x20bound\x20Machine\x20\x22'+V+'\x22\x20forwards\x20use\x20permission\x20index(es)\x20['+a9['missingIndexes']['join'](',\x20')+']\x20'+('with\x20NO\x20entity\x20grant\x20in\x20the\x20bound\x20Permission\x20\x22'+a4+'\x22\x20—\x20every\x20rail\x20on\x20those\x20indexes\x20aborts\x20(code\x205)\x20until\x20granted\x20')+'(gfm31\x20P05:\x20a\x20store\x20shipped\x20with\x201000/1002\x20ungranted;\x20both\x20edges\x20aborted\x20for\x203.5\x20minutes\x20after\x20publish).\x20'+('Grant\x20NOW\x20via\x20{\x20operation_type:\x27permission\x27,\x20data:'+permissionGrantPayloadJson(a4,a9['missingIndexes'][0x0],['<address>'])+'\x20}\x20')+'(one\x20call\x20per\x20missing\x20index;\x20the\x20op\x20lives\x20under\x20data.table,\x20entity\x20is\x20{entities:[{name_or_address}]})\x20—\x20'+'grantable\x20any\x20time\x20(Permission\x20is\x20NOT\x20frozen\x20by\x20publish,\x20L3),\x20but\x20grant\x20BEFORE\x20first\x20orders\x20to\x20keep\x20the\x20build\x20one-pass.');else!a9['allVerified']&&d['push']('pre_publish:\x20could\x20NOT\x20verify\x20grants\x20for\x20permission\x20index(es)\x20['+a3['join'](',\x20')+']\x20on\x20Permission\x20\x22'+a4+'\x22\x20'+'(PermissionPerm\x20entity\x20table\x20unreadable)\x20—\x20they\x20are\x20NOT\x20confirmed\x20authorized.\x20Verify\x20via\x20onchain_table\x20listing\x20the\x20Permission\x27s\x20'+'perm\x20entries\x20before\x20first\x20orders\x20(gfm31\x20P05\x20dead-rail\x20window).');}}}}}catch{}if(h['publish']===!![])try{const aa=h,ab=aa['object']??{};let ac=typeof aa['machine']==='string'&&aa['machine']['trim']()!==''?aa['machine']['trim']():typeof aa['machine']?.['object']==='string'?aa['machine']['object']:typeof ab['machine']==='string'&&ab['machine']!==''?ab['machine']:'';const ad=typeof aa['object']==='string'?aa['object']['trim']():'';let ae=ad;if(ae!==''){const af=await batchQueryObjectsByRef([ae],i,!![]),ag=af['get'](ae['toLowerCase']()),ah=ag?.['data']??ag;if(ag?.['object'])ae=String(ag['object']);ac===''&&typeof ah?.['machine']==='string'&&(ac=ah['machine']);}if(ac!==''&&ae['startsWith']('0x')){const ai=await lintMachineGuardServiceConstants(ac,ae,i,'pre_publish');c['push'](...ai['critical']),d['push'](...ai['warnings']);}}catch(aj){d['push']('pre_publish:\x20guard-constant\x20consistency\x20check\x20failed\x20'+('('+(aj instanceof Error?aj['message']:String(aj))+')\x20—\x20cross-service\x20guard\x20pins\x20UNVERIFIED\x20(mtb-tn-261030\x20P0-3)'));}const B=h,C=numericBalance(B['compensation_fund_add']?.['balance']);if(C!==undefined&&C>0x0){const ak=B['sales'],al=(Array['isArray'](ak?.['sales'])?ak['sales']:[])['map'](am=>numericBalance(am?.['price']?.['balance']))['filter'](am=>am!==undefined);if(al['length']>0x0){const am=al['reduce']((ao,ap)=>ao+ap,0x0),an=am*0x3;if(an>0x0){const ao=C/an,ap='fund='+C+',\x20highest-SKU\x20single\x20order=Σ(price×1)='+am+'\x20(quantity\x20set\x20at\x20buy\x20time),\x20'+('award\x20cap=3×order='+an+'\x20(MAX_INDEMNITY_MULTIPLE),\x20coverage='+ao['toFixed'](0x2));ao<0x1&&d['push']('pre_publish:\x20compensation-fund\x20coverage\x20below\x20the\x20award\x20ceiling\x20—\x20'+ap+'\x20<\x201.\x20'+'Disclosure\x20only\x20(b6-11):\x20this\x20does\x20NOT\x20block\x20publish.\x20Per-order\x20coverage\x20is\x20enforced\x20at\x20'+'BUY\x20time\x20—\x20orders\x20are\x20rejected\x20while\x20the\x20fund\x20cannot\x20cover\x203x\x20that\x20order,\x20so\x20top\x20up\x20via\x20'+'compensation_fund_add\x20as\x20your\x20catalog\x27s\x20order\x20sizes\x20require\x20(no\x20cross-SKU\x20subsidy).\x20'+'Awards\x20beyond\x20the\x20fund\x20abort\x20the\x20claim\x20(code\x2027)\x20—\x20settlement\x20is\x20all-or-nothing,\x20nothing\x20partial\x20is\x20paid;\x20top\x20up\x20and\x20the\x20winner\x20retries.');}}else d['push']('pre_publish:\x20compensation_fund_add\x20present\x20but\x20\x27sales\x27\x20absent\x20from\x20THIS\x20call\x20(sales\x20may\x20already\x20be\x20configured\x20—\x20verify,\x20do\x20not\x20assume):\x20'+'the\x20fund\x20should\x20cover\x203×\x20each\x20order\x20you\x20want\x20to\x20sell\x20(MAX_INDEMNITY_MULTIPLE=3;\x20enforced\x20per-order\x20at\x20buy\x20time).\x20'+'query_toolkit\x20query_type=\x27service_panorama\x27\x20to\x20read\x20the\x20current\x20sales\x20prices,\x20then\x20re-check\x20coverage.');}const D=B['sales']?.['sales'];if(D!==undefined){const aq=typeof B['account']==='string'&&B['account']['trim']()!==''?B['account']['trim']():undefined,ar=lintSalesWipBindings(D,aq);c['push'](...ar['critical']),d['push'](...ar['warnings']);}const E=await lintAllocatorGuards(B,i);c['push'](...E['critical']),d['push'](...E['warnings']);const F=B['order_allocators']!==undefined||B['order_allocators_append']!==undefined,G=B['publish']===!![]&&typeof B['object']==='string'&&B['object']['trim']()!=='';if(F||G){const as=B['machine'],at=typeof as==='string'&&as['trim']()!=='';if(at||G){const au=await lintServiceEscrowExitCoverage(at?as:undefined,[B['order_allocators'],B['order_allocators_append']],i,G?B['object']:undefined);c['push'](...au['critical']),d['push'](...au['warnings']);}else d['push']('pre_publish:\x20\x27machine\x27\x20absent\x20from\x20THIS\x20call\x20—\x20escrow-exit\x20terminal\x20coverage\x20not\x20auditable\x20here;\x20'+'if\x20the\x20machine\x20is\x20already\x20bound,\x20every\x20machine\x20terminal\x20needs\x20an\x20allocator\x20rail\x20(immutable\x20after\x20publish,\x20IMMUT-002)');}const H=await checkArbitrationNeutrality(B,i);c['push'](...H['critical']),d['push'](...H['warnings']);if(B['arbitrations']!==undefined||B['arbitrations_append']!==undefined){const av=await lintAllocatorRailPairing(B,i);c['push'](...av['critical']),d['push'](...av['warnings']);}const I=await lintGuardBindingSemantics(B,extractOperationType(a,b),i);c['push'](...I['critical']),d['push'](...I['warnings']);const J=new Set(rewardRefsOf(B)['map'](aw=>aw['toLowerCase']()));if(J['size']===0x0&&B['publish']===!![]&&typeof B['object']==='string')try{const aw=await batchQueryObjectsByIds([B['object']],i,!![]),ax=(aw??[])[0x0],ay=ax?.['data']??ax,az=Array['isArray'](ay?.['rewards'])?ay['rewards']:[];for(const aA of az){if(typeof aA==='string'&&aA['trim']()!=='')J['add'](aA['toLowerCase']());}}catch(aB){d['push']('pre_publish:\x20reward-funding\x20gate\x20skipped\x20—\x20could\x20not\x20read\x20the\x20service\x27s\x20on-chain\x20rewards\x20'+('('+(aB instanceof Error?aB['message']:String(aB))+');\x20verify\x20every\x20attached\x20Reward\x20pool\x20is\x20funded\x20')+'up\x20to\x20expected_orders\x20x\x20per-claim\x20amount\x20BEFORE\x20publish');}if(J['size']>0x0)try{const aC=await batchQueryObjectsByIds([...J['values']()],i,!![]),aD=new Map();for(const aE of aC??[]){const aF=aE;if(aF?.['type']!=='Reward')continue;for(const aG of[aF['query_name'],aF['object']]){if(typeof aG==='string'&&aG!=='')aD['set'](aG['toLowerCase'](),aF);}}for(const aH of J){const aI=aD['get'](aH);if(!aI){d['push']('pre_publish:\x20attached\x20reward\x20\x22'+aH+'\x22\x20not\x20found\x20on-chain\x20—\x20funding\x20check\x20skipped\x20for\x20it;\x20'+'an\x20unfunded\x20pool\x20publishes\x20silently\x20and\x20claims\x20abort\x20when\x20it\x20drains');continue;}const aJ=serviceRewardsUnfundedDetail(aI);aJ&&c['push']('pre_publish:\x20OFN-C\x20reward-pool\x20funding\x20—\x20reward\x20\x22'+aH+'\x22:\x20'+aJ);}}catch(aK){d['push']('pre_publish:\x20reward-funding\x20gate\x20skipped\x20—\x20could\x20not\x20query\x20reward\x20objects\x20'+('('+(aK instanceof Error?aK['message']:String(aK))+');\x20verify\x20every\x20attached\x20Reward\x20pool\x20is\x20funded\x20')+'up\x20to\x20expected_orders\x20x\x20per-claim\x20amount\x20BEFORE\x20publish');}}return{'critical':c,'warnings':d};}function readHarnessOverrideNote(b){if(typeof b!=='object'||b===null)return undefined;const c=b,d=c['harness_override_note'];if(typeof d!=='string')return undefined;const e=d['trim']();if(!e)return undefined;return delete c['harness_override_note'],e;}function preBuyRecoveryHint(a){const b=a['map']((d,e)=>'leg\x20'+(e+0x1)+':\x20'+d+'\x0a'+'\x20\x20appeal:\x20resolve\x20THIS\x20leg\x20only\x20(see\x20the\x20finding)\x20—\x20or,\x20after\x20verifying\x20it\x20is\x20safe\x20for\x20this\x20purchase,\x20'+('resend\x20the\x20buy\x20with\x20a\x20top-level\x20harness_override_note\x20explaining\x20why\x20leg\x20'+(e+0x1)+'\x20is\x20acceptable.'))['join']('\x0a');return'Do\x20NOT\x20retry\x20unchanged\x20against\x20the\x20current\x20service\x20state.\x20One\x20entry\x20per\x20blocking\x20finding:\x0a'+b+'\x0aConfirm\x20each\x20leg\x20against\x20the\x20service\x27s\x20effective\x20allocator\x20plan\x20(query_toolkit\x20query_type=\x27service_panorama\x27,\x20'+'field\x20order_allocators):\x20the\x20merchant\x20fixes\x20the\x20plan\x20(post-publish\x20append\x20is\x20allowed)\x20or\x20the\x20guard\x20definitions\x20'+'are\x20repaired.\x20A\x20harness_override_note\x20leaves\x20an\x20audit\x20trail\x20but\x20does\x20NOT\x20change\x20on-chain\x20state\x20—\x20a\x20failing\x20'+'payment\x20still\x20burns\x20gas.';}function buildHarnessBlockResult(a,b,c,d,e,f){const g=[...c['map'](i=>'CRITICAL:\x20'+i),...d['map'](i=>'WARN:\x20'+i)]['join']('\x0a'),h='Error:\x20'+b+(g?'\x0a'+g:'')+'\x0aRecovery:\x20'+f;return{'content':[{'type':'text','text':h}],'structuredContent':{'outcome':'failed','result':{'type':'error','error':b+'\x20[gate='+a+']','error_code':e,'retryable':![],'recovery_hint':f},'message':h,'recovery':recover(e,'harness:'+a)}};}function extractCriticalFindingCount(a){const b=a?.['structuredContent'];if(!b)return 0x0;const c=b['semantic'],d=c?.['summary'];if(typeof d?.['critical_count']==='number'&&d['critical_count']>0x0)return d['critical_count'];const e=b['findings']??c?.['findings'];if(Array['isArray'](e))return e['filter'](h=>h?.['severity']==='error')['length'];const f=a?.['content']?.['map'](h=>'text'in h?h['text']:'')['join']('\x0a')??'',g=f['match'](/\[AUDIT ERROR\]/g);return g?g['length']:0x0;}
1
+ import{classifyError,buildDataSemantic}from'../schema/call/semantic.js';import{buildClassifiedErrorResult}from'./shared.js';import{getWipVerifyRecord}from'./wip-verify-ledger.js';import{shouldRunLightHooks,shouldRunHeavyHooks,recordOperationFailure,recordCriticalRisk,recordCriticalOperation,recordSubstepFailure}from'../harness/auto-escalation.js';import{getHarnessTier,setHarnessTier,isEnabled}from'../config/runtime.js';import{getHarness}from'../harness/index.js';import{TASK_BINDING_SLOT,callerIndependentSlots,declaresTaskBindingSlot}from'../knowledge/onchain-constants.js';import{recover}from'../harness/recover.js';import{stableOperationId}from'../harness/operation-id.js';import{recordOperationOutcome}from'../experience/index.js';import{recordIndustrySignal}from'../knowledge/flywheel-loop.js';import{getStageCache}from'../playbooks/service-build/index.js';import{SERVICE_BUILD_STAGES}from'../playbooks/service-build/process.js';import{extractAmount,getAmountThreshold,formatAmount}from'../knowledge/safety-rules.js';import{LocalMark,query_objects,query_serviceContext,ObjectType,objectTypeFromAddress}from'@wowok/wowok';import{arbitrationVotingLockDetail,arbitrationVotingGuardNoIdentityDetail,auditMachineNodes,computeTerminalReachability,formatTaskBindingAdvisory,guardTimeProfileDetail,lintMachineTaskBindingPreflight,lintReviewLockedTerminals,lintTaskBindingAdvisories,rewardRefsOf,serviceRewardsUnfundedDetail}from'../knowledge/audit-rules.js';import{lintGuard}from'../knowledge/guard-lint.js';import{parseGuardNodeGates}from'../knowledge/guard-node-gates.js';import{batchQueryObjectsByIds,batchQueryObjectsByRef,fetchMachineNodes}from'../graph/onchain/sdk-batch.js';import{collectPermissionIndexes,checkPermissionAuthorization,permissionGrantPayloadJson}from'../schema/utils/permission-machine-check.js';import{fetchEntityPermissions}from'../playbooks/service-build/participation-radar.js';import{verifyAllocatorRails}from'../knowledge/allocator-rail-verifier.js';import{auditGuardRelies,verifyGuardBinding}from'../knowledge/guard-binding-verifier.js';function stageIndexOf(a){const b=SERVICE_BUILD_STAGES['indexOf'](a);return b>=0x0?b:0x0;}export function withTimeout(a,b=0x7530,c='operation'){let d;return Promise['race']([a['finally'](()=>{if(d)clearTimeout(d);}),new Promise((e,f)=>{d=setTimeout(()=>{let g='';if(c['includes']('messenger'))g='\x20This\x20is\x20a\x20messenger\x20network\x20operation.\x20Possible\x20causes:\x20'+'(1)\x20messenger\x20server\x20(https://messenger.wowok.net)\x20unreachable,\x20'+'(2)\x20no\x20messenger-enabled\x20account\x20configured\x20(use\x20account_operation\x20to\x20set\x20messenger\x20name),\x20'+'(3)\x20network\x20connectivity\x20issue.\x20'+'Ensure\x20you\x20have\x20a\x20messenger-enabled\x20account\x20and\x20the\x20server\x20is\x20reachable.';else(c['includes']('onchain')||c['includes']('account_operation')||c['includes']('bridge')||c['includes']('workflow')||c['includes']('keeper')||c['includes']('wowok'))&&(g='\x20This\x20tool\x20may\x20submit\x20an\x20ON-CHAIN\x20transaction.\x20The\x20transaction\x20was\x20NOT\x20cancelled\x20'+'by\x20this\x20timeout\x20—\x20it\x20may\x20already\x20be\x20submitted\x20and\x20still\x20finalize\x20on-chain.\x20'+'DO\x20NOT\x20blindly\x20retry\x20(risk\x20of\x20duplicate\x20operations).\x20First\x20verify:\x20'+'(1)\x20if\x20the\x20error\x20above\x20carries\x20a\x20tx\x20digest,\x20check\x20it\x20via\x20query_toolkit\x20'+'(query_type=\x27onchain_transaction\x27);\x20(2)\x20otherwise\x20verify\x20via\x20query_toolkit\x20'+'onchain_events\x20(or\x20the\x20account\x27s\x20recent\x20transactions).\x20Do\x20NOT\x20rely\x20on\x20an\x20'+'onchain_objects\x20read\x20alone:\x20it\x20may\x20serve\x20a\x20pre-transaction\x20cached\x20snapshot,\x20'+'so\x20an\x20unchanged\x20object\x20must\x20never\x20on\x20its\x20own\x20justify\x20a\x20retry.');f(new Error('Operation\x20\x27'+c+'\x27\x20timed\x20out\x20after\x20'+b+'ms.'+g));},b);})]);}export function wrapHandlerWithErrorShape(a,b,c,d,e){return async(f,g)=>{try{return await withTimeout(a(f,g),b,c);}catch(h){let i=h instanceof Error?h['message']:String(h);if(e&&i['includes']('timed\x20out\x20after\x20'+b+'ms'))try{const j=await e(f);if(j){i=i+'\x0a'+j;if(h instanceof Error)h['message']=i;}}catch{}if(d){const k=classifyError(i,h),l={'operation_type':c,'data':f},m=d(i,k,l);return{'content':[{'type':'text','text':'Error:\x20'+i}],'structuredContent':m};}throw h;}};}export const statusErrorShape=(a,b,c)=>({'result':buildClassifiedErrorResult({'status':'error'},a,b),'semantic':buildDataSemantic(undefined,c,!![],a)});export const operationErrorShape=(a,b,c)=>({'result':buildClassifiedErrorResult({'operation':'error'},a,b),'semantic':buildDataSemantic(undefined,c,!![],a)});export const strictStatusErrorShape=(a,b,c)=>({'result':{'status':'error','error':a}});function checkProjectStage(a,b,c){const d={'analyze_intent':'puzzle','aggregate_risks':'risk','trace_substeps':'substeps'},e=d[a];if(!e)return null;const f=getStageCache(b,c);if(!f){if(a==='analyze_intent')return null;return'project_stage:\x20calling\x20\x27'+a+'\x27\x20before\x20\x27analyze_intent\x27\x20—\x20recommend\x20calling\x20analyze_intent\x20first\x20for\x20project\x20\x27'+b+':'+c+'\x27';}if(stageIndexOf(f['stage'])<stageIndexOf(e)-0x1)return'project_stage:\x20calling\x20\x27'+a+'\x27\x20(stage\x20\x27'+e+'\x27)\x20but\x20project\x20is\x20at\x20stage\x20\x27'+f['stage']+'\x27\x20—\x20recommend\x20completing\x20prior\x20stages\x20first\x20for\x20\x27'+b+':'+c+'\x27';return null;}export function dispatchWithHarness(a,b){return async(d,f)=>{const g=[],h=getHarness(),i=shouldRunLightHooks(),j=shouldRunHeavyHooks(),k=isPublishOperation(b,d),l=isSignOperation(b,d),m=isBuyOperation(b,d),n=getHarnessTier();if(b==='goal_operation'&&i)try{const p=d,q=p?.['action'],r=p?.['project'],s=p?.['version'];if(q&&r&&s){const t=checkProjectStage(q,r,s);t&&g['push'](t);}}catch{}k&&n==='lightweight'&&(setHarnessTier('full'),g['push']('pre_publish:\x20tier\x20forced\x20to\x20full\x20for\x20publish-class\x20operation\x20(GLM5-21\x20§3.3)'));if(k&&n!=='off')try{const u=await runPrePublishChecks(b,d);g['push'](...u['warnings']);if(u['critical']['length']>0x0){for(const v of u['critical']){const x=recordCriticalRisk(v);if(x)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+x['reason']);}return buildHarnessBlockResult('pre_publish','Publish\x20BLOCKED\x20by\x20Harness\x20pre-publish\x20gate\x20(GLM5-21\x20V6):\x20'+(u['critical']['length']+'\x20CRITICAL\x20risk(s)\x20must\x20be\x20resolved\x20before\x20publish.'),u['critical'],u['warnings'],'immutable_violation','Fix\x20the\x20CRITICAL\x20risks\x20listed\x20in\x20the\x20message\x20(e.g.\x20rename\x20dispute\x20nodes\x20per\x20R-M1-11\x20—\x20disputes\x20live\x20off-Machine;\x20bare\x20fund-terminal\x20names\x20only\x20warn\x20but\x20must\x20carry\x20an\x20anchored\x20refund\x20rail),\x20add\x20the\x20entry\x20pair\x20prev_node=\x22\x22,\x20then\x20retry\x20publish.\x20Nodes/pairs/forwards\x20are\x20immutable\x20after\x20publish\x20—\x20verify\x20via\x20machineNode2file\x20first.');}}catch(y){g['push']('pre_publish\x20hook\x20failed:\x20'+(y instanceof Error?y['message']:String(y)));}if(b==='onchain_operations'&&n!=='off'){const z=extractOperationType(b,d);if(!isPublishOperation(b,d)){if(isGuardBindingOperation(b,d))try{const A=z==='gen_passport'?d['guard']!==undefined?{'guard':d['guard']}:harnessDataView(d):harnessDataView(d),B=d?.['env']?.['network'],C=A?await lintGuardBindingSemantics(A,z,B):{'critical':[],'warnings':[]};g['push'](...C['warnings']);if(C['critical']['length']>0x0){for(const D of C['critical']){const E=recordCriticalRisk(D);if(E)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+E['reason']);}return buildHarnessBlockResult('guard_binding','Guard\x20binding\x20BLOCKED\x20by\x20Harness\x20guard-binding\x20gate\x20(ruling\x202026-10-31):\x20'+(C['critical']['length']+'\x20CRITICAL\x20structural\x20finding(s)\x20on\x20the\x20guard(s)\x20')+'this\x20call\x20binds\x20—\x20the\x20defect\x20goes\x20LIVE\x20the\x20moment\x20this\x20tx\x20lands.',C['critical'],C['warnings'],'immutable_violation','Fix\x20the\x20CRITICAL\x20findings\x20(per-host\x20binding\x20semantics\x20—\x20see\x20the\x20finding\x20'+'details\x20and\x20guard-host-context),\x20rebuild\x20the\x20guard\x20(guards\x20are\x20immutable:\x20'+'create\x20a\x20NEW\x20guard,\x20then\x20unbind/rebind\x20on\x20the\x20host),\x20and\x20retry\x20the\x20bind.');}}catch(F){g['push']('guard_binding\x20hook\x20failed:\x20'+(F instanceof Error?F['message']:String(F)));}}}if(l&&j)try{const G=harnessDataView(d),H=G?extractAmount(G,{'excludeConfigAmounts':!![]}):null;if(H!==null){const I=getAmountThreshold();let J=null;try{J=BigInt(H);}catch{J=null;}if(J!==null&&J>I){const K=await skuMatchedOrderTotalExemption(G,d?.['env']?.['network']);if(K)g['push']('pre_sign:\x20order\x20total\x20'+H+'\x20exceeds\x20the\x20full-tier\x20threshold\x20'+I['toString']()+'\x20(smallest\x20unit)\x20—\x20'+'EXEMPTED\x20(M-K11-a):\x20exact\x20catalog\x20match\x20Σ\x20price×quantity\x20against\x20the\x20Service\x27s\x20published\x20sales'+(K['coinType']?',\x20payment\x20coin\x20'+K['coinType']:'')+'.');else return buildHarnessBlockResult('pre_sign','Sign\x20BLOCKED\x20by\x20Harness\x20pre-sign\x20gate\x20(GLM5-21\x20V7):\x20amount\x20'+formatAmount(J)+'\x20WOW\x20exceeds\x20the\x20full-tier\x20threshold\x20'+formatAmount(I)+'\x20WOW.',['amount\x20'+H+'\x20(smallest\x20unit)\x20>\x20threshold\x20'+I['toString']()+'\x20(smallest\x20unit)'],[],'invalid_parameter','Raise\x20WOWOK_AMOUNT_THRESHOLD\x20to\x20match\x20the\x20intended\x20amount,\x20split\x20the\x20transaction,\x20or\x20reset\x20the\x20harness\x20tier\x20to\x20lightweight\x20(config_operation)\x20after\x20explicit\x20user\x20confirmation.\x20'+'M-K11-a:\x20catalog-priced\x20order_new\x20buys\x20(total_pay\x20EXACTLY\x20equal\x20to\x20Σ\x20price×quantity\x20of\x20PUBLISHED\x20sales)\x20are\x20exempted\x20automatically\x20—\x20'+'if\x20this\x20IS\x20a\x20catalog-priced\x20buy,\x20verify\x20every\x20item\x20name/quantity\x20against\x20the\x20service\x27s\x20current\x20sales\x20and\x20retry.');}}}catch(L){g['push']('pre_sign\x20hook\x20failed:\x20'+(L instanceof Error?L['message']:String(L)));}if(m&&n!=='off')try{const M=await runPreBuyChecks(b,d);g['push'](...M['warnings']);if(M['critical']['length']>0x0){const N=readHarnessOverrideNote(d);if(N)g['push']('pre_buy\x20HARNESS\x20OVERRIDE:\x20'+M['critical']['length']+'\x20CRITICAL\x20allocator\x20risk(s)\x20suppressed\x20by\x20explicit\x20override\x20note\x20—\x20'+('findings:\x20'+M['critical']['join']('\x20|\x20')+';\x20note:\x20\x22'+N+'\x22.\x20')+'On-chain\x20state\x20is\x20UNCHANGED\x20—\x20the\x20payment\x20may\x20still\x20fail\x20or\x20lock\x20funds.');else{for(const O of M['critical']){const P=recordCriticalRisk(O);if(P)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+P['reason']);}return buildHarnessBlockResult('pre_buy','Purchase\x20BLOCKED\x20by\x20Harness\x20pre-buy\x20gate:\x20'+M['critical']['length']+'\x20CRITICAL\x20allocator\x20risk(s)\x20—\x20'+'paying\x20into\x20this\x20service\x20as\x20currently\x20configured\x20would\x20fail\x20on-chain\x20or\x20lock\x20funds\x20with\x20no\x20distribution\x20path.',M['critical'],M['warnings'],'state_conflict',preBuyRecoveryHint(M['critical']));}}}catch(Q){g['push']('pre_buy\x20hook\x20failed:\x20'+(Q instanceof Error?Q['message']:String(Q)));}let o;try{o=await a(d,f);}catch(R){const S=R instanceof Error?R['message']:String(R),T=recordOperationFailure(b,S);T&&g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+T['reason']);if(b==='onchain_operations')try{const U=classifyError(S,R);if(!U['retryable']&&U['error_code']!=='unknown'){const V=recordCriticalOperation(b,U['error_code']);if(V)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+V['reason']);}}catch{}throw R;}if(b==='onchain_operations')try{if(classifyOutcome(o)==='failed'){const W=extractErrorCode(o)??'',X=classifyError(W);if(!X['retryable']&&X['error_code']!=='unknown'){const Y=recordCriticalOperation(b,X['error_code']);if(Y)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+Y['reason']);}}}catch{}if(i&&!isOutcomeDiscriminated(o)){const Z=stableOperationId(extractIntent(b,d)??b,extractData(d));try{const a0=classifyOutcome(o);if(a0==='failed'){const a1=extractErrorCode(o)??'',a2=classifyError(a1),a3=h['recover'](a2['error_code'],Z,{'operation_type':b,'data':extractData(d),'retryable':a2['retryable']});g['push']('Harness\x20recover:\x20strategy='+a3['strategy']+('\x20(attempt\x20'+a3['current_attempt']+'/'+a3['max_attempts']+')')+(a3['should_retry']?'\x20—\x20retryable':'\x20—\x20do\x20NOT\x20retry\x20blindly')+(a3['user_prompt']?'\x20—\x20'+a3['user_prompt']:'\x20—\x20'+a3['detail']));}else a0==='success'&&h['resetRecovery'](Z);}catch(a4){g['push']('recover\x20hook\x20failed:\x20'+(a4 instanceof Error?a4['message']:String(a4)));}}if(b==='goal_operation')try{const a5=d?.['action'];if(a5==='trace_substeps'){const a6=extractCriticalFindingCount(o);if(a6>0x0){const a7=recordSubstepFailure(String(a5)+':\x20'+a6+'\x20critical\x20finding(s)');if(a7)g['push']('Harness\x20escalated\x20to\x20full\x20tier:\x20'+a7['reason']);}}}catch{}if(isWriteClassTool(b)&&!SEMANTIC_RECORDED_TOOLS['has'](b))try{const a8=extractOperationType(b,d)??b,a9=extractIntent(b,d)??b,aa=extractData(d)??d,ab=classifyOutcome(o),ac=extractErrorCode(o),ad=isEnabled('experience_layer');if(ad)recordOperationOutcome(a8,aa,a9,ab,ac);else{const ae=extractIndustry(d);ae&&isEnabled('industry_evolution')&&recordIndustrySignal(ae,{'type':a8},{'success':ab==='success','error_code':ac});}}catch(af){g['push']('signal\x20collection\x20failed:\x20'+(af instanceof Error?af['message']:String(af)));}if(g['length']>0x0){if(o?.['structuredContent']){const ag=o['structuredContent'],ah=ag['semantic'];if(ah){const ai=Array['isArray'](ah['warnings'])?ah['warnings']:[];ah['warnings']=[...ai,...g];}else for(const aj of g){console['warn']('[harness]\x20'+aj);}}else for(const ak of g){console['warn']('[harness]\x20'+ak);}}return o;};}function isPublishOperation(a,b){if(a!=='onchain_operations')return![];const c=extractOperationType(a,b);if(c!=='service'&&c!=='machine')return![];const d=harnessDataView(b);return d?.['publish']===!![]||d?.['bPublished']===!![];}function isSignOperation(a,b){if(a==='wip_file'){const c=b?.['operation_type'];return c==='sign';}return a==='onchain_operations';}function isBuyOperation(a,b){if(a!=='onchain_operations')return![];if(extractOperationType(a,b)!=='service')return![];const c=harnessDataView(b),d=c?.['order_new'],e=c?.['buy']!=null||d!=null&&typeof d==='object'&&d['buy']!=null;return e&&c!=null&&typeof c['object']==='string'&&c['object']!=='';}function extractOperationType(a,b){if(!b||typeof b!=='object')return undefined;const c=b;if(a==='onchain_operations')return typeof c['operation_type']==='string'?c['operation_type']:undefined;if(a==='goal_operation'||a==='industry_pack_operation'||a==='strategy_review_operation')return typeof c['action']==='string'?c['action']:undefined;return typeof c['operation_type']==='string'?c['operation_type']:undefined;}function extractIntent(a,b){if(!b||typeof b!=='object')return undefined;const c=b;if((a==='goal_operation'||a==='industry_pack_operation'||a==='strategy_review_operation')&&typeof c['action']==='string')return a+':'+c['action'];const d=c['operation_type'];if(typeof d==='string')return a+':'+d;return a;}function extractData(a){if(!a||typeof a!=='object')return undefined;const b=a,c=b['data'];return c&&typeof c==='object'?c:undefined;}function harnessDataView(a){const b=a&&typeof a==='object'?a:undefined;if(!b)return undefined;const c=extractData(a);if(c)return c;if(typeof b['data']==='string')try{const g=JSON['parse'](b['data']);if(g&&typeof g==='object'&&!Array['isArray'](g))return g;}catch{}const d=typeof b['operation_type']==='string'?b['operation_type']:undefined;if(d===undefined)return undefined;const e=new Set(['operation_type','env','submission','info','idempotency_key']);if(d==='gen_passport')e['add']('guard');if(d==='gen_proof')for(const h of['proof','server_pubkey','server_signature','proof_type','description','item_count','about_address']){e['add'](h);}const f={};for(const [i,j]of Object['entries'](b)){if(!e['has'](i))f[i]=j;}return Object['keys'](f)['length']>0x0?f:undefined;}export function isGuardBindingOperation(a,b){if(a!=='onchain_operations')return![];const c=extractOperationType(a,b);if(c==='gen_passport'){const e=b&&typeof b==='object'?b:undefined;return e?.['guard']!==undefined||extractData(b)?.['guard']!==undefined;}const d=harnessDataView(b);if(!d)return![];return d['buy_guard']!==undefined||d['order_allocators']!==undefined||d['order_allocators_append']!==undefined||d['external_deposit_guard']!==undefined||d['external_withdraw_guard']!==undefined||d['usage_guard']!==undefined||d['voting_guard']!==undefined||d['claim']!==undefined||d['guard_add']!==undefined||d['guards']!==undefined||d['policy']!==undefined||d['guard']!==undefined||d['node']!==undefined;}export async function skuMatchedOrderTotalExemption(a,b){try{if(!a)return undefined;const c=a['order_new']?.['buy'];if(!c||c['discount']!=null)return undefined;const d=c?.['total_pay']?.['balance']??c?.['total_pay'];if(d===null||d===undefined||typeof d==='object')return undefined;const e=Array['isArray'](c['items'])?c['items']:[];if(e['length']===0x0)return undefined;const f=a['object'];if(typeof f!=='string'||f['length']===0x0)return undefined;const g=f['startsWith']('0x')?f:await LocalMark['Instance']()['get_address'](f)??undefined;if(!g)return undefined;const h=await query_serviceContext({'service':g,'network':b}),i=h?.['service'];if(!i)return undefined;if(i['bPublished']!==!![])return undefined;const j=String(i?.['type_raw']??i?.['type']??'')['match'](/<(.+)>$/)?.[0x1],k=Array['isArray'](i['sales'])?i['sales']:[];let l=0x0n;for(const n of e){const o=k['find'](r=>r?.['name']===n?.['name']);if(!o||o?.['suspension']===!![])return undefined;const p=BigInt(String(o?.['price']?.['balance']??o?.['price']??'0')),q=BigInt(String(n?.['quantity']??'1'));if(q<=0x0n)return undefined;l+=p*q;}let m;try{m=BigInt(String(d));}catch{return undefined;}if(m!==l)return undefined;return{'coinType':j};}catch{return undefined;}}const WRITE_CLASS_TOOLS=new Set(['onchain_operations','goal_operation','industry_pack_operation','strategy_review_operation','wip_file','messenger_operation','bridge_operation']),SEMANTIC_RECORDED_TOOLS=new Set(['onchain_operations','bridge_operation']);function isWriteClassTool(a){return WRITE_CLASS_TOOLS['has'](a);}function classifyOutcome(a){if(!a?.['structuredContent'])return'failed';const b=a['structuredContent'];if(b['outcome']==='failed')return'failed';if(b['outcome']==='executed')return'success';if(b['outcome']==='pending_input')return'partial';const c=b['verdict'];if(c&&typeof c==='object'&&c['buildable']===![])return'failed';const d=typeof b['status']==='string'?b['status']:typeof b['result_type']==='string'?b['result_type']:b['result']&&typeof b['result']==='object'&&typeof b['result']['status']==='string'?b['result']['status']:'';if(d==='error'||d==='failed'||d==='schema_mismatch')return'failed';if(d==='partial')return'partial';return'success';}function isOutcomeDiscriminated(a){const b=a?.['structuredContent'];return!!b&&typeof b==='object'&&'outcome'in b;}function extractErrorCode(a){if(!a?.['structuredContent'])return undefined;const b=a['structuredContent'];if(typeof b['error_code']==='string')return b['error_code'];const c=b['error'];if(typeof c==='string')return c;if(c&&typeof c==='object'){const d=c['code'];if(typeof d==='string')return d;}return undefined;}function extractIndustry(a){if(!a||typeof a!=='object')return undefined;const b=a;if(typeof b['industry']==='string')return b['industry'];const c=b['data'];if(c&&typeof c==='object'){const e=c;if(typeof e['industry']==='string')return e['industry'];}return undefined;}function numericBalance(a){if(typeof a==='number'&&Number['isFinite'](a))return a;if(typeof a==='string'&&a['trim']()!==''&&Number['isFinite'](Number(a)))return Number(a);if(typeof a==='bigint')return Number(a);return undefined;}function collectAllocatorGuards(b){const c=new Map();for(const d of b){const e=d?.['allocators'];if(!Array['isArray'](e))continue;for(const f of e){const g=f?.['guard'];if(typeof g!=='string'||g['trim']()==='')continue;const h=g['toLowerCase']();let i=c['get'](h);!i&&(i={'ref':g,'recipients':new Set(),'slots':new Set()},c['set'](h,i));const j=f?.['sharing'];if(!Array['isArray'](j))continue;for(const k of j){const l=k?.['who'];if(!l||typeof l!=='object')continue;if('Signer'in l)i['recipients']['add']('Signer');else{if('Entity'in l)i['recipients']['add']('Entity');else{if('GuardIdentifier'in l){i['recipients']['add']('GuardIdentifier');const m=l['GuardIdentifier'],o=Number(m);if(Number['isFinite'](o))i['slots']['add'](o);}}}}}}return c;}async function lintAllocatorGuardSet(a,b,c,h){const i=[],j=[],l=collectAllocatorGuards(a);if(l['size']===0x0)return{'critical':i,'warnings':j};let m;try{m=await batchQueryObjectsByRef([...l['values']()]['map'](q=>q['ref']),b,!![]);}catch(q){return j['push'](c+':\x20allocator\x20guard\x20lint\x20skipped\x20—\x20could\x20not\x20query\x20guard\x20objects\x20'+('('+(q instanceof Error?q['message']:String(q))+');\x20')+(c==='pre_buy'?'the\x20guard\x20layer\x20of\x20this\x20service\x27s\x20allocator\x20plan\x20is\x20UNVERIFIED\x20—\x20verify\x20the\x20guards\x20yourself\x20before\x20trusting\x20this\x20buy':'run\x20guard\x20lint\x20manually\x20BEFORE\x20publish\x20(order_allocators\x20immutable\x20after\x20publish,\x20IMMUT-002)')),{'critical':i,'warnings':j};}const n=new Map(),o=new Set(),p=new Map();for(const [r,s]of m){const t=s;if(t?.['type']!=='Guard'){t!=null&&typeof t['object']==='string'&&t['object']!==''&&(o['add'](r['toLowerCase']()),o['add'](String(t['object'])['toLowerCase']()),typeof t['type']==='string'&&t['type']!==''&&p['set'](r['toLowerCase'](),String(t['type'])));continue;}n['set'](r['toLowerCase'](),t);for(const u of[t['query_name'],t['object']]){if(typeof u==='string'&&u!=='')n['set'](u['toLowerCase'](),t);}}for(const [v,w]of l){const x=n['get'](v)??n['get'](w['ref']['toLowerCase']());if(!x){const D=w['ref']['toLowerCase']();if(o['has'](v)||o['has'](D)){const F=p['get'](v)??p['get'](D);if(F!==undefined){const G=c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20resolves\x20to\x20a\x20'+F+'\x20object,\x20not\x20a\x20Guard\x20—\x20'+'no\x20distribution\x20run\x20can\x20pass\x20a\x20guard\x20slot\x20that\x20names\x20a\x20different\x20object\x20type';if(h==='critical')i['push'](G);else j['push'](G);}else j['push'](c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20EXISTS\x20on\x20chain\x20but\x20its\x20object\x20could\x20not\x20be\x20parsed\x20'+'as\x20a\x20Guard\x20(unreadable\x20envelope\x20—\x20usually\x20an\x20SDK/on-chain\x20schema\x20skew)\x20—\x20lint\x20skipped\x20for\x20'+'this\x20guard;\x20verify\x20its\x20definition\x20manually\x20BEFORE\x20'+(c==='pre_buy'?'trusting\x20this\x20buy':'publish\x20(order_allocators\x20immutable\x20after\x20publish,\x20IMMUT-002)'));continue;}const E=c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20not\x20found\x20on-chain\x20—\x20'+(h==='critical'?'the\x20pool\x20accepts\x20funds\x20but\x20no\x20distribution\x20run\x20can\x20ever\x20pass\x20a\x20missing\x20guard\x20(fund-lock\x20risk)':'lint\x20skipped\x20for\x20this\x20guard;\x20verify\x20the\x20guard\x20exists\x20and\x20is\x20final\x20BEFORE\x20publish\x20(order_allocators\x20immutable\x20after\x20publish,\x20IMMUT-002)');if(h==='critical')i['push'](E);else j['push'](E);continue;}const y=x['data']??x,z=Array['isArray'](y?.['table'])?y['table']:[],A=Array['isArray'](y?.['relies'])?y['relies']:[];for(const H of w['slots']){const I=z['find'](K=>Number(K?.['identifier'])===H),J=I!=null&&I['b_submission']===!![]&&String(I['value_type'])==='Address';!J&&i['push'](c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20pays\x20a\x20{GuardIdentifier:\x20'+H+'}\x20leg\x20but\x20its\x20table\x20has\x20'+(I==null?'NO\x20slot\x20'+H+'\x20row':'slot\x20'+H+'\x20as\x20a\x20STATIC\x20row\x20(b_submission:\x20'+(I['b_submission']===!![])+',\x20value_type:\x20'+String(I['value_type'])+')')+'\x20—\x20the\x20passport\x20only\x20emits\x20DECLARED\x20submission\x20slots\x20and\x20allocation\x20asserts\x20the\x20slot\x20equals\x20the\x20paying\x20'+'order,\x20so\x20this\x20rail\x20aborts\x20at\x20alloc\x20(code\x2015,\x20ERECIPIENT_NOT_FOR_OBJECT)\x20with\x20the\x20leg\x27s\x20funds\x20stranded.\x20'+('Declare\x20{identifier:\x20'+H+',\x20b_submission:\x20true,\x20value_type:\x20\x22Address\x22}\x20in\x20the\x20guard\x20table\x20BEFORE\x20publish\x20')+'(templates\x20anchor\x20refund\x20rails\x20on\x20user\x20slot\x200\x20and\x20submit\x20the\x20Order\x20address\x20there).\x20Do\x20NOT\x20reach\x20for\x20'+'protocol\x20slot\x20254\x20as\x20the\x20payee:\x20it\x20is\x20the\x20task-binding/once\x20slot,\x20so\x20naming\x20it\x20arms\x20once-per-order\x20and\x20a\x20'+'second\x20fire\x20on\x20the\x20same\x20order\x20aborts\x20E_ONCE_TRIGGERED\x20(16)');}try{const K=z['some'](N=>Number(N?.['identifier'])===0x0&&N?.['b_submission']===!![]),L=w['slots']['has'](0x0),M=lintTaskBindingAdvisories({'guardRef':w['ref'],'table':z,'allocatorBound':!L&&K,'refundReentry':L});for(const N of M)j['push'](formatTaskBindingAdvisory(N,c));}catch{}const B={'description':typeof y?.['description']==='string'?y['description']:undefined,'table':z['map'](O=>({'identifier':Number(O?.['identifier']??0x0),'b_submission':!!O?.['b_submission'],'value_type':O?.['value_type']!==undefined?String(O['value_type']):undefined,'value':O?.['value'],'name':O?.['name']!==undefined?String(O['name']):undefined,'object_type':O?.['object_type']!==undefined?String(O['object_type']):undefined})),'root':y?.['root'],'rely':A['length']>0x0?{'guards':A['map'](O=>String(O)),'logic_or':!y?.['relies_logic_and']}:undefined,'binding_hint':{'host_object':'Service','binding_field':'order_allocators','sharing_recipients':w['recipients']['size']>0x0?[...w['recipients']]:undefined}},C=guardTimeProfileDetail({'ref':w['ref'],'description':typeof y?.['description']==='string'?y['description']:undefined,'table':z,'root':y?.['root']});if(C){const O=c+':\x20R-TIME-PROFILE\x20—\x20allocator\x20guard\x20\x22'+w['ref']+'\x22:\x20'+C['detail'];if(C['level']==='critical')i['push'](O);else j['push'](O);}try{const P=await lintGuard(B,{'auto_fix':![],'host_published':!![]});for(const Q of P['diagnostics']){const R=c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20'+Q['code']+'\x20('+Q['source']+'):\x20'+Q['message']+'\x20at\x20'+Q['location']['path'];if(Q['severity']==='error')i['push'](R);else{if(Q['severity']==='warning')j['push'](R);}}}catch(S){j['push'](c+':\x20allocator\x20guard\x20\x22'+w['ref']+'\x22\x20lint\x20failed\x20'+('('+(S instanceof Error?S['message']:String(S))+')\x20—\x20non-blocking'));}}return{'critical':i,'warnings':j};}function collectForwardGuardRefs(a){const b=new Map();for(const c of a){const d=c,e=Array['isArray'](d?.['pairs'])?d['pairs']:Array['isArray'](d?.['value'])?d['value']:[];for(const h of e){const i=h,j=Array['isArray'](i?.['forwards'])?i['forwards']:[];for(const k of j){const l=k,m=l?.['guard'],n=typeof m==='string'&&m['trim']()!==''?m:m&&typeof m==='object'?m['guard']??m['$ref']:undefined;typeof n==='string'&&n['trim']()!==''&&b['set'](n['toLowerCase'](),n);}}}return b;}async function fetchForwardGuardIndex(a,b){const c=collectForwardGuardRefs(a),d=new Map();if(c['size']===0x0)return{'refs':c,'defs':d};try{const f=await batchQueryObjectsByIds([...c['values']()],b,!![]);for(const h of f??[]){const i=h;if(i?.['type']!=='Guard')continue;for(const j of[i['query_name'],i['object']]){if(typeof j==='string'&&j!=='')d['set'](j['toLowerCase'](),i);}}return{'refs':c,'defs':d};}catch(l){return{'refs':c,'defs':d,'error':l instanceof Error?l['message']:String(l)};}}function lintForwardGuardsTaskBinding(a){const b=[],c=[];if(a['refs']['size']===0x0)return{'critical':b,'warnings':c};if(a['error']!==undefined)return c['push']('pre_publish:\x20forward-guard\x20lints\x20(task-binding\x20+\x20review-lock)\x20DEGRADED\x20—\x20could\x20not\x20query\x20guard\x20objects\x20'+('('+a['error']+');\x20verify\x20every\x20forward\x20guard\x20carries\x20the\x20protocol\x20slot\x20254\x20Address\x20submission\x20row\x20and\x20')+'that\x20no\x20settlement\x20rail\x20is\x20review-locked\x20BEFORE\x20publish\x20(immutable\x20after\x20publish,\x20IMMUT-001).\x20'+'If\x20this\x20repeats,\x20fix\x20the\x20read\x20path\x20(RPC/network)\x20—\x20do\x20not\x20publish\x20blind'),{'critical':b,'warnings':c};for(const [d,e]of a['refs']){const f=a['defs']['get'](d);if(!f){const j='pre_publish:\x20forward-bound\x20guard\x20\x22'+e+'\x22\x20not\x20found\x20on-chain\x20—\x20'+(/^0x[0-9a-fA-F]{4,64}$/['test'](e)?'dangling\x20forward\x20binding;\x20publish\x20BLOCKED\x20(fail-closed,\x20IMMUT-001).\x20Bind\x20an\x20existing\x20guard\x20'+'(or\x20create\x20it\x20first)\x20BEFORE\x20publishing\x20—\x20a\x20frozen\x20machine\x20cannot\x20be\x20repaired':'task-binding\x20lint\x20skipped\x20for\x20it;\x20ensure\x20it\x20exists\x20and\x20carries\x20the\x20protocol\x20slot\x20254\x20Address\x20'+'submission\x20row\x20BEFORE\x20publish\x20(immutable\x20after\x20publish,\x20IMMUT-001)');(/^0x[0-9a-fA-F]{4,64}$/['test'](e)?b:c)['push'](j);continue;}const g=f['data']??f,h=Array['isArray'](g?.['table'])?g['table']:[],i=declaresTaskBindingSlot(h);!i&&b['push']('pre_publish:\x20forward-bound\x20guard\x20\x22'+e+'\x22\x20has\x20NO\x20protocol\x20slot\x20'+TASK_BINDING_SLOT+'\x20Address\x20submission\x20row\x20—\x20'+'the\x20passport\x20only\x20emits\x20DECLARED\x20slots,\x20so\x20once\x20a\x20Service\x20binds\x20this\x20Machine\x20EVERY\x20forward\x20this\x20'+'guard\x20gates\x20aborts\x20(code\x2011)\x20and\x20escrowed\x20funds\x20can\x20never\x20advance.\x20Machine\x20topology\x20is\x20immutable\x20'+('after\x20publish\x20(IMMUT-001):\x20add\x20{identifier:'+TASK_BINDING_SLOT+',\x20b_submission:true,\x20value_type:\x22Address\x22}\x20to\x20the\x20')+'guard\x27s\x20table\x20(recreate\x20the\x20guard\x20unfrozen\x20if\x20it\x20is\x20frozen)\x20BEFORE\x20publishing\x20this\x20Machine');}return{'critical':b,'warnings':c};}function lintForwardReviewLocks(a,b){if(b['error']!==undefined||b['refs']['size']===0x0)return{'critical':[],'warnings':[]};const c=new Map();for(const [d,e]of b['defs']){const f=new Set();collectGuardNodeGates(e,f);if(f['size']>0x0)c['set'](d,[...f]);}return lintReviewLockedTerminals(a,c);}function lintForwardGuardsTimeProfile(a){const b=[],c=[];if(a['error']!==undefined||a['refs']['size']===0x0)return{'critical':b,'warnings':c};for(const [d,e]of a['refs']){const f=a['defs']['get'](d);if(!f)continue;const g=f['data']??f,h=guardTimeProfileDetail({'ref':e,'description':g?.['description'],'table':Array['isArray'](g?.['table'])?g['table']:undefined,'root':g?.['root']});if(h){const i='pre_publish:\x20R-TIME-PROFILE\x20—\x20forward-bound\x20guard\x20\x22'+e+'\x22:\x20'+h['detail'];if(h['level']==='critical')b['push'](i);else c['push'](i);}}return{'critical':b,'warnings':c};}function lintForwardGuardServiceConstants(a,b,c){const d=[],e=[];if(a['error']!==undefined||a['refs']['size']===0x0)return{'critical':d,'warnings':e};const f=b?.['toLowerCase']();for(const [g,h]of a['refs']){const i=a['defs']['get'](g);if(!i)continue;const j=i['data']??i,k=Array['isArray'](j?.['table'])?j['table']:[];for(const l of k){if(l?.['b_submission']===!![])continue;if(String(l?.['value_type']??'')!=='Address')continue;const m=l?.['value'];if(typeof m!=='string'||!m['startsWith']('0x'))continue;const n=m['toLowerCase'](),o=objectTypeFromAddress(m);if(o===ObjectType['Service']&&n!==f){const p=c+':\x20forward\x20guard\x20\x22'+h+'\x22\x20pins\x20Service-typed\x20address\x20'+m+'\x20as\x20a\x20STATIC\x20constant'+(f!==undefined?'\x20while\x20the\x20machine\x20binds\x20a\x20DIFFERENT\x20service':'')+'\x20—\x20every\x20forward\x20then\x20aborts\x20(guard\x20verify\x20fail,\x20code\x207)\x20on\x20that\x20service\x20and\x20in-flight\x20orders\x20strand\x20'+'permanently:\x20guards\x20freeze\x20(IMMUT-001)\x20and\x20allocator\x20appends\x20only\x20help\x20NEW\x20orders\x20'+'(mtb-tn-261030\x20P0-3:\x205.8\x20WOW\x20stranded\x20on\x20a\x20machine\x20reused\x20across\x20store\x20versions).\x20'+(f!==undefined?'Rebuild\x20the\x20guard\x20with\x20the\x20self-reference\x20pattern\x20(compare\x20order.service\x20against\x20THIS\x20service\x20'+f+')\x20BEFORE\x20publishing':'Safe\x20ONLY\x20if\x20this\x20machine\x20will\x20ever\x20bind\x20the\x20pinned\x20service;\x20otherwise\x20rebuild\x20the\x20guard\x20BEFORE\x20binding\x20any\x20other\x20service');if(f!==undefined)d['push'](p);else e['push'](p);}else o===null&&f!==undefined&&n!==f&&e['push'](c+':\x20forward\x20guard\x20\x22'+h+'\x22\x20pins\x20untagged\x20address\x20'+m+'\x20(slot\x20#'+l?.['identifier']+')\x20as\x20a\x20STATIC\x20constant\x20—\x20'+'not\x20a\x20protocol\x20object\x20(no\x20first-byte\x20type\x20tag).\x20Wallet\x20references\x20are\x20legal,\x20but\x20a\x20stale/non-object\x20'+'address\x20freezes\x20into\x20the\x20guard\x20(IMMUT-001)\x20and\x20silently\x20fails\x20its\x20comparison\x20against\x20real\x20orders.\x20'+'Confirm\x20this\x20is\x20the\x20intended\x20account\x20BEFORE\x20publish');}}return{'critical':d,'warnings':e};}async function lintMachineGuardServiceConstants(a,b,c,d){let f;try{f=await fetchMachineNodes(a,c,!![]);}catch(h){return{'critical':[],'warnings':[d+':\x20could\x20not\x20fetch\x20machine\x20\x22'+a+'\x22\x20nodes\x20for\x20the\x20guard-constant\x20consistency\x20check\x20'+('('+(h instanceof Error?h['message']:String(h))+')\x20—\x20cross-service\x20guard\x20pins\x20UNVERIFIED.\x20Audit\x20each\x20forward\x20')+'guard\x20manually\x20before\x20trusting\x20orders\x20on\x20this\x20machine\x20(mtb-tn-261030\x20P0-3:\x20a\x20frozen\x20guard\x20pinning\x20ANOTHER\x20'+'service\x27s\x20address\x20strands\x20every\x20order)']};}if(f['length']===0x0)return{'critical':[],'warnings':[]};const g=await fetchForwardGuardIndex(f,c);if(g['error']!==undefined)return{'critical':[],'warnings':[d+':\x20guard-constant\x20consistency\x20check\x20degraded\x20('+g['error']+')\x20—\x20cross-service\x20guard\x20pins\x20UNVERIFIED\x20'+'(mtb-tn-261030\x20P0-3)']};return lintForwardGuardServiceConstants(g,b,d);}async function lintAllocatorGuards(a,b){return lintAllocatorGuardSet([a['order_allocators'],a['order_allocators_append']],b,'pre_publish','warning');}async function lintAllocatorRailPairing(a,b){const c=[],d=[],h=[a['order_allocators'],a['order_allocators_append']],i=collectAllocatorGuards(h);if(i['size']===0x0)return{'critical':c,'warnings':d};let j;try{j=await batchQueryObjectsByRef([...i['values']()]['map'](r=>r['ref']),b,!![]);}catch(r){return d['push']('pre_publish:\x20allocator\x20rail\x20verification\x20skipped\x20—\x20could\x20not\x20query\x20guard\x20objects\x20'+('('+(r instanceof Error?r['message']:String(r))+');\x20run\x20template_scan\x20or\x20guard\x20lint\x20manually\x20')+'BEFORE\x20publish:\x20fund\x20rails\x20must\x20be\x20node-gated\x20with\x20NO\x20claimed_by\x20leg\x20(decision\x2011,\x20'+'R-FUND-RAIL-CLAIMED-BY)\x20and\x20every\x20rail\x20must\x20reach\x20a\x20viable\x20exit,\x20or\x20a\x20claimed\x20order\x20'+'strands\x20its\x20escrow\x20(order_allocators\x20immutable\x20after\x20publish,\x20IMMUT-002)'),{'critical':c,'warnings':d};}const l=new Map();for(const [s,t]of j){const u=t;if(u?.['type']!=='Guard')continue;l['set'](s['toLowerCase'](),u);for(const v of[u['query_name'],u['object']]){if(typeof v==='string'&&v!=='')l['set'](v['toLowerCase'](),u);}}const m=[],n=new Set();for(const [w,x]of i){const y=l['get'](w);if(!y)continue;const z=y?.['data']??y,A=Array['isArray'](z['table'])?z['table']:[];m['push']({'key':x['ref'],'track':x['slots']['has'](0x0)?'refund':'settlement','table':A,'root':z['root']});const B=z['description'];typeof B==='string'&&B['includes']('merchant-declared\x20exemption:\x20rail\x20\x27')&&n['add'](x['ref']);}if(m['length']===0x0)return d['push']('pre_publish:\x20allocator\x20rail\x20verification\x20skipped\x20—\x20no\x20referenced\x20allocator\x20guard\x20was\x20'+'resolvable\x20on-chain;\x20verify\x20the\x20rails\x20BEFORE\x20publish\x20(IMMUT-002)'),{'critical':c,'warnings':d};const o=typeof a['machine']==='string'?a['machine']:undefined;let p=[];if(o&&o['trim']()!=='')try{const C=await fetchMachineNodes(o,b,!![]);p=C['map'](D=>({'name':D['name']}));}catch{d['push']('pre_publish:\x20allocator\x20rail\x20verification\x20ran\x20WITHOUT\x20the\x20machine\x20node\x20matrix\x20'+'(machine\x20fetch\x20failed)\x20—\x20award-exit\x20coverage\x20is\x20evaluated\x20on\x20the\x20payload\x20rails\x20only');}else d['push']('pre_publish:\x20\x27machine\x27\x20absent\x20from\x20THIS\x20call\x20—\x20allocator\x20rail\x20verification\x20evaluated\x20without\x20'+'the\x20node\x20matrix;\x20if\x20the\x20store\x20binds\x20a\x20machine\x20later,\x20re-verify\x20after\x20binding');p['length']===0x0&&(p=[{'name':'*'}]);const q=verifyAllocatorRails(m,p,{'arbitrationBound':!![],'declaredKeys':n});for(const D of q){const E='pre_publish:\x20allocator\x20rail\x20verification\x20—\x20['+D['code']+']\x20'+D['detail'];D['level']==='info'?d['push']('pre_publish:\x20allocator\x20rail\x20DISCLOSURE\x20(not\x20a\x20violation)\x20—\x20['+D['code']+']\x20'+D['detail']):c['push'](E);}return{'critical':c,'warnings':d};}function collectGuardBindingRefs(a,b){const c=[],d=(e,h,i)=>{typeof e==='string'&&e['trim']()!==''&&c['push']({'ref':e['trim'](),'host':h,'facts':i});};if(b==='service'){d(a['buy_guard'],'service_buy_guard');for(const e of collectAllocatorGuards([a['order_allocators'],a['order_allocators_append']])['values']()){c['push']({'ref':e['ref'],'host':'service_allocator_guard'});}}if(b==='treasury'){const h=a['external_deposit_guard'];if(Array['isArray'](h))for(const j of h){d(j?.['guard'],'treasury_external_deposit',{'amount_slot':typeof j?.['identifier']==='number'?j['identifier']:undefined});}const i=a['external_withdraw_guard'];if(Array['isArray'](i))for(const k of i){d(k?.['guard'],'treasury_external_withdraw',{'amount_slot':typeof k?.['identifier']==='number'?k['identifier']:undefined});}}if(b==='arbitration'){d(a['usage_guard'],'arbitration_usage');const l=a['voting_guard'];if(l&&typeof l==='object'&&Array['isArray'](l['guards'])&&l['op']!=='remove'&&l['op']!=='clear')for(const m of l['guards']){d(m?.['guard'],'arbitration_voting');}}if(b==='reward'){d(a['claim'],'reward_claim');const o=a['guard_add'];if(Array['isArray'](o))for(const q of o){d(q?.['guard'],'reward_claim');}}if(b==='demand'){const r=a['guards'];if(Array['isArray'](r))for(const s of r){d(typeof s==='string'?s:s?.['guard'],'demand_present');}}if(b==='permission'){const t=a['policy'];if(Array['isArray'](t))for(const u of t){const v=u?.['write_guard'];if(Array['isArray'](v))for(const w of v){d(typeof w==='string'?w:w?.['guard'],'repository_write');}d(u?.['quote_guard'],'repository_quote');}}if(b==='machine'){const x=a['node'],y=x&&typeof x==='object'&&!('json_or_markdown_file'in x)?x['nodes']:undefined;if(Array['isArray'](y))for(const z of y){const A=Array['isArray'](z?.['pairs'])?z['pairs']:[];for(const B of A){const C=Array['isArray'](B?.['forwards'])?B['forwards']:[];for(const D of C){const E=D?.['guard'];d(typeof E==='string'?E:E?.['guard'],'machine_forward');}}}}if(b==='gen_passport'){const F=a['guard'];if(typeof F==='string')d(F,'gen_passport');else{if(Array['isArray'](F))for(const G of F){d(typeof G==='string'?G:G?.['guard'],'gen_passport');}}}return c;}async function verifyCollectedGuardBindings(a,b){const c=[],d=[];if(a['length']===0x0)return{'critical':c,'warnings':d};const h=new Set(),i=a['filter'](m=>{const n=m['ref']['toLowerCase']()+'|'+m['host'];if(h['has'](n))return![];return h['add'](n),!![];});let j;try{j=await batchQueryObjectsByRef([...new Set(i['map'](m=>m['ref']))],b,!![]);}catch(m){return d['push']('pre_publish:\x20guard-binding\x20semantics\x20check\x20skipped\x20—\x20could\x20not\x20query\x20guard\x20objects\x20'+('('+(m instanceof Error?m['message']:String(m))+');\x20run\x20analyze_guard_semantics\x20on\x20every\x20bound\x20')+'guard\x20BEFORE\x20the\x20binding\x20goes\x20live\x20(guards\x20are\x20immutable\x20after\x20create)'),{'critical':c,'warnings':d};}const l=new Map();for(const [n,o]of j){const p=o;if(p?.['type']!=='Guard')continue;l['set'](n['toLowerCase'](),p);for(const q of[p['query_name'],p['object']]){if(typeof q==='string'&&q!=='')l['set'](q['toLowerCase'](),p);}}for(const r of i){const s=l['get'](r['ref']['toLowerCase']());if(!s)continue;const t=s?.['data']??s,u=Array['isArray'](t['table'])?t['table']:[],v={...r['facts']};r['host']==='machine_forward'&&(v['declared_slots']=callerIndependentSlots(u));const w=verifyGuardBinding({'host':r['host'],'root':t['root'],'facts':v}),x=t['rely']??t['relies'];r['host']!=='guard_relied'&&Array['isArray'](x)&&x['length']>0x0&&w['push'](...auditGuardRelies({'from_host':'','to_host':r['host'],'child_count':x['length']}));for(const y of w){y['level']==='critical'?c['push']('pre_publish:\x20guard\x20binding\x20on\x20'+r['host']+'\x20—\x20['+y['code']+']\x20'+y['detail']):d['push']('pre_publish:\x20guard-binding\x20'+y['level']['toUpperCase']()+'\x20on\x20'+r['host']+'\x20—\x20['+y['code']+']\x20'+y['detail']);}}return{'critical':c,'warnings':d};}export async function lintGuardBindingSemantics(a,b,c){const d=[],g=[],h=collectGuardBindingRefs(a,b);let i=typeof a['machine']==='string'?a['machine']['trim']():'';i===''&&b==='machine'&&typeof a['object']==='string'&&(i=a['object']['trim']());if(i!=='')try{const k=await fetchMachineNodes(i,c,!![]),l=new Set();for(const m of k){for(const o of m['pairs']){for(const q of o['forwards']){if(typeof q['guard']==='string'&&q['guard']['trim']()!=='')l['add'](q['guard']);}}}for(const r of l){h['push']({'ref':r,'host':'machine_forward'});}}catch(s){g['push']('pre_publish:\x20guard-binding\x20check\x20ran\x20WITHOUT\x20the\x20machine\x20forwards\x20(machine\x20fetch\x20failed:\x20'+((s instanceof Error?s['message']:String(s))+')\x20—\x20forward-guard\x20host\x20semantics\x20were\x20not\x20')+'audited\x20here;\x20run\x20analyze_guard_semantics\x20on\x20every\x20forward\x20guard\x20BEFORE\x20publish');}const j=await verifyCollectedGuardBindings(h,c);return{'critical':[...d,...j['critical']],'warnings':[...g,...j['warnings']]};}async function lintServiceEscrowExitCoverage(b,c,d,f){const h=[],i=[],j=new Map();let k=0x0;for(const r of c){if(r===null||r===undefined)continue;const s=Array['isArray'](r)?r:Array['isArray'](r['allocators'])?r['allocators']:[];for(const t of s){k++;const u=t?.['guard'];if(typeof u==='string'&&u['trim']()!=='')j['set'](u['toLowerCase'](),u);}}const l=c['some'](v=>v!==null&&v!==undefined);if(f){let v,w;try{const x=await batchQueryObjectsByIds([f],d,!![]);v=(x??[])['find'](y=>y?.['type']==='Service');}catch(y){w=y;}if(!v&&!b)return h['push']('pre_publish:\x20(R-ESCROW-LEAF)\x20escrow-exit\x20gate\x20could\x20not\x20resolve\x20service\x20\x22'+f+'\x22\x20'+('('+(w instanceof Error?w['message']:String(w))+')\x20—\x20terminal\x20coverage\x20UNVERIFIABLE;\x20publish\x20blocked.\x20')+'Retry\x20when\x20the\x20network\x20is\x20reachable'),{'critical':h,'warnings':i};!v&&w!==undefined&&i['push']('pre_publish:\x20escrow-exit\x20gate\x20DEGRADED\x20—\x20could\x20not\x20query\x20service\x20\x22'+f+'\x22\x20'+('('+(w instanceof Error?w['message']:String(w))+');\x20auditing\x20THIS\x20call\x27s\x20allocator\x20payload\x20only'));if(v){const z=v['data']??v;if(!b&&typeof z['machine']==='string'&&z['machine']['trim']()!=='')b=z['machine'];const A=z['order_allocators'],B=Array['isArray'](A)?A:Array['isArray'](A?.['allocators'])?A['allocators']:[];for(const C of B){const D=C?.['guard'];typeof D==='string'&&D['trim']()!==''&&!j['has'](D['toLowerCase']())&&j['set'](D['toLowerCase'](),D);}}}if(!b)return i['push']('pre_publish:\x20escrow-exit\x20gate\x20skipped\x20—\x20no\x20machine\x20in\x20this\x20call\x20and\x20the\x20published\x20service\x20carries\x20none;\x20'+'there\x20is\x20no\x20topology\x20to\x20cover'),{'critical':h,'warnings':i};let m=[];try{m=await fetchMachineNodes(b,d,!![]);}catch(E){return h['push']('pre_publish:\x20escrow-exit\x20gate\x20could\x20not\x20fetch\x20machine\x20\x22'+b+'\x22\x20nodes\x20'+('('+(E instanceof Error?E['message']:String(E))+')\x20—\x20terminal\x20coverage\x20UNVERIFIABLE;\x20publish\x20blocked.\x20')+'Retry\x20when\x20the\x20network\x20is\x20reachable'),{'critical':h,'warnings':i};}if(m['length']===0x0)return i['push']('pre_publish:\x20escrow-exit\x20gate\x20skipped\x20—\x20machine\x20has\x20no\x20nodes\x20to\x20cover'),{'critical':h,'warnings':i};const n=computeTerminalReachability(m);if(n['terminals']['length']===0x0)return{'critical':h,'warnings':i};if(j['size']===0x0)return l?h['push']('pre_publish:\x20(R-ESCROW-LEAF)\x20machine\x20terminal\x20node(s)\x20'+n['terminals']['map'](F=>'\x22'+F+'\x22')['join'](',\x20')+'\x20have\x20NO\x20allocator\x20rail\x20—\x20'+(k===0x0?'order_allocators\x20is\x20empty\x20in\x20this\x20call,\x20so\x20':'no\x20allocator\x20row\x20carries\x20a\x20guard\x20ref,\x20so\x20')+'an\x20order\x20stopping\x20at\x20any\x20terminal\x20strands\x20its\x20escrow\x20by\x20construction\x20(immutable\x20after\x20publish,\x20IMMUT-002).\x20'+'Every\x20terminal\x20needs\x20a\x20settlement/refund\x20allocator\x20whose\x20guard\x20gates\x20progress.current\x20==\x20<terminal>\x20'+'(canonical\x20designs:\x20tpl_allocator_node_gate_settle\x20/\x20tpl_allocator_node_gate_refund,\x20M-T12)'):i['push']('pre_publish:\x20(R-ESCROW-LEAF)\x20the\x20published\x20service\x20carries\x20NO\x20allocator\x20rails\x20on-chain\x20—\x20'+('if\x20it\x20ever\x20takes\x20payment,\x20every\x20terminal\x20('+n['terminals']['map'](F=>'\x22'+F+'\x22')['join'](',\x20')+')\x20strands\x20escrow\x20')+'with\x20no\x20exit.\x20Zero-payment\x20services\x20may\x20proceed;\x20otherwise\x20bind\x20settlement/refund\x20rails\x20BEFORE\x20publish\x20'+'(canonical\x20designs:\x20tpl_allocator_node_gate_settle\x20/\x20tpl_allocator_node_gate_refund,\x20M-T12;\x20immutable\x20after\x20publish,\x20IMMUT-002)'),{'critical':h,'warnings':i};let o;try{o=await batchQueryObjectsByRef([...j['values']()],d,!![]);}catch(F){return i['push']('pre_publish:\x20escrow-exit\x20coverage\x20UNVERIFIED\x20—\x20could\x20not\x20query\x20allocator\x20guards\x20'+('('+(F instanceof Error?F['message']:String(F))+');\x20run\x20guard\x20lint\x20manually\x20BEFORE\x20publish\x20')+'(terminal(s)\x20in\x20question:\x20'+n['terminals']['join'](',\x20')+')'),{'critical':h,'warnings':i};}const p=new Set();for(const G of o['values']()){const H=G;if(H?.['type']!=='Guard')continue;collectGuardNodeGates(H,p);}const q=n['terminals']['filter'](I=>!p['has'](I));return q['length']>0x0&&h['push']('pre_publish:\x20(R-ESCROW-LEAF)\x20terminal\x20node(s)\x20'+q['map'](I=>'\x22'+I+'\x22')['join'](',\x20')+'\x20have\x20NO\x20allocator\x20rail\x20—\x20'+'an\x20order\x20that\x20reaches\x20a\x20terminal\x20moves\x20no\x20money\x20by\x20itself,\x20so\x20its\x20escrow\x20strands\x20permanently\x20'+'(mainnet:\x200.299\x20stranded\x20at\x20an\x20un-railied\x20terminal;\x20ofshop:\x200.25\x20stranded\x20at\x20\x27expired\x27).\x20Every\x20terminal\x20'+'needs\x20a\x20settlement/refund\x20allocator\x20whose\x20guard\x20gates\x20progress.current\x20==\x20<terminal>\x20(canonical\x20designs:\x20'+'tpl_allocator_node_gate_settle\x20/\x20tpl_allocator_node_gate_refund,\x20M-T12).\x20If\x20the\x20pool\x20legitimately\x20drains\x20'+'at\x20an\x20earlier\x20node,\x20add\x20a\x20zero-value\x20anchor\x20row\x20on\x20the\x20terminal\x20rail\x20so\x20the\x20guard\x20resolves\x20without\x20paying'),{'critical':h,'warnings':i};}function collectGuardNodeGates(a,b){const c=a['data']??a;for(const d of parseGuardNodeGates(c?.['root'],c?.['table']))b['add'](d);}async function checkArbitrationNeutrality(b,c){const d=[],f=[],g=[],h=p=>{const q=typeof p==='string'?p:p?.['object']??p?.['name'];if(typeof q==='string'&&q!==''&&!g['includes'](q))g['push'](q);};for(const p of Array['isArray'](b['arbitrations'])?b['arbitrations']:[])h(p);let i=typeof b['permission']==='string'?b['permission']:undefined;const j=typeof b['object']==='string'?b['object']:undefined;if(j){let q;try{const r=await batchQueryObjectsByIds([j],c,!![]);q=(r??[])['find'](s=>s?.['type']==='Service');}catch(s){f['push']('pre_publish:\x20arbitration\x20neutrality\x20check\x20DEGRADED\x20—\x20could\x20not\x20query\x20service\x20\x22'+j+'\x22\x20'+('('+(s instanceof Error?s['message']:String(s))+').\x20Verify\x20manually\x20that\x20every\x20bound\x20arbitration\x27s\x20')+'Permission\x20owner/admin\x20set\x20is\x20DISJOINT\x20from\x20the\x20service\x27s\x20controller\x20keys\x20before\x20publishing');}if(q){const t=q['data']??q;if(!i&&typeof t['permission']==='string')i=t['permission'];for(const u of Array['isArray'](t['arbitrations'])?t['arbitrations']:[])h(u);}}if(g['length']===0x0)return{'critical':d,'warnings':f};if(!i)return f['push']('pre_publish:\x20arbitration\x20neutrality\x20check\x20DEGRADED\x20—\x20the\x20service\x20Permission\x20address\x20is\x20not\x20resolvable\x20'+'from\x20this\x20call\x20(no\x20payload\x20\x27permission\x27,\x20service\x20object\x20not\x20found).\x20The\x20bound\x20arbitrations\x27\x20controller\x20'+'keys\x20are\x20UNVERIFIED:\x20confirm\x20each\x20arbitration\x20Permission\x27s\x20owner/admin\x20set\x20is\x20disjoint\x20from\x20the\x20service\x27s\x20'+'controller\x20keys\x20(same-controller\x20arbitration\x20=\x20the\x20merchant\x20can\x20rule\x20their\x20own\x20disputes)'),{'critical':d,'warnings':f};let k;try{k=await batchQueryObjectsByIds([i,...g],c,!![]);}catch(v){return f['push']('pre_publish:\x20arbitration\x20neutrality\x20check\x20DEGRADED\x20—\x20object\x20query\x20failed\x20'+('('+(v instanceof Error?v['message']:String(v))+').\x20Verify\x20the\x20arbitration\x20Permissions\x27\x20owner/admin\x20sets\x20')+'are\x20disjoint\x20from\x20the\x20service\x27s\x20controller\x20keys\x20before\x20publishing'),{'critical':d,'warnings':f};}const l=w=>(k??[])['find'](x=>{const y=x;return typeof y?.['object']==='string'&&y['object']['toLowerCase']()===w['toLowerCase']()||typeof y?.['query_name']==='string'&&y['query_name']['toLowerCase']()===w['toLowerCase']();}),m=w=>{if(!w)return new Set();const x=w['data']??w,y=new Set();for(const z of[x['builder']])if(typeof z==='string'&&z)y['add'](z['toLowerCase']());for(const A of Array['isArray'](x['admin'])?x['admin']:[])if(typeof A==='string'&&A)y['add'](A['toLowerCase']());return y;},n=l(i),o=m(n);if(o['size']===0x0)return f['push']('pre_publish:\x20arbitration\x20neutrality\x20check\x20DEGRADED\x20—\x20service\x20Permission\x20\x22'+i+'\x22\x20not\x20found\x20or\x20'+'carries\x20no\x20builder/admin\x20list.\x20The\x20bound\x20arbitrations\x27\x20controller\x20keys\x20are\x20UNVERIFIED\x20—\x20confirm\x20disjointness\x20manually'),{'critical':d,'warnings':f};for(const w of g){const x=l(w);if(!x){f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20not\x20found\x20on-chain\x20(or\x20not\x20yet\x20indexed)\x20—\x20its\x20Permission\x20controller\x20'+'keys\x20are\x20UNVERIFIED.\x20Confirm\x20the\x20arbitration\x20Permission\x27s\x20builder/admin\x20set\x20is\x20disjoint\x20from\x20the\x20service\x27s\x20'+'controller\x20keys\x20(same-controller\x20arbitration\x20=\x20the\x20merchant\x20can\x20rule\x20their\x20own\x20disputes)');continue;}const y=x['data']??x;y['bPaused']===!![]&&d['push']('pre_publish:\x20R-ARB-PAUSED\x20—\x20arbitration\x20\x22'+w+'\x22\x20is\x20PAUSED.\x20Every\x20dispute\x20against\x20this\x20service\x20'+'will\x20abort\x20(arbitration::E_PAUSED)\x20while\x20the\x20arbitration\x20stays\x20paused\x20—\x20case_open,\x20voting\x20and\x20'+'conclusion\x20are\x20all\x20dead-locked.\x20New\x20Arbitrations\x20are\x20created\x20paused\x20by\x20default;\x20the\x20arbitration\x20'+('owner\x20must\x20un-pause\x20it\x20BEFORE\x20this\x20publish:\x20{operation_type:\x22arbitration\x22,\x20data:{object:\x22'+w+'\x22,\x20pause:false}}'));const z=typeof y['permission']==='string'?y['permission']:undefined;if(!z){f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20exposes\x20no\x20permission\x20address\x20—\x20controller-key\x20disjointness\x20UNVERIFIED');continue;}if(z['toLowerCase']()===i['toLowerCase']()){d['push']('pre_publish:\x20R-ARB-SAME-CONTROLLER\x20—\x20arbitration\x20\x22'+w+'\x22\x20shares\x20the\x20service\x27s\x20Permission\x20object\x20'+('('+i+').\x20The\x20chain\x20aborts\x20this\x20binding\x20(E_ARBITRATION_PERMISSION_CONFLICT);\x20bind\x20an\x20')+'arbitration\x20with\x20its\x20own\x20independent\x20Permission');continue;}if(!l(z))try{const E=await batchQueryObjectsByIds([z],c,!![]);k=[...k??[],...E??[]];}catch(F){f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20Permission\x20\x22'+z+'\x22\x20could\x20not\x20be\x20queried\x20'+('('+(F instanceof Error?F['message']:String(F))+')\x20—\x20controller-key\x20disjointness\x20UNVERIFIED'));continue;}const A=m(l(z));if(A['size']===0x0){f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20Permission\x20\x22'+z+'\x22\x20not\x20found\x20or\x20carries\x20no\x20builder/admin\x20list\x20—\x20'+'controller-key\x20disjointness\x20UNVERIFIED');continue;}const B=[...o]['filter'](G=>A['has'](G));B['length']>0x0&&d['push']('pre_publish:\x20R-ARB-SAME-CONTROLLER\x20—\x20the\x20arbitration\x20\x22'+w+'\x22\x20is\x20NOT\x20controller-independent:\x20'+('EOA(s)\x20'+B['join'](',\x20')+'\x20appear\x20in\x20BOTH\x20the\x20service\x20Permission\x20('+i+')\x20and\x20the\x20')+('arbitration\x20Permission\x20('+z+')\x20builder/admin\x20sets.\x20Object\x20isolation\x20is\x20enforced\x20on-chain\x20')+'(different\x20Permission\x20objects),\x20but\x20controller\x20isolation\x20is\x20NOT:\x20a\x20shared\x20EOA\x20can\x20confirm,\x20vote\x20in,\x20'+'and\x20rule\x20the\x20service\x27s\x20disputes\x20—\x20arbitration\x20neutrality\x20collapses\x20(live\x20mainnet:\x20the\x20reused\x20arb\x27s\x20'+'Permission\x20builder\x20AND\x20sole\x20admin\x20was\x20the\x20merchant).\x20Bind\x20an\x20arbitration\x20whose\x20Permission\x20is\x20controlled\x20'+'by\x20physically\x20independent\x20keys');const C=arbitrationVotingLockDetail(y['voting_guard']);C!==null&&d['push']('pre_publish:\x20R-ARB-VOTE-LOCK\x20—\x20arbitration\x20\x22'+w+'\x22:\x20'+C);const D=(Array['isArray'](y['voting_guard'])?y['voting_guard']:[])['map'](G=>typeof G==='string'?G:G?.['guard'])['filter'](G=>typeof G==='string'&&G['length']>0x0);if(D['length']>0x0){const G=D['filter'](H=>!l(H));if(G['length']>0x0)try{const H=await batchQueryObjectsByIds(G,c,!![]);k=[...k??[],...H??[]];}catch{}for(const I of D){const J=l(I);if(!J)continue;const K=J['data']??J,L=arbitrationVotingGuardNoIdentityDetail(K['root'],K['table']);L!==null&&f['push']('pre_publish:\x20arbitration\x20\x22'+w+'\x22\x20voting_guard\x20'+I+'\x20—\x20'+L);}}}return{'critical':d,'warnings':f};}async function runPreBuyChecks(a,b){const c=[],d=[],f=harnessDataView(b)??{},g=b?.['env']?.['network'],h=f['object'];let i;try{i=await batchQueryObjectsByIds([h],g,!![]);}catch(n){return d['push']('pre_buy:\x20allocator\x20screening\x20DEGRADED\x20—\x20could\x20not\x20query\x20service\x20\x22'+h+'\x22\x20'+('('+(n instanceof Error?n['message']:String(n))+');\x20the\x20purchase\x20was\x20NOT\x20screened.\x20')+'Verify\x20the\x20service\x27s\x20order_allocators\x20yourself\x20(query_toolkit\x20query_type=\x27service_panorama\x27)\x20before\x20trusting\x20this\x20buy'),{'critical':c,'warnings':d};}const j=(i??[])['find'](p=>p?.['type']==='Service');if(!j)return d['push']('pre_buy:\x20allocator\x20screening\x20DEGRADED\x20—\x20service\x20\x22'+h+'\x22\x20not\x20found\x20on-chain\x20(or\x20not\x20yet\x20indexed);\x20'+'the\x20purchase\x20was\x20NOT\x20screened.\x20Verify\x20the\x20address/network\x20and\x20the\x20service\x27s\x20order_allocators\x20before\x20trusting\x20this\x20buy'),{'critical':c,'warnings':d};const k=j['data']??j;k['bPublished']!==!![]&&c['push']('pre_buy:\x20service\x20\x22'+h+'\x22\x20is\x20NOT\x20published\x20—\x20the\x20buy\x20aborts\x20on-chain\x20(E_NOT_PUBLISHED)');k['bPaused']===!![]&&c['push']('pre_buy:\x20service\x20\x22'+h+'\x22\x20is\x20paused\x20—\x20the\x20buy\x20aborts\x20on-chain\x20(E_PAUSED)');const l=k['order_allocators'];if(l==null)c['push']('pre_buy:\x20service\x20\x22'+h+'\x22\x20has\x20NO\x20order_allocators\x20—\x20the\x20payment\x20step\x20aborts\x20(no\x20distribution\x20plan).\x20'+'Funds\x20committed\x20to\x20this\x20service\x20would\x20have\x20NO\x20distribution\x20path\x20(the\x20fund-lock\x20incident\x20class).\x20'+'Do\x20not\x20buy\x20until\x20the\x20merchant\x20configures\x20an\x20allocator\x20plan');else{if(!Array['isArray'](l['allocators'])||l['allocators']['length']===0x0)c['push']('pre_buy:\x20service\x20\x22'+h+'\x22\x20order_allocators\x20is\x20EMPTY\x20—\x20the\x20payment\x20step\x20aborts\x20(EALLOCATORS_EMPTY).\x20'+'Do\x20not\x20buy\x20until\x20the\x20merchant\x20configures\x20at\x20least\x20one\x20allocator');else{const o=f['buy'],p=Array['isArray'](o?.['items'])?o['items']:[],q=Array['isArray'](k['sales'])?k['sales']:[];let r=0x0,s=p['length']>0x0;const t=[];for(const w of p){const x=w,y=numericBalance(x?.['quantity']),z=q['find'](B=>B?.['name']===x?.['name']),A=numericBalance(z?.['price']);if(y===undefined||A===undefined){s=![],t['push'](typeof x?.['name']==='string'?x['name']:JSON['stringify'](x?.['name']));continue;}r+=A*y;}const u=numericBalance(l['threshold']);if(!s)d['push']('pre_buy:\x20could\x20not\x20price\x20'+t['length']+'\x20cart\x20item(s)\x20['+t['join'](',\x20')+']\x20against\x20the\x20service\x27s\x20on-chain\x20sales\x20—\x20'+'allocator-threshold\x20coverage\x20UNVERIFIED\x20for\x20this\x20cart\x20(unknown\x20items\x20also\x20abort\x20the\x20quote\x20step).\x20'+'Confirm\x20every\x20item\x20name\x20matches\x20a\x20current\x20sale\x20entry');else u!==undefined&&u>r&&c['push']('pre_buy:\x20allocator\x20threshold\x20'+u+'\x20exceeds\x20this\x20cart\x27s\x20total\x20'+r+'\x20(Σ\x20price×quantity\x20over\x20the\x20on-chain\x20sales)\x20—\x20'+'the\x20payment\x20step\x20aborts\x20(EINSUFFICIENT_BALANCE):\x20pool\x20creation\x20requires\x20amount\x20>=\x20threshold.\x20'+'The\x20merchant\x20must\x20lower\x20the\x20threshold\x20(new\x20service\x20—\x20threshold\x20is\x20frozen\x20at\x20publish)\x20or\x20the\x20cart\x20must\x20grow');o?.['discount']!=null&&s&&u!==undefined&&u<=r&&d['push']('pre_buy:\x20a\x20discount\x20is\x20applied\x20—\x20the\x20discounted\x20total\x20may\x20fall\x20below\x20the\x20list\x20total\x20'+r+'\x20used\x20here;\x20'+('if\x20it\x20lands\x20under\x20the\x20allocator\x20threshold\x20'+u+',\x20the\x20payment\x20step\x20aborts\x20(EINSUFFICIENT_BALANCE)'));const v=await lintAllocatorGuardSet([l],g,'pre_buy','critical');c['push'](...v['critical']),d['push'](...v['warnings']);}}const m=typeof k['machine']==='string'?k['machine']['trim']():'';if(m!=='')try{const B=await lintMachineGuardServiceConstants(m,String(j?.['object']??h),g,'pre_buy');c['push'](...B['critical']),d['push'](...B['warnings']);}catch(C){d['push']('pre_buy:\x20guard-constant\x20consistency\x20check\x20failed\x20'+('('+(C instanceof Error?C['message']:String(C))+')\x20—\x20cross-service\x20guard\x20pins\x20UNVERIFIED\x20(mtb-tn-261030\x20P0-3)'));}return{'critical':c,'warnings':d};}export function lintSalesWipBindings(a,b){const c=[],d=[],e=Array['isArray'](a)?a:[];for(const f of e){const g=typeof f?.['wip']==='string'?f['wip']['trim']():'';if(g==='')continue;const h=typeof f?.['wip_hash']==='string'&&f['wip_hash']['trim']()!==''?f['wip_hash']['trim']():undefined,i=getWipVerifyRecord(g);if(i===undefined){c['push']('pre_publish:\x20a\x20sale\x20binds\x20WIP\x20\x22'+g+'\x22\x20that\x20THIS\x20session\x20never\x20verified\x20—\x20BLOCKED\x20(R2-08②,\x20alg26\x20'+'F-A26-03:\x20upload\x20responses\x20are\x20an\x20infra\x20passthrough\x20that\x20echoed\x20another\x20account\x27s\x20file\x20URL,\x20and\x20the\x20'+'chain\x20only\x20checks\x20hash-vs-URL\x20self-consistency\x20at\x20quote).\x20Before\x20publishing,\x20run\x20'+('wip_file\x20type=\x22verify\x22\x20wipFilePath=\x22'+g+'\x22')+(h!==undefined?'\x20hash_equal=\x22'+h+'\x22':'')+'\x20and\x20retry\x20only\x20on\x20a\x20valid\x20result.\x20(An\x20MCP\x20restart\x20clears\x20the\x20session\x20ledger\x20—\x20re-run\x20the\x20verify.)');continue;}if(h!==undefined){if(i['hash_equal']!==undefined&&i['hash_equal']!==h)c['push']('pre_publish:\x20a\x20sale\x20binds\x20wip_hash\x20\x22'+h+'\x22\x20but\x20the\x20WIP\x20\x22'+g+'\x22\x20was\x20equality-verified\x20'+('against\x20\x22'+i['hash_equal']+'\x22\x20—\x20hash\x20MISMATCH,\x20BLOCKED\x20(R2-08②).\x20Re-verify\x20with\x20')+('hash_equal=\x22'+h+'\x22\x20or\x20correct\x20the\x20sale\x27s\x20wip_hash.'));else i['hash_equal']===undefined&&d['push']('pre_publish:\x20sale\x20binds\x20wip_hash\x20on\x20WIP\x20\x22'+g+'\x22\x20that\x20was\x20only\x20integrity-verified\x20(no\x20'+'hash_equal)\x20—\x20run\x20wip_file\x20verify\x20with\x20hash_equal=\x22'+h+'\x22\x20to\x20close\x20the\x20gap\x20'+'(the\x20chain\x20re-checks\x20at\x20quote,\x20E_WIP_HASH_NOT_MATCH;\x20a\x20mismatched\x20bind\x20surfaces\x20as\x20a\x20buyer-side\x20abort)');}const j=i['upload_account'];j!==undefined&&b!==undefined&&j!==b&&!i['signature_verified']&&c['push']('pre_publish:\x20WIP\x20\x22'+g+'\x22\x20was\x20uploaded\x20by\x20account\x20\x22'+j+'\x22\x20but\x20is\x20bound/published\x20by\x20'+('\x22'+b+'\x22\x20without\x20an\x20owner\x20signature\x20—\x20BLOCKED\x20(R2-08③).\x20Either\x20upload\x20with\x20\x22'+b+'\x22,\x20')+'or\x20re-verify\x20with\x20requireSignature=true\x20(the\x20file\x27s\x20owner\x20signature\x20IS\x20the\x20explicit\x20delegate\x20proof)\x20and\x20retry.');}return{'critical':c,'warnings':d};}export async function runPrePublishChecks(a,b){const c=[],d=[],g=extractOperationType(a,b),h=harnessDataView(b)??{},i=b?.['env']?.['network'];if(g==='machine'){const j=h['node'];let l=Array['isArray'](j)?j:Array['isArray'](j?.['nodes'])?j['nodes']:[];if(l['length']===0x0&&typeof h['object']==='string'){const m=h['object'];try{const n=await fetchMachineNodes(m,i,!![]);n['length']>0x0&&(l=n,d['push']('pre_publish:\x20machine\x20\x22'+m+'\x22\x20published\x20by\x20reference\x20—\x20audited\x20against\x20its\x20'+(n['length']+'\x20on-chain\x20node(s)\x20(effective-state\x20gate)')));}catch(o){c['push']('pre_publish:\x20could\x20not\x20fetch\x20on-chain\x20nodes\x20for\x20machine\x20\x22'+m+'\x22\x20'+('('+(o instanceof Error?o['message']:String(o))+')\x20—\x20topology\x20UNVERIFIABLE;\x20publish\x20blocked.\x20')+'Retry\x20when\x20the\x20network\x20is\x20reachable;\x20every\x20guarded\x20forward\x20must\x20carry\x20the\x20protocol\x20slot\x20254\x20'+'submission\x20row\x20and\x20topology\x20is\x20immutable\x20after\x20publish\x20(IMMUT-001)');}}if(l['length']>0x0){const p=h['reentry_kind'],q=p==='none'||p==='review-loop'||p==='paid-cycle'?p:undefined;p!==undefined&&q===undefined&&d['push']('pre_publish:\x20ignored\x20invalid\x20reentry_kind\x20\x22'+String(p)+'\x22\x20—\x20'+'valid\x20values:\x20none\x20(default,\x20word-stem\x20classification)\x20/\x20review-loop\x20(same-order\x20no-charge\x20revisits)\x20/\x20paid-cycle\x20(per-revisit\x20fee,\x20fund\x20gate\x20required)');const s=auditMachineNodes(l,q);c['push'](...s['critical']),d['push'](...s['warnings']);const t=await fetchForwardGuardIndex(l,i),u=lintForwardGuardsTaskBinding(t);c['push'](...u['critical']),d['push'](...u['warnings']);const v=lintForwardReviewLocks(l,t);c['push'](...v['critical']),d['push'](...v['warnings']);const w=lintForwardGuardsTimeProfile(t);c['push'](...w['critical']),d['push'](...w['warnings']);const x=lintForwardGuardServiceConstants(t,undefined,'pre_publish');c['push'](...x['critical']),d['push'](...x['warnings']);try{const y=lintMachineTaskBindingPreflight({'refs':[...t['refs']['values']()],'resolved':[...t['refs']]['flatMap'](([z,A])=>{const B=t['defs']['get'](z);if(B===undefined)return[];const C=B['data'],D=C!==null&&typeof C==='object'?C:B;return[{'ref':A,'table':D['table']}];}),'readError':t['error']});for(const z of y)d['push'](formatTaskBindingAdvisory(z));}catch{}}else typeof h['object']!=='string'&&d['push']('pre_publish:\x20publishing\x20machine\x20without\x20inline\x20node\x20data\x20—\x20topology\x20not\x20verifiable\x20in\x20this\x20call;\x20'+'verify\x20nodes/pairs/forwards\x20via\x20machineNode2file\x20BEFORE\x20publish\x20(immutable\x20after\x20publish,\x20IMMUT-001)');d['push']('pre_publish:\x20machine\x20nodes/pairs/forwards\x20become\x20immutable\x20after\x20publish\x20(IMMUT-001)');}if(g==='service'){d['push']('pre_publish:\x20service\x20machine/order_allocators/arbitrations\x20become\x20immutable\x20after\x20publish\x20(IMMUT-002);\x20sales\x20remains\x20modifiable');h['machine']===undefined&&d['push']('pre_publish:\x20\x27machine\x27\x20absent\x20from\x20THIS\x20call\x20(the\x20store\x20may\x20already\x20be\x20bound\x20—\x20verify\x20before\x20assuming\x20otherwise):\x20'+'query_toolkit\x20query_type=\x27service_panorama\x27\x20and\x20read\x20service.machine;\x20an\x20unset\x20machine\x20cannot\x20process\x20orders\x20and\x20CANNOT\x20be\x20fixed\x20after\x20publish\x20(IMMUT-002)');const A=h['order_allocators'];if(A!=null&&(!Array['isArray'](A['allocators'])||A['allocators']['length']===0x0))c['push']('pre_publish:\x20order_allocators\x20is\x20EMPTY\x20in\x20THIS\x20publish\x20call\x20—\x20the\x20publish\x20aborts\x20on-chain\x20'+'(\x22No\x20allocator\x20configured\x22).\x20Declare\x20at\x20least\x20one\x20allocator\x20row\x20in\x20the\x20payload\x20'+'(order_allocators\x20is\x20immutable\x20after\x20publish,\x20IMMUT-002)');else{if(A===undefined){const K=h['object'],L=typeof K==='string'?K['trim']():'';let M=![];if(L!=='')try{const N=await batchQueryObjectsByRef([L],i,!![]),O=N['get'](L['toLowerCase']()),P=O?.['data']??O;if(O!=null&&P!=null){M=!![];const Q=P['order_allocators'],R=Array['isArray'](Q?.['allocators'])?Q['allocators']['length']:0x0;R===0x0?c['push']('pre_publish:\x20service\x20\x22'+L+'\x22\x20has\x20NO\x20order_allocators\x20on\x20chain\x20and\x20none\x20in\x20THIS\x20call\x20—\x20'+'the\x20publish\x20aborts\x20on-chain\x20(\x22No\x20allocator\x20configured\x22).\x20Declare\x20at\x20least\x20one\x20allocator\x20row\x20in\x20the\x20publish\x20payload\x20'+'(order_allocators\x20is\x20immutable\x20after\x20publish,\x20IMMUT-002)'):d['push']('pre_publish:\x20\x27order_allocators\x27\x20absent\x20from\x20THIS\x20call\x20—\x20chain\x20state\x20verified:\x20'+R+'\x20allocator\x20row(s)\x20already\x20configured');}}catch{}!M&&d['push']('pre_publish:\x20\x27order_allocators\x27\x20absent\x20from\x20THIS\x20call\x20(the\x20store\x20may\x20already\x20be\x20configured\x20—\x20verify\x20before\x20assuming\x20otherwise):\x20'+'query_toolkit\x20query_type=\x27service_panorama\x27\x20and\x20read\x20order_allocators;\x20immutable\x20after\x20publish,\x20and\x20a\x20NEVER-configured\x20service\x20aborts\x20the\x20publish\x20on-chain\x20'+'(\x22No\x20allocator\x20configured\x22)\x20(IMMUT-002)');}}if(h['publish']===!![])try{const S=h,T=S['object'],U=T??{};let V=typeof S['machine']==='string'?S['machine']:typeof S['machine']?.['object']==='string'?S['machine']['object']:typeof U['machine']==='string'?U['machine']:'',W=typeof U['permission']==='string'?U['permission']:'';const X=typeof T==='string'?T['trim']():'';if((!V||!W)&&X!==''){const Y=await batchQueryObjectsByRef([X],i,!![]),Z=Y['get'](X['toLowerCase']()),a0=Z?.['data']??Z;if(a0!=null){if(!V&&typeof a0['machine']==='string')V=a0['machine'];if(!W&&typeof a0['permission']==='string')W=a0['permission'];}}if(V!==''&&W!==''){const a1=await fetchMachineNodes(V,i,!![]),a2=collectPermissionIndexes(a1),a3=a2['requiredIndexes']['filter'](a4=>a4>=0x3e8);if(a3['length']>0x0){let a4=W;if(!a4['startsWith']('0x')){const a5=await LocalMark['Instance']()['get'](a4)['catch'](()=>undefined);if(a5?.['address'])a4=a5['address'];}if(a4['startsWith']('0x')){const a6=await query_objects({'objects':[a4],'network':i}),a7=a6?.['objects']?.[0x0];if(a7){const a8={'address':a4,'entity_count':a7['entity_count'],'perm_remark':a7['perm_remark'],'owner':a7['owner']??a7['builder'],'admin':a7['admin']};try{a8['entityPermissions']=await fetchEntityPermissions(a4,i);}catch{}const a9=checkPermissionAuthorization(a3,a8);if(!a9['allAuthorized'])d['push']('pre_publish:\x20bound\x20Machine\x20\x22'+V+'\x22\x20forwards\x20use\x20permission\x20index(es)\x20['+a9['missingIndexes']['join'](',\x20')+']\x20'+('with\x20NO\x20entity\x20grant\x20in\x20the\x20bound\x20Permission\x20\x22'+a4+'\x22\x20—\x20every\x20rail\x20on\x20those\x20indexes\x20aborts\x20(code\x205)\x20until\x20granted\x20')+'(gfm31\x20P05:\x20a\x20store\x20shipped\x20with\x201000/1002\x20ungranted;\x20both\x20edges\x20aborted\x20for\x203.5\x20minutes\x20after\x20publish).\x20'+('Grant\x20NOW\x20via\x20{\x20operation_type:\x27permission\x27,\x20data:'+permissionGrantPayloadJson(a4,a9['missingIndexes'][0x0],['<address>'])+'\x20}\x20')+'(one\x20call\x20per\x20missing\x20index;\x20the\x20op\x20lives\x20under\x20data.table,\x20entity\x20is\x20{entities:[{name_or_address}]})\x20—\x20'+'grantable\x20any\x20time\x20(Permission\x20is\x20NOT\x20frozen\x20by\x20publish,\x20L3),\x20but\x20grant\x20BEFORE\x20first\x20orders\x20to\x20keep\x20the\x20build\x20one-pass.');else!a9['allVerified']&&d['push']('pre_publish:\x20could\x20NOT\x20verify\x20grants\x20for\x20permission\x20index(es)\x20['+a3['join'](',\x20')+']\x20on\x20Permission\x20\x22'+a4+'\x22\x20'+'(PermissionPerm\x20entity\x20table\x20unreadable)\x20—\x20they\x20are\x20NOT\x20confirmed\x20authorized.\x20Verify\x20via\x20onchain_table\x20listing\x20the\x20Permission\x27s\x20'+'perm\x20entries\x20before\x20first\x20orders\x20(gfm31\x20P05\x20dead-rail\x20window).');}}}}}catch{}if(h['publish']===!![])try{const aa=h,ab=aa['object']??{};let ac=typeof aa['machine']==='string'&&aa['machine']['trim']()!==''?aa['machine']['trim']():typeof aa['machine']?.['object']==='string'?aa['machine']['object']:typeof ab['machine']==='string'&&ab['machine']!==''?ab['machine']:'';const ad=typeof aa['object']==='string'?aa['object']['trim']():'';let ae=ad;if(ae!==''){const af=await batchQueryObjectsByRef([ae],i,!![]),ag=af['get'](ae['toLowerCase']()),ah=ag?.['data']??ag;if(ag?.['object'])ae=String(ag['object']);ac===''&&typeof ah?.['machine']==='string'&&(ac=ah['machine']);}if(ac!==''&&ae['startsWith']('0x')){const ai=await lintMachineGuardServiceConstants(ac,ae,i,'pre_publish');c['push'](...ai['critical']),d['push'](...ai['warnings']);}}catch(aj){d['push']('pre_publish:\x20guard-constant\x20consistency\x20check\x20failed\x20'+('('+(aj instanceof Error?aj['message']:String(aj))+')\x20—\x20cross-service\x20guard\x20pins\x20UNVERIFIED\x20(mtb-tn-261030\x20P0-3)'));}const B=h,C=numericBalance(B['compensation_fund_add']?.['balance']);if(C!==undefined&&C>0x0){const ak=B['sales'],al=(Array['isArray'](ak?.['sales'])?ak['sales']:[])['map'](am=>numericBalance(am?.['price']?.['balance']))['filter'](am=>am!==undefined);if(al['length']>0x0){const am=al['reduce']((ao,ap)=>ao+ap,0x0),an=am*0x3;if(an>0x0){const ao=C/an,ap='fund='+C+',\x20highest-SKU\x20single\x20order=Σ(price×1)='+am+'\x20(quantity\x20set\x20at\x20buy\x20time),\x20'+('award\x20cap=3×order='+an+'\x20(MAX_INDEMNITY_MULTIPLE),\x20coverage='+ao['toFixed'](0x2));ao<0x1&&d['push']('pre_publish:\x20compensation-fund\x20coverage\x20below\x20the\x20award\x20ceiling\x20—\x20'+ap+'\x20<\x201.\x20'+'Disclosure\x20only\x20(b6-11):\x20this\x20does\x20NOT\x20block\x20publish.\x20Per-order\x20coverage\x20is\x20enforced\x20at\x20'+'BUY\x20time\x20—\x20orders\x20are\x20rejected\x20while\x20the\x20fund\x20cannot\x20cover\x203x\x20that\x20order,\x20so\x20top\x20up\x20via\x20'+'compensation_fund_add\x20as\x20your\x20catalog\x27s\x20order\x20sizes\x20require\x20(no\x20cross-SKU\x20subsidy).\x20'+'Awards\x20beyond\x20the\x20fund\x20abort\x20the\x20claim\x20(code\x2027)\x20—\x20settlement\x20is\x20all-or-nothing,\x20nothing\x20partial\x20is\x20paid;\x20top\x20up\x20and\x20the\x20winner\x20retries.');}}else d['push']('pre_publish:\x20compensation_fund_add\x20present\x20but\x20\x27sales\x27\x20absent\x20from\x20THIS\x20call\x20(sales\x20may\x20already\x20be\x20configured\x20—\x20verify,\x20do\x20not\x20assume):\x20'+'the\x20fund\x20should\x20cover\x203×\x20each\x20order\x20you\x20want\x20to\x20sell\x20(MAX_INDEMNITY_MULTIPLE=3;\x20enforced\x20per-order\x20at\x20buy\x20time).\x20'+'query_toolkit\x20query_type=\x27service_panorama\x27\x20to\x20read\x20the\x20current\x20sales\x20prices,\x20then\x20re-check\x20coverage.');}const D=B['sales']?.['sales'];if(D!==undefined){const aq=typeof B['account']==='string'&&B['account']['trim']()!==''?B['account']['trim']():undefined,ar=lintSalesWipBindings(D,aq);c['push'](...ar['critical']),d['push'](...ar['warnings']);}const E=await lintAllocatorGuards(B,i);c['push'](...E['critical']),d['push'](...E['warnings']);const F=B['order_allocators']!==undefined||B['order_allocators_append']!==undefined,G=B['publish']===!![]&&typeof B['object']==='string'&&B['object']['trim']()!=='';if(F||G){const as=B['machine'],at=typeof as==='string'&&as['trim']()!=='';if(at||G){const au=await lintServiceEscrowExitCoverage(at?as:undefined,[B['order_allocators'],B['order_allocators_append']],i,G?B['object']:undefined);c['push'](...au['critical']),d['push'](...au['warnings']);}else d['push']('pre_publish:\x20\x27machine\x27\x20absent\x20from\x20THIS\x20call\x20—\x20escrow-exit\x20terminal\x20coverage\x20not\x20auditable\x20here;\x20'+'if\x20the\x20machine\x20is\x20already\x20bound,\x20every\x20machine\x20terminal\x20needs\x20an\x20allocator\x20rail\x20(immutable\x20after\x20publish,\x20IMMUT-002)');}const H=await checkArbitrationNeutrality(B,i);c['push'](...H['critical']),d['push'](...H['warnings']);if(B['arbitrations']!==undefined||B['arbitrations_append']!==undefined){const av=await lintAllocatorRailPairing(B,i);c['push'](...av['critical']),d['push'](...av['warnings']);}const I=await lintGuardBindingSemantics(B,extractOperationType(a,b),i);c['push'](...I['critical']),d['push'](...I['warnings']);const J=new Set(rewardRefsOf(B)['map'](aw=>aw['toLowerCase']()));if(J['size']===0x0&&B['publish']===!![]&&typeof B['object']==='string')try{const aw=await batchQueryObjectsByIds([B['object']],i,!![]),ax=(aw??[])[0x0],ay=ax?.['data']??ax,az=Array['isArray'](ay?.['rewards'])?ay['rewards']:[];for(const aA of az){if(typeof aA==='string'&&aA['trim']()!=='')J['add'](aA['toLowerCase']());}}catch(aB){d['push']('pre_publish:\x20reward-funding\x20gate\x20skipped\x20—\x20could\x20not\x20read\x20the\x20service\x27s\x20on-chain\x20rewards\x20'+('('+(aB instanceof Error?aB['message']:String(aB))+');\x20verify\x20every\x20attached\x20Reward\x20pool\x20is\x20funded\x20')+'up\x20to\x20expected_orders\x20x\x20per-claim\x20amount\x20BEFORE\x20publish');}if(J['size']>0x0)try{const aC=await batchQueryObjectsByIds([...J['values']()],i,!![]),aD=new Map();for(const aE of aC??[]){const aF=aE;if(aF?.['type']!=='Reward')continue;for(const aG of[aF['query_name'],aF['object']]){if(typeof aG==='string'&&aG!=='')aD['set'](aG['toLowerCase'](),aF);}}for(const aH of J){const aI=aD['get'](aH);if(!aI){d['push']('pre_publish:\x20attached\x20reward\x20\x22'+aH+'\x22\x20not\x20found\x20on-chain\x20—\x20funding\x20check\x20skipped\x20for\x20it;\x20'+'an\x20unfunded\x20pool\x20publishes\x20silently\x20and\x20claims\x20abort\x20when\x20it\x20drains');continue;}const aJ=serviceRewardsUnfundedDetail(aI);aJ&&c['push']('pre_publish:\x20OFN-C\x20reward-pool\x20funding\x20—\x20reward\x20\x22'+aH+'\x22:\x20'+aJ);}}catch(aK){d['push']('pre_publish:\x20reward-funding\x20gate\x20skipped\x20—\x20could\x20not\x20query\x20reward\x20objects\x20'+('('+(aK instanceof Error?aK['message']:String(aK))+');\x20verify\x20every\x20attached\x20Reward\x20pool\x20is\x20funded\x20')+'up\x20to\x20expected_orders\x20x\x20per-claim\x20amount\x20BEFORE\x20publish');}}return{'critical':c,'warnings':d};}function readHarnessOverrideNote(b){if(typeof b!=='object'||b===null)return undefined;const c=b,d=c['harness_override_note'];if(typeof d!=='string')return undefined;const e=d['trim']();if(!e)return undefined;return delete c['harness_override_note'],e;}function preBuyRecoveryHint(a){const b=a['map']((d,e)=>'leg\x20'+(e+0x1)+':\x20'+d+'\x0a'+'\x20\x20appeal:\x20resolve\x20THIS\x20leg\x20only\x20(see\x20the\x20finding)\x20—\x20or,\x20after\x20verifying\x20it\x20is\x20safe\x20for\x20this\x20purchase,\x20'+('resend\x20the\x20buy\x20with\x20a\x20top-level\x20harness_override_note\x20explaining\x20why\x20leg\x20'+(e+0x1)+'\x20is\x20acceptable.'))['join']('\x0a');return'Do\x20NOT\x20retry\x20unchanged\x20against\x20the\x20current\x20service\x20state.\x20One\x20entry\x20per\x20blocking\x20finding:\x0a'+b+'\x0aConfirm\x20each\x20leg\x20against\x20the\x20service\x27s\x20effective\x20allocator\x20plan\x20(query_toolkit\x20query_type=\x27service_panorama\x27,\x20'+'field\x20order_allocators):\x20the\x20merchant\x20fixes\x20the\x20plan\x20(post-publish\x20append\x20is\x20allowed)\x20or\x20the\x20guard\x20definitions\x20'+'are\x20repaired.\x20A\x20harness_override_note\x20leaves\x20an\x20audit\x20trail\x20but\x20does\x20NOT\x20change\x20on-chain\x20state\x20—\x20a\x20failing\x20'+'payment\x20still\x20burns\x20gas.';}function buildHarnessBlockResult(a,b,c,d,e,f){const g=[...c['map'](i=>'CRITICAL:\x20'+i),...d['map'](i=>'WARN:\x20'+i)]['join']('\x0a'),h='Error:\x20'+b+(g?'\x0a'+g:'')+'\x0aRecovery:\x20'+f;return{'content':[{'type':'text','text':h}],'structuredContent':{'outcome':'failed','result':{'type':'error','error':b+'\x20[gate='+a+']','error_code':e,'retryable':![],'recovery_hint':f},'message':h,'recovery':recover(e,'harness:'+a)}};}function extractCriticalFindingCount(a){const b=a?.['structuredContent'];if(!b)return 0x0;const c=b['semantic'],d=c?.['summary'];if(typeof d?.['critical_count']==='number'&&d['critical_count']>0x0)return d['critical_count'];const e=b['findings']??c?.['findings'];if(Array['isArray'](e))return e['filter'](h=>h?.['severity']==='error')['length'];const f=a?.['content']?.['map'](h=>'text'in h?h['text']:'')['join']('\x0a')??'',g=f['match'](/\[AUDIT ERROR\]/g);return g?g['length']:0x0;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wowok/agent-mcp",
3
- "version": "3.4.1",
3
+ "version": "3.4.2",
4
4
  "wowok": {
5
5
  "upgrade": {
6
6
  "enforce": true