@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{FEE_PARAM_BINDINGS}from'./fee-param-bindings.js';const hours=a=>a/0x3c,days=a=>a/0x5a0;export const TEMPLATE_TEST_PROFILES=[{'template':'delivery/restaurant-marketplace','note':'Lifecycle\x20windows\x20to\x20minutes:\x20auto_confirm\x201h→6m,\x20claim\x2024h→12m,\x20settle\x2024h→15m\x20'+'(settle\x20>=\x20claim\x20preserved),\x20T-02\x20return\x20window\x2024h→12m\x20(settle\x2015m\x20>=\x20return\x2012m\x20'+'preserves\x20R-WINDOW-MATH),\x20INV-FD-2\x20dispatch\x20window\x201h→2m\x20(no\x20window-math\x20coupling\x20—\x20'+'any\x20positive\x20value\x20unbars\x20the\x20force-cancel).\x20No\x20absolute\x20cutoff\x20on\x20this\x20shape\x20—\x20'+'nothing\x20else\x20to\x20supply.','inputs':{'auto_confirm_hours':hours(0x6),'claim_window_hours':hours(0xc),'settle_hours':hours(0xf),'return_window_hours':hours(0xc),'dispatch_window_hours':hours(0x2)}},{'template':'group_buy/platform-supplied-pickup','note':'Full\x20pickup\x20lifecycle\x20to\x20minutes:\x20pickup\x20window\x2048h→10m,\x20claim\x2024h→5m,\x20return\x2048h→10m,\x20'+'lost-return\x20transit\x207d→35m,\x20settle\x20216h→50m\x20(=\x20claim\x20+\x20return\x20+\x20transit\x20sequenced\x20—\x20the\x20'+'ktt3\x20F-05\x20R-WINDOW-MATH\x20shape\x20with\x20identical\x20ratios).\x20The\x20round\x27s\x20shared\x20ABSOLUTE\x20cutoff\x20'+'(cutoff_ms\x20input)\x20is\x20build-time:\x20supply\x20now\x20+\x20cutoff_lead_minutes.','inputs':{'pickup_window_hours':hours(0xa),'claim_window_hours':hours(0x5),'return_window_hours':hours(0xa),'return_transit_days':days(0x23),'settle_hours':hours(0x32)},'cutoff_lead_minutes':0xf},{'template':'group_buy/leader-sourced-community','note':'Threshold-campaign\x20lifecycle\x20to\x20minutes:\x20claim\x2024h→5m,\x20return\x2048h→10m,\x20transit\x207d→35m.\x20'+'KEPT\x20AT\x20SHIPPED\x20DEFAULT:\x20settle_hours\x20(216h)\x20—\x20no\x20SCALED\x20binding\x20carries\x20it,\x20a\x20fractional\x20'+'value\x20would\x20truncate\x20to\x20zero\x20in\x20the\x20u256\x20guard\x20literal;\x20the\x20uncompressed\x20settle\x20only\x20'+'WIDENS\x20the\x20sequenced-coverage\x20margin\x20(216h\x20>=\x20compressed\x20return+transit),\x20so\x20R-WINDOW-MATH\x20'+'holds.\x20The\x20shared\x20deadline\x20rides\x20campaign_deadline_ms\x20(build-time\x20absolute)\x20—\x20'+'campaign_duration_days\x20stays\x20at\x20its\x20shipped\x20default\x20because\x20the\x20absolute\x20gate\x20is\x20the\x20'+'authoritative\x20one.','inputs':{'claim_window_hours':hours(0x5),'return_window_hours':hours(0xa),'return_transit_days':days(0x23)},'cutoff_lead_minutes':0xf}];const BY_ID=new Map(TEMPLATE_TEST_PROFILES['map'](a=>[a['template'],a]));export function templateTestProfile(a){return BY_ID['get'](a);}export function templateTestProfileInputs(a){return BY_ID['get'](a)?.['inputs'];}export function templateTestProfileIssues(a){const b=[],c=a(),d=new Map(c['map'](e=>[e['id'],e]));for(const e of TEMPLATE_TEST_PROFILES){const f=d['get'](e['template']);if(f===undefined){b['push']({'template':e['template'],'problem':'template\x20does\x20not\x20exist\x20in\x20the\x20catalog'});continue;}for(const [g,h]of Object['entries'](e['inputs'])){if(f['fee_params'][g]===undefined){b['push']({'template':e['template'],'problem':'fee_param\x20\x27'+g+'\x27\x20is\x20not\x20declared\x20by\x20the\x20template'});continue;}if(!(h>0x0)||!Number['isFinite'](h)){b['push']({'template':e['template'],'problem':'override\x20\x27'+g+'\x27='+String(h)+'\x20is\x20not\x20a\x20positive\x20finite\x20number'});continue;}const i=g['endsWith']('_days')?'days':g['endsWith']('_hours')?'hours':undefined;if(i===undefined){b['push']({'template':e['template'],'problem':'override\x20\x27'+g+'\x27\x20is\x20not\x20a\x20window\x20param\x20(_hours/_days)'});continue;}const j=FEE_PARAM_BINDINGS['some'](k=>k['template']===e['template']&&k['param']===g&&k['scale']!==undefined);!j&&b['push']({'template':e['template'],'problem':'override\x20\x27'+g+'\x27\x20has\x20no\x20SCALED\x20fee-param\x20binding\x20—\x20a\x20fractional\x20value\x20would\x20land\x20as\x20a\x20truncated\x20guard\x20literal'});}}return b;}
1
+ import{FEE_PARAM_BINDINGS}from'./fee-param-bindings.js';const hours=a=>a/0x3c,days=a=>a/0x5a0;export const TEMPLATE_TEST_PROFILES=[{'template':'delivery/restaurant-marketplace','note':'Lifecycle\x20windows\x20to\x20minutes:\x20auto_confirm\x201h→6m,\x20claim\x2024h→12m,\x20settle\x2024h→15m\x20'+'(settle\x20>=\x20claim\x20preserved),\x20T-02\x20return\x20window\x2024h→12m\x20(settle\x2015m\x20>=\x20return\x2012m\x20'+'preserves\x20R-WINDOW-MATH),\x20INV-FD-2\x20dispatch\x20window\x201h→2m\x20(no\x20window-math\x20coupling\x20—\x20'+'any\x20positive\x20value\x20unbars\x20the\x20force-cancel).\x20No\x20absolute\x20cutoff\x20on\x20this\x20shape\x20—\x20'+'nothing\x20else\x20to\x20supply.','inputs':{'auto_confirm_hours':hours(0x6),'claim_window_hours':hours(0xc),'settle_hours':hours(0xf),'return_window_hours':hours(0xc),'dispatch_window_hours':hours(0x2)}},{'template':'group_buy/platform-supplied-pickup','note':'Full\x20pickup\x20lifecycle\x20to\x20minutes:\x20pickup\x20window\x2048h→10m,\x20claim\x2024h→5m,\x20return\x2048h→10m,\x20'+'lost-return\x20transit\x207d→35m,\x20return-receipt\x20silence\x207d→5m\x20(the\x20F-TBPM9-O5-02\x20'+'ReturnReceiptTimeoutByKeeper\x20clock\x20—\x20also\x20compressed,\x20it\x20is\x20a\x20buyer\x20window\x20under\x20'+'R-WINDOW-MATH),\x20settle\x20216h→50m\x20(=\x20claim\x20+\x20return\x20+\x20transit\x20sequenced\x20—\x20the\x20'+'ktt3\x20F-05\x20R-WINDOW-MATH\x20shape\x20with\x20identical\x20ratios).\x20The\x20round\x27s\x20shared\x20ABSOLUTE\x20cutoff\x20'+'(cutoff_ms\x20input)\x20is\x20build-time:\x20supply\x20now\x20+\x20cutoff_lead_minutes.','inputs':{'pickup_window_hours':hours(0xa),'claim_window_hours':hours(0x5),'return_window_hours':hours(0xa),'return_transit_days':days(0x23),'return_response_days':days(0x5),'settle_hours':hours(0x32)},'cutoff_lead_minutes':0xf},{'template':'group_buy/leader-sourced-community','note':'Threshold-campaign\x20lifecycle\x20to\x20minutes:\x20claim\x2024h→5m,\x20return\x2048h→10m,\x20transit\x207d→35m.\x20'+'KEPT\x20AT\x20SHIPPED\x20DEFAULT:\x20settle_hours\x20(216h)\x20—\x20no\x20SCALED\x20binding\x20carries\x20it,\x20a\x20fractional\x20'+'value\x20would\x20truncate\x20to\x20zero\x20in\x20the\x20u256\x20guard\x20literal;\x20the\x20uncompressed\x20settle\x20only\x20'+'WIDENS\x20the\x20sequenced-coverage\x20margin\x20(216h\x20>=\x20compressed\x20return+transit),\x20so\x20R-WINDOW-MATH\x20'+'holds.\x20The\x20shared\x20deadline\x20rides\x20campaign_deadline_ms\x20(build-time\x20absolute)\x20—\x20'+'campaign_duration_days\x20stays\x20at\x20its\x20shipped\x20default\x20because\x20the\x20absolute\x20gate\x20is\x20the\x20'+'authoritative\x20one.','inputs':{'claim_window_hours':hours(0x5),'return_window_hours':hours(0xa),'return_transit_days':days(0x23)},'cutoff_lead_minutes':0xf}];const BY_ID=new Map(TEMPLATE_TEST_PROFILES['map'](a=>[a['template'],a]));export function templateTestProfile(a){return BY_ID['get'](a);}export function templateTestProfileInputs(a){return BY_ID['get'](a)?.['inputs'];}export function templateTestProfileIssues(a){const b=[],c=a(),d=new Map(c['map'](e=>[e['id'],e]));for(const e of TEMPLATE_TEST_PROFILES){const f=d['get'](e['template']);if(f===undefined){b['push']({'template':e['template'],'problem':'template\x20does\x20not\x20exist\x20in\x20the\x20catalog'});continue;}for(const [g,h]of Object['entries'](e['inputs'])){if(f['fee_params'][g]===undefined){b['push']({'template':e['template'],'problem':'fee_param\x20\x27'+g+'\x27\x20is\x20not\x20declared\x20by\x20the\x20template'});continue;}if(!(h>0x0)||!Number['isFinite'](h)){b['push']({'template':e['template'],'problem':'override\x20\x27'+g+'\x27='+String(h)+'\x20is\x20not\x20a\x20positive\x20finite\x20number'});continue;}const i=g['endsWith']('_days')?'days':g['endsWith']('_hours')?'hours':undefined;if(i===undefined){b['push']({'template':e['template'],'problem':'override\x20\x27'+g+'\x27\x20is\x20not\x20a\x20window\x20param\x20(_hours/_days)'});continue;}const j=FEE_PARAM_BINDINGS['some'](k=>k['template']===e['template']&&k['param']===g&&k['scale']!==undefined);!j&&b['push']({'template':e['template'],'problem':'override\x20\x27'+g+'\x27\x20has\x20no\x20SCALED\x20fee-param\x20binding\x20—\x20a\x20fractional\x20value\x20would\x20land\x20as\x20a\x20truncated\x20guard\x20literal'});}}return b;}
@@ -15,6 +15,10 @@ export interface CustomerInterestInput {
15
15
  terminal?: "completed" | "refunded" | null;
16
16
  stalled_hours?: number;
17
17
  unread_messages?: number;
18
+ auto_accept?: {
19
+ hours_left: number;
20
+ accept_node: string;
21
+ };
18
22
  allocation_payoff?: AllocatorPayoff[];
19
23
  }
20
24
  export interface CustomerInterestAnalysis {
@@ -1 +1 @@
1
- export function analyzeCustomerInterest(a){const b=[],c=[],d=[],e=[],f=a['token_type']?'\x20('+a['token_type']+')':'';if(a['terminal']==='completed')b['push']('Order\x20reached\x20a\x20completion\x20terminal:\x20escrowed\x20funds\x20were\x20released\x20to\x20the\x20merchant.\x20'+'Verify\x20the\x20deliverable\x20matched\x20the\x20agreement\x20BEFORE\x20confirming\x20—\x20after\x20release,\x20refunds\x20are\x20harder.');else{if(a['terminal']==='refunded')b['push']('Order\x20reached\x20a\x20refund\x20terminal:\x20escrowed\x20funds\x20return\x20to\x20you\x20per\x20the\x20Allocation\x20configuration.');else a['order_amount']!=null&&b['push'](a['order_amount']+'\x20raw\x20units'+f+'\x20of\x20YOUR\x20money\x20sit\x20escrowed\x20in\x20the\x20Order\x20—\x20'+'released\x20to\x20the\x20merchant\x20ONLY\x20when\x20the\x20workflow\x20advances\x20to\x20completion;\x20returned\x20to\x20you\x20ONLY\x20via\x20a\x20refund\x20path.');}if(a['compensation_fund']!=null&&a['compensation_fund']!=='0'){b['push']('Merchant\x20compensation_fund\x20holds\x20'+a['compensation_fund']+'\x20raw\x20units'+f+'\x20—\x20your\x20recourse\x20if\x20arbitration\x20awards\x20indemnity\x20(paid\x20FROM\x20it).\x20'+'An\x20award\x20is\x20capped\x20at\x203x\x20the\x20order\x20amount\x20(MAX_INDEMNITY_MULTIPLE),\x20so\x20treat\x20the\x20fund\x20above\x203x\x20as\x20the\x20'+'merchant\x27s\x20real\x20exposure\x20and\x20below\x203x\x20as\x20an\x20under-funded\x20promise\x20you\x20should\x20not\x20rely\x20on.');if(a['order_amount']!=null){const j=BigInt(a['order_amount']),k=BigInt(a['compensation_fund']),l=j*0x3n;k<l&&b['push']('⚠️\x20Fund\x20under-coverage:\x20compensation_fund\x20'+a['compensation_fund']+'\x20<\x203x\x20this\x20order\x20('+l['toString']()+').\x20'+'If\x20you\x20win\x20arbitration\x20at\x20the\x20full\x203x\x20ceiling,\x20the\x20claim\x20aborts\x20unpayable\x20until\x20the\x20merchant\x20tops\x20up.\x20'+'Consider\x20a\x20smaller\x20order\x20or\x20confirm\x20the\x20merchant\x20has\x20topped\x20up\x20before\x20relying\x20on\x20arbitration.');}}else b['push']('Merchant\x20compensation_fund\x20is\x20EMPTY\x20—\x20arbitration\x20indemnity\x20is\x20unenforceable;\x20your\x20protection\x20is\x20the\x20refund\x20path\x20+\x20on-chain\x20reputation\x20only.');a['operable']['length']>0x0&&c['push']('YOU\x20can\x20execute\x20'+a['operable']['map'](m=>'\x27'+m['name']+'\x27')['join'](',\x20')+'\x20right\x20now\x20—\x20'+'your\x20confirmation\x20is\x20the\x20fund-release\x20trigger:\x20only\x20confirm\x20when\x20the\x20deliverable\x20matches\x20the\x20agreement.');a['terminal']==null&&a['operable']['length']===0x0&&a['waiting_on']['length']>0x0&&c['push']('No\x20forward\x20is\x20yours\x20at\x20this\x20node\x20—\x20you\x20carry\x20no\x20execution\x20responsibility\x20here;\x20'+'delivery\x20depends\x20on\x20the\x20merchant-side\x20roles\x20in\x20waiting_on.');a['operable']['length']>0x0&&a['terminal']==null&&d['push']('Your\x20confirmation\x20is\x20your\x20LEVERAGE:\x20escrowed\x20money\x20stays\x20locked\x20until\x20YOU\x20act\x20—\x20'+'do\x20not\x20confirm\x20before\x20verifying\x20the\x20deliverable\x20(WIP\x20hash\x20/\x20receipt).');const g=a['waiting_on']['some'](m=>m['role']!=='OrderHolder\x20(customer)');g&&a['terminal']==null&&d['push']('The\x20workflow\x20waits\x20on\x20merchant-side\x20roles:\x20a\x20Messenger\x20nudge\x20accelerates\x20delivery\x20'+'and\x20the\x20conversation\x20is\x20recorded\x20as\x20WTS\x20evidence\x20protecting\x20you\x20in\x20a\x20dispute.');a['arbitration_bound']&&a['terminal']==null&&(d['push']('A\x20dispute\x20path\x20exists:\x20if\x20the\x20merchant\x20stalls\x20or\x20under-delivers,\x20open\x20arbitration\x20—\x20'+'your\x20evidence\x20(WTS\x20+\x20WIP\x20hash)\x20decides\x20the\x20outcome.'),d['push']('Pick\x20your\x20dispute\x20track\x20BEFORE\x20you\x20collect\x20anything.\x20The\x20refund\x20rail\x20(escrow\x20→\x20you)\x20and\x20the\x20'+'compensation\x20rail\x20(merchant\x27s\x20fund\x20→\x20you)\x20are\x20independent\x20chains,\x20but\x20the\x20indemnity\x20is\x20NET\x20of\x20what\x20'+'you\x20have\x20already\x20recovered\x20—\x20so\x20if\x20you\x20take\x20a\x20full\x20refund\x20first,\x20a\x20well-advised\x20arbitrator\x20will\x20'+'typically\x20award\x20~0\x20on\x20top\x20of\x20it.\x20Decide\x20refund-only\x20vs\x20arbitration\x20first;\x20chasing\x20both\x20usually\x20nets\x20'+'you\x20the\x20same\x20money\x20with\x20a\x20weaker,\x20more\x20challengeable\x20case.'),d['push']('File\x20through\x20an\x20arbitrator\x20the\x20MERCHANT\x20already\x20accepts\x20(the\x20Service\x27s\x20arbitration\x20list).\x20A\x20buyer\x20'+'cannot\x20add\x20its\x20own\x20venue:\x20an\x20award\x20from\x20an\x20unlisted\x20arbitrator\x20is\x20uncollectable\x20(claim\x20aborts\x2039),\x20so\x20'+'the\x20fee\x20you\x20pay\x20buys\x20a\x20ruling\x20nobody\x20has\x20to\x20honour.'));(a['unread_messages']??0x0)>0x0&&d['push'](a['unread_messages']+'\x20unread\x20Messenger\x20message(s)\x20—\x20timely\x20replies\x20protect\x20your\x20position\x20(WTS\x20record).');a['allocation_payoff']?.['some'](m=>m['positions']['caller']==='gains')&&e['push']('An\x20allocator\x20entry\x20has\x20an\x20unbound\x20Signer\x20recipient\x20(conservative\x20payoff:\x20caller\x20gains\x20—\x20RC-FIND-01):\x20'+'a\x20third\x20party\x20passing\x20that\x20guard\x20could\x20receive\x20settlement\x20funds.\x20Verify\x20whether\x20the\x20guard\x20binds\x20the\x20Signer.');a['allocation_payoff']?.['some'](m=>m['positions']['customer']==='conditional')&&b['push']('Object-address\x20slots\x20settle\x20to\x20the\x20submitted\x20order\x20itself:\x20you\x20receive\x20them\x20as\x20the\x20order\x20owner\x20'+'(object\x20receipt\x20=\x20owner\x20receipt).');a['order_amount']!=null&&a['terminal']==null&&e['push'](a['order_amount']+'\x20raw\x20units'+f+'\x20are\x20at\x20risk\x20while\x20escrowed\x20—\x20if\x20the\x20merchant\x20stalls\x20beyond\x20the\x20timeout,\x20'+'pursue\x20refund/arbitration\x20rather\x20than\x20letting\x20the\x20order\x20stall\x20indefinitely.');a['stalled_hours']!=null&&a['stalled_hours']>0x18&&a['terminal']==null&&e['push']('Order\x20stalled\x20'+Math['round'](a['stalled_hours'])+'h:\x20your\x20leverage\x20is\x20compensation_fund\x20(if\x20any)\x20+\x20arbitration\x20+\x20on-chain\x20reputation\x20(dislike)\x20—\x20in\x20that\x20order.');a['terminal']==='refunded'&&e['push']('Refund\x20executed:\x20funds\x20returned.\x20Remaining\x20stakes\x20are\x20reputational\x20—\x20a\x20dislike\x20vote\x20is\x20your\x20residual\x20recourse\x20if\x20the\x20merchant\x20behaved\x20unfairly.');const h=a['terminal']==='completed'?'order\x20completed\x20—\x20funds\x20released\x20(verify\x20deliverable\x20matched\x20before\x20confirming\x20next\x20time)':a['terminal']==='refunded'?'order\x20refunded\x20—\x20funds\x20returned':a['operable']['length']>0x0?'YOU\x20can\x20act\x20('+a['operable']['length']+'\x20forward(s))\x20—\x20your\x20confirmation\x20releases\x20funds,\x20verify\x20first':'waiting\x20on\x20'+(a['waiting_on']['map'](m=>m['role'])['join'](',\x20')||'others')+'\x20—\x20monitor\x20and\x20nudge',i='Customer\x20interest\x20at\x20node\x20\x27'+(a['current_node']||'(entry)')+'\x27:\x20'+h+'.\x20'+'All\x20options\x20above\x20are\x20informational\x20—\x20the\x20decision\x20is\x20yours.';return{'fund_flow':b,'responsibility':c,'leverage':d,'stakes':e,'summary':i};}
1
+ export function analyzeCustomerInterest(a){const b=[],c=[],d=[],e=[],f=a['token_type']?'\x20('+a['token_type']+')':'';if(a['terminal']==='completed')b['push']('Order\x20reached\x20a\x20completion\x20terminal:\x20escrowed\x20funds\x20were\x20released\x20to\x20the\x20merchant.\x20'+'Verify\x20the\x20deliverable\x20matched\x20the\x20agreement\x20BEFORE\x20confirming\x20—\x20after\x20release,\x20refunds\x20are\x20harder.');else{if(a['terminal']==='refunded')b['push']('Order\x20reached\x20a\x20refund\x20terminal:\x20escrowed\x20funds\x20return\x20to\x20you\x20per\x20the\x20Allocation\x20configuration.');else a['order_amount']!=null&&b['push'](a['order_amount']+'\x20raw\x20units'+f+'\x20of\x20YOUR\x20money\x20sit\x20escrowed\x20in\x20the\x20Order\x20—\x20'+'released\x20to\x20the\x20merchant\x20ONLY\x20when\x20the\x20workflow\x20advances\x20to\x20completion;\x20returned\x20to\x20you\x20ONLY\x20via\x20a\x20refund\x20path.');}if(a['compensation_fund']!=null&&a['compensation_fund']!=='0'){b['push']('Merchant\x20compensation_fund\x20holds\x20'+a['compensation_fund']+'\x20raw\x20units'+f+'\x20—\x20your\x20recourse\x20if\x20arbitration\x20awards\x20indemnity\x20(paid\x20FROM\x20it).\x20'+'An\x20award\x20is\x20capped\x20at\x203x\x20the\x20order\x20amount\x20(MAX_INDEMNITY_MULTIPLE),\x20so\x20treat\x20the\x20fund\x20above\x203x\x20as\x20the\x20'+'merchant\x27s\x20real\x20exposure\x20and\x20below\x203x\x20as\x20an\x20under-funded\x20promise\x20you\x20should\x20not\x20rely\x20on.');if(a['order_amount']!=null){const k=BigInt(a['order_amount']),l=BigInt(a['compensation_fund']),m=k*0x3n;l<m&&b['push']('⚠️\x20Fund\x20under-coverage:\x20compensation_fund\x20'+a['compensation_fund']+'\x20<\x203x\x20this\x20order\x20('+m['toString']()+').\x20'+'If\x20you\x20win\x20arbitration\x20at\x20the\x20full\x203x\x20ceiling,\x20the\x20claim\x20aborts\x20unpayable\x20until\x20the\x20merchant\x20tops\x20up.\x20'+'Consider\x20a\x20smaller\x20order\x20or\x20confirm\x20the\x20merchant\x20has\x20topped\x20up\x20before\x20relying\x20on\x20arbitration.');}}else b['push']('Merchant\x20compensation_fund\x20is\x20EMPTY\x20—\x20arbitration\x20indemnity\x20is\x20unenforceable;\x20your\x20protection\x20is\x20the\x20refund\x20path\x20+\x20on-chain\x20reputation\x20only.');a['operable']['length']>0x0&&c['push']('YOU\x20can\x20execute\x20'+a['operable']['map'](n=>'\x27'+n['name']+'\x27')['join'](',\x20')+'\x20right\x20now\x20—\x20'+'your\x20confirmation\x20is\x20the\x20fund-release\x20trigger:\x20only\x20confirm\x20when\x20the\x20deliverable\x20matches\x20the\x20agreement.');a['terminal']==null&&a['operable']['length']===0x0&&a['waiting_on']['length']>0x0&&c['push']('No\x20forward\x20is\x20yours\x20at\x20this\x20node\x20—\x20you\x20carry\x20no\x20execution\x20responsibility\x20here;\x20'+'delivery\x20depends\x20on\x20the\x20merchant-side\x20roles\x20in\x20waiting_on.');a['operable']['length']>0x0&&a['terminal']==null&&d['push']('Your\x20confirmation\x20is\x20your\x20LEVERAGE:\x20escrowed\x20money\x20stays\x20locked\x20until\x20YOU\x20act\x20—\x20'+'do\x20not\x20confirm\x20before\x20verifying\x20the\x20deliverable\x20(WIP\x20hash\x20/\x20receipt).');const g=a['waiting_on']['some'](n=>n['role']!=='OrderHolder\x20(customer)');g&&a['terminal']==null&&d['push']('The\x20workflow\x20waits\x20on\x20merchant-side\x20roles:\x20a\x20Messenger\x20nudge\x20accelerates\x20delivery\x20'+'and\x20the\x20conversation\x20is\x20recorded\x20as\x20WTS\x20evidence\x20protecting\x20you\x20in\x20a\x20dispute.');a['arbitration_bound']&&a['terminal']==null&&(d['push']('A\x20dispute\x20path\x20exists:\x20if\x20the\x20merchant\x20stalls\x20or\x20under-delivers,\x20open\x20arbitration\x20—\x20'+'your\x20evidence\x20(WTS\x20+\x20WIP\x20hash)\x20decides\x20the\x20outcome.'),d['push']('Pick\x20your\x20dispute\x20track\x20BEFORE\x20you\x20collect\x20anything.\x20The\x20refund\x20rail\x20(escrow\x20→\x20you)\x20and\x20the\x20'+'compensation\x20rail\x20(merchant\x27s\x20fund\x20→\x20you)\x20are\x20independent\x20chains,\x20but\x20the\x20indemnity\x20is\x20NET\x20of\x20what\x20'+'you\x20have\x20already\x20recovered\x20—\x20so\x20if\x20you\x20take\x20a\x20full\x20refund\x20first,\x20a\x20well-advised\x20arbitrator\x20will\x20'+'typically\x20award\x20~0\x20on\x20top\x20of\x20it.\x20Decide\x20refund-only\x20vs\x20arbitration\x20first;\x20chasing\x20both\x20usually\x20nets\x20'+'you\x20the\x20same\x20money\x20with\x20a\x20weaker,\x20more\x20challengeable\x20case.'),d['push']('File\x20through\x20an\x20arbitrator\x20the\x20MERCHANT\x20already\x20accepts\x20(the\x20Service\x27s\x20arbitration\x20list).\x20A\x20buyer\x20'+'cannot\x20add\x20its\x20own\x20venue:\x20an\x20award\x20from\x20an\x20unlisted\x20arbitrator\x20is\x20uncollectable\x20(claim\x20aborts\x2039),\x20so\x20'+'the\x20fee\x20you\x20pay\x20buys\x20a\x20ruling\x20nobody\x20has\x20to\x20honour.'));(a['unread_messages']??0x0)>0x0&&d['push'](a['unread_messages']+'\x20unread\x20Messenger\x20message(s)\x20—\x20timely\x20replies\x20protect\x20your\x20position\x20(WTS\x20record).');if(a['auto_accept']!=null&&a['terminal']==null){const n=Math['max'](0x0,a['auto_accept']['hours_left']),o=n>=0x30?Math['round'](n/0x18)+'\x20days':Math['round'](n)+'\x20hours';d['push']('⏰\x20Auto-acceptance:\x20the\x20merchant-side\x20keeper\x20clock\x20can\x20accept\x20this\x20order\x20for\x20you\x20in\x20~'+o+'\x20'+'(keeps\x20running\x20while\x20you\x20wait).\x20After\x20it\x20fires,\x20the\x20refund/revision\x20rails\x20anchored\x20on\x20the\x20'+'CURRENT\x20node\x20close\x20—\x20verify\x20the\x20deliverable\x20and\x20file\x20refund/revision\x20BEFORE\x20then.\x20Whether\x20'+'recourse\x20survives\x20acceptance\x20depends\x20on\x20the\x20template\x27s\x20post-acceptance\x20window;\x20arbitration\x20'+'is\x20always\x20the\x20residual\x20path.');}a['allocation_payoff']?.['some'](q=>q['positions']['caller']==='gains')&&e['push']('An\x20allocator\x20entry\x20has\x20an\x20unbound\x20Signer\x20recipient\x20(conservative\x20payoff:\x20caller\x20gains\x20—\x20RC-FIND-01):\x20'+'a\x20third\x20party\x20passing\x20that\x20guard\x20could\x20receive\x20settlement\x20funds.\x20Verify\x20whether\x20the\x20guard\x20binds\x20the\x20Signer.');a['allocation_payoff']?.['some'](q=>q['positions']['customer']==='conditional')&&b['push']('Object-address\x20slots\x20settle\x20to\x20the\x20submitted\x20order\x20itself:\x20you\x20receive\x20them\x20as\x20the\x20order\x20owner\x20'+'(object\x20receipt\x20=\x20owner\x20receipt).');a['order_amount']!=null&&a['terminal']==null&&e['push'](a['order_amount']+'\x20raw\x20units'+f+'\x20are\x20at\x20risk\x20while\x20escrowed\x20—\x20if\x20the\x20merchant\x20stalls\x20beyond\x20the\x20timeout,\x20'+'pursue\x20refund/arbitration\x20rather\x20than\x20letting\x20the\x20order\x20stall\x20indefinitely.');a['stalled_hours']!=null&&a['stalled_hours']>0x18&&a['terminal']==null&&e['push']('Order\x20stalled\x20'+Math['round'](a['stalled_hours'])+'h:\x20your\x20leverage\x20is\x20compensation_fund\x20(if\x20any)\x20+\x20arbitration\x20+\x20on-chain\x20reputation\x20(dislike)\x20—\x20in\x20that\x20order.');a['terminal']==='refunded'&&e['push']('Refund\x20executed:\x20funds\x20returned.\x20Remaining\x20stakes\x20are\x20reputational\x20—\x20a\x20dislike\x20vote\x20is\x20your\x20residual\x20recourse\x20if\x20the\x20merchant\x20behaved\x20unfairly.');const i=a['terminal']==='completed'?'order\x20completed\x20—\x20funds\x20released\x20(verify\x20deliverable\x20matched\x20before\x20confirming\x20next\x20time)':a['terminal']==='refunded'?'order\x20refunded\x20—\x20funds\x20returned':a['operable']['length']>0x0?'YOU\x20can\x20act\x20('+a['operable']['length']+'\x20forward(s))\x20—\x20your\x20confirmation\x20releases\x20funds,\x20verify\x20first':'waiting\x20on\x20'+(a['waiting_on']['map'](p=>p['role'])['join'](',\x20')||'others')+'\x20—\x20monitor\x20and\x20nudge',j='Customer\x20interest\x20at\x20node\x20\x27'+(a['current_node']||'(entry)')+'\x27:\x20'+i+'.\x20'+'All\x20options\x20above\x20are\x20informational\x20—\x20the\x20decision\x20is\x20yours.';return{'fund_flow':b,'responsibility':c,'leverage':d,'stakes':e,'summary':j};}
@@ -38,6 +38,10 @@ export interface NodeActionInput {
38
38
  last_progress_at?: number;
39
39
  now: number;
40
40
  unread_messages?: number;
41
+ auto_accept?: {
42
+ hours_left: number;
43
+ accept_node: string;
44
+ };
41
45
  persona_drive?: PersonaDrive;
42
46
  intent_hints?: RoleIntentPromptHints;
43
47
  }
@@ -1 +1 @@
1
- import{buildAllocationAdvice,allocationAssessment}from'./allocation-advice.js';import{deriveGameContext}from'./game-context.js';import{counterpartyMoves}from'../knowledge/game-scenarios.js';import{evaluateNodeGame,actionAssessment}from'../evaluation/node-game.js';import{evaluateArbGame,moveAssessment}from'../evaluation/arbitration-game.js';import{resolveRoleIntent}from'../role/intent.js';import{analyzeMerchantInterest}from'./merchant-interest.js';import{analyzeCustomerInterest}from'./customer-interest.js';import{analyzeSupplierInterest}from'./supplier-interest.js';import{analyzeCollaboratorInterest}from'./collaborator-interest.js';function rawStr(a){if(a==null)return undefined;if(typeof a==='object'&&'balance'in a)return rawStr(a['balance']);return String(a);}export function buildNodeActionAdvice(b){const c=b['radar'],d=deriveGameContext({'has_order':c['order']!=null,'completed':b['completed'],'refunded':b['refunded'],'dispute_active':b['dispute_active'],'focus_object':c['progress'],'last_progress_at':b['last_progress_at'],'now':b['now']}),f={'role':c['perspective'],'context':d,'kernels_run':[],'advisory_gaps':[],'actions':[]},g=new Set(d['action_surface']),h=d['time_anchors']['stalled_hours'],i=b['completed']?'completed':b['refunded']?'refunded':null,j={'account':c['account'],'current_node':c['current_node'],'operable':c['operable'],'waiting_on':c['waiting_on'],'terminal':i,'stalled_hours':h,'unread_messages':b['unread_messages']};switch(c['perspective']){case'merchant':f['interest_analysis']=analyzeMerchantInterest({...j,'order_amount':rawStr(b['order_amount']),'token_type':b['token_type'],'allocation':b['allocation_summary'],'compensation_fund':rawStr(b['compensation_fund']),'arbitration_bound':b['arbitration_bound'],'rewards_count':b['rewards_count']??0x0});break;case'supplier':f['interest_analysis']=analyzeSupplierInterest({...j,'order_amount':rawStr(b['order_amount']),'token_type':b['token_type'],'arbitration_bound':b['arbitration_bound'],'compensation_fund':rawStr(b['compensation_fund']),'allocation_payoff':b['allocation_summary']?.['payoffs']});break;case'collaborator':f['interest_analysis']=analyzeCollaboratorInterest({...j,'collaborator_kind':c['collaborator_kind'],'arbitration_bound':b['arbitration_bound'],'allocation_payoff':b['allocation_summary']?.['payoffs']});break;case'customer':f['interest_analysis']=analyzeCustomerInterest({...j,'order_amount':rawStr(b['order_amount']),'token_type':b['token_type'],'compensation_fund':rawStr(b['compensation_fund']),'arbitration_bound':b['arbitration_bound'],'allocation_payoff':b['allocation_summary']?.['payoffs']});break;default:break;}const k=resolveRoleIntent(c['perspective'],b['persona_drive'],b['intent_hints']);for(const o of k['warnings'])f['advisory_gaps']['push'](o);if(g['has']('node_game')&&!c['workflow_unknown']){const p={'current_node':c['current_node'],'perspective':c['perspective'],'appetite':k['profile']['risk_appetite'],...k['profile']['red_lines']['length']?{'requirements':k['profile']['red_lines']}:{},'threshold':c['threshold'],'order_amount':rawStr(b['order_amount']),'compensation_fund':rawStr(b['compensation_fund']),'claimable_rewards':c['pending_claims']['filter'](q=>q['kind']==='reward')['map'](q=>({'description':q['label']})),'operable':c['operable']['map'](q=>({'name':q['name'],'to_node':q['to_node'],'execution_path':q['execution_path'],'guard':q['guard'],'consequence':q['consequence'],'weight':q['weight']})),'waiting_on':c['waiting_on']};f['node_game']=evaluateNodeGame(p);}if(d['dispute_active']&&b['arb_status']!=null){const q=c['perspective']==='customer'||c['perspective']==='merchant'||c['perspective']==='arbitrator'?c['perspective']:null;q&&(f['arb_game']=evaluateArbGame(b['arb_status'],q));}let l;if(c['order']!=null&&b['allocation_pool']){const r={'pool':b['allocation_pool'],'order_amount':b['order_amount'],'role':c['perspective'],'is_order_holder':b['is_order_holder'],'completed':b['completed'],'refunded':b['refunded'],'can_act_now':c['operable']['length']>0x0,'compensation_fund':b['compensation_fund'],'has_dispute':b['has_dispute']};try{l=buildAllocationAdvice(r);}catch(s){l=undefined,f['advisory_gaps']['push']('Fund\x20advice\x20failed\x20for\x20'+b['allocation_pool']['address']+':\x20'+s['message']+'.');}}if(l)f['fund_advice']=l;if(f['node_game'])f['kernels_run']['push']('node_game');if(f['arb_game'])f['kernels_run']['push']('arbitration_game');if(l)f['kernels_run']['push']('allocation_advice');const m=counterpartyMoves(c['perspective'],d['phase'])['map'](t=>t['attack_role']+':\x20'+t['move']),n=[c['progress'],...c['order']?[c['order']]:[]];if(f['node_game'])for(const t of f['node_game']['actions']){const u=c['operable']['find'](v=>v['name']===t['forward']);f['actions']['push']({'action':'advance\x20\x27'+t['forward']+'\x27\x20→\x20\x27'+t['to_node']+'\x27','via':u?.['recommended_call']?u['recommended_call']['tool']+'\x20('+u['recommended_call']['path']+')':'forward\x20execution\x20on\x20the\x20Progress\x20object','preconditions':[...t['guard']?['a\x20validated\x20passport\x20for\x20the\x20bound\x20guard']:[],...f['node_game']['cooperation']&&f['node_game']['cooperation']['needed_from_others']>0x0?[f['node_game']['cooperation']['needed_from_others']+'\x20more\x20forward-weight\x20from\x20cooperating\x20role(s)']:[]],'assessment':actionAssessment(t,f['node_game']),...d['time_anchors']['stalled_hours']!=null&&stalledCost(d['time_anchors']['stalled_hours'])!==undefined?{'cost_of_delay':stalledCost(d['time_anchors']['stalled_hours'])}:{},'counterparty_moves':m,'evidence_refs':[...n,t['forward']]});}if(f['arb_game'])for(const v of f['arb_game']['actions']){f['actions']['push']({'action':'case\x20move\x20\x27'+v['action']+'\x27\x20('+f['arb_game']['status']+')','via':'arbitration\x20case\x20operation\x20on\x20the\x20Arb\x20object','preconditions':[],'assessment':moveAssessment(v),'counterparty_moves':m,'evidence_refs':[...n,f['arb_game']['status']]});}return l&&l['decision_advice']['length']>0x0&&f['actions']['push']({'action':l['settled']?'review\x20the\x20settlement\x20state\x20of\x20the\x20allocation\x20pool':'move\x20on\x20the\x20allocation\x20pool\x20(settle\x20/\x20dispute\x20per\x20your\x20side\x27s\x20decision\x20rule)','via':'allocation\x20guard\x20mechanism\x20(alloc\x20by\x20guard)\x20/\x20dispute\x20filing','preconditions':[...l['funded']?['pool\x20still\x20holds\x20a\x20distributable\x20balance']:[],...l['settled']?[]:['no\x20Payment\x20produced\x20yet']],'assessment':allocationAssessment(l,{...h!=null&&h>0x18?{'costOfDelay':'order\x20stalled\x20'+Math['round'](h)+'h\x20—\x20the\x20pool\x20stays\x20frozen\x20while\x20you\x20wait'}:{},...rawStr(b['order_amount'])!==undefined?{'stake':rawStr(b['order_amount'])}:{}}),'counterparty_moves':m,'evidence_refs':[...n,...l['pool']?[l['pool']]:[]]}),f;}function stalledCost(a){if(a<=0x18)return undefined;return'order\x20has\x20not\x20advanced\x20for\x20'+Math['round'](a)+'h\x20—\x20leverage\x20and\x20evidence\x20decay\x20with\x20time';}
1
+ import{buildAllocationAdvice,allocationAssessment}from'./allocation-advice.js';import{deriveGameContext}from'./game-context.js';import{counterpartyMoves}from'../knowledge/game-scenarios.js';import{evaluateNodeGame,actionAssessment}from'../evaluation/node-game.js';import{evaluateArbGame,moveAssessment}from'../evaluation/arbitration-game.js';import{resolveRoleIntent}from'../role/intent.js';import{analyzeMerchantInterest}from'./merchant-interest.js';import{analyzeCustomerInterest}from'./customer-interest.js';import{analyzeSupplierInterest}from'./supplier-interest.js';import{analyzeCollaboratorInterest}from'./collaborator-interest.js';function rawStr(a){if(a==null)return undefined;if(typeof a==='object'&&'balance'in a)return rawStr(a['balance']);return String(a);}export function buildNodeActionAdvice(b){const c=b['radar'],d=deriveGameContext({'has_order':c['order']!=null,'completed':b['completed'],'refunded':b['refunded'],'dispute_active':b['dispute_active'],'focus_object':c['progress'],'last_progress_at':b['last_progress_at'],'now':b['now']}),f={'role':c['perspective'],'context':d,'kernels_run':[],'advisory_gaps':[],'actions':[]},g=new Set(d['action_surface']),h=d['time_anchors']['stalled_hours'],i=b['completed']?'completed':b['refunded']?'refunded':null,j={'account':c['account'],'current_node':c['current_node'],'operable':c['operable'],'waiting_on':c['waiting_on'],'terminal':i,'stalled_hours':h,'unread_messages':b['unread_messages']};switch(c['perspective']){case'merchant':f['interest_analysis']=analyzeMerchantInterest({...j,'order_amount':rawStr(b['order_amount']),'token_type':b['token_type'],'allocation':b['allocation_summary'],'compensation_fund':rawStr(b['compensation_fund']),'arbitration_bound':b['arbitration_bound'],'rewards_count':b['rewards_count']??0x0});break;case'supplier':f['interest_analysis']=analyzeSupplierInterest({...j,'order_amount':rawStr(b['order_amount']),'token_type':b['token_type'],'arbitration_bound':b['arbitration_bound'],'compensation_fund':rawStr(b['compensation_fund']),'allocation_payoff':b['allocation_summary']?.['payoffs']});break;case'collaborator':f['interest_analysis']=analyzeCollaboratorInterest({...j,'collaborator_kind':c['collaborator_kind'],'arbitration_bound':b['arbitration_bound'],'allocation_payoff':b['allocation_summary']?.['payoffs']});break;case'customer':f['interest_analysis']=analyzeCustomerInterest({...j,'order_amount':rawStr(b['order_amount']),'token_type':b['token_type'],'compensation_fund':rawStr(b['compensation_fund']),'arbitration_bound':b['arbitration_bound'],'auto_accept':b['auto_accept'],'allocation_payoff':b['allocation_summary']?.['payoffs']});break;default:break;}const k=resolveRoleIntent(c['perspective'],b['persona_drive'],b['intent_hints']);for(const o of k['warnings'])f['advisory_gaps']['push'](o);if(g['has']('node_game')&&!c['workflow_unknown']){const p={'current_node':c['current_node'],'perspective':c['perspective'],'appetite':k['profile']['risk_appetite'],...k['profile']['red_lines']['length']?{'requirements':k['profile']['red_lines']}:{},'threshold':c['threshold'],'order_amount':rawStr(b['order_amount']),'compensation_fund':rawStr(b['compensation_fund']),'claimable_rewards':c['pending_claims']['filter'](q=>q['kind']==='reward')['map'](q=>({'description':q['label']})),'operable':c['operable']['map'](q=>({'name':q['name'],'to_node':q['to_node'],'execution_path':q['execution_path'],'guard':q['guard'],'consequence':q['consequence'],'weight':q['weight']})),'waiting_on':c['waiting_on']};f['node_game']=evaluateNodeGame(p);}if(d['dispute_active']&&b['arb_status']!=null){const q=c['perspective']==='customer'||c['perspective']==='merchant'||c['perspective']==='arbitrator'?c['perspective']:null;q&&(f['arb_game']=evaluateArbGame(b['arb_status'],q));}let l;if(c['order']!=null&&b['allocation_pool']){const r={'pool':b['allocation_pool'],'order_amount':b['order_amount'],'role':c['perspective'],'is_order_holder':b['is_order_holder'],'completed':b['completed'],'refunded':b['refunded'],'can_act_now':c['operable']['length']>0x0,'compensation_fund':b['compensation_fund'],'has_dispute':b['has_dispute']};try{l=buildAllocationAdvice(r);}catch(s){l=undefined,f['advisory_gaps']['push']('Fund\x20advice\x20failed\x20for\x20'+b['allocation_pool']['address']+':\x20'+s['message']+'.');}}if(l)f['fund_advice']=l;if(f['node_game'])f['kernels_run']['push']('node_game');if(f['arb_game'])f['kernels_run']['push']('arbitration_game');if(l)f['kernels_run']['push']('allocation_advice');const m=counterpartyMoves(c['perspective'],d['phase'])['map'](t=>t['attack_role']+':\x20'+t['move']),n=[c['progress'],...c['order']?[c['order']]:[]];if(f['node_game'])for(const t of f['node_game']['actions']){const u=c['operable']['find'](v=>v['name']===t['forward']);f['actions']['push']({'action':'advance\x20\x27'+t['forward']+'\x27\x20→\x20\x27'+t['to_node']+'\x27','via':u?.['recommended_call']?u['recommended_call']['tool']+'\x20('+u['recommended_call']['path']+')':'forward\x20execution\x20on\x20the\x20Progress\x20object','preconditions':[...t['guard']?['a\x20validated\x20passport\x20for\x20the\x20bound\x20guard']:[],...f['node_game']['cooperation']&&f['node_game']['cooperation']['needed_from_others']>0x0?[f['node_game']['cooperation']['needed_from_others']+'\x20more\x20forward-weight\x20from\x20cooperating\x20role(s)']:[]],'assessment':actionAssessment(t,f['node_game']),...d['time_anchors']['stalled_hours']!=null&&stalledCost(d['time_anchors']['stalled_hours'])!==undefined?{'cost_of_delay':stalledCost(d['time_anchors']['stalled_hours'])}:{},'counterparty_moves':m,'evidence_refs':[...n,t['forward']]});}if(f['arb_game'])for(const v of f['arb_game']['actions']){f['actions']['push']({'action':'case\x20move\x20\x27'+v['action']+'\x27\x20('+f['arb_game']['status']+')','via':'arbitration\x20case\x20operation\x20on\x20the\x20Arb\x20object','preconditions':[],'assessment':moveAssessment(v),'counterparty_moves':m,'evidence_refs':[...n,f['arb_game']['status']]});}return l&&l['decision_advice']['length']>0x0&&f['actions']['push']({'action':l['settled']?'review\x20the\x20settlement\x20state\x20of\x20the\x20allocation\x20pool':'move\x20on\x20the\x20allocation\x20pool\x20(settle\x20/\x20dispute\x20per\x20your\x20side\x27s\x20decision\x20rule)','via':'allocation\x20guard\x20mechanism\x20(alloc\x20by\x20guard)\x20/\x20dispute\x20filing','preconditions':[...l['funded']?['pool\x20still\x20holds\x20a\x20distributable\x20balance']:[],...l['settled']?[]:['no\x20Payment\x20produced\x20yet']],'assessment':allocationAssessment(l,{...h!=null&&h>0x18?{'costOfDelay':'order\x20stalled\x20'+Math['round'](h)+'h\x20—\x20the\x20pool\x20stays\x20frozen\x20while\x20you\x20wait'}:{},...rawStr(b['order_amount'])!==undefined?{'stake':rawStr(b['order_amount'])}:{}}),'counterparty_moves':m,'evidence_refs':[...n,...l['pool']?[l['pool']]:[]]}),f;}function stalledCost(a){if(a<=0x18)return undefined;return'order\x20has\x20not\x20advanced\x20for\x20'+Math['round'](a)+'h\x20—\x20leverage\x20and\x20evidence\x20decay\x20with\x20time';}
@@ -35,3 +35,14 @@ export interface DeriveTimeWindowInput {
35
35
  last_progress_at?: number;
36
36
  }
37
37
  export declare function deriveTimeWindow(input: DeriveTimeWindowInput): DerivedTimeWindow;
38
+ export interface AutoAcceptCountdown {
39
+ auto_accept_at_ms: number;
40
+ hours_left: number;
41
+ forward?: string | null;
42
+ accept_node: string;
43
+ anchor_node: string;
44
+ }
45
+ export declare function autoAcceptCountdown(tw: DerivedTimeWindow, outgoing: Array<{
46
+ forward?: string | null;
47
+ node: string;
48
+ }>, current_node: string, last_progress_at?: number, now?: number): AutoAcceptCountdown | null;
@@ -1 +1 @@
1
- function isObj(a){return a!=null&&typeof a==='object'&&!Array['isArray'](a);}function childrenOf(a){if(Array['isArray'](a['nodes']))return a['nodes']['filter'](isObj);if(isObj(a['node']))return[a['node']];return[];}function entryNumber(a){if(!a)return null;const b=a['value'];if(typeof b==='number'&&Number['isFinite'](b))return b;if(typeof b==='string'&&/^-?\d+$/['test'](b['trim']())){const c=Number(b);return Number['isSafeInteger'](c)?c:null;}return null;}function tableValue(a,b){if(!Array['isArray'](a)||typeof b!=='number')return null;return entryNumber(a['find'](c=>c['identifier']===b));}const COMPARE_TYPES=new Set(['logic_as_u256_lesser','logic_as_u256_lesser_or_equal','logic_as_u256_greater','logic_as_u256_greater_or_equal','logic_as_u256_equal']),ARITH_TYPES=new Set(['calc_number_add','calc_number_multiply','calc_number_subtract','calc_number_divide','calc_number_mod']);function foldArithmetic(a,b){if(b['length']<0x2)return null;const [c,...d]=b;let e=c;for(const f of d){switch(a){case'calc_number_add':e+=f;break;case'calc_number_multiply':e*=f;break;case'calc_number_subtract':e-=f;break;case'calc_number_divide':if(f===0x0)return null;e/=f;break;case'calc_number_mod':if(f===0x0)return null;e%=f;break;default:return null;}if(!Number['isFinite'](e))return null;}return Number['isSafeInteger'](e)?e:e;}function containsContextClock(a,b=0x0){if(b>0xc||!isObj(a))return![];if(a['type']==='context'&&a['context']==='Clock')return!![];return childrenOf(a)['some'](d=>containsContextClock(d,b+0x1));}function containsEntryTime(a,b=0x0){if(b>0xc||!isObj(a))return![];if(a['type']==='query_progress_history_time')return!![];if(a['type']==='query_progress_history_time_or_zero')return!![];return childrenOf(a)['some'](d=>containsEntryTime(d,b+0x1));}function entryAnchorNodes(a,b=new Set(),d=0x0){if(d>0xc||!isObj(a))return b;if(a['type']==='query_progress_history_time'||a['type']==='query_progress_history_time_or_zero'){const e=isObj(a['where'])?a['where']:{},f=e['nextNode'];if(typeof f==='string'&&f)b['add'](f);}for(const g of childrenOf(a))entryAnchorNodes(g,b,d+0x1);return b;}function splitSide(a,b,c=0x0){if(c>0xc||!isObj(a))return{'constSum':0x0,'entryCount':0x0,'resolvable':![]};if(a['type']==='query_progress_history_time')return{'constSum':0x0,'entryCount':0x1,'resolvable':!![]};if(a['type']==='query_progress_history_time_or_zero')return{'constSum':0x0,'entryCount':0x1,'resolvable':!![]};if(a['type']==='identifier'){const d=tableValue(b,a['identifier']);return d===null?{'constSum':0x0,'entryCount':0x0,'resolvable':![]}:{'constSum':d,'entryCount':0x0,'resolvable':!![]};}if(typeof a['type']==='string'&&ARITH_TYPES['has'](a['type'])){let e=0x0,f=!![];const g=[];for(const h of childrenOf(a)){const i=splitSide(h,b,c+0x1);if(!i||!i['resolvable']){f=![];continue;}e+=i['entryCount'],g['push'](i['constSum']);}if(!f)return{'constSum':0x0,'entryCount':e,'resolvable':![]};if(a['type']==='calc_number_add'){const j=g['reduce']((l,m)=>l+m,0x0);return{'constSum':j,'entryCount':e,'resolvable':!![]};}if(e===0x0){const l=foldArithmetic(a['type'],g);return l===null?{'constSum':0x0,'entryCount':0x0,'resolvable':![]}:{'constSum':l,'entryCount':0x0,'resolvable':!![]};}return{'constSum':0x0,'entryCount':e,'resolvable':![]};}return{'constSum':0x0,'entryCount':0x0,'resolvable':![]};}const EPOCH_MS_FLOOR=0x15d3ef79800;function walkBoundaries(a,b,d,e=0x0){if(e>0x18||!isObj(a))return;const f=typeof a['type']==='string'?a['type']:'';if(COMPARE_TYPES['has'](f)){const g=childrenOf(a);if(g['length']>=0x2){const h=g[0x0],i=containsContextClock(h)||containsEntryTime(h);if(i){const j=f==='logic_as_u256_greater'||f==='logic_as_u256_greater_or_equal'?'opens':'closes';for(const k of g['slice'](0x1)){const l=splitSide(k,b);if(!l||!l['resolvable'])continue;const m=[...entryAnchorNodes(k)];if(l['entryCount']>0x0&&m['length']===0x1)d['push']({'direction':j,'boundary_ms':l['constSum'],'anchor':'node_entry','anchor_node':m[0x0]});else{if(l['entryCount']>0x0)d['push']({'direction':j,'boundary_ms':l['constSum'],'anchor':'node_entry','anchor_node':m['length']===0x0?null:m['join']('|'),'unresolved_note':'entry-anchored\x20comparison\x20with\x20ambiguous\x20anchor\x20nodes\x20—\x20no\x20single\x20where.nextNode\x20anchor'});else{if(l['constSum']>=EPOCH_MS_FLOOR)d['push']({'direction':j,'boundary_ms':l['constSum'],'anchor':'absolute'});else l['entryCount']===0x0&&d['push']({'direction':j,'boundary_ms':l['constSum'],'anchor':'node_entry','anchor_node':null,'unresolved_note':'raw\x20offset\x20compared\x20against\x20the\x20clock\x20with\x20no\x20visible\x20node-entry\x20anchor\x20—\x20the\x20anchor\x20node\x20could\x20not\x20be\x20identified\x20from\x20the\x20tree'});}}}}}}for(const n of childrenOf(a))walkBoundaries(n,b,d,e+0x1);}export function deriveTimeWindow(a){const c=[];for(const i of a['guards']){const j=[];walkBoundaries(i['def']['root'],i['def']['table'],j);for(const k of j){k['guard']=i['guard']??null,k['forward']=i['forward']??null;}if(j['length']===0x0)continue;c['push'](...j);}let d=null,e=null,f=0x0;for(const l of c){if(l['anchor']==='absolute'){if(l['direction']==='opens')d=d===null?l['boundary_ms']:Math['min'](d,l['boundary_ms']);else e=e===null?l['boundary_ms']:Math['min'](e,l['boundary_ms']);continue;}if(l['anchor_node']!=null&&a['current_node']!=null&&l['anchor_node']===a['current_node']&&typeof a['last_progress_at']==='number'){const m=a['last_progress_at']+l['boundary_ms'];if(l['direction']==='opens')d=d===null?m:Math['min'](d,m);else e=e===null?m:Math['min'](e,m);continue;}f+=0x1;}const h=[];return h['push'](c['length']===0x0?'no\x20Clock\x20comparison\x20found\x20on\x20the\x20current\x20node\x27s\x20outgoing\x20guards':c['length']+'\x20time\x20boundary(s)\x20found,\x20'+(c['length']-f)+'\x20resolved\x20to\x20epoch\x20ms'),f>0x0&&h['push'](f+'\x20node-entry-anchored\x20boundary(s)\x20NOT\x20resolved\x20(anchor\x20node\x20≠\x20current\x20node,\x20or\x20the\x20node\x27s\x20historical\x20entry\x20time\x20is\x20not\x20carried\x20by\x20progress.current_time)\x20—\x20inspect\x20via\x20analyze_guard_semantics'),e!==null&&typeof a['last_progress_at']==='number'&&e<=a['last_progress_at']&&h['push']('deadline\x20already\x20passed\x20at\x20the\x20order\x27s\x20last\x20recorded\x20activity'),{'earliest_allowed_ms':d,'deadline_ms':e,'boundaries':c,'note':h['join'](';\x20')+'.'};}
1
+ function isObj(a){return a!=null&&typeof a==='object'&&!Array['isArray'](a);}function childrenOf(a){if(Array['isArray'](a['nodes']))return a['nodes']['filter'](isObj);if(isObj(a['node']))return[a['node']];return[];}function entryNumber(a){if(!a)return null;const b=a['value'];if(typeof b==='number'&&Number['isFinite'](b))return b;if(typeof b==='string'&&/^-?\d+$/['test'](b['trim']())){const c=Number(b);return Number['isSafeInteger'](c)?c:null;}return null;}function tableValue(a,b){if(!Array['isArray'](a)||typeof b!=='number')return null;return entryNumber(a['find'](c=>c['identifier']===b));}const COMPARE_TYPES=new Set(['logic_as_u256_lesser','logic_as_u256_lesser_or_equal','logic_as_u256_greater','logic_as_u256_greater_or_equal','logic_as_u256_equal']),ARITH_TYPES=new Set(['calc_number_add','calc_number_multiply','calc_number_subtract','calc_number_divide','calc_number_mod']);function foldArithmetic(a,b){if(b['length']<0x2)return null;const [c,...d]=b;let e=c;for(const f of d){switch(a){case'calc_number_add':e+=f;break;case'calc_number_multiply':e*=f;break;case'calc_number_subtract':e-=f;break;case'calc_number_divide':if(f===0x0)return null;e/=f;break;case'calc_number_mod':if(f===0x0)return null;e%=f;break;default:return null;}if(!Number['isFinite'](e))return null;}return Number['isSafeInteger'](e)?e:e;}function containsContextClock(a,b=0x0){if(b>0xc||!isObj(a))return![];if(a['type']==='context'&&a['context']==='Clock')return!![];return childrenOf(a)['some'](d=>containsContextClock(d,b+0x1));}function containsEntryTime(a,b=0x0){if(b>0xc||!isObj(a))return![];if(a['type']==='query_progress_history_time')return!![];if(a['type']==='query_progress_history_time_or_zero')return!![];return childrenOf(a)['some'](d=>containsEntryTime(d,b+0x1));}function entryAnchorNodes(a,b=new Set(),d=0x0){if(d>0xc||!isObj(a))return b;if(a['type']==='query_progress_history_time'||a['type']==='query_progress_history_time_or_zero'){const e=isObj(a['where'])?a['where']:{},f=e['nextNode'];if(typeof f==='string'&&f)b['add'](f);}for(const g of childrenOf(a))entryAnchorNodes(g,b,d+0x1);return b;}function splitSide(a,b,c=0x0){if(c>0xc||!isObj(a))return{'constSum':0x0,'entryCount':0x0,'resolvable':![]};if(a['type']==='query_progress_history_time')return{'constSum':0x0,'entryCount':0x1,'resolvable':!![]};if(a['type']==='query_progress_history_time_or_zero')return{'constSum':0x0,'entryCount':0x1,'resolvable':!![]};if(a['type']==='identifier'){const d=tableValue(b,a['identifier']);return d===null?{'constSum':0x0,'entryCount':0x0,'resolvable':![]}:{'constSum':d,'entryCount':0x0,'resolvable':!![]};}if(typeof a['type']==='string'&&ARITH_TYPES['has'](a['type'])){let e=0x0,f=!![];const g=[];for(const h of childrenOf(a)){const i=splitSide(h,b,c+0x1);if(!i||!i['resolvable']){f=![];continue;}e+=i['entryCount'],g['push'](i['constSum']);}if(!f)return{'constSum':0x0,'entryCount':e,'resolvable':![]};if(a['type']==='calc_number_add'){const j=g['reduce']((l,m)=>l+m,0x0);return{'constSum':j,'entryCount':e,'resolvable':!![]};}if(e===0x0){const l=foldArithmetic(a['type'],g);return l===null?{'constSum':0x0,'entryCount':0x0,'resolvable':![]}:{'constSum':l,'entryCount':0x0,'resolvable':!![]};}return{'constSum':0x0,'entryCount':e,'resolvable':![]};}return{'constSum':0x0,'entryCount':0x0,'resolvable':![]};}const EPOCH_MS_FLOOR=0x15d3ef79800;function walkBoundaries(a,b,d,e=0x0){if(e>0x18||!isObj(a))return;const f=typeof a['type']==='string'?a['type']:'';if(COMPARE_TYPES['has'](f)){const g=childrenOf(a);if(g['length']>=0x2){const h=g[0x0],i=containsContextClock(h)||containsEntryTime(h);if(i){const j=f==='logic_as_u256_greater'||f==='logic_as_u256_greater_or_equal'?'opens':'closes';for(const k of g['slice'](0x1)){const l=splitSide(k,b);if(!l||!l['resolvable'])continue;const m=[...entryAnchorNodes(k)];if(l['entryCount']>0x0&&m['length']===0x1)d['push']({'direction':j,'boundary_ms':l['constSum'],'anchor':'node_entry','anchor_node':m[0x0]});else{if(l['entryCount']>0x0)d['push']({'direction':j,'boundary_ms':l['constSum'],'anchor':'node_entry','anchor_node':m['length']===0x0?null:m['join']('|'),'unresolved_note':'entry-anchored\x20comparison\x20with\x20ambiguous\x20anchor\x20nodes\x20—\x20no\x20single\x20where.nextNode\x20anchor'});else{if(l['constSum']>=EPOCH_MS_FLOOR)d['push']({'direction':j,'boundary_ms':l['constSum'],'anchor':'absolute'});else l['entryCount']===0x0&&d['push']({'direction':j,'boundary_ms':l['constSum'],'anchor':'node_entry','anchor_node':null,'unresolved_note':'raw\x20offset\x20compared\x20against\x20the\x20clock\x20with\x20no\x20visible\x20node-entry\x20anchor\x20—\x20the\x20anchor\x20node\x20could\x20not\x20be\x20identified\x20from\x20the\x20tree'});}}}}}}for(const n of childrenOf(a))walkBoundaries(n,b,d,e+0x1);}export function deriveTimeWindow(a){const c=[];for(const i of a['guards']){const j=[];walkBoundaries(i['def']['root'],i['def']['table'],j);for(const k of j){k['guard']=i['guard']??null,k['forward']=i['forward']??null;}if(j['length']===0x0)continue;c['push'](...j);}let d=null,e=null,f=0x0;for(const l of c){if(l['anchor']==='absolute'){if(l['direction']==='opens')d=d===null?l['boundary_ms']:Math['min'](d,l['boundary_ms']);else e=e===null?l['boundary_ms']:Math['min'](e,l['boundary_ms']);continue;}if(l['anchor_node']!=null&&a['current_node']!=null&&l['anchor_node']===a['current_node']&&typeof a['last_progress_at']==='number'){const m=a['last_progress_at']+l['boundary_ms'];if(l['direction']==='opens')d=d===null?m:Math['min'](d,m);else e=e===null?m:Math['min'](e,m);continue;}f+=0x1;}const h=[];return h['push'](c['length']===0x0?'no\x20Clock\x20comparison\x20found\x20on\x20the\x20current\x20node\x27s\x20outgoing\x20guards':c['length']+'\x20time\x20boundary(s)\x20found,\x20'+(c['length']-f)+'\x20resolved\x20to\x20epoch\x20ms'),f>0x0&&h['push'](f+'\x20node-entry-anchored\x20boundary(s)\x20NOT\x20resolved\x20(anchor\x20node\x20≠\x20current\x20node,\x20or\x20the\x20node\x27s\x20historical\x20entry\x20time\x20is\x20not\x20carried\x20by\x20progress.current_time)\x20—\x20inspect\x20via\x20analyze_guard_semantics'),e!==null&&typeof a['last_progress_at']==='number'&&e<=a['last_progress_at']&&h['push']('deadline\x20already\x20passed\x20at\x20the\x20order\x27s\x20last\x20recorded\x20activity'),{'earliest_allowed_ms':d,'deadline_ms':e,'boundaries':c,'note':h['join'](';\x20')+'.'};}export function autoAcceptCountdown(a,c,d,f,g=Date['now']()){if(typeof f!=='number')return null;const h=new Map();for(const j of c){if(j['forward'])h['set'](j['forward'],j['node']);h['set']('@node:'+j['node'],j['node']);}let i=null;for(const k of a['boundaries']){if(k['direction']!=='opens')continue;if(k['anchor_node']==null||k['anchor_node']!==d)continue;if(k['unresolved_note']!=null)continue;const l=k['forward']!=null?h['get'](k['forward']):undefined;if(l==null||!/accept/i['test'](l))continue;const m=f+k['boundary_ms'],n={'auto_accept_at_ms':m,'hours_left':(m-g)/0x36ee80,'forward':k['forward'],'accept_node':l,'anchor_node':k['anchor_node']};if(i===null||n['auto_accept_at_ms']<i['auto_accept_at_ms'])i=n;}return i;}
@@ -1 +1 @@
1
- import{watch_conversations}from'@wowok/wowok';import{analyzeOrderParticipation,aggregateRadar,isConsequenceNode}from'../../participation/radar-core.js';import{workflowSubgraphFromRows}from'../../graph/onchain/index.js';import{Config}from'@wowok/wowok/w/local';import{resolveAddress as a424a}from'../../tools/handlers/name-resolution.js';import{monitorOrder}from'../../customer/order-monitor.js';import{buildNodeActionAdvice}from'../../participation/node-action-advisor.js';import{isTerminalArbStatus}from'../../knowledge/arbitration-ledger.js';import{fetchMachineNodes}from'./machine-nodes.js';import{extractGenericTokenType,registryDisplayHint}from'../../knowledge/fund-layer.js';import{classifyRecipient,derivePayoffFromSharing}from'../../knowledge/recipient-constraint.js';import{batchQueryObjectsByIds,batchQueryTableItems}from'../../graph/onchain/sdk-batch.js';import{deriveTimeWindow}from'../../participation/time-window.js';function fld(a,b){return a?.[b]??a?.['data']?.[b];}async function resolveAddress(a,b){return a424a(a,b);}function balanceStr(a){if(a==null)return undefined;if(typeof a==='object'&&'balance'in a)return String(a['balance']);return String(a);}function balanceToken(a){if(a!=null&&typeof a==='object'&&typeof a['token_type']==='string')return a['token_type'];return undefined;}function allocatorGuardAddresses(b){const c=Array['isArray'](b)?b:Array['isArray'](b?.['allocators'])?b['allocators']:[],d=[];for(const e of c){const f=e?.['guard'];if(typeof f==='string'&&f['startsWith']('0x'))d['push'](f);}return d;}async function fetchAllocatorGuardDefs(a,b,c){const d=new Map(),f=[...new Set(allocatorGuardAddresses(a))];if(f['length']===0x0)return d;try{const h=await batchQueryObjectsByIds(f,b);for(const i of h){const j=fld(i,'object'),k=fld(i,'root');if(j&&k!==undefined&&k!==null){const l=fld(i,'table'),m=Array['isArray'](l)?l['filter'](n=>n!=null&&typeof n==='object')['filter'](n=>typeof n['identifier']==='number')['map'](n=>({'identifier':n['identifier'],'value_type':n['value_type'],'value':n['value'],'name':typeof n['name']==='string'?n['name']:undefined,'b_submission':n['b_submission']===!![]})):undefined;d['set'](j,{'root':k,...m&&m['length']>0x0?{'table':m}:{}});}}}catch(n){c['push']('Allocator\x20guard\x20fetch\x20failed:\x20'+n['message']+'\x20—\x20Signer-recipient\x20payoff\x20stays\x20conservative\x20'+'(unresolved\x20guards\x20cannot\x20clear\x20an\x20RC-FIND-01\x20suspicion).');}return d;}function summarizeAllocation(a,b,c){const d=Array['isArray'](a)?a:Array['isArray'](a?.['allocators'])?a['allocators']:[];if(d['length']===0x0)return undefined;let e=0x0,f=0x0,g=0x0,h=0x0;const i=[],j=b['toLowerCase']();for(const k of d){const l=k?.['sharing']??[];for(const n of l){e++;const o=classifyRecipient(n['who']);if(!o)continue;if(o['kind']==='submission')f++;else{if(o['kind']==='signer')h++;else{if(o['kind']==='entity'&&o['address']['toLowerCase']()===j)g++;}}}const m=typeof k?.['guard']==='string'?c['get'](k['guard']):undefined;i['push'](derivePayoffFromSharing(l,'service_order_allocators',m));}return{'recipient_slots':e,'guard_gated_slots':f,'direct_to_me_slots':g,'to_payer_slots':h,'payoffs':i};}export async function fetchEntityPermissions(a,b){const c=new Map(),{items:d}=await batchQueryTableItems(a,{'network':b});for(const e of d){const f=e['object'];if(f?.['type']!=='TableItem_PermissionPerm')continue;const g=fld(f,'address'),h=fld(f,'perm')??[],i=h['map'](j=>typeof j==='number'?j:typeof j?.['index']==='number'?j['index']:null)['filter'](j=>j!==null);if(g)c['set'](g,i);}return c;}function toWorkflowSubgraph(a,b){return workflowSubgraphFromRows(a,b);}export async function handleParticipationRadar(b){if(!b['radar_account'])throw new Error('\x27radar_account\x27\x20is\x20required\x20for\x20participation_radar');if(!b['radar_targets']||b['radar_targets']['length']===0x0)throw new Error('\x27radar_targets\x27\x20(1-20\x20in-flight\x20orders)\x20is\x20required\x20for\x20participation_radar');const d=b['context_network']??await Config['Instance']()['network_get'](),f=b['radar_include_alerts']??!![],h=[],i=await resolveAddress(b['radar_account'],'radar_account'),j=await Promise['all'](b['radar_targets']['map'](async O=>({'progress':await resolveAddress(O['progress'],'progress'),'order':O['order']?await resolveAddress(O['order'],'order'):undefined}))),k=j['flatMap'](O=>O['order']?[O['progress'],O['order']]:[O['progress']]),l=await batchQueryObjectsByIds(k,d,!![]),m=new Map();for(const O of l){const P=fld(O,'object');if(P)m['set'](P,O);}const q=new Map(),s=new Map();for(const Q of j){const R=m['get'](Q['progress']);if(!R){h['push']('Progress\x20'+Q['progress']+'\x20not\x20found\x20on\x20'+d+'\x20—\x20target\x20skipped.');continue;}q['set'](Q['progress'],R);if(Q['order']){const S=m['get'](Q['order']);if(S)s['set'](Q['order'],S);else h['push']('Order\x20'+Q['order']+'\x20not\x20found\x20on\x20'+d+'\x20—\x20order-holder\x20detection\x20disabled\x20for\x20'+Q['progress']+'.');}}j['length']>0x0&&q['size']===0x0&&h['push']('NETWORK\x20MISMATCH\x20SUSPECTED:\x200/'+j['length']+'\x20radar\x20targets\x20exist\x20on\x20network=\x27'+d+'\x27.\x20'+'These\x20objects\x20most\x20likely\x20live\x20on\x20a\x20different\x20network\x20—\x20re-run\x20with\x20the\x20matching\x20\x27network\x27\x20parameter.');const u=[...new Set([...q['values']()]['map'](T=>fld(T,'machine'))['filter'](T=>!!T))],w=[...new Set([...s['values']()]['map'](T=>fld(T,'service'))['filter'](T=>!!T))],x=[...new Set([...s['values']()]['flatMap'](T=>{const U=fld(T,'dispute');return Array['isArray'](U)?U:[];}))],y=[...new Set([...s['values']()]['map'](T=>fld(T,'allocation'))['filter'](T=>!!T&&T['startsWith']('0x')))],z=new Map(),A=new Map(),B=new Map(),C=new Map(),D=new Map();await Promise['all']([...u['map'](async T=>{try{const [U,V]=await Promise['all']([batchQueryObjectsByIds([T],d),fetchMachineNodes(T,d,!![])]);if(U[0x0])z['set'](T,U[0x0]);A['set'](T,toWorkflowSubgraph(V,T));}catch(W){h['push']('Machine\x20'+T+'\x20fetch\x20failed:\x20'+W['message']+'\x20—\x20workflow\x20unknown\x20for\x20its\x20orders.');}}),((async()=>{if(w['length']===0x0)return;try{const T=await batchQueryObjectsByIds(w,d);for(const U of T){const V=fld(U,'object');if(V)B['set'](V,U);}}catch(W){h['push']('Service\x20query\x20failed:\x20'+W['message']+'\x20—\x20compensation/reward\x20context\x20degraded.');}})()),((async()=>{if(x['length']===0x0)return;try{const T=await batchQueryObjectsByIds(x,d);for(const U of T){const V=fld(U,'object');if(V)C['set'](V,U);}}catch(W){h['push']('Arb\x20query\x20failed:\x20'+W['message']+'\x20—\x20compensation\x20claim\x20detection\x20disabled.');}})()),((async()=>{if(y['length']===0x0)return;try{const T=await batchQueryObjectsByIds(y,d,!![]);for(const U of T){const V=fld(U,'object');if(V)D['set'](V,U);}}catch(W){h['push']('Allocation\x20pool\x20query\x20failed:\x20'+W['message']+'\x20—\x20fund-state\x20advice\x20degraded\x20to\x20template\x20level.');}})())]);const E=new Map(),F=[...new Set(u['map'](T=>fld(z['get'](T),'permission'))['filter'](T=>!!T))],G=new Map();await Promise['all'](F['map'](async T=>{try{const [U,V]=await Promise['all']([batchQueryObjectsByIds([T],d),fetchEntityPermissions(T,d)]),W=U[0x0];G['set'](T,{'address':T,'entity_count':fld(W,'entity_count'),'perm_remark':fld(W,'perm_remark'),'entityPermissions':V,'owner':fld(W,'builder')});}catch(X){h['push']('Permission\x20'+T+'\x20fetch\x20failed:\x20'+X['message']+'\x20—\x20operator\x20permission\x20matching\x20degraded.');}}));for(const T of u){const U=fld(z['get'](T),'permission');if(U&&G['has'](U))E['set'](T,G['get'](U));}const H=new Map();await Promise['all']([...B['entries']()]['map'](async([V,W])=>{H['set'](V,await fetchAllocatorGuardDefs(fld(W,'order_allocators'),d,h));}));let I=0x0;const J=new Map();try{const V=await watch_conversations({'account':i,'unreadOnly':!![],'previewMessageCount':0x0,'skipAutoMarkViewed':!![]}),W=Array['isArray'](V)?V:V?.['conversations']??[];for(const X of W){const Y=X?.['peerAddress'],Z=typeof X?.['unreadCount']==='number'?X['unreadCount']:0x0;typeof Y==='string'&&Z>0x0&&(J['set'](Y['toLowerCase'](),Z),I+=Z);}}catch{h['push']('Messenger\x20unread\x20unavailable\x20(radar\x20account\x20is\x20not\x20a\x20local\x20messenger\x20account,\x20or\x20messenger\x20storage\x20offline)\x20'+'—\x20unread_messages_total\x20reported\x20as\x200.');}const K=[],L=Date['now'](),M=new Map();for(const a0 of j){const a1=q['get'](a0['progress']);if(!a1)continue;const a2=a0['order']?s['get'](a0['order']):undefined;!a0['order']&&h['push']('Target\x20progress\x20'+a0['progress']+'\x20carries\x20NO\x20order\x20address\x20—\x20order-holder\x20identity,\x20'+'buyer/customer\x20perspective\x20routing\x20and\x20order-scoped\x20amounts\x20are\x20UNVERIFIED\x20for\x20this\x20'+'target;\x20the\x20participation\x20stance\x20below\x20is\x20downgraded\x20accordingly.\x20Pass\x20the\x20order\x20'+'address\x20to\x20restore\x20full\x20analysis.');const a3=fld(a1,'machine'),a4=fld(a1,'current')??'',a5=fld(a1,'namedOperator')??[],a6={};for(const ao of a5){if(ao?.['name'])a6[ao['name']]=Array['isArray'](ao['operators'])?ao['operators']:[];}const a7=a2?fld(a2,'service'):undefined,a8=a7?B['get'](a7):undefined;let a9;const aa=a2?fld(a2,'builder'):undefined;if(a2&&aa===i){const ap=fld(a2,'dispute')??[];for(const aq of ap){const ar=C['get'](aq);if(!ar)continue;const as=fld(ar,'indemnity');if(as){a9={'arbitration':fld(ar,'arbitration')??aq,'note':'Arbitration\x20verdict\x20recorded\x20an\x20indemnity\x20(Arb\x20'+aq+').\x20'+'Claim\x20via\x20order\x20op=\x27arb_claim_compensation\x27\x20—\x20paid\x20directly\x20from\x20the\x20Service\x20compensation_fund.\x20'+'(Claimed-status\x20is\x20not\x20readable\x20from\x20the\x20Arb\x20object;\x20the\x20contract\x20rejects\x20double-claims.)'};break;}}}const ab=isConsequenceNode(a4,'completed'),ac=isConsequenceNode(a4,'refunded'),ad=[];if(a8&&aa===i){if(ac)h['push']('Rewards\x20suppressed\x20for\x20order\x20'+(a0['order']??a0['progress'])+':\x20the\x20order\x20sits\x20on\x20a\x20refund/exception\x20'+('terminal\x20node\x20('+(a4||'unknown')+'),\x20so\x20Service\x20rewards\x20are\x20not\x20advertised\x20as\x20claimable\x20against\x20it.'));else{const at=fld(a8,'rewards')??[];for(const au of at){ad['push']({'address':au,'description':'Service\x20reward\x20'+au+'\x20(guard-gated\x20—\x20eligibility\x20verified\x20at\x20claim\x20time)'});}}}let ae=0x0;if(J['size']>0x0){const av=new Set();if(aa)av['add'](aa['toLowerCase']());for(const aw of Object['values'](a6)){for(const ax of aw)av['add'](ax['toLowerCase']());}av['delete'](i['toLowerCase']());for(const ay of av){ae+=J['get'](ay)??0x0;}}const af={'account':i,'progress_address':a0['progress'],'order_address':a0['order'],'current_node':a4,'order_holder':aa,'workflow':a3?A['get'](a3):undefined,'permission':a3?E['get'](a3)??null:null,'named_accounts':a6,'claimable_rewards':ad['length']>0x0?ad:undefined,'pending_compensation':a9,'rating_pending':ab&&aa===i,'review_summary':b['radar_review_summary'],'unread_messages':ae>0x0?ae:undefined,'last_progress_at':fld(a1,'current_time')??undefined,'now':L},ag=analyzeOrderParticipation(af),ah=(fld(a8,'arbitrations')??[])['length']>0x0,ai=a2?fld(a2,'dispute')??[]:[],aj=ai['map'](az=>C['get'](az))['filter'](az=>az!=null),ak=aj['find'](az=>{const aA=fld(az,'status');return aA==null||!isTerminalArbStatus(aA);}),al=summarizeAllocation(fld(a8,'order_allocators'),i,a7?H['get'](a7)??new Map():new Map()),am=a2?fld(a2,'allocation'):undefined,an=a2&&am?D['get'](am['toLowerCase']()):undefined;try{const az=buildNodeActionAdvice({'radar':ag,'is_order_holder':aa===i,'order_amount':balanceStr(fld(a2,'amount')),'token_type':balanceToken(fld(a2,'amount')),'compensation_fund':balanceStr(fld(a8,'compensation_fund')),'arbitration_bound':ah,'has_dispute':ai['length']>0x0,'dispute_active':ak!=null,'arb_status':ak?fld(ak,'status'):undefined,'rewards_count':(fld(a8,'rewards')??[])['length'],'completed':ab,'refunded':ac,'allocation_pool':an&&am?{'address':am,'balance':fld(an,'balance'),'allocators':fld(an,'allocators'),'threshold':fld(an,'threshold'),'payment':fld(an,'payment'),'for_object':fld(an,'payment_info')!==undefined?fld(an,'payment_info')?.['for_object']:fld(an,'for_object')}:undefined,'allocation_summary':al,'last_progress_at':af['last_progress_at'],'now':L,'unread_messages':ae>0x0?ae:undefined});ag['interest_analysis']=az['interest_analysis'],ag['fund_advice']=az['fund_advice'],ag['advice']={'context':az['context'],'kernels_run':az['kernels_run'],'node_game':az['node_game'],'arb_game':az['arb_game'],'actions':az['actions']};for(const aA of az['advisory_gaps'])h['push'](aA);}catch(aB){h['push']('Action\x20advice\x20failed\x20for\x20'+a0['progress']+':\x20'+aB['message']+'.');}a2&&am&&!an&&h['push']('Allocation\x20pool\x20'+am+'\x20not\x20found\x20—\x20fund-state\x20advice\x20unavailable\x20for\x20'+a0['progress']+'.');if(f&&a2){const aC={'order_id':a0['order'],'service_id':a7??'','current_node':a4||undefined,'created_at':Number(fld(a2,'time')??L)||L,'last_progress_at':fld(a1,'current_time')??undefined,'now':L,'order_amount':((()=>{try{return BigInt(fld(a2,'amount')??0x0);}catch{return undefined;}})()),'compensation_balance':((()=>{try{const aD=fld(a8,'compensation_fund');return aD!=null?BigInt(aD):undefined;}catch{return undefined;}})()),'token':registryDisplayHint(extractGenericTokenType(fld(a8,'type_raw'))),'has_arbitration':(fld(a8,'arbitrations')??[])['length']>0x0,'pending_user_action':ag['operable']['some'](aD=>aD['execution_path']==='order_holder'),'completed':ab,'refunded':ac};try{const aD=monitorOrder({'current':aC,'thresholds':b['radar_monitor_thresholds']});aD['length']>0x0&&(ag['attached_alerts']=aD);}catch(aE){h['push']('Order\x20monitor\x20failed\x20for\x20'+a0['order']+':\x20'+aE['message']+'.');}}{const aF=a3?A['get'](a3):undefined;if(aF&&a4){const aG=aF['transitions']['filter'](aK=>aK['prevNode']===a4&&aK['guard']),aH=[...new Set(aG['map'](aK=>aK['guard']))],aI=aH['filter'](aK=>!M['has'](aK['toLowerCase']()));if(aI['length']>0x0){try{const aK=await batchQueryObjectsByIds(aI,d);for(const aL of aK){const aM=fld(aL,'object'),aN=fld(aL,'root');if(!aM||aN==null)continue;const aO=fld(aL,'table'),aP=Array['isArray'](aO)?aO['filter'](aQ=>aQ!=null&&typeof aQ==='object')['filter'](aQ=>typeof aQ['identifier']==='number')['map'](aQ=>({'identifier':aQ['identifier'],'value':aQ['value'],'value_type':aQ['value_type'],'name':typeof aQ['name']==='string'?aQ['name']:undefined,'b_submission':aQ['b_submission']===!![]})):undefined;M['set'](aM['toLowerCase'](),{'root':aN,...aP&&aP['length']>0x0?{'table':aP}:{}});}}catch(aQ){h['push']('Time-window\x20guard\x20fetch\x20failed:\x20'+aQ['message']+'\x20—\x20time_window\x20unavailable\x20for\x20'+a0['progress']+'.');}for(const aR of aI){if(!M['has'](aR['toLowerCase']()))M['set'](aR['toLowerCase'](),null);}}const aJ=aG['map'](aS=>{const aT=M['get'](aS['guard']['toLowerCase']());return aT?{'guard':aS['guard'],'forward':aS['forward']??null,'def':aT}:null;})['filter'](aS=>aS!=null);if(aJ['length']>0x0)try{const aS=deriveTimeWindow({'guards':aJ,'current_node':a4,'last_progress_at':af['last_progress_at']});ag['time_window']=aS;}catch(aT){h['push']('Time-window\x20derivation\x20failed\x20for\x20'+a0['progress']+':\x20'+aT['message']+'.');}}}K['push'](ag);}const N=aggregateRadar(K,I);return{'action':'participation_radar','account':i,'now_ms':L,'orders_analyzed':N['orders_analyzed'],'actionable':N['actionable'],'waiting':N['waiting'],'all_pending_claims':N['all_pending_claims'],'unread_messages_total':N['unread_messages_total'],'data_gaps':h,'summary':N['summary']};}
1
+ import{watch_conversations}from'@wowok/wowok';import{analyzeOrderParticipation,aggregateRadar,isConsequenceNode}from'../../participation/radar-core.js';import{workflowSubgraphFromRows}from'../../graph/onchain/index.js';import{Config}from'@wowok/wowok/w/local';import{resolveAddress as a424a}from'../../tools/handlers/name-resolution.js';import{monitorOrder}from'../../customer/order-monitor.js';import{buildNodeActionAdvice}from'../../participation/node-action-advisor.js';import{isTerminalArbStatus}from'../../knowledge/arbitration-ledger.js';import{fetchMachineNodes}from'./machine-nodes.js';import{extractGenericTokenType,registryDisplayHint}from'../../knowledge/fund-layer.js';import{classifyRecipient,derivePayoffFromSharing}from'../../knowledge/recipient-constraint.js';import{batchQueryObjectsByIds,batchQueryTableItems}from'../../graph/onchain/sdk-batch.js';import{deriveTimeWindow,autoAcceptCountdown}from'../../participation/time-window.js';function fld(a,b){return a?.[b]??a?.['data']?.[b];}async function resolveAddress(a,b){return a424a(a,b);}function balanceStr(a){if(a==null)return undefined;if(typeof a==='object'&&'balance'in a)return String(a['balance']);return String(a);}function balanceToken(a){if(a!=null&&typeof a==='object'&&typeof a['token_type']==='string')return a['token_type'];return undefined;}function allocatorGuardAddresses(b){const c=Array['isArray'](b)?b:Array['isArray'](b?.['allocators'])?b['allocators']:[],d=[];for(const e of c){const f=e?.['guard'];if(typeof f==='string'&&f['startsWith']('0x'))d['push'](f);}return d;}async function fetchAllocatorGuardDefs(a,b,c){const d=new Map(),f=[...new Set(allocatorGuardAddresses(a))];if(f['length']===0x0)return d;try{const h=await batchQueryObjectsByIds(f,b);for(const i of h){const j=fld(i,'object'),k=fld(i,'root');if(j&&k!==undefined&&k!==null){const l=fld(i,'table'),m=Array['isArray'](l)?l['filter'](n=>n!=null&&typeof n==='object')['filter'](n=>typeof n['identifier']==='number')['map'](n=>({'identifier':n['identifier'],'value_type':n['value_type'],'value':n['value'],'name':typeof n['name']==='string'?n['name']:undefined,'b_submission':n['b_submission']===!![]})):undefined;d['set'](j,{'root':k,...m&&m['length']>0x0?{'table':m}:{}});}}}catch(n){c['push']('Allocator\x20guard\x20fetch\x20failed:\x20'+n['message']+'\x20—\x20Signer-recipient\x20payoff\x20stays\x20conservative\x20'+'(unresolved\x20guards\x20cannot\x20clear\x20an\x20RC-FIND-01\x20suspicion).');}return d;}function summarizeAllocation(a,b,c){const d=Array['isArray'](a)?a:Array['isArray'](a?.['allocators'])?a['allocators']:[];if(d['length']===0x0)return undefined;let e=0x0,f=0x0,g=0x0,h=0x0;const i=[],j=b['toLowerCase']();for(const k of d){const l=k?.['sharing']??[];for(const n of l){e++;const o=classifyRecipient(n['who']);if(!o)continue;if(o['kind']==='submission')f++;else{if(o['kind']==='signer')h++;else{if(o['kind']==='entity'&&o['address']['toLowerCase']()===j)g++;}}}const m=typeof k?.['guard']==='string'?c['get'](k['guard']):undefined;i['push'](derivePayoffFromSharing(l,'service_order_allocators',m));}return{'recipient_slots':e,'guard_gated_slots':f,'direct_to_me_slots':g,'to_payer_slots':h,'payoffs':i};}export async function fetchEntityPermissions(a,b){const c=new Map(),{items:d}=await batchQueryTableItems(a,{'network':b});for(const e of d){const f=e['object'];if(f?.['type']!=='TableItem_PermissionPerm')continue;const g=fld(f,'address'),h=fld(f,'perm')??[],i=h['map'](j=>typeof j==='number'?j:typeof j?.['index']==='number'?j['index']:null)['filter'](j=>j!==null);if(g)c['set'](g,i);}return c;}function toWorkflowSubgraph(a,b){return workflowSubgraphFromRows(a,b);}export async function handleParticipationRadar(b){if(!b['radar_account'])throw new Error('\x27radar_account\x27\x20is\x20required\x20for\x20participation_radar');if(!b['radar_targets']||b['radar_targets']['length']===0x0)throw new Error('\x27radar_targets\x27\x20(1-20\x20in-flight\x20orders)\x20is\x20required\x20for\x20participation_radar');const d=b['context_network']??await Config['Instance']()['network_get'](),f=b['radar_include_alerts']??!![],h=[],i=await resolveAddress(b['radar_account'],'radar_account'),j=await Promise['all'](b['radar_targets']['map'](async O=>({'progress':await resolveAddress(O['progress'],'progress'),'order':O['order']?await resolveAddress(O['order'],'order'):undefined}))),k=j['flatMap'](O=>O['order']?[O['progress'],O['order']]:[O['progress']]),l=await batchQueryObjectsByIds(k,d,!![]),m=new Map();for(const O of l){const P=fld(O,'object');if(P)m['set'](P,O);}const q=new Map(),s=new Map();for(const Q of j){const R=m['get'](Q['progress']);if(!R){h['push']('Progress\x20'+Q['progress']+'\x20not\x20found\x20on\x20'+d+'\x20—\x20target\x20skipped.');continue;}q['set'](Q['progress'],R);if(Q['order']){const S=m['get'](Q['order']);if(S)s['set'](Q['order'],S);else h['push']('Order\x20'+Q['order']+'\x20not\x20found\x20on\x20'+d+'\x20—\x20order-holder\x20detection\x20disabled\x20for\x20'+Q['progress']+'.');}}j['length']>0x0&&q['size']===0x0&&h['push']('NETWORK\x20MISMATCH\x20SUSPECTED:\x200/'+j['length']+'\x20radar\x20targets\x20exist\x20on\x20network=\x27'+d+'\x27.\x20'+'These\x20objects\x20most\x20likely\x20live\x20on\x20a\x20different\x20network\x20—\x20re-run\x20with\x20the\x20matching\x20\x27network\x27\x20parameter.');const u=[...new Set([...q['values']()]['map'](T=>fld(T,'machine'))['filter'](T=>!!T))],w=[...new Set([...s['values']()]['map'](T=>fld(T,'service'))['filter'](T=>!!T))],x=[...new Set([...s['values']()]['flatMap'](T=>{const U=fld(T,'dispute');return Array['isArray'](U)?U:[];}))],y=[...new Set([...s['values']()]['map'](T=>fld(T,'allocation'))['filter'](T=>!!T&&T['startsWith']('0x')))],z=new Map(),A=new Map(),B=new Map(),C=new Map(),D=new Map();await Promise['all']([...u['map'](async T=>{try{const [U,V]=await Promise['all']([batchQueryObjectsByIds([T],d),fetchMachineNodes(T,d,!![])]);if(U[0x0])z['set'](T,U[0x0]);A['set'](T,toWorkflowSubgraph(V,T));}catch(W){h['push']('Machine\x20'+T+'\x20fetch\x20failed:\x20'+W['message']+'\x20—\x20workflow\x20unknown\x20for\x20its\x20orders.');}}),((async()=>{if(w['length']===0x0)return;try{const T=await batchQueryObjectsByIds(w,d);for(const U of T){const V=fld(U,'object');if(V)B['set'](V,U);}}catch(W){h['push']('Service\x20query\x20failed:\x20'+W['message']+'\x20—\x20compensation/reward\x20context\x20degraded.');}})()),((async()=>{if(x['length']===0x0)return;try{const T=await batchQueryObjectsByIds(x,d);for(const U of T){const V=fld(U,'object');if(V)C['set'](V,U);}}catch(W){h['push']('Arb\x20query\x20failed:\x20'+W['message']+'\x20—\x20compensation\x20claim\x20detection\x20disabled.');}})()),((async()=>{if(y['length']===0x0)return;try{const T=await batchQueryObjectsByIds(y,d,!![]);for(const U of T){const V=fld(U,'object');if(V)D['set'](V,U);}}catch(W){h['push']('Allocation\x20pool\x20query\x20failed:\x20'+W['message']+'\x20—\x20fund-state\x20advice\x20degraded\x20to\x20template\x20level.');}})())]);const E=new Map(),F=[...new Set(u['map'](T=>fld(z['get'](T),'permission'))['filter'](T=>!!T))],G=new Map();await Promise['all'](F['map'](async T=>{try{const [U,V]=await Promise['all']([batchQueryObjectsByIds([T],d),fetchEntityPermissions(T,d)]),W=U[0x0];G['set'](T,{'address':T,'entity_count':fld(W,'entity_count'),'perm_remark':fld(W,'perm_remark'),'entityPermissions':V,'owner':fld(W,'builder')});}catch(X){h['push']('Permission\x20'+T+'\x20fetch\x20failed:\x20'+X['message']+'\x20—\x20operator\x20permission\x20matching\x20degraded.');}}));for(const T of u){const U=fld(z['get'](T),'permission');if(U&&G['has'](U))E['set'](T,G['get'](U));}const H=new Map();await Promise['all']([...B['entries']()]['map'](async([V,W])=>{H['set'](V,await fetchAllocatorGuardDefs(fld(W,'order_allocators'),d,h));}));let I=0x0;const J=new Map();try{const V=await watch_conversations({'account':i,'unreadOnly':!![],'previewMessageCount':0x0,'skipAutoMarkViewed':!![]}),W=Array['isArray'](V)?V:V?.['conversations']??[];for(const X of W){const Y=X?.['peerAddress'],Z=typeof X?.['unreadCount']==='number'?X['unreadCount']:0x0;typeof Y==='string'&&Z>0x0&&(J['set'](Y['toLowerCase'](),Z),I+=Z);}}catch{h['push']('Messenger\x20unread\x20unavailable\x20(radar\x20account\x20is\x20not\x20a\x20local\x20messenger\x20account,\x20or\x20messenger\x20storage\x20offline)\x20'+'—\x20unread_messages_total\x20reported\x20as\x200.');}const K=[],L=Date['now'](),M=new Map();for(const a0 of j){const a1=q['get'](a0['progress']);if(!a1)continue;const a2=a0['order']?s['get'](a0['order']):undefined;!a0['order']&&h['push']('Target\x20progress\x20'+a0['progress']+'\x20carries\x20NO\x20order\x20address\x20—\x20order-holder\x20identity,\x20'+'buyer/customer\x20perspective\x20routing\x20and\x20order-scoped\x20amounts\x20are\x20UNVERIFIED\x20for\x20this\x20'+'target;\x20the\x20participation\x20stance\x20below\x20is\x20downgraded\x20accordingly.\x20Pass\x20the\x20order\x20'+'address\x20to\x20restore\x20full\x20analysis.');const a3=fld(a1,'machine'),a4=fld(a1,'current')??'',a5=fld(a1,'namedOperator')??[],a6={};for(const ao of a5){if(ao?.['name'])a6[ao['name']]=Array['isArray'](ao['operators'])?ao['operators']:[];}const a7=a2?fld(a2,'service'):undefined,a8=a7?B['get'](a7):undefined;let a9;const aa=a2?fld(a2,'builder'):undefined;if(a2&&aa===i){const ap=fld(a2,'dispute')??[];for(const aq of ap){const ar=C['get'](aq);if(!ar)continue;const as=fld(ar,'indemnity');if(as){a9={'arbitration':fld(ar,'arbitration')??aq,'note':'Arbitration\x20verdict\x20recorded\x20an\x20indemnity\x20(Arb\x20'+aq+').\x20'+'Claim\x20via\x20order\x20op=\x27arb_claim_compensation\x27\x20—\x20paid\x20directly\x20from\x20the\x20Service\x20compensation_fund.\x20'+'(Claimed-status\x20is\x20not\x20readable\x20from\x20the\x20Arb\x20object;\x20the\x20contract\x20rejects\x20double-claims.)'};break;}}}const ab=isConsequenceNode(a4,'completed'),ac=isConsequenceNode(a4,'refunded'),ad=[];if(a8&&aa===i){if(ac)h['push']('Rewards\x20suppressed\x20for\x20order\x20'+(a0['order']??a0['progress'])+':\x20the\x20order\x20sits\x20on\x20a\x20refund/exception\x20'+('terminal\x20node\x20('+(a4||'unknown')+'),\x20so\x20Service\x20rewards\x20are\x20not\x20advertised\x20as\x20claimable\x20against\x20it.'));else{const at=fld(a8,'rewards')??[];for(const au of at){ad['push']({'address':au,'description':'Service\x20reward\x20'+au+'\x20(guard-gated\x20—\x20eligibility\x20verified\x20at\x20claim\x20time)'});}}}let ae=0x0;if(J['size']>0x0){const av=new Set();if(aa)av['add'](aa['toLowerCase']());for(const aw of Object['values'](a6)){for(const ax of aw)av['add'](ax['toLowerCase']());}av['delete'](i['toLowerCase']());for(const ay of av){ae+=J['get'](ay)??0x0;}}const af={'account':i,'progress_address':a0['progress'],'order_address':a0['order'],'current_node':a4,'order_holder':aa,'workflow':a3?A['get'](a3):undefined,'permission':a3?E['get'](a3)??null:null,'named_accounts':a6,'claimable_rewards':ad['length']>0x0?ad:undefined,'pending_compensation':a9,'rating_pending':ab&&aa===i,'review_summary':b['radar_review_summary'],'unread_messages':ae>0x0?ae:undefined,'last_progress_at':fld(a1,'current_time')??undefined,'now':L},ag=analyzeOrderParticipation(af),ah=(fld(a8,'arbitrations')??[])['length']>0x0,ai=a2?fld(a2,'dispute')??[]:[],aj=ai['map'](az=>C['get'](az))['filter'](az=>az!=null),ak=aj['find'](az=>{const aA=fld(az,'status');return aA==null||!isTerminalArbStatus(aA);}),al=summarizeAllocation(fld(a8,'order_allocators'),i,a7?H['get'](a7)??new Map():new Map()),am=a2?fld(a2,'allocation'):undefined,an=a2&&am?D['get'](am['toLowerCase']()):undefined;try{const az=buildNodeActionAdvice({'radar':ag,'is_order_holder':aa===i,'order_amount':balanceStr(fld(a2,'amount')),'token_type':balanceToken(fld(a2,'amount')),'compensation_fund':balanceStr(fld(a8,'compensation_fund')),'arbitration_bound':ah,'has_dispute':ai['length']>0x0,'dispute_active':ak!=null,'arb_status':ak?fld(ak,'status'):undefined,'rewards_count':(fld(a8,'rewards')??[])['length'],'completed':ab,'refunded':ac,'allocation_pool':an&&am?{'address':am,'balance':fld(an,'balance'),'allocators':fld(an,'allocators'),'threshold':fld(an,'threshold'),'payment':fld(an,'payment'),'for_object':fld(an,'payment_info')!==undefined?fld(an,'payment_info')?.['for_object']:fld(an,'for_object')}:undefined,'allocation_summary':al,'last_progress_at':af['last_progress_at'],'now':L,'unread_messages':ae>0x0?ae:undefined,'auto_accept':ag['auto_accept_countdown']});ag['interest_analysis']=az['interest_analysis'],ag['fund_advice']=az['fund_advice'],ag['advice']={'context':az['context'],'kernels_run':az['kernels_run'],'node_game':az['node_game'],'arb_game':az['arb_game'],'actions':az['actions']};for(const aA of az['advisory_gaps'])h['push'](aA);}catch(aB){h['push']('Action\x20advice\x20failed\x20for\x20'+a0['progress']+':\x20'+aB['message']+'.');}a2&&am&&!an&&h['push']('Allocation\x20pool\x20'+am+'\x20not\x20found\x20—\x20fund-state\x20advice\x20unavailable\x20for\x20'+a0['progress']+'.');if(f&&a2){const aC={'order_id':a0['order'],'service_id':a7??'','current_node':a4||undefined,'created_at':Number(fld(a2,'time')??L)||L,'last_progress_at':fld(a1,'current_time')??undefined,'now':L,'order_amount':((()=>{try{return BigInt(fld(a2,'amount')??0x0);}catch{return undefined;}})()),'compensation_balance':((()=>{try{const aD=fld(a8,'compensation_fund');return aD!=null?BigInt(aD):undefined;}catch{return undefined;}})()),'token':registryDisplayHint(extractGenericTokenType(fld(a8,'type_raw'))),'has_arbitration':(fld(a8,'arbitrations')??[])['length']>0x0,'pending_user_action':ag['operable']['some'](aD=>aD['execution_path']==='order_holder'),'completed':ab,'refunded':ac};try{const aD=monitorOrder({'current':aC,'thresholds':b['radar_monitor_thresholds']});aD['length']>0x0&&(ag['attached_alerts']=aD);}catch(aE){h['push']('Order\x20monitor\x20failed\x20for\x20'+a0['order']+':\x20'+aE['message']+'.');}}{const aF=a3?A['get'](a3):undefined;if(aF&&a4){const aG=aF['transitions']['filter'](aK=>aK['prevNode']===a4&&aK['guard']),aH=[...new Set(aG['map'](aK=>aK['guard']))],aI=aH['filter'](aK=>!M['has'](aK['toLowerCase']()));if(aI['length']>0x0){try{const aK=await batchQueryObjectsByIds(aI,d);for(const aL of aK){const aM=fld(aL,'object'),aN=fld(aL,'root');if(!aM||aN==null)continue;const aO=fld(aL,'table'),aP=Array['isArray'](aO)?aO['filter'](aQ=>aQ!=null&&typeof aQ==='object')['filter'](aQ=>typeof aQ['identifier']==='number')['map'](aQ=>({'identifier':aQ['identifier'],'value':aQ['value'],'value_type':aQ['value_type'],'name':typeof aQ['name']==='string'?aQ['name']:undefined,'b_submission':aQ['b_submission']===!![]})):undefined;M['set'](aM['toLowerCase'](),{'root':aN,...aP&&aP['length']>0x0?{'table':aP}:{}});}}catch(aQ){h['push']('Time-window\x20guard\x20fetch\x20failed:\x20'+aQ['message']+'\x20—\x20time_window\x20unavailable\x20for\x20'+a0['progress']+'.');}for(const aR of aI){if(!M['has'](aR['toLowerCase']()))M['set'](aR['toLowerCase'](),null);}}const aJ=aG['map'](aS=>{const aT=M['get'](aS['guard']['toLowerCase']());return aT?{'guard':aS['guard'],'forward':aS['forward']??null,'def':aT}:null;})['filter'](aS=>aS!=null);if(aJ['length']>0x0)try{const aS=deriveTimeWindow({'guards':aJ,'current_node':a4,'last_progress_at':af['last_progress_at']}),aT=autoAcceptCountdown(aS,aG['map'](aV=>({'forward':aV['forward']??null,'node':aV['node']})),a4,af['last_progress_at'],L),aU=ag;aU['time_window']=aS;if(aT)aU['auto_accept_countdown']=aT;}catch(aV){h['push']('Time-window\x20derivation\x20failed\x20for\x20'+a0['progress']+':\x20'+aV['message']+'.');}}}K['push'](ag);}const N=aggregateRadar(K,I);return{'action':'participation_radar','account':i,'now_ms':L,'orders_analyzed':N['orders_analyzed'],'actionable':N['actionable'],'waiting':N['waiting'],'all_pending_claims':N['all_pending_claims'],'unread_messages_total':N['unread_messages_total'],'data_gaps':h,'summary':N['summary']};}
@@ -1 +1 @@
1
- import{z}from'zod';import{GuardResolutionInputSchema}from'../goal/planning.js';import{SemanticIRInputSchema}from'../../knowledge/semantic-ir.js';import{CATALOG_INDUSTRIES}from'../../knowledge/catalog-facts.js';const TemplateSummarySchema=z['object']({'id':z['string']()['describe']('Template\x20id\x20\x27<industry>/<variant>\x27,\x20e.g.\x20\x27retail/scale-marketplace\x27.'),'industry':z['string']()['describe']('Industry\x20vertical.'),'variant':z['string']()['describe']('Business-model\x20variant\x20slug.'),'product_ref':z['string']()['optional']()['describe']('Benchmark\x20product\x20slug\x20this\x20archetype\x20models\x20(e.g.\x20\x27amazon\x27).\x20The\x20only\x20sanctioned\x20company\x20name;\x20users\x20can\x20pick\x20a\x20template\x20by\x20naming\x20the\x20incumbent\x20product.'),'archetype':z['enum'](['leader','challenger']),'key_risk':z['string']()['describe']('Primary\x20risk\x20this\x20template\x20mitigates.'),'node_count':z['number']()['describe']('Machine\x20node\x20count.'),'guard_count':z['number']()['describe']('Guard\x20template\x20count.'),'recommended_role':z['enum'](['merchant','supplier','both']),'tags':z['array'](z['string']())['describe']('Canonical\x20discovery\x20tags\x20this\x20template\x20answers\x20to\x20(curated\x20business-model\x20tags\x20+\x20its\x20variant\x20slug).\x20These\x20are\x20the\x20tokens\x20a\x20Semantic\x20IR\x20`discovery.tags`\x20entry\x20may\x20use.')})['describe']('Compact\x20template\x20listing\x20row.'),TemplateScanFindingSchema=z['object']({'rule_id':z['string']()['optional']()['describe']('Rule\x20id\x20when\x20known\x20(e.g.\x20\x27R-M3-01\x27,\x20\x27R1\x27).'),'severity':z['enum'](['low','medium','high','critical']),'title':z['string'](),'detail':z['string'](),'suggestion':z['string']()})['describe']('One\x20pre-deploy\x20risk\x20finding.'),StaleBuildDisclosureSchema=z['object']({'stale':z['boolean']()['describe']('4R-01\x20residual:\x20true\x20only\x20when\x20the\x20shared\x20src-vs-dist\x20mtime\x20detector\x20RESOLVED\x20and\x20found\x20the\x20running\x20dist\x20OLDER\x20than\x20the\x20workspace\x20src\x20—\x20the\x20scan/plan\x20verdicts\x20may\x20describe\x20superseded\x20template\x20knowledge.'),'known':z['boolean']()['describe']('False\x20when\x20the\x20detector\x20could\x20not\x20resolve\x20(installed\x20dist-only\x20package,\x20build\x20in\x20progress,\x20stat\x20error).\x20stale\x20is\x20then\x20NOT\x20evidence\x20of\x20freshness\x20—\x20treat\x20verdicts\x20as\x20unconfirmed.\x20Fail-open:\x20never\x20an\x20error.'),'actionable':z['boolean']()['describe']('rq-tn-261030-8693be\x20B11:\x20the\x20scan/plan\x20verdicts\x20under\x20this\x20face\x20are\x20fit\x20to\x20act\x20on\x20ONLY\x20when\x20true\x20(fresh\x20AND\x20known).\x20actionable=false\x20VOIDS\x20the\x20conclusions\x20in\x20the\x20same\x20response\x20—\x20rebuild\x20(pnpm\x20build)\x20and\x20re-run\x20before\x20acting\x20on\x20any\x20of\x20them.'),'lag_minutes':z['number']()['nullable']()['describe']('Whole\x20minutes\x20the\x20newest\x20compiled\x20artifact\x20lags\x20the\x20newest\x20source\x20file\x20(null\x20when\x20unknown).'),'detail':z['string']()['describe']('Human-readable\x20freshness\x20statement\x20(source/build\x20mtime\x20lag)\x20with\x20the\x20rebuild\x20remediation\x20when\x20stale.')})['describe']('Always-present\x20stale-build\x20disclosure\x20on\x20template_scan\x20/\x20template_generate\x20(reuses\x20computeSrcDistStaleness;\x20no\x20parallel\x20detector).'),MigrationEntrySchema=z['object']({'source_element':z['string']()['describe']('Competitor-side\x20element.'),'target_object':z['string']()['optional']()['describe']('WoWok\x20object/mechanism\x20it\x20maps\x20to.'),'mapping_note':z['string']()['describe']('One-line\x20mapping\x20explanation.'),'reason':z['string']()['optional']()['describe']('Why\x20it\x20cannot\x20be\x20migrated,\x20or\x20why\x20it\x20needs\x20a\x20decision.')})['describe']('One\x20competitor\x20element\x20and\x20its\x20WoWok\x20mapping\x20outcome.'),MigrationLogSchema=z['object']({'source':z['object']({'url':z['string']()['optional'](),'description':z['string'](),'detected_industry':z['string'](),'matched_template':z['string']()['describe']('Matched\x20template\x20id\x20\x27<industry>/<variant>\x27.')})['describe']('Migration\x20source\x20provenance.'),'template_match':z['object']({'source':z['enum'](['explicit','product_ref','discovery_product_ref','discovery_tags','keywords','ir_industry_fallback','industry_leader'])['describe']('Which\x20deterministic\x20pass\x20chose\x20the\x20template:\x20\x27explicit\x27\x20=\x20caller\x27s\x20template_id;\x20'+'\x27product_ref\x27\x20=\x20a\x20benchmark\x20product\x20named\x20in\x20the\x20text;\x20\x27discovery_product_ref\x27\x20=\x20the\x20'+'Semantic\x20IR\x20resolved\x20the\x20benchmark\x20product;\x20\x27discovery_tags\x27\x20=\x20the\x20IR\x27s\x20canonical\x20tags\x20'+'scored\x20the\x20variant;\x20\x27keywords\x27\x20=\x20English\x20keyword\x20scoring;\x20\x27ir_industry_fallback\x27\x20=\x20the\x20'+'IR\x20proved\x20the\x20industry\x20only;\x20\x27industry_leader\x27\x20=\x20an\x20explicit\x20industry\x20hint\x20with\x20no\x20match.'),'confidence':z['number']()['describe']('Match\x20confidence\x200-1\x20(only\x20an\x20exact\x20benchmark-product\x20hit\x20is\x201.0).'),'matched_tags':z['array'](z['string']())['optional']()['describe']('IR\x20tags\x20that\x20hit\x20this\x20template\x20(discovery_tags\x20only).')})['describe']('Template-match\x20provenance\x20—\x20why\x20this\x20template,\x20without\x20re-running\x20the\x20matcher.'),'mapped':z['array'](MigrationEntrySchema)['describe']('Elements\x20that\x20map\x20cleanly\x20to\x20WoWok\x20objects.'),'unmapped':z['array'](MigrationEntrySchema)['describe']('Elements\x20that\x20cannot\x20be\x20migrated,\x20with\x20reasons.'),'manual_review':z['array'](MigrationEntrySchema)['describe']('Elements\x20requiring\x20an\x20explicit\x20user\x20decision.'),'wowok_advantages':z['array'](z['string']())['describe']('WoWok\x20platform\x20advantages\x20surfaced\x20during\x20migration.'),'customizable_modules':z['array'](z['string']())['describe']('Business-module\x20ids\x20the\x20user\x20can\x20customize.'),'role_assessment':z['object']({'recommended':z['string'](),'rationale':z['string'](),'alternatives':z['array'](z['string']())})['describe']('Merchant\x20vs\x20supplier\x20role\x20assessment.'),'risk_check':z['object']({'passed':z['boolean'](),'findings':z['array'](z['string']())})['describe']('Dry-run\x20risk\x20check\x20against\x20the\x20matched\x20template.'),'requirement_coverage':z['array'](z['object']({'family':z['enum'](['fulfillment','after_sales','review_incentive','discount','privacy_channel']),'label':z['string'](),'status':z['enum'](['mapped','unmapped','blocker']),'evidence':z['string']()['describe']('The\x20matched\x20phrase\x20from\x20the\x20description\x20—\x20every\x20coverage\x20verdict\x20carries\x20its\x20evidence.'),'target':z['string']()['optional']()['describe']('The\x20WoWok\x20carrier\x20when\x20status=mapped.'),'note':z['string']()})['strict']())['optional']()['describe']('W5-07\x20(ks7\x20F-04/F-02):\x20explicit-promise\x20coverage\x20matrix.\x20Every\x20promise\x20family\x20the\x20description\x20hit\x20lands\x20in\x20exactly\x20ONE\x20of\x20'+'mapped/unmapped/blocker\x20—\x20a\x20stated\x20promise\x20can\x20never\x20silently\x20disappear.\x20status=\x27blocker\x27\x20=\x20the\x20matched\x20template\x20cannot\x20carry\x20the\x20'+'promise\x20as-is;\x20the\x20note\x20names\x20the\x20exact\x20build\x20decision\x20(declare\x20the\x20mode\x20/\x20compose\x20the\x20registered\x20fulfillment\x20combination)\x20required\x20before\x20migration_apply.\x20'+'Surface\x20every\x20blocker\x20to\x20the\x20user\x20at\x20migration_review.\x20Optional\x20only\x20so\x20logs\x20produced\x20before\x20W5-07\x20still\x20parse\x20—\x20fresh\x20migration_import\x20logs\x20ALWAYS\x20carry\x20it.'),'network':z['enum'](['testnet','mainnet','localnet'])['describe']('Target\x20network\x20(default\x20testnet).\x20\x27localnet\x27\x20labels\x20plans\x20validated\x20against\x20a\x20local\x20net\x20—\x20the\x20migration\x20pipeline\x20is\x20network-agnostic,\x20this\x20is\x20provenance\x20metadata,\x20not\x20an\x20execution\x20target.')})['describe']('Structured\x20competitor-migration\x20log.'),SaleItemIncentiveSchema=z['object']({'amount':z['string']()['describe']('Incentive\x20amount\x20as\x20a\x20buyer-readable\x20string\x20(e.g.\x20\x225\x20USDC\x22\x20or\x20\x221000000000\x20WOW\x20smallest\x20units\x22).\x20Quote-time\x20disclosure\x20only\x20—\x20fund\x20the\x20actual\x20rail\x20separately\x20(e.g.\x20the\x20template\x27s\x20review_reward_pool).'),'conditions':z['string']()['describe']('What\x20the\x20buyer\x20must\x20do\x20to\x20earn\x20it\x20(e.g.\x20\x22leave\x20a\x20written\x20+\x20rated\x20review\x20of\x20the\x20delivered\x20work\x22).\x20Must\x20be\x20perceptible\x20BEFORE\x20the\x20order\x20is\x20placed.'),'basis':z['string']()['describe']('Accrual\x20scope:\x20\x22per-order\x22\x20/\x20\x22once-per-buyer\x22\x20/\x20\x22once-per-buyer-per-order\x22.\x20Matches\x20the\x20claim\x20guard\x27s\x20replay\x20semantics\x20—\x20a\x20recipient-only\x20gate\x20is\x20once-per-buyer-for-life,\x20an\x20order-scoped\x20stamp\x20is\x20per-order\x20(SV-2).'),'claim_window':z['string']()['describe']('How\x20long\x20the\x20buyer\x20has\x20to\x20claim\x20(e.g.\x20\x2214\x20days\x20from\x20the\x20review\x22).\x20Mirror\x20the\x20reward\x20claim\x20guard\x27s\x20window\x20fee_param\x20so\x20the\x20quote\x20never\x20promises\x20more\x20than\x20the\x20rail\x20pays.')})['strict']()['describe']('Optional\x20structured\x20incentive\x20for\x20one\x20sale\x20item\x20(G-07):\x20buyer-perceivable\x20reward\x20terms\x20carried\x20to\x20the\x20compiled\x20plan\x20for\x20quote-time\x20disclosure.\x20DECLARATION\x20ONLY\x20—\x20the\x20chain\x20SaleItem\x20has\x20no\x20such\x20field;\x20the\x20actual\x20payout\x20rail\x20is\x20configured\x20separately.'),SaleItemPlanSchema=z['object']({'incentive':SaleItemIncentiveSchema['optional']()})['passthrough']()['describe']('One\x20sellable\x20SKU\x20in\x20the\x20plan\x20catalog:\x20the\x20chain\x20SaleItem\x20fields\x20plus\x20the\x20optional\x20structured\x20`incentive`\x20declaration\x20(G-07).\x20Unknown\x20keys\x20pass\x20through\x20so\x20chain-side\x20fields\x20can\x20evolve\x20without\x20schema\x20changes.');export const BenchmarkMigrationSchema=z['object']({'action':z['enum'](['template_list','template_get','template_generate','template_scan','migration_import','migration_review','migration_apply','plan_execute'])['describe']('Action:\x20\x27template_list\x27\x20=\x20list\x20the\x20loaded\x20MD\x20industry\x20templates\x20(optional\x20industry\x20filter);\x20'+'\x27template_get\x27\x20=\x20fetch\x20one\x20template\x20by\x20id\x20(template_id\x20required);\x20'+'\x27template_generate\x27\x20=\x20generate\x20a\x20creation\x20plan\x20from\x20a\x20template\x20via\x20the\x20merchant-guide\x20'+'pipeline\x20(template_id\x20required;\x20scan-first\x20—\x20CRITICAL\x20findings\x20block;\x20never\x20executes\x20on-chain);\x20'+'\x27template_scan\x27\x20=\x20pre-deploy\x20risk\x20scan\x20of\x20one\x20template\x20(template_id\x20required;\x20returns\x20'+'risk_level/findings/red_flags\x20plus\x20a\x20drift\x20face\x20—\x20disk-vs-catalog\x20provenance\x20of\x20the\x20'+'scanned\x20body;\x20CRITICAL\x20blocks\x20generation/apply);\x20'+'\x27migration_import\x27\x20=\x20competitor\x20URL/description\x20→\x20migration\x20plan\x20+\x20MigrationLog\x20'+'(description\x20required);\x20'+'\x27migration_review\x27\x20=\x20surface\x20the\x20MigrationLog\x20for\x20user\x20confirmation\x20(log\x20required);\x20'+'\x27migration_apply\x27\x20=\x20run\x20the\x20approved\x20template\x20through\x20the\x20merchant-guide\x20pipeline\x20'+'(template_id\x20required;\x20scan-first\x20—\x20CRITICAL\x20findings\x20block;\x20default\x20network\x20testnet);\x20'+'\x27plan_execute\x27\x20=\x20ONE-CLICK\x20DEPLOYMENT\x20(AR-5,\x20bsn7\x20T-06/R-01):\x20materialize\x20the\x20plan\x20returned\x20by\x20'+'template_generate\x20on-chain\x20—\x20preflight\x20freeze\x20gate,\x20topological\x20create/publish/configure,\x20readback.\x20'+'Resumable:\x20on\x20a\x20mid-run\x20failure,\x20re-send\x20with\x20completed_steps\x20+\x20previous_outputs\x20from\x20the\x20failed\x20'+'response\x20instead\x20of\x20re-running\x20from\x20scratch\x20(duplicate\x20objects).'),'template_id':z['string']()['optional']()['describe']('Template\x20id\x20\x27<industry>/<variant>\x27\x20(required\x20for\x20template_get\x20/\x20template_generate\x20/\x20template_scan\x20/\x20migration_apply),\x20e.g.\x20\x27retail/scale-marketplace\x27.'),'industry':z['string']()['optional']()['describe']('Industry\x20filter\x20for\x20template_list;\x20industry\x20hint\x20for\x20migration_import.\x20'+('Any\x20registered\x20industry\x20is\x20accepted\x20(builtin:\x20'+CATALOG_INDUSTRIES['join'](',\x20')+';\x20')+'plus\x20custom\x20industries\x20registered\x20via\x20industry\x20packs).\x20'+'Aliases\x20are\x20resolved\x20(e.g.\x20\x27ecommerce\x27\x20→\x20\x27retail\x27).'),'description':z['string']()['optional']()['describe']('Natural-language\x20business/competitor\x20description\x20(required\x20for\x20migration_import;\x20used\x20by\x20template_generate\x20as\x20the\x20intent\x20text).'),'semantic_ir':SemanticIRInputSchema['optional']()['describe']('Canonical\x20Semantic\x20IR\x20produced\x20by\x20the\x20CALLING\x20agent\x20for\x20a\x20NON-ENGLISH\x20(or\x20lexicon-outside)\x20description\x20—\x20this\x20server\x20runs\x20no\x20LLM.\x20'+'The\x20server\x20validates\x20it,\x20then\x20reuses\x20it\x20on\x20the\x20same\x20deterministic\x20surfaces\x20as\x20recommend_industry:\x20'+'(a)\x20migration_import\x20narrows\x20template\x20matching\x20to\x20the\x20IR-resolved\x20industry\x20and,\x20when\x20discovery.tags\x20are\x20supplied,\x20'+'selects\x20the\x20business-model\x20VARIANT\x20by\x20canonical\x20tag\x20coverage\x20(an\x20explicit\x20product_ref\x20or\x20\x27industry\x27\x20hint\x20still\x20wins);\x20'+'(b)\x20template_generate\x20/\x20migration_apply\x20read\x20the\x20numeric\x20claim\x20\x27reward_pool_amount\x27\x20as\x20the\x20review-reward\x20pool\x20prefill\x20—\x20'+'explicit\x20fee_overrides\x20>\x20IR\x20claim\x20>\x20the\x20English\x20regex\x20fallback.\x20'+'Shape:\x20{schema_version:\x202\x20(1\x20still\x20accepted),\x20locale:\x20\x27<BCP-47>\x27,\x20traits?,\x20domains?,\x20claims?:\x20[{key,\x20value,\x20confidence?}],\x20'+'discovery?:\x20{industry?,\x20tags?:\x20string[],\x20product_ref?,\x20english_summary?,\x20confidence?},\x20provenance:\x20{source:\x20\x27caller_llm\x27}}.\x20'+'discovery.tags\x20use\x20the\x20CLOSED\x20language-neutral\x20vocabulary\x20returned\x20by\x20template_list.discovery_vocabulary\x20'+'(canonical\x20English\x20business-model\x20tokens;\x20never\x20locale\x20words\x20—\x20translate\x20in\x20the\x20caller).\x20'+'discovery.product_ref\x20is\x20a\x20benchmark-product\x20slug,\x20discovery.industry\x20a\x20registered\x20industry,\x20and\x20discovery.english_summary\x20'+'is\x20a\x20canonical\x20English\x20restatement\x20used\x20only\x20for\x20keyword\x20fallback.\x20'+'Unknown\x20traits/domains/claims/tags/industries/product_refs\x20are\x20dropped\x20and\x20reported\x20in\x20semantic_ir_issues;\x20spans\x20and\x20quotes\x20'+'must\x20be\x20copied\x20verbatim\x20from\x20the\x20description\x20(unlocatable\x20evidence\x20is\x20dropped).'),'url':z['string']()['optional']()['describe']('Competitor\x20store/profile\x20URL\x20for\x20migration_import\x20(recorded\x20as\x20provenance\x20only).'),'fee_overrides':z['record'](z['string'](),z['union']([z['number'](),z['string']()]))['optional']()['describe']('Template\x20fee-parameter\x20overrides\x20for\x20template_generate\x20(e.g.\x20commission_rate_bps).'),'guard_resolutions':z['record'](z['string'](),GuardResolutionInputSchema)['optional']()['describe']('Judgment-layer\x20resolutions\x20for\x20pending\x20guard\x20designs\x20(C6-DEEP),\x20keyed\x20by\x20plan.pending_guard_designs[].key.\x20'+'A\x20blocked\x20migration_apply/template_generate\x20lists\x20every\x20unresolved\x20design\x20—\x20resolve\x20each\x20here\x20'+'(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20or\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id)\x20and\x20re-run\x20the\x20action.\x20'+'Advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop\x20may\x20be\x20resolved\x20with\x20{kind:\x27omit\x27}\x20instead\x20'+'(run75747\x20F-38:\x20honored\x20only\x20for\x20designs\x20with\x20no\x20inbound\x20binding;\x20an\x20omit\x20of\x20a\x20bound\x20design\x20'+'is\x20refused\x20with\x20GUARD_OMIT_UNSUPPORTED).\x20'+'The\x20audit\x20freeze\x20gate\x20still\x20decides:\x20resolutions\x20only\x20unblock\x20a\x20plan\x20whose\x20closed\x20audit\x20is\x20clean.'),'review_mode':z['enum'](['review','review_reward','none'])['optional']()['describe']('Per-build\x20review-rail\x20mode\x20(v53\x20templates).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20review_mode\x20applies.'),'reward_funding':z['string']()['optional']()['describe']('Review\x20reward\x20pool\x20funding,\x20smallest-unit\x20string.\x20HARD-REQUIRED\x20when\x20the\x20effective\x20review\x20mode\x20is\x20review_reward\x20(INV-4):\x20template_generate\x20refuses\x20the\x20build\x20up-front\x20with\x20error_code\x20\x27reward_funding_required\x27\x20rather\x20than\x20promising\x20an\x20unfunded\x20incentive\x20—\x20pass\x20this,\x20or\x20drop\x20the\x20mode\x20explicitly\x20(review_mode\x20\x27review\x27\x20keeps\x20the\x20rail\x20without\x20the\x20bounty;\x20\x27none\x27\x20removes\x20the\x20rail).\x20The\x20compile\x20kernel\x20also\x20blocks\x20with\x20REVIEW_REWARD_UNFUNDED\x20—\x20this\x20input\x20gate\x20just\x20fails\x20before\x20the\x20pipeline\x20runs.'),'reward_claim_amount':z['string']()['optional']()['describe']('Per-claim\x20reward\x20bounty\x20mounted\x20on\x20the\x20claim\x20guard_add,\x20smallest-unit\x20string.\x20Schema-required\x20on\x20the\x20mount\x20(BK15-F09):\x20compile\x20blocks\x20with\x20REVIEW_REWARD_AMOUNT_MISSING\x20when\x20absent\x20—\x20the\x20kernel\x20never\x20fabricates\x20a\x20real-money\x20parameter.'),'after_sales_mode':z['enum'](['return','exchange','warranty','none'])['optional']()['describe']('Per-build\x20after-sales\x20mode\x20(D12\x20refactor\x204).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20after_sales_mode\x20applies.\x20Declaring\x20a\x20mode\x20with\x20no\x20backing\x20rail\x20in\x20machine_shape\x20is\x20a\x20compile\x20blocker\x20(AFTER_SALES_RAIL_MISSING).'),'acceptance_mode':z['enum'](['milestone','contest','bounty','agent','none'])['optional']()['describe']('Per-build\x20acceptance/judging\x20mode\x20(D12\x20refactor\x202).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20acceptance_mode\x20applies.\x20A\x20judge-decided\x20mode\x20(contest/bounty/agent)\x20without\x20arbitration_mode\x20\x27third_party\x27\x20is\x20a\x20compile\x20blocker\x20(ACCEPTANCE_JUDGE_NOT_INDEPENDENT);\x20a\x20finite\x20revision_rounds_max\x20with\x20no\x20counter\x20Repository\x20guard\x20is\x20a\x20compile\x20blocker\x20(ACCEPTANCE_REVISION_UNBOUNDED).'),'installment_mode':z['enum'](['deposit_balance','milestone_n','none'])['optional']()['describe']('Per-build\x20installment/deposit\x20mode\x20(D12\x20refactor\x203).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20installment_mode\x20applies.\x20A\x20capture\x20forward\x20with\x20no\x20fund-gate\x20Guard\x20is\x20a\x20compile\x20blocker\x20(INSTALLMENT_FUNDING_UNGATED);\x20a\x20deposit-held\x20state\x20with\x20no\x20exit\x20rail\x20is\x20a\x20compile\x20blocker\x20(INSTALLMENT_DEPOSIT_STRANDED).'),'affiliate_mode':z['enum'](['commission','none'])['optional']()['describe']('Per-build\x20affiliate\x20commission\x20overlay\x20(D12\x20batch\x205).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20affiliate_mode\x20applies.\x20A\x20declared\x20commission\x20overlay\x20with\x20no\x20commission\x20rail\x20is\x20a\x20compile\x20blocker\x20(AFFILIATE_RAIL_MISSING);\x20a\x20commission\x20with\x20no\x20post-lock\x20no-clawback\x20disclosure\x20build_note\x20is\x20a\x20compile\x20blocker\x20(AFFILIATE_CLAWBACK_UNDISCLOSED).'),'crowdfunding_mode':z['enum'](['threshold','flexible','none'])['optional']()['describe']('Per-build\x20crowdfunding\x20campaign\x20overlay\x20(D12\x20batch\x207).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20crowdfunding_mode\x20applies.\x20A\x20declared\x20threshold/flexible\x20overlay\x20with\x20no\x20two-leg\x20escrow-exit\x20gate\x20(release\x20XOR\x20refund,\x20D-BUG-2)\x20is\x20a\x20compile\x20blocker\x20(CROWDFUNDING_THRESHOLD_GATE_MISSING);\x20a\x20threshold\x20gate\x20whose\x20aggregate\x20is\x20NOT\x20a\x20writer-bound\x20sum-where\x20(id_from\x20signer)\x20is\x20a\x20compile\x20blocker\x20(CROWDFUNDING_AGGREGATE_UNBOUND);\x20a\x20missing\x20L-04/L-01/L-05\x20disclosure\x20build_note\x20is\x20a\x20compile\x20blocker\x20(CROWDFUNDING_DISCLOSURE_MISSING).'),'logistics_mode':z['enum'](['none','carrier','merchant_managed','courier','pickup_point'])['optional']()['describe']('Per-build\x20fulfillment\x20topology\x20(K3\x20batch\x20C,\x20K-2).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20logistics_mode\x20applies.\x20A\x20declared\x20topology\x20the\x20machine_shape\x20cannot\x20honor\x20is\x20a\x20compile\x20blocker:\x20courier\x20with\x20no\x20named_operator\x20handover\x20rail\x20(LOGISTICS_COURIER_RAIL_MISSING)\x20or\x20a\x20pooled\x20delivery\x20fee\x20(LOGISTICS_COURIER_FEE_POOLED);\x20pickup_point\x20without\x20the\x20absolute\x20batch\x20cutoff\x20or\x20the\x20unclaimed-goods\x20exit\x20window\x20(LOGISTICS_PICKUP_CUTOFF_MISSING);\x20carrier\x20without\x20tracking\x20evidence\x20(LOGISTICS_CARRIER_EVIDENCE_MISSING);\x20any\x20physical\x20mode\x20without\x20a\x20transit-loss\x20story\x20(LOGISTICS_TRANSIT_LOSS_UNCOVERED);\x20courier/pickup_point\x20without\x20the\x20two\x20dispatch\x20disclosures\x20(LOGISTICS_DISPATCH_UNDISCLOSED).'),'sales':z['array'](SaleItemPlanSchema)['optional']()['describe']('The\x20sellable\x20SKU\x20catalog\x20(upwc-cat-261017\x20CAT-A1\x20/\x20PLAN-SALES-01).\x20REQUIRED\x20for\x20template_generate\x20(A-2,\x20amz9-ln-261023):\x20an\x20empty/absent\x20catalog\x20is\x20refused\x20up-front\x20with\x20error_code\x20\x27sales_required\x27\x20—\x20the\x20published\x20Service\x20would\x20freeze\x20with\x20sales:\x20[]\x20and\x20every\x20order_new\x20aborts;\x20PLAN-SALES-01\x20is\x20now\x20an\x20INPUT\x20error\x20on\x20this\x20action,\x20not\x20a\x20post-hoc\x20audit\x20finding.\x20migration_apply\x20keeps\x20the\x20audit-finding\x20posture\x20(it\x20confirms\x20an\x20already-reviewed\x20import).\x20Item\x20shape\x20follows\x20the\x20chain\x27s\x20SaleItem:\x20{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}\x20with\x20price\x20in\x20smallest\x20units.\x20OPTIONAL\x20per\x20item:\x20a\x20structured\x20`incentive`\x20object\x20(G-07:\x20{\x20amount,\x20conditions,\x20basis,\x20claim_window\x20},\x20all\x20strings)\x20declaring\x20the\x20buyer-perceivable\x20reward\x20terms\x20—\x20carried\x20verbatim\x20into\x20the\x20compiled\x20plan\x27s\x20service_sales\x20step\x20for\x20quote-time\x20disclosure;\x20it\x20is\x20plan\x20metadata\x20only\x20and\x20never\x20an\x20on-chain\x20SaleItem\x20field.'),'log':z['record'](z['string'](),z['unknown']())['optional']()['describe']('A\x20prior\x20MigrationLog\x20(required\x20for\x20migration_review).'),'network':z['enum'](['testnet','mainnet','localnet'])['optional']()['describe']('Target\x20network\x20for\x20migration_import\x20/\x20migration_apply\x20(default\x20testnet;\x20mainnet\x20requires\x20explicit\x20user\x20confirmation;\x20\x27localnet\x27\x20is\x20a\x20provenance\x20label\x20for\x20locally\x20validated\x20plans\x20—\x20the\x20pipeline\x20never\x20executes\x20on-chain).'),'plan':z['record'](z['string'](),z['unknown']())['optional']()['describe']('The\x20creation\x20plan\x20to\x20execute\x20(required\x20for\x20plan_execute):\x20pass\x20the\x20object\x20returned\x20under\x20\x27plan\x27\x20by\x20template_generate\x20VERBATIM\x20—\x20mutating\x20steps\x20by\x20hand\x20is\x20what\x20the\x2032-manual-write\x20era\x20did.\x20Executing\x20requires\x20verdict.buildable=true;\x20a\x20blocked\x20plan\x20is\x20refused\x20at\x20the\x20freeze\x20gate.'),'completed_steps':z['array'](z['string']())['optional']()['describe']('plan_execute\x20resume\x20(AR-5):\x20step\x20ids\x20already\x20EXECUTED\x20in\x20a\x20prior\x20run.\x20Those\x20steps\x20are\x20adopted,\x20not\x20re-executed.\x20A\x20run\x20that\x20did\x20not\x20complete\x20returns\x20a\x20ready-to-pass\x20`resume`\x20payload\x20(completed_steps/previous_outputs)\x20—\x20pass\x20it\x20back\x20verbatim\x20instead\x20of\x20deriving\x20the\x20lists\x20by\x20hand.'),'previous_outputs':z['record'](z['string'](),z['string']())['optional']()['describe']('plan_execute\x20resume\x20(AR-5):\x20step\x20id\x20->\x20created\x20on-chain\x20address\x20map\x20from\x20the\x20prior\x20run\x27s\x20outputs\x20field,\x20so\x20$ref\x20bindings\x20resolve\x20against\x20the\x20objects\x20that\x20ALREADY\x20exist.'),'resume_from_step':z['string']()['optional']()['describe']('plan_execute\x20resume\x20(W5-08):\x20the\x20FIRST\x20step\x20to\x20(re-)execute\x20—\x20every\x20step\x20BEFORE\x20it\x20in\x20plan\x20order\x20is\x20adopted\x20from\x20previous_outputs.\x20Lighter\x20than\x20enumerating\x20completed_steps:\x20pass\x20the\x20first\x20step\x20whose\x20status\x20is\x20NOT\x20\x27executed\x27\x20in\x20the\x20failed\x20response,\x20plus\x20previous_outputs.\x20Unknown\x20ids\x20are\x20refused\x20—\x20the\x20resume\x20channel\x20binds\x20to\x20the\x20COMPLETE\x20plan,\x20never\x20to\x20one\x20slice\x27s\x20step\x20list.'),'retry_override':z['object']({'step_id':z['string']()['min'](0x1)['describe']('The\x20step\x20named\x20in\x20the\x20RETRY_LOCKED\x20refusal\x20(the\x20repeated-failure\x20guard\x27s\x20lock).'),'note':z['string']()['min'](0x1)['describe']('Why\x20one\x20more\x20round\x20is\x20justified\x20—\x20mandatory,\x20echoed\x20into\x20the\x20response\x20as\x20retry_override_applied\x20for\x20audit.')})['optional']()['describe']('plan_execute\x20(W5-08):\x20authorizes\x20ONE\x20more\x20round\x20for\x20a\x20step\x20that\x20failed\x20with\x20the\x20IDENTICAL\x20error\x20in\x202+\x20consecutive\x20rounds\x20(a\x20further\x20unchanged\x20re-run\x20is\x20refused\x20pre-execution).\x20The\x20note\x20is\x20mandatory\x20and\x20audit-trailed.'),'env':z['record'](z['string'](),z['unknown']())['optional']()['describe']('Environment\x20for\x20on-chain\x20execution\x20(plan_execute):\x20forwarded\x20to\x20the\x20executor\x20(e.g.\x20{\x20network:\x20\x27testnet\x27\x20}).'),'accounts':z['record'](z['string'](),z['unknown']())['optional']()['describe']('Per-step\x20signing\x20accounts\x20(BSW-F04):\x20named\x20envs\x20for\x20steps\x20that\x20declare\x20an\x20`account`\x20(currently\x20\x27arb_controller\x27\x20—\x20the\x20independent\x20third-party\x20Arbitration\x20controller,\x20E_ARBITRATION_PERMISSION_CONFLICT=33).\x20e.g.\x20{\x20arb_controller:\x20{\x20network:\x20\x27testnet\x27\x20}\x20}.\x20A\x20step\x20declaring\x20an\x20account\x20missing\x20from\x20this\x20map\x20FAILS\x20—\x20the\x20default\x20signer\x20is\x20never\x20silently\x20reused\x20for\x20an\x20account-bound\x20step.'),'timeout_ms':z['number']()['int']()['positive']()['optional']()['describe']('plan_execute\x20wall-clock\x20budget\x20for\x20the\x20WHOLE\x20run\x20(ktt4\x20RT-08):\x20set\x20it\x20BELOW\x20your\x20transport\x20timeout\x20when\x20the\x20plan\x20is\x20too\x20big\x20for\x20one\x20window\x20(~50\x20steps\x20x\x20~6s\x20each).\x20'+'The\x20budget\x20is\x20checked\x20BEFORE\x20each\x20step\x20—\x20a\x20step\x20is\x20never\x20interrupted\x20mid-flight\x20—\x20and\x20an\x20exhausted\x20budget\x20stops\x20the\x20run\x20CLEANLY,\x20returning\x20the\x20partial\x20steps/outputs\x20that\x20resume\x20directly\x20'+'(re-send\x20with\x20completed_steps\x20=\x20every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27,\x20previous_outputs\x20=\x20outputs).\x20Omit\x20to\x20run\x20to\x20completion\x20(subject\x20to\x20your\x20transport\x20timeout).')})['strict']();const ScanSummarySchema=z['object']({'risk_level':z['enum'](['low','medium','high','critical']),'passed':z['boolean'](),'finding_count':z['number'](),'findings_by_severity':z['record'](z['string'](),z['number']())['describe']('Finding\x20count\x20keyed\x20by\x20severity.'),'findings':z['array'](TemplateScanFindingSchema)['describe']('Every\x20finding\x20with\x20its\x20rule\x20id,\x20detail\x20and\x20suggestion.'),'red_flags':z['array'](z['string']())})['describe']('Pre-deploy\x20scan\x20summary\x20(generation/apply\x20only\x20runs\x20when\x20passed).'),SemanticIrEcho={'semantic_ir_digest':z['string']()['optional']()['describe']('sha256\x20of\x20the\x20frozen\x20Semantic\x20IR\x20artifact\x20(present\x20only\x20when\x20semantic_ir\x20was\x20supplied).'),'semantic_ir_issues':z['array'](z['string']())['optional']()['describe']('IR\x20claims\x20dropped/clamped/conflicting\x20during\x20validation\x20(unknown\x20vocabulary,\x20inverted\x20span,\x20sub-threshold\x20confidence).')};export const BenchmarkMigrationOutputSchema=z['object']({'result':z['discriminatedUnion']('action',[z['object']({'action':z['literal']('template_list'),'count':z['number']()['describe']('Number\x20of\x20templates\x20returned.'),'templates':z['array'](TemplateSummarySchema)['describe']('Template\x20listing\x20rows.'),'discovery_vocabulary':z['object']({'industries':z['array'](z['string']())['describe']('Registered\x20industry\x20names\x20a\x20Semantic\x20IR\x20discovery.industry\x20may\x20use.'),'tags':z['array'](z['string']())['describe']('The\x20CLOSED\x20canonical\x20discovery-tag\x20vocabulary\x20a\x20Semantic\x20IR\x20discovery.tags\x20entry\x20may\x20use.'),'product_refs':z['array'](z['string']())['describe']('Benchmark-product\x20slugs\x20a\x20Semantic\x20IR\x20discovery.product_ref\x20may\x20use.')})['describe']('The\x20closed,\x20language-neutral\x20vocabulary\x20for\x20Semantic\x20IR\x20discovery\x20evidence\x20—\x20callers\x20translate\x20into\x20these\x20tokens;\x20the\x20server\x20drops\x20anything\x20else\x20and\x20reports\x20it.'),'load_errors':z['array'](z['string']())['describe']('Template\x20files\x20that\x20failed\x20to\x20load/validate\x20(never\x20silently\x20dropped).')}),z['object']({'action':z['literal']('template_get'),'template':z['record'](z['string'](),z['unknown']())['describe']('Full\x20template\x20object\x20(machine_shape/guards/allocator/fee_params/body/...).')}),z['object']({'action':z['literal']('template_generate'),'template_id':z['string'](),...SemanticIrEcho,'scan':ScanSummarySchema,'plan':z['record'](z['string'](),z['unknown']())['describe']('Creation\x20plan\x20from\x20the\x20merchant-guide\x20pipeline\x20(never\x20executed\x20on-chain).'),'stale_build':StaleBuildDisclosureSchema,'verdict':z['object']({'buildable':z['boolean'](),'blockers':z['array'](z['string']()),'status':z['enum'](['READY','BLOCKED','UNVERIFIED'])['describe']('AZT-04\x20single\x20release\x20authority.\x20UNVERIFIED\x20(ks7\x20F-18\x20/\x20h1w9\x20F-17,\x20kp1\x20P1-5\x20residual):\x20the\x20stale_build\x20face\x20was\x20not\x20actionable,\x20so\x20the\x20verdict\x20is\x20void\x20AS\x20A\x20WHOLE\x20—\x20buildable\x20is\x20false\x20because\x20VERIFICATION\x20failed,\x20NOT\x20because\x20the\x20plan\x20is\x20defective\x20(read\x20blockers[0]\x20and\x20stale_build,\x20rebuild,\x20re-run).')})['describe']('Single\x20aggregate\x20ruling\x20over\x20the\x20three\x20signal\x20faces\x20(scan.passed\x20/\x20plan.graph_validation.valid\x20/\x20plan.audit.blocking)\x20—\x20the\x20authoritative\x20go/no-go\x20(bkmn-261012\x20F-M62);\x20the\x20individual\x20faces\x20stay\x20advisory.'),'next_action':z['string']()['describe']('Top-level\x20forwarding\x20of\x20the\x20materialization\x20contract\x20(C6):\x20the\x20guide\x27s\x20\x27Plan\x20ready.\x20Materialize:\x20...\x27\x20text\x20verbatim\x20when\x20the\x20audit\x20is\x20clean\x20and\x20the\x20build\x20is\x20fresh;\x20a\x20BLOCKED\x20reroute,\x20or\x20a\x20DO-NOT-EXECUTE\x20rebuild-first\x20reroute\x20when\x20stale_build.actionable\x20is\x20false,\x20otherwise.')}),z['object']({'action':z['literal']('template_scan'),'scan':z['object']({'template_id':z['string'](),'risk_level':z['enum'](['low','medium','high','critical']),'passed':z['boolean'](),'findings':z['array'](TemplateScanFindingSchema),'red_flags':z['array'](z['string']()),'drift':z['record'](z['string'](),z['unknown']())['describe']('Disk-vs-catalog\x20drift\x20face\x20for\x20the\x20scanned\x20body\x20(S14-E2).'),'compile_dry_run':z['object']({'status':z['enum'](['ready','blocked','unavailable','unverified']),'buildable':z['boolean']()['optional'](),'blockers':z['array'](z['string']())['optional'](),'note':z['string']()})['describe']('Compile-kernel\x20probe\x20verdict\x20—\x20the\x20same\x20authority\x20template_generate\x20enforces\x20(S14-E2/GF-29).\x20\x27unverified\x27\x20(ks7\x20F-18\x20/\x20h1w9\x20F-17):\x20the\x20stale_build\x20face\x20was\x20not\x20actionable,\x20so\x20the\x20probe\x27s\x20verdict\x20is\x20void\x20—\x20rebuild\x20and\x20re-run.')})['describe']('Full\x20pre-deploy\x20scan\x20result.'),'stale_build':StaleBuildDisclosureSchema,'buildable':z['boolean']()['describe']('TOP-level\x20build\x20verdict\x20(S14-E2):\x20the\x20ONE\x20authority\x20buildVerdict\x20shares\x20with\x20template_generate\x20—\x20the\x20static\x20passed/risk_level\x20stay\x20advisory.'),'build_blockers':z['array'](z['string']())['describe']('Why\x20the\x20compile\x20kernel\x20refuses\x20(absent/empty\x20when\x20not\x20definitively\x20blocked).'),'next_action':z['string']()['describe']('Verdict-obedient\x20routing\x20(ZR-41):\x20BLOCKED\x20refusal,\x20proceed-to-generate,\x20or\x20the\x20UNVERIFIED\x20rebuild-first\x20reroute\x20when\x20stale_build.actionable\x20is\x20false.')}),z['object']({'action':z['literal']('migration_import'),'log':MigrationLogSchema['describe']('The\x20structured\x20migration\x20log.'),'buildable':z['boolean']()['optional']()['describe']('Compile-kernel\x20build\x20verdict\x20on\x20probe\x20inputs\x20(S14-E2;\x20absent\x20when\x20the\x20probe\x20could\x20not\x20run)\x20—\x20the\x20matched\x20template\x27s\x20buildability,\x20surfaced\x20at\x20the\x20earliest\x20migration\x20face.'),'build_blockers':z['array'](z['string']())['optional']()['describe']('Why\x20the\x20compile\x20kernel\x20refuses\x20(present\x20only\x20when\x20the\x20probe\x20ruled).'),'compile_dry_run':z['object']({'status':z['enum'](['ready','blocked','unavailable','unverified']),'note':z['string']()})['optional']()['describe']('Probe\x20verdict\x20face\x20(S14-E2).'),'inference_source':z['enum'](['keywords','semantic_ir','semantic_ir+keywords'])['optional']()['describe']('Which\x20layer\x20resolved\x20the\x20industry:\x20\x27keywords\x27\x20=\x20English\x20lexical\x20match\x20only;\x20\x27semantic_ir\x27\x20=\x20'+'the\x20caller\x27s\x20IR\x20decided;\x20\x27semantic_ir+keywords\x27\x20=\x20both\x20contributed.\x20Present\x20only\x20when\x20semantic_ir\x20was\x20supplied.'),...SemanticIrEcho,'next_action':z['string']()['describe']('Next\x20chain\x20step:\x20run\x20migration_review\x20with\x20this\x20log\x20(C6\x20—\x20the\x20chain\x20is\x20self-describing,\x20no\x20agent\x20re-exploration);\x20carries\x20a\x20BLOCKED\x20warning\x20tail\x20when\x20the\x20probe\x20refused\x20(S14-E2).')}),z['object']({'action':z['literal']('migration_review'),'log':MigrationLogSchema['describe']('The\x20migration\x20log\x20under\x20review.'),'review_summary':z['object']({'mapped_count':z['number'](),'unmapped_count':z['number'](),'manual_review_count':z['number'](),'risk_passed':z['boolean'](),'buildable':z['boolean']()['optional']()['describe']('Compile-kernel\x20build\x20verdict\x20on\x20probe\x20inputs\x20(S14-E2;\x20absent\x20when\x20the\x20probe\x20could\x20not\x20run)\x20—\x20a\x20DEFINITIVE\x20false\x20verdict\x20un-cleans\x20the\x20route.'),'build_blockers':z['array'](z['string']())['optional']()['describe']('Why\x20the\x20compile\x20kernel\x20refuses\x20(present\x20only\x20when\x20the\x20probe\x20ruled).'),'compile_dry_run':z['object']({'status':z['enum'](['ready','blocked','unavailable','unverified']),'note':z['string']()})['optional']()['describe']('Probe\x20verdict\x20face\x20(S14-E2).')})['describe']('Counts\x20+\x20risk\x20status\x20+\x20build\x20verdict\x20(S14-E2)\x20for\x20the\x20confirmation\x20screen.'),'next_action':z['string']()['describe']('Next\x20chain\x20step:\x20migration_apply\x20with\x20the\x20matched\x20template\x20when\x20the\x20review\x20is\x20clean;\x20surface\x20the\x20unmapped/manual_review\x20items\x20for\x20a\x20user\x20decision\x20otherwise.')}),z['object']({'action':z['literal']('migration_apply'),'template_id':z['string'](),'network':z['enum'](['testnet','mainnet','localnet']),...SemanticIrEcho,'scan':ScanSummarySchema,'plan':z['record'](z['string'](),z['unknown']())['describe']('Creation\x20plan\x20from\x20the\x20merchant-guide\x20pipeline\x20(never\x20executed\x20on-chain).'),'verdict':z['object']({'buildable':z['boolean'](),'blockers':z['array'](z['string']()),'status':z['enum'](['READY','BLOCKED','UNVERIFIED'])['describe']('AZT-04\x20single\x20release\x20authority.\x20UNVERIFIED\x20(ks7\x20F-18\x20/\x20h1w9\x20F-17,\x20kp1\x20P1-5\x20residual):\x20the\x20stale_build\x20face\x20was\x20not\x20actionable,\x20so\x20the\x20verdict\x20is\x20void\x20AS\x20A\x20WHOLE\x20—\x20buildable\x20is\x20false\x20because\x20VERIFICATION\x20failed,\x20NOT\x20because\x20the\x20plan\x20is\x20defective\x20(read\x20blockers[0]\x20and\x20stale_build,\x20rebuild,\x20re-run).')})['describe']('Single\x20aggregate\x20ruling\x20over\x20the\x20three\x20signal\x20faces\x20(scan.passed\x20/\x20plan.graph_validation.valid\x20/\x20plan.audit.blocking)\x20—\x20the\x20authoritative\x20go/no-go\x20(bkmn-261012\x20F-M62);\x20the\x20individual\x20faces\x20stay\x20advisory.'),'next_action':z['string']()['describe']('Top-level\x20forwarding\x20of\x20the\x20materialization\x20contract\x20(C6):\x20the\x20guide\x27s\x20\x27Plan\x20ready.\x20Materialize:\x20...\x27\x20text\x20verbatim\x20when\x20the\x20audit\x20is\x20clean\x20and\x20the\x20build\x20is\x20fresh;\x20a\x20BLOCKED\x20reroute,\x20or\x20a\x20DO-NOT-EXECUTE\x20rebuild-first\x20reroute\x20when\x20stale_build.actionable\x20is\x20false,\x20otherwise.')}),z['object']({'action':z['literal']('plan_execute'),'completed':z['boolean']()['describe']('True\x20when\x20EVERY\x20step\x20executed\x20(store\x20fully\x20deployed).'),'steps':z['array'](z['record'](z['string'](),z['unknown']()))['describe']('Per-step\x20results:\x20{\x20stepId,\x20status:\x20executed|failed|blocked,\x20digest?,\x20address?,\x20error?\x20}.'),'outputs':z['record'](z['string'](),z['string']())['describe']('step\x20id\x20->\x20created\x20on-chain\x20address\x20(create\x20steps).\x20Feed\x20back\x20as\x20previous_outputs\x20when\x20resuming.'),'preflight':z['record'](z['string'](),z['unknown']())['describe']('Freeze-gate\x20audit\x20the\x20run\x20was\x20gated\x20on\x20(issues\x20+\x20findings).'),'readback':z['record'](z['string'](),z['unknown']())['describe']('Post-execution\x20conservation/readback\x20checks.'),'resume':z['object']({'completed_steps':z['array'](z['string']())['describe']('Every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27\x20in\x20this\x20response\x20(fresh\x20OR\x20adopted)\x20—\x20the\x20completed_steps\x20of\x20the\x20next\x20round.'),'previous_outputs':z['record'](z['string'](),z['string']())['describe']('This\x20response\x27s\x20outputs\x20—\x20the\x20previous_outputs\x20of\x20the\x20next\x20round.')})['optional']()['describe']('W5-08\x20①:\x20the\x20READY-TO-PASS\x20resume\x20payload,\x20present\x20whenever\x20the\x20run\x20did\x20NOT\x20complete.\x20Pass\x20both\x20fields\x20back\x20verbatim\x20on\x20the\x20next\x20plan_execute\x20call\x20(or\x20use\x20resume_from_step\x20+\x20previous_outputs).'),'repeated_failures':z['array'](z['object']({'step_id':z['string'](),'consecutive_rounds':z['number'](),'error':z['string']()}))['optional']()['describe']('W5-08\x20③:\x20steps\x20that\x20failed\x20with\x20the\x20IDENTICAL\x20error\x20in\x202+\x20consecutive\x20rounds\x20—\x20the\x20run\x20withholds\x20the\x20generic\x20RESUME\x20recipe\x20for\x20these;\x20fix\x20the\x20cause\x20before\x20resuming.'),'retry_prohibited':z['boolean']()['optional']()['describe']('W5-08\x20③:\x20true\x20alongside\x20repeated_failures\x20—\x20a\x20further\x20unchanged\x20re-run\x20is\x20REFUSED\x20pre-execution\x20(retry_override\x20is\x20the\x20audited\x20escape\x20hatch).'),'retry_override_applied':z['object']({'step_id':z['string'](),'note':z['string']()})['optional']()['describe']('W5-08\x20③\x20audit\x20trail:\x20the\x20retry_override\x20accepted\x20this\x20round\x20(step\x20cleared\x20from\x20the\x20repeated-failure\x20ledger).'),'next_action':z['string']()['describe']('One-click\x20forwarding:\x20deploy-complete\x20guidance,\x20the\x20resume\x20recipe\x20(completed_steps\x20+\x20previous_outputs)\x20after\x20a\x20mid-run\x20failure,\x20or\x20the\x20STOP-retrying\x20ruling\x20when\x20the\x20same\x20error\x20recurred.')})])})['strict']();
1
+ import{z}from'zod';import{GuardResolutionInputSchema}from'../goal/planning.js';import{SemanticIRInputSchema}from'../../knowledge/semantic-ir.js';import{CATALOG_INDUSTRIES}from'../../knowledge/catalog-facts.js';const TemplateSummarySchema=z['object']({'id':z['string']()['describe']('Template\x20id\x20\x27<industry>/<variant>\x27,\x20e.g.\x20\x27retail/scale-marketplace\x27.'),'industry':z['string']()['describe']('Industry\x20vertical.'),'variant':z['string']()['describe']('Business-model\x20variant\x20slug.'),'product_ref':z['string']()['optional']()['describe']('Benchmark\x20product\x20slug\x20this\x20archetype\x20models\x20(e.g.\x20\x27amazon\x27).\x20The\x20only\x20sanctioned\x20company\x20name;\x20users\x20can\x20pick\x20a\x20template\x20by\x20naming\x20the\x20incumbent\x20product.'),'archetype':z['enum'](['leader','challenger']),'key_risk':z['string']()['describe']('Primary\x20risk\x20this\x20template\x20mitigates.'),'node_count':z['number']()['describe']('Machine\x20node\x20count.'),'guard_count':z['number']()['describe']('Guard\x20template\x20count.'),'recommended_role':z['enum'](['merchant','supplier','both']),'tags':z['array'](z['string']())['describe']('Canonical\x20discovery\x20tags\x20this\x20template\x20answers\x20to\x20(curated\x20business-model\x20tags\x20+\x20its\x20variant\x20slug).\x20These\x20are\x20the\x20tokens\x20a\x20Semantic\x20IR\x20`discovery.tags`\x20entry\x20may\x20use.')})['describe']('Compact\x20template\x20listing\x20row.'),TemplateScanFindingSchema=z['object']({'rule_id':z['string']()['optional']()['describe']('Rule\x20id\x20when\x20known\x20(e.g.\x20\x27R-M3-01\x27,\x20\x27R1\x27).'),'severity':z['enum'](['low','medium','high','critical']),'title':z['string'](),'detail':z['string'](),'suggestion':z['string']()})['describe']('One\x20pre-deploy\x20risk\x20finding.'),StaleBuildDisclosureSchema=z['object']({'stale':z['boolean']()['describe']('4R-01\x20residual:\x20true\x20only\x20when\x20the\x20shared\x20src-vs-dist\x20mtime\x20detector\x20RESOLVED\x20and\x20found\x20the\x20running\x20dist\x20OLDER\x20than\x20the\x20workspace\x20src\x20—\x20the\x20scan/plan\x20verdicts\x20may\x20describe\x20superseded\x20template\x20knowledge.'),'known':z['boolean']()['describe']('False\x20when\x20the\x20detector\x20could\x20not\x20resolve\x20(installed\x20dist-only\x20package,\x20build\x20in\x20progress,\x20stat\x20error).\x20stale\x20is\x20then\x20NOT\x20evidence\x20of\x20freshness\x20—\x20treat\x20verdicts\x20as\x20unconfirmed.\x20Fail-open:\x20never\x20an\x20error.'),'actionable':z['boolean']()['describe']('rq-tn-261030-8693be\x20B11:\x20the\x20scan/plan\x20verdicts\x20under\x20this\x20face\x20are\x20fit\x20to\x20act\x20on\x20ONLY\x20when\x20true\x20(fresh\x20AND\x20known).\x20actionable=false\x20VOIDS\x20the\x20conclusions\x20in\x20the\x20same\x20response\x20—\x20rebuild\x20(pnpm\x20build)\x20and\x20re-run\x20before\x20acting\x20on\x20any\x20of\x20them.'),'lag_minutes':z['number']()['nullable']()['describe']('Whole\x20minutes\x20the\x20newest\x20compiled\x20artifact\x20lags\x20the\x20newest\x20source\x20file\x20(null\x20when\x20unknown).'),'detail':z['string']()['describe']('Human-readable\x20freshness\x20statement\x20(source/build\x20mtime\x20lag)\x20with\x20the\x20rebuild\x20remediation\x20when\x20stale.')})['describe']('Always-present\x20stale-build\x20disclosure\x20on\x20template_scan\x20/\x20template_generate\x20(reuses\x20computeSrcDistStaleness;\x20no\x20parallel\x20detector).'),MigrationEntrySchema=z['object']({'source_element':z['string']()['describe']('Competitor-side\x20element.'),'target_object':z['string']()['optional']()['describe']('WoWok\x20object/mechanism\x20it\x20maps\x20to.'),'mapping_note':z['string']()['describe']('One-line\x20mapping\x20explanation.'),'reason':z['string']()['optional']()['describe']('Why\x20it\x20cannot\x20be\x20migrated,\x20or\x20why\x20it\x20needs\x20a\x20decision.')})['describe']('One\x20competitor\x20element\x20and\x20its\x20WoWok\x20mapping\x20outcome.'),MigrationLogSchema=z['object']({'source':z['object']({'url':z['string']()['optional'](),'description':z['string'](),'detected_industry':z['string'](),'matched_template':z['string']()['describe']('Matched\x20template\x20id\x20\x27<industry>/<variant>\x27.')})['describe']('Migration\x20source\x20provenance.'),'template_match':z['object']({'source':z['enum'](['explicit','product_ref','discovery_product_ref','discovery_tags','keywords','ir_industry_fallback','industry_leader'])['describe']('Which\x20deterministic\x20pass\x20chose\x20the\x20template:\x20\x27explicit\x27\x20=\x20caller\x27s\x20template_id;\x20'+'\x27product_ref\x27\x20=\x20a\x20benchmark\x20product\x20named\x20in\x20the\x20text;\x20\x27discovery_product_ref\x27\x20=\x20the\x20'+'Semantic\x20IR\x20resolved\x20the\x20benchmark\x20product;\x20\x27discovery_tags\x27\x20=\x20the\x20IR\x27s\x20canonical\x20tags\x20'+'scored\x20the\x20variant;\x20\x27keywords\x27\x20=\x20English\x20keyword\x20scoring;\x20\x27ir_industry_fallback\x27\x20=\x20the\x20'+'IR\x20proved\x20the\x20industry\x20only;\x20\x27industry_leader\x27\x20=\x20an\x20explicit\x20industry\x20hint\x20with\x20no\x20match.'),'confidence':z['number']()['describe']('Match\x20confidence\x200-1\x20(only\x20an\x20exact\x20benchmark-product\x20hit\x20is\x201.0).'),'matched_tags':z['array'](z['string']())['optional']()['describe']('IR\x20tags\x20that\x20hit\x20this\x20template\x20(discovery_tags\x20only).')})['describe']('Template-match\x20provenance\x20—\x20why\x20this\x20template,\x20without\x20re-running\x20the\x20matcher.'),'mapped':z['array'](MigrationEntrySchema)['describe']('Elements\x20that\x20map\x20cleanly\x20to\x20WoWok\x20objects.'),'unmapped':z['array'](MigrationEntrySchema)['describe']('Elements\x20that\x20cannot\x20be\x20migrated,\x20with\x20reasons.'),'manual_review':z['array'](MigrationEntrySchema)['describe']('Elements\x20requiring\x20an\x20explicit\x20user\x20decision.'),'wowok_advantages':z['array'](z['string']())['describe']('WoWok\x20platform\x20advantages\x20surfaced\x20during\x20migration.'),'customizable_modules':z['array'](z['string']())['describe']('Business-module\x20ids\x20the\x20user\x20can\x20customize.'),'role_assessment':z['object']({'recommended':z['string'](),'rationale':z['string'](),'alternatives':z['array'](z['string']())})['describe']('Merchant\x20vs\x20supplier\x20role\x20assessment.'),'risk_check':z['object']({'passed':z['boolean'](),'findings':z['array'](z['string']())})['describe']('Dry-run\x20risk\x20check\x20against\x20the\x20matched\x20template.'),'requirement_coverage':z['array'](z['object']({'family':z['enum'](['fulfillment','after_sales','review_incentive','discount','privacy_channel']),'label':z['string'](),'status':z['enum'](['mapped','unmapped','blocker']),'evidence':z['string']()['describe']('The\x20matched\x20phrase\x20from\x20the\x20description\x20—\x20every\x20coverage\x20verdict\x20carries\x20its\x20evidence.'),'target':z['string']()['optional']()['describe']('The\x20WoWok\x20carrier\x20when\x20status=mapped.'),'note':z['string']()})['strict']())['optional']()['describe']('W5-07\x20(ks7\x20F-04/F-02):\x20explicit-promise\x20coverage\x20matrix.\x20Every\x20promise\x20family\x20the\x20description\x20hit\x20lands\x20in\x20exactly\x20ONE\x20of\x20'+'mapped/unmapped/blocker\x20—\x20a\x20stated\x20promise\x20can\x20never\x20silently\x20disappear.\x20status=\x27blocker\x27\x20=\x20the\x20matched\x20template\x20cannot\x20carry\x20the\x20'+'promise\x20as-is;\x20the\x20note\x20names\x20the\x20exact\x20build\x20decision\x20(declare\x20the\x20mode\x20/\x20compose\x20the\x20registered\x20fulfillment\x20combination)\x20required\x20before\x20migration_apply.\x20'+'Surface\x20every\x20blocker\x20to\x20the\x20user\x20at\x20migration_review.\x20Optional\x20only\x20so\x20logs\x20produced\x20before\x20W5-07\x20still\x20parse\x20—\x20fresh\x20migration_import\x20logs\x20ALWAYS\x20carry\x20it.'),'network':z['enum'](['testnet','mainnet','localnet'])['describe']('Target\x20network\x20(default\x20testnet).\x20\x27localnet\x27\x20labels\x20plans\x20validated\x20against\x20a\x20local\x20net\x20—\x20the\x20migration\x20pipeline\x20is\x20network-agnostic,\x20this\x20is\x20provenance\x20metadata,\x20not\x20an\x20execution\x20target.')})['describe']('Structured\x20competitor-migration\x20log.'),SaleItemIncentiveSchema=z['object']({'amount':z['string']()['describe']('Incentive\x20amount\x20as\x20a\x20buyer-readable\x20string\x20(e.g.\x20\x225\x20USDC\x22\x20or\x20\x221000000000\x20WOW\x20smallest\x20units\x22).\x20Quote-time\x20disclosure\x20only\x20—\x20fund\x20the\x20actual\x20rail\x20separately\x20(e.g.\x20the\x20template\x27s\x20review_reward_pool).'),'conditions':z['string']()['describe']('What\x20the\x20buyer\x20must\x20do\x20to\x20earn\x20it\x20(e.g.\x20\x22leave\x20a\x20written\x20+\x20rated\x20review\x20of\x20the\x20delivered\x20work\x22).\x20Must\x20be\x20perceptible\x20BEFORE\x20the\x20order\x20is\x20placed.'),'basis':z['string']()['describe']('Accrual\x20scope:\x20\x22per-order\x22\x20/\x20\x22once-per-buyer\x22\x20/\x20\x22once-per-buyer-per-order\x22.\x20Matches\x20the\x20claim\x20guard\x27s\x20replay\x20semantics\x20—\x20a\x20recipient-only\x20gate\x20is\x20once-per-buyer-for-life,\x20an\x20order-scoped\x20stamp\x20is\x20per-order\x20(SV-2).'),'claim_window':z['string']()['describe']('How\x20long\x20the\x20buyer\x20has\x20to\x20claim\x20(e.g.\x20\x2214\x20days\x20from\x20the\x20review\x22).\x20Mirror\x20the\x20reward\x20claim\x20guard\x27s\x20window\x20fee_param\x20so\x20the\x20quote\x20never\x20promises\x20more\x20than\x20the\x20rail\x20pays.')})['strict']()['describe']('Optional\x20structured\x20incentive\x20for\x20one\x20sale\x20item\x20(G-07):\x20buyer-perceivable\x20reward\x20terms\x20carried\x20to\x20the\x20compiled\x20plan\x20for\x20quote-time\x20disclosure.\x20DECLARATION\x20ONLY\x20—\x20the\x20chain\x20SaleItem\x20has\x20no\x20such\x20field;\x20the\x20actual\x20payout\x20rail\x20is\x20configured\x20separately.'),SaleItemPlanSchema=z['object']({'incentive':SaleItemIncentiveSchema['optional']()})['passthrough']()['describe']('One\x20sellable\x20SKU\x20in\x20the\x20plan\x20catalog:\x20the\x20chain\x20SaleItem\x20fields\x20plus\x20the\x20optional\x20structured\x20`incentive`\x20declaration\x20(G-07).\x20Unknown\x20keys\x20pass\x20through\x20so\x20chain-side\x20fields\x20can\x20evolve\x20without\x20schema\x20changes.');export const BenchmarkMigrationSchema=z['object']({'action':z['enum'](['template_list','template_get','template_generate','template_scan','migration_import','migration_review','migration_apply','plan_execute'])['describe']('Action:\x20\x27template_list\x27\x20=\x20list\x20the\x20loaded\x20MD\x20industry\x20templates\x20(optional\x20industry\x20filter);\x20'+'\x27template_get\x27\x20=\x20fetch\x20one\x20template\x20by\x20id\x20(template_id\x20required);\x20'+'\x27template_generate\x27\x20=\x20generate\x20a\x20creation\x20plan\x20from\x20a\x20template\x20via\x20the\x20merchant-guide\x20'+'pipeline\x20(template_id\x20required;\x20scan-first\x20—\x20CRITICAL\x20findings\x20block;\x20never\x20executes\x20on-chain);\x20'+'\x27template_scan\x27\x20=\x20pre-deploy\x20risk\x20scan\x20of\x20one\x20template\x20(template_id\x20required;\x20returns\x20'+'risk_level/findings/red_flags\x20plus\x20a\x20drift\x20face\x20—\x20disk-vs-catalog\x20provenance\x20of\x20the\x20'+'scanned\x20body;\x20CRITICAL\x20blocks\x20generation/apply);\x20'+'\x27migration_import\x27\x20=\x20competitor\x20URL/description\x20→\x20migration\x20plan\x20+\x20MigrationLog\x20'+'(description\x20required);\x20'+'\x27migration_review\x27\x20=\x20surface\x20the\x20MigrationLog\x20for\x20user\x20confirmation\x20(log\x20required);\x20'+'\x27migration_apply\x27\x20=\x20run\x20the\x20approved\x20template\x20through\x20the\x20merchant-guide\x20pipeline\x20'+'(template_id\x20required;\x20scan-first\x20—\x20CRITICAL\x20findings\x20block;\x20default\x20network\x20testnet);\x20'+'\x27plan_execute\x27\x20=\x20ONE-CLICK\x20DEPLOYMENT\x20(AR-5,\x20bsn7\x20T-06/R-01):\x20materialize\x20the\x20plan\x20returned\x20by\x20'+'template_generate\x20on-chain\x20—\x20preflight\x20freeze\x20gate,\x20topological\x20create/publish/configure,\x20readback.\x20'+'Resumable:\x20on\x20a\x20mid-run\x20failure,\x20re-send\x20with\x20completed_steps\x20+\x20previous_outputs\x20from\x20the\x20failed\x20'+'response\x20instead\x20of\x20re-running\x20from\x20scratch\x20(duplicate\x20objects).'),'template_id':z['string']()['optional']()['describe']('Template\x20id\x20\x27<industry>/<variant>\x27\x20(required\x20for\x20template_get\x20/\x20template_generate\x20/\x20template_scan\x20/\x20migration_apply),\x20e.g.\x20\x27retail/scale-marketplace\x27.'),'industry':z['string']()['optional']()['describe']('Industry\x20filter\x20for\x20template_list;\x20industry\x20hint\x20for\x20migration_import.\x20'+('Any\x20registered\x20industry\x20is\x20accepted\x20(builtin:\x20'+CATALOG_INDUSTRIES['join'](',\x20')+';\x20')+'plus\x20custom\x20industries\x20registered\x20via\x20industry\x20packs).\x20'+'Aliases\x20are\x20resolved\x20(e.g.\x20\x27ecommerce\x27\x20→\x20\x27retail\x27).'),'description':z['string']()['optional']()['describe']('Natural-language\x20business/competitor\x20description\x20(required\x20for\x20migration_import;\x20used\x20by\x20template_generate\x20as\x20the\x20intent\x20text).'),'semantic_ir':SemanticIRInputSchema['optional']()['describe']('Canonical\x20Semantic\x20IR\x20produced\x20by\x20the\x20CALLING\x20agent\x20for\x20a\x20NON-ENGLISH\x20(or\x20lexicon-outside)\x20description\x20—\x20this\x20server\x20runs\x20no\x20LLM.\x20'+'The\x20server\x20validates\x20it,\x20then\x20reuses\x20it\x20on\x20the\x20same\x20deterministic\x20surfaces\x20as\x20recommend_industry:\x20'+'(a)\x20migration_import\x20narrows\x20template\x20matching\x20to\x20the\x20IR-resolved\x20industry\x20and,\x20when\x20discovery.tags\x20are\x20supplied,\x20'+'selects\x20the\x20business-model\x20VARIANT\x20by\x20canonical\x20tag\x20coverage\x20(an\x20explicit\x20product_ref\x20or\x20\x27industry\x27\x20hint\x20still\x20wins);\x20'+'(b)\x20template_generate\x20/\x20migration_apply\x20read\x20the\x20numeric\x20claim\x20\x27reward_pool_amount\x27\x20as\x20the\x20review-reward\x20pool\x20prefill\x20—\x20'+'explicit\x20fee_overrides\x20>\x20IR\x20claim\x20>\x20the\x20English\x20regex\x20fallback.\x20'+'Shape:\x20{schema_version:\x202\x20(1\x20still\x20accepted),\x20locale:\x20\x27<BCP-47>\x27,\x20traits?,\x20domains?,\x20claims?:\x20[{key,\x20value,\x20confidence?}],\x20'+'discovery?:\x20{industry?,\x20tags?:\x20string[],\x20product_ref?,\x20english_summary?,\x20confidence?},\x20provenance:\x20{source:\x20\x27caller_llm\x27}}.\x20'+'discovery.tags\x20use\x20the\x20CLOSED\x20language-neutral\x20vocabulary\x20returned\x20by\x20template_list.discovery_vocabulary\x20'+'(canonical\x20English\x20business-model\x20tokens;\x20never\x20locale\x20words\x20—\x20translate\x20in\x20the\x20caller).\x20'+'discovery.product_ref\x20is\x20a\x20benchmark-product\x20slug,\x20discovery.industry\x20a\x20registered\x20industry,\x20and\x20discovery.english_summary\x20'+'is\x20a\x20canonical\x20English\x20restatement\x20used\x20only\x20for\x20keyword\x20fallback.\x20'+'Unknown\x20traits/domains/claims/tags/industries/product_refs\x20are\x20dropped\x20and\x20reported\x20in\x20semantic_ir_issues;\x20spans\x20and\x20quotes\x20'+'must\x20be\x20copied\x20verbatim\x20from\x20the\x20description\x20(unlocatable\x20evidence\x20is\x20dropped).'),'url':z['string']()['optional']()['describe']('Competitor\x20store/profile\x20URL\x20for\x20migration_import\x20(recorded\x20as\x20provenance\x20only).'),'fee_overrides':z['record'](z['string'](),z['union']([z['number'](),z['string']()]))['optional']()['describe']('Template\x20fee-parameter\x20overrides\x20for\x20template_generate\x20(e.g.\x20commission_rate_bps).'),'guard_resolutions':z['record'](z['string'](),GuardResolutionInputSchema)['optional']()['describe']('Judgment-layer\x20resolutions\x20for\x20pending\x20guard\x20designs\x20(C6-DEEP),\x20keyed\x20by\x20plan.pending_guard_designs[].key.\x20'+'A\x20blocked\x20migration_apply/template_generate\x20lists\x20every\x20unresolved\x20design\x20—\x20resolve\x20each\x20here\x20'+'(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20or\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id)\x20and\x20re-run\x20the\x20action.\x20'+'Advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop\x20may\x20be\x20resolved\x20with\x20{kind:\x27omit\x27}\x20instead\x20'+'(run75747\x20F-38:\x20honored\x20only\x20for\x20designs\x20with\x20no\x20inbound\x20binding;\x20an\x20omit\x20of\x20a\x20bound\x20design\x20'+'is\x20refused\x20with\x20GUARD_OMIT_UNSUPPORTED).\x20'+'The\x20audit\x20freeze\x20gate\x20still\x20decides:\x20resolutions\x20only\x20unblock\x20a\x20plan\x20whose\x20closed\x20audit\x20is\x20clean.'),'review_mode':z['enum'](['review','review_reward','none'])['optional']()['describe']('Per-build\x20review-rail\x20mode\x20(v53\x20templates).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20review_mode\x20applies.'),'reward_funding':z['string']()['optional']()['describe']('Review\x20reward\x20pool\x20funding,\x20smallest-unit\x20string.\x20HARD-REQUIRED\x20when\x20the\x20effective\x20review\x20mode\x20is\x20review_reward\x20(INV-4):\x20template_generate\x20refuses\x20the\x20build\x20up-front\x20with\x20error_code\x20\x27reward_funding_required\x27\x20rather\x20than\x20promising\x20an\x20unfunded\x20incentive\x20—\x20pass\x20this,\x20or\x20drop\x20the\x20mode\x20explicitly\x20(review_mode\x20\x27review\x27\x20keeps\x20the\x20rail\x20without\x20the\x20bounty;\x20\x27none\x27\x20removes\x20the\x20rail).\x20The\x20compile\x20kernel\x20also\x20blocks\x20with\x20REVIEW_REWARD_UNFUNDED\x20—\x20this\x20input\x20gate\x20just\x20fails\x20before\x20the\x20pipeline\x20runs.'),'reward_claim_amount':z['string']()['optional']()['describe']('Per-claim\x20reward\x20bounty\x20mounted\x20on\x20the\x20claim\x20guard_add,\x20smallest-unit\x20string.\x20Schema-required\x20on\x20the\x20mount\x20(BK15-F09):\x20compile\x20blocks\x20with\x20REVIEW_REWARD_AMOUNT_MISSING\x20when\x20absent\x20—\x20the\x20kernel\x20never\x20fabricates\x20a\x20real-money\x20parameter.'),'after_sales_mode':z['enum'](['return','exchange','warranty','none'])['optional']()['describe']('Per-build\x20after-sales\x20mode\x20(D12\x20refactor\x204).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20after_sales_mode\x20applies.\x20Declaring\x20a\x20mode\x20with\x20no\x20backing\x20rail\x20in\x20machine_shape\x20is\x20a\x20compile\x20blocker\x20(AFTER_SALES_RAIL_MISSING).'),'acceptance_mode':z['enum'](['milestone','contest','bounty','agent','none'])['optional']()['describe']('Per-build\x20acceptance/judging\x20mode\x20(D12\x20refactor\x202).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20acceptance_mode\x20applies.\x20A\x20judge-decided\x20mode\x20(contest/bounty/agent)\x20without\x20arbitration_mode\x20\x27third_party\x27\x20is\x20a\x20compile\x20blocker\x20(ACCEPTANCE_JUDGE_NOT_INDEPENDENT);\x20a\x20finite\x20revision_rounds_max\x20with\x20no\x20counter\x20Repository\x20guard\x20is\x20a\x20compile\x20blocker\x20(ACCEPTANCE_REVISION_UNBOUNDED).'),'installment_mode':z['enum'](['deposit_balance','milestone_n','none'])['optional']()['describe']('Per-build\x20installment/deposit\x20mode\x20(D12\x20refactor\x203).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20installment_mode\x20applies.\x20A\x20capture\x20forward\x20with\x20no\x20fund-gate\x20Guard\x20is\x20a\x20compile\x20blocker\x20(INSTALLMENT_FUNDING_UNGATED);\x20a\x20deposit-held\x20state\x20with\x20no\x20exit\x20rail\x20is\x20a\x20compile\x20blocker\x20(INSTALLMENT_DEPOSIT_STRANDED).'),'affiliate_mode':z['enum'](['commission','none'])['optional']()['describe']('Per-build\x20affiliate\x20commission\x20overlay\x20(D12\x20batch\x205).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20affiliate_mode\x20applies.\x20A\x20declared\x20commission\x20overlay\x20with\x20no\x20commission\x20rail\x20is\x20a\x20compile\x20blocker\x20(AFFILIATE_RAIL_MISSING);\x20a\x20commission\x20with\x20no\x20post-lock\x20no-clawback\x20disclosure\x20build_note\x20is\x20a\x20compile\x20blocker\x20(AFFILIATE_CLAWBACK_UNDISCLOSED).'),'crowdfunding_mode':z['enum'](['threshold','flexible','none'])['optional']()['describe']('Per-build\x20crowdfunding\x20campaign\x20overlay\x20(D12\x20batch\x207).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20crowdfunding_mode\x20applies.\x20A\x20declared\x20threshold/flexible\x20overlay\x20with\x20no\x20two-leg\x20escrow-exit\x20gate\x20(release\x20XOR\x20refund,\x20D-BUG-2)\x20is\x20a\x20compile\x20blocker\x20(CROWDFUNDING_THRESHOLD_GATE_MISSING);\x20a\x20threshold\x20gate\x20whose\x20aggregate\x20is\x20NOT\x20a\x20writer-bound\x20sum-where\x20(id_from\x20signer)\x20is\x20a\x20compile\x20blocker\x20(CROWDFUNDING_AGGREGATE_UNBOUND);\x20a\x20missing\x20L-04/L-01/L-05\x20disclosure\x20build_note\x20is\x20a\x20compile\x20blocker\x20(CROWDFUNDING_DISCLOSURE_MISSING).'),'logistics_mode':z['enum'](['none','carrier','merchant_managed','courier','pickup_point'])['optional']()['describe']('Per-build\x20fulfillment\x20topology\x20(K3\x20batch\x20C,\x20K-2).\x20Absent\x20=\x20the\x20template\x27s\x20declared\x20logistics_mode\x20applies.\x20A\x20declared\x20topology\x20the\x20machine_shape\x20cannot\x20honor\x20is\x20a\x20compile\x20blocker:\x20courier\x20with\x20no\x20named_operator\x20handover\x20rail\x20(LOGISTICS_COURIER_RAIL_MISSING)\x20or\x20a\x20pooled\x20delivery\x20fee\x20(LOGISTICS_COURIER_FEE_POOLED);\x20pickup_point\x20without\x20the\x20absolute\x20batch\x20cutoff\x20or\x20the\x20unclaimed-goods\x20exit\x20window\x20(LOGISTICS_PICKUP_CUTOFF_MISSING);\x20carrier\x20without\x20tracking\x20evidence\x20(LOGISTICS_CARRIER_EVIDENCE_MISSING);\x20any\x20physical\x20mode\x20without\x20a\x20transit-loss\x20story\x20(LOGISTICS_TRANSIT_LOSS_UNCOVERED);\x20courier/pickup_point\x20without\x20the\x20two\x20dispatch\x20disclosures\x20(LOGISTICS_DISPATCH_UNDISCLOSED).'),'sales':z['array'](SaleItemPlanSchema)['optional']()['describe']('The\x20sellable\x20SKU\x20catalog\x20(upwc-cat-261017\x20CAT-A1\x20/\x20PLAN-SALES-01).\x20REQUIRED\x20for\x20template_generate\x20(A-2,\x20amz9-ln-261023):\x20an\x20empty/absent\x20catalog\x20is\x20refused\x20up-front\x20with\x20error_code\x20\x27sales_required\x27\x20—\x20the\x20published\x20Service\x20would\x20freeze\x20with\x20sales:\x20[]\x20and\x20every\x20order_new\x20aborts;\x20PLAN-SALES-01\x20is\x20now\x20an\x20INPUT\x20error\x20on\x20this\x20action,\x20not\x20a\x20post-hoc\x20audit\x20finding.\x20migration_apply\x20keeps\x20the\x20audit-finding\x20posture\x20(it\x20confirms\x20an\x20already-reviewed\x20import).\x20Item\x20shape\x20follows\x20the\x20chain\x27s\x20SaleItem:\x20{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}\x20with\x20price\x20in\x20smallest\x20units.\x20OPTIONAL\x20per\x20item:\x20a\x20structured\x20`incentive`\x20object\x20(G-07:\x20{\x20amount,\x20conditions,\x20basis,\x20claim_window\x20},\x20all\x20strings)\x20declaring\x20the\x20buyer-perceivable\x20reward\x20terms\x20—\x20carried\x20verbatim\x20into\x20the\x20compiled\x20plan\x27s\x20service_sales\x20step\x20for\x20quote-time\x20disclosure;\x20it\x20is\x20plan\x20metadata\x20only\x20and\x20never\x20an\x20on-chain\x20SaleItem\x20field.'),'log':z['record'](z['string'](),z['unknown']())['optional']()['describe']('A\x20prior\x20MigrationLog\x20(required\x20for\x20migration_review).'),'network':z['enum'](['testnet','mainnet','localnet'])['optional']()['describe']('Target\x20network\x20for\x20migration_import\x20/\x20migration_apply\x20(default\x20testnet;\x20mainnet\x20requires\x20explicit\x20user\x20confirmation;\x20\x27localnet\x27\x20is\x20a\x20provenance\x20label\x20for\x20locally\x20validated\x20plans\x20—\x20the\x20pipeline\x20never\x20executes\x20on-chain).'),'plan':z['record'](z['string'](),z['unknown']())['optional']()['describe']('The\x20creation\x20plan\x20to\x20execute\x20(required\x20for\x20plan_execute):\x20pass\x20the\x20object\x20returned\x20under\x20\x27plan\x27\x20by\x20template_generate\x20VERBATIM\x20—\x20mutating\x20steps\x20by\x20hand\x20is\x20what\x20the\x2032-manual-write\x20era\x20did.\x20Alternatively\x20pass\x20{root:\x27file\x27,\x20path:\x27<plan.json>\x27}\x20to\x20read\x20the\x20plan\x20from\x20disk\x20(HAR-P1-14:\x20avoids\x20echoing\x20a\x2038-40-step\x20plan\x20through\x20the\x20tool-call\x20arguments;\x20the\x20file\x20must\x20contain\x20the\x20plan\x20envelope\x20or\x20the\x20bare\x20plan\x20as\x20JSON).\x20Executing\x20requires\x20verdict.buildable=true;\x20a\x20blocked\x20plan\x20is\x20refused\x20at\x20the\x20freeze\x20gate.'),'completed_steps':z['array'](z['string']())['optional']()['describe']('plan_execute\x20resume\x20(AR-5):\x20step\x20ids\x20already\x20EXECUTED\x20in\x20a\x20prior\x20run.\x20Those\x20steps\x20are\x20adopted,\x20not\x20re-executed.\x20A\x20run\x20that\x20did\x20not\x20complete\x20returns\x20a\x20ready-to-pass\x20`resume`\x20payload\x20(completed_steps/previous_outputs)\x20—\x20pass\x20it\x20back\x20verbatim\x20instead\x20of\x20deriving\x20the\x20lists\x20by\x20hand.'),'previous_outputs':z['record'](z['string'](),z['string']())['optional']()['describe']('plan_execute\x20resume\x20(AR-5):\x20step\x20id\x20->\x20created\x20on-chain\x20address\x20map\x20from\x20the\x20prior\x20run\x27s\x20outputs\x20field,\x20so\x20$ref\x20bindings\x20resolve\x20against\x20the\x20objects\x20that\x20ALREADY\x20exist.'),'resume_from_step':z['string']()['optional']()['describe']('plan_execute\x20resume\x20(W5-08):\x20the\x20FIRST\x20step\x20to\x20(re-)execute\x20—\x20every\x20step\x20BEFORE\x20it\x20in\x20plan\x20order\x20is\x20adopted\x20from\x20previous_outputs.\x20Lighter\x20than\x20enumerating\x20completed_steps:\x20pass\x20the\x20first\x20step\x20whose\x20status\x20is\x20NOT\x20\x27executed\x27\x20in\x20the\x20failed\x20response,\x20plus\x20previous_outputs.\x20Unknown\x20ids\x20are\x20refused\x20—\x20the\x20resume\x20channel\x20binds\x20to\x20the\x20COMPLETE\x20plan,\x20never\x20to\x20one\x20slice\x27s\x20step\x20list.'),'retry_override':z['object']({'step_id':z['string']()['min'](0x1)['describe']('The\x20step\x20named\x20in\x20the\x20RETRY_LOCKED\x20refusal\x20(the\x20repeated-failure\x20guard\x27s\x20lock).'),'note':z['string']()['min'](0x1)['describe']('Why\x20one\x20more\x20round\x20is\x20justified\x20—\x20mandatory,\x20echoed\x20into\x20the\x20response\x20as\x20retry_override_applied\x20for\x20audit.')})['optional']()['describe']('plan_execute\x20(W5-08):\x20authorizes\x20ONE\x20more\x20round\x20for\x20a\x20step\x20that\x20failed\x20with\x20the\x20IDENTICAL\x20error\x20in\x202+\x20consecutive\x20rounds\x20(a\x20further\x20unchanged\x20re-run\x20is\x20refused\x20pre-execution).\x20The\x20note\x20is\x20mandatory\x20and\x20audit-trailed.'),'env':z['record'](z['string'](),z['unknown']())['optional']()['describe']('Environment\x20for\x20on-chain\x20execution\x20(plan_execute):\x20forwarded\x20to\x20the\x20executor\x20(e.g.\x20{\x20network:\x20\x27testnet\x27\x20}).'),'accounts':z['record'](z['string'](),z['unknown']())['optional']()['describe']('Per-step\x20signing\x20accounts\x20(BSW-F04):\x20named\x20envs\x20for\x20steps\x20that\x20declare\x20an\x20`account`\x20(currently\x20\x27arb_controller\x27\x20—\x20the\x20independent\x20third-party\x20Arbitration\x20controller,\x20E_ARBITRATION_PERMISSION_CONFLICT=33).\x20e.g.\x20{\x20arb_controller:\x20{\x20network:\x20\x27testnet\x27\x20}\x20}.\x20A\x20step\x20declaring\x20an\x20account\x20missing\x20from\x20this\x20map\x20FAILS\x20—\x20the\x20default\x20signer\x20is\x20never\x20silently\x20reused\x20for\x20an\x20account-bound\x20step.'),'timeout_ms':z['number']()['int']()['positive']()['optional']()['describe']('plan_execute\x20wall-clock\x20budget\x20for\x20the\x20WHOLE\x20run\x20(ktt4\x20RT-08):\x20set\x20it\x20BELOW\x20your\x20transport\x20timeout\x20when\x20the\x20plan\x20is\x20too\x20big\x20for\x20one\x20window\x20(~50\x20steps\x20x\x20~6s\x20each).\x20'+'The\x20budget\x20is\x20checked\x20BEFORE\x20each\x20step\x20—\x20a\x20step\x20is\x20never\x20interrupted\x20mid-flight\x20—\x20and\x20an\x20exhausted\x20budget\x20stops\x20the\x20run\x20CLEANLY,\x20returning\x20the\x20partial\x20steps/outputs\x20that\x20resume\x20directly\x20'+'(re-send\x20with\x20completed_steps\x20=\x20every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27,\x20previous_outputs\x20=\x20outputs).\x20Omit\x20to\x20run\x20to\x20completion\x20(subject\x20to\x20your\x20transport\x20timeout).')})['strict']();const ScanSummarySchema=z['object']({'risk_level':z['enum'](['low','medium','high','critical']),'passed':z['boolean'](),'finding_count':z['number'](),'findings_by_severity':z['record'](z['string'](),z['number']())['describe']('Finding\x20count\x20keyed\x20by\x20severity.'),'findings':z['array'](TemplateScanFindingSchema)['describe']('Every\x20finding\x20with\x20its\x20rule\x20id,\x20detail\x20and\x20suggestion.'),'red_flags':z['array'](z['string']())})['describe']('Pre-deploy\x20scan\x20summary\x20(generation/apply\x20only\x20runs\x20when\x20passed).'),SemanticIrEcho={'semantic_ir_digest':z['string']()['optional']()['describe']('sha256\x20of\x20the\x20frozen\x20Semantic\x20IR\x20artifact\x20(present\x20only\x20when\x20semantic_ir\x20was\x20supplied).'),'semantic_ir_issues':z['array'](z['string']())['optional']()['describe']('IR\x20claims\x20dropped/clamped/conflicting\x20during\x20validation\x20(unknown\x20vocabulary,\x20inverted\x20span,\x20sub-threshold\x20confidence).')};export const BenchmarkMigrationOutputSchema=z['object']({'result':z['discriminatedUnion']('action',[z['object']({'action':z['literal']('template_list'),'count':z['number']()['describe']('Number\x20of\x20templates\x20returned.'),'templates':z['array'](TemplateSummarySchema)['describe']('Template\x20listing\x20rows.'),'discovery_vocabulary':z['object']({'industries':z['array'](z['string']())['describe']('Registered\x20industry\x20names\x20a\x20Semantic\x20IR\x20discovery.industry\x20may\x20use.'),'tags':z['array'](z['string']())['describe']('The\x20CLOSED\x20canonical\x20discovery-tag\x20vocabulary\x20a\x20Semantic\x20IR\x20discovery.tags\x20entry\x20may\x20use.'),'product_refs':z['array'](z['string']())['describe']('Benchmark-product\x20slugs\x20a\x20Semantic\x20IR\x20discovery.product_ref\x20may\x20use.')})['describe']('The\x20closed,\x20language-neutral\x20vocabulary\x20for\x20Semantic\x20IR\x20discovery\x20evidence\x20—\x20callers\x20translate\x20into\x20these\x20tokens;\x20the\x20server\x20drops\x20anything\x20else\x20and\x20reports\x20it.'),'load_errors':z['array'](z['string']())['describe']('Template\x20files\x20that\x20failed\x20to\x20load/validate\x20(never\x20silently\x20dropped).')}),z['object']({'action':z['literal']('template_get'),'template':z['record'](z['string'](),z['unknown']())['describe']('Full\x20template\x20object\x20(machine_shape/guards/allocator/fee_params/body/...).')}),z['object']({'action':z['literal']('template_generate'),'template_id':z['string'](),...SemanticIrEcho,'scan':ScanSummarySchema,'plan':z['record'](z['string'](),z['unknown']())['describe']('Creation\x20plan\x20from\x20the\x20merchant-guide\x20pipeline\x20(never\x20executed\x20on-chain).'),'stale_build':StaleBuildDisclosureSchema,'verdict':z['object']({'buildable':z['boolean'](),'blockers':z['array'](z['string']()),'status':z['enum'](['READY','BLOCKED','UNVERIFIED'])['describe']('AZT-04\x20single\x20release\x20authority.\x20UNVERIFIED\x20(ks7\x20F-18\x20/\x20h1w9\x20F-17,\x20kp1\x20P1-5\x20residual):\x20the\x20stale_build\x20face\x20was\x20not\x20actionable,\x20so\x20the\x20verdict\x20is\x20void\x20AS\x20A\x20WHOLE\x20—\x20buildable\x20is\x20false\x20because\x20VERIFICATION\x20failed,\x20NOT\x20because\x20the\x20plan\x20is\x20defective\x20(read\x20blockers[0]\x20and\x20stale_build,\x20rebuild,\x20re-run).')})['describe']('Single\x20aggregate\x20ruling\x20over\x20the\x20three\x20signal\x20faces\x20(scan.passed\x20/\x20plan.graph_validation.valid\x20/\x20plan.audit.blocking)\x20—\x20the\x20authoritative\x20go/no-go\x20(bkmn-261012\x20F-M62);\x20the\x20individual\x20faces\x20stay\x20advisory.'),'next_action':z['string']()['describe']('Top-level\x20forwarding\x20of\x20the\x20materialization\x20contract\x20(C6):\x20the\x20guide\x27s\x20\x27Plan\x20ready.\x20Materialize:\x20...\x27\x20text\x20verbatim\x20when\x20the\x20audit\x20is\x20clean\x20and\x20the\x20build\x20is\x20fresh;\x20a\x20BLOCKED\x20reroute,\x20or\x20a\x20DO-NOT-EXECUTE\x20rebuild-first\x20reroute\x20when\x20stale_build.actionable\x20is\x20false,\x20otherwise.')}),z['object']({'action':z['literal']('template_scan'),'scan':z['object']({'template_id':z['string'](),'risk_level':z['enum'](['low','medium','high','critical']),'passed':z['boolean'](),'findings':z['array'](TemplateScanFindingSchema),'red_flags':z['array'](z['string']()),'drift':z['record'](z['string'](),z['unknown']())['describe']('Disk-vs-catalog\x20drift\x20face\x20for\x20the\x20scanned\x20body\x20(S14-E2).'),'compile_dry_run':z['object']({'status':z['enum'](['ready','blocked','unavailable','unverified']),'buildable':z['boolean']()['optional'](),'blockers':z['array'](z['string']())['optional'](),'note':z['string']()})['describe']('Compile-kernel\x20probe\x20verdict\x20—\x20the\x20same\x20authority\x20template_generate\x20enforces\x20(S14-E2/GF-29).\x20\x27unverified\x27\x20(ks7\x20F-18\x20/\x20h1w9\x20F-17):\x20the\x20stale_build\x20face\x20was\x20not\x20actionable,\x20so\x20the\x20probe\x27s\x20verdict\x20is\x20void\x20—\x20rebuild\x20and\x20re-run.')})['describe']('Full\x20pre-deploy\x20scan\x20result.'),'stale_build':StaleBuildDisclosureSchema,'buildable':z['boolean']()['describe']('TOP-level\x20build\x20verdict\x20(S14-E2):\x20the\x20ONE\x20authority\x20buildVerdict\x20shares\x20with\x20template_generate\x20—\x20the\x20static\x20passed/risk_level\x20stay\x20advisory.'),'build_blockers':z['array'](z['string']())['describe']('Why\x20the\x20compile\x20kernel\x20refuses\x20(absent/empty\x20when\x20not\x20definitively\x20blocked).'),'next_action':z['string']()['describe']('Verdict-obedient\x20routing\x20(ZR-41):\x20BLOCKED\x20refusal,\x20proceed-to-generate,\x20or\x20the\x20UNVERIFIED\x20rebuild-first\x20reroute\x20when\x20stale_build.actionable\x20is\x20false.')}),z['object']({'action':z['literal']('migration_import'),'log':MigrationLogSchema['describe']('The\x20structured\x20migration\x20log.'),'buildable':z['boolean']()['optional']()['describe']('Compile-kernel\x20build\x20verdict\x20on\x20probe\x20inputs\x20(S14-E2;\x20absent\x20when\x20the\x20probe\x20could\x20not\x20run)\x20—\x20the\x20matched\x20template\x27s\x20buildability,\x20surfaced\x20at\x20the\x20earliest\x20migration\x20face.'),'build_blockers':z['array'](z['string']())['optional']()['describe']('Why\x20the\x20compile\x20kernel\x20refuses\x20(present\x20only\x20when\x20the\x20probe\x20ruled).'),'compile_dry_run':z['object']({'status':z['enum'](['ready','blocked','unavailable','unverified']),'note':z['string']()})['optional']()['describe']('Probe\x20verdict\x20face\x20(S14-E2).'),'inference_source':z['enum'](['keywords','semantic_ir','semantic_ir+keywords'])['optional']()['describe']('Which\x20layer\x20resolved\x20the\x20industry:\x20\x27keywords\x27\x20=\x20English\x20lexical\x20match\x20only;\x20\x27semantic_ir\x27\x20=\x20'+'the\x20caller\x27s\x20IR\x20decided;\x20\x27semantic_ir+keywords\x27\x20=\x20both\x20contributed.\x20Present\x20only\x20when\x20semantic_ir\x20was\x20supplied.'),...SemanticIrEcho,'next_action':z['string']()['describe']('Next\x20chain\x20step:\x20run\x20migration_review\x20with\x20this\x20log\x20(C6\x20—\x20the\x20chain\x20is\x20self-describing,\x20no\x20agent\x20re-exploration);\x20carries\x20a\x20BLOCKED\x20warning\x20tail\x20when\x20the\x20probe\x20refused\x20(S14-E2).')}),z['object']({'action':z['literal']('migration_review'),'log':MigrationLogSchema['describe']('The\x20migration\x20log\x20under\x20review.'),'review_summary':z['object']({'mapped_count':z['number'](),'unmapped_count':z['number'](),'manual_review_count':z['number'](),'risk_passed':z['boolean'](),'buildable':z['boolean']()['optional']()['describe']('Compile-kernel\x20build\x20verdict\x20on\x20probe\x20inputs\x20(S14-E2;\x20absent\x20when\x20the\x20probe\x20could\x20not\x20run)\x20—\x20a\x20DEFINITIVE\x20false\x20verdict\x20un-cleans\x20the\x20route.'),'build_blockers':z['array'](z['string']())['optional']()['describe']('Why\x20the\x20compile\x20kernel\x20refuses\x20(present\x20only\x20when\x20the\x20probe\x20ruled).'),'compile_dry_run':z['object']({'status':z['enum'](['ready','blocked','unavailable','unverified']),'note':z['string']()})['optional']()['describe']('Probe\x20verdict\x20face\x20(S14-E2).')})['describe']('Counts\x20+\x20risk\x20status\x20+\x20build\x20verdict\x20(S14-E2)\x20for\x20the\x20confirmation\x20screen.'),'next_action':z['string']()['describe']('Next\x20chain\x20step:\x20migration_apply\x20with\x20the\x20matched\x20template\x20when\x20the\x20review\x20is\x20clean;\x20surface\x20the\x20unmapped/manual_review\x20items\x20for\x20a\x20user\x20decision\x20otherwise.')}),z['object']({'action':z['literal']('migration_apply'),'template_id':z['string'](),'network':z['enum'](['testnet','mainnet','localnet']),...SemanticIrEcho,'scan':ScanSummarySchema,'plan':z['record'](z['string'](),z['unknown']())['describe']('Creation\x20plan\x20from\x20the\x20merchant-guide\x20pipeline\x20(never\x20executed\x20on-chain).'),'verdict':z['object']({'buildable':z['boolean'](),'blockers':z['array'](z['string']()),'status':z['enum'](['READY','BLOCKED','UNVERIFIED'])['describe']('AZT-04\x20single\x20release\x20authority.\x20UNVERIFIED\x20(ks7\x20F-18\x20/\x20h1w9\x20F-17,\x20kp1\x20P1-5\x20residual):\x20the\x20stale_build\x20face\x20was\x20not\x20actionable,\x20so\x20the\x20verdict\x20is\x20void\x20AS\x20A\x20WHOLE\x20—\x20buildable\x20is\x20false\x20because\x20VERIFICATION\x20failed,\x20NOT\x20because\x20the\x20plan\x20is\x20defective\x20(read\x20blockers[0]\x20and\x20stale_build,\x20rebuild,\x20re-run).')})['describe']('Single\x20aggregate\x20ruling\x20over\x20the\x20three\x20signal\x20faces\x20(scan.passed\x20/\x20plan.graph_validation.valid\x20/\x20plan.audit.blocking)\x20—\x20the\x20authoritative\x20go/no-go\x20(bkmn-261012\x20F-M62);\x20the\x20individual\x20faces\x20stay\x20advisory.'),'next_action':z['string']()['describe']('Top-level\x20forwarding\x20of\x20the\x20materialization\x20contract\x20(C6):\x20the\x20guide\x27s\x20\x27Plan\x20ready.\x20Materialize:\x20...\x27\x20text\x20verbatim\x20when\x20the\x20audit\x20is\x20clean\x20and\x20the\x20build\x20is\x20fresh;\x20a\x20BLOCKED\x20reroute,\x20or\x20a\x20DO-NOT-EXECUTE\x20rebuild-first\x20reroute\x20when\x20stale_build.actionable\x20is\x20false,\x20otherwise.')}),z['object']({'action':z['literal']('plan_execute'),'completed':z['boolean']()['describe']('True\x20when\x20EVERY\x20step\x20executed\x20(store\x20fully\x20deployed).'),'steps':z['array'](z['record'](z['string'](),z['unknown']()))['describe']('Per-step\x20results:\x20{\x20stepId,\x20status:\x20executed|failed|blocked,\x20digest?,\x20address?,\x20error?\x20}.'),'outputs':z['record'](z['string'](),z['string']())['describe']('step\x20id\x20->\x20created\x20on-chain\x20address\x20(create\x20steps).\x20Feed\x20back\x20as\x20previous_outputs\x20when\x20resuming.'),'preflight':z['record'](z['string'](),z['unknown']())['describe']('Freeze-gate\x20audit\x20the\x20run\x20was\x20gated\x20on\x20(issues\x20+\x20findings).'),'readback':z['record'](z['string'](),z['unknown']())['describe']('Post-execution\x20conservation/readback\x20checks.'),'resume':z['object']({'completed_steps':z['array'](z['string']())['describe']('Every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27\x20in\x20this\x20response\x20(fresh\x20OR\x20adopted)\x20—\x20the\x20completed_steps\x20of\x20the\x20next\x20round.'),'previous_outputs':z['record'](z['string'](),z['string']())['describe']('This\x20response\x27s\x20outputs\x20—\x20the\x20previous_outputs\x20of\x20the\x20next\x20round.')})['optional']()['describe']('W5-08\x20①:\x20the\x20READY-TO-PASS\x20resume\x20payload,\x20present\x20whenever\x20the\x20run\x20did\x20NOT\x20complete.\x20Pass\x20both\x20fields\x20back\x20verbatim\x20on\x20the\x20next\x20plan_execute\x20call\x20(or\x20use\x20resume_from_step\x20+\x20previous_outputs).'),'repeated_failures':z['array'](z['object']({'step_id':z['string'](),'consecutive_rounds':z['number'](),'error':z['string']()}))['optional']()['describe']('W5-08\x20③:\x20steps\x20that\x20failed\x20with\x20the\x20IDENTICAL\x20error\x20in\x202+\x20consecutive\x20rounds\x20—\x20the\x20run\x20withholds\x20the\x20generic\x20RESUME\x20recipe\x20for\x20these;\x20fix\x20the\x20cause\x20before\x20resuming.'),'retry_prohibited':z['boolean']()['optional']()['describe']('W5-08\x20③:\x20true\x20alongside\x20repeated_failures\x20—\x20a\x20further\x20unchanged\x20re-run\x20is\x20REFUSED\x20pre-execution\x20(retry_override\x20is\x20the\x20audited\x20escape\x20hatch).'),'retry_override_applied':z['object']({'step_id':z['string'](),'note':z['string']()})['optional']()['describe']('W5-08\x20③\x20audit\x20trail:\x20the\x20retry_override\x20accepted\x20this\x20round\x20(step\x20cleared\x20from\x20the\x20repeated-failure\x20ledger).'),'next_action':z['string']()['describe']('One-click\x20forwarding:\x20deploy-complete\x20guidance,\x20the\x20resume\x20recipe\x20(completed_steps\x20+\x20previous_outputs)\x20after\x20a\x20mid-run\x20failure,\x20or\x20the\x20STOP-retrying\x20ruling\x20when\x20the\x20same\x20error\x20recurred.')})])})['strict']();