@wowok/agent-mcp 3.4.4 → 3.4.5

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 (191) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/chain-semantics/composition-truth.js +1 -1
  3. package/dist/composition/audit.js +1 -1
  4. package/dist/composition/compile.js +1 -1
  5. package/dist/composition/emit-phases.js +1 -1
  6. package/dist/composition/guard-fill.js +1 -1
  7. package/dist/composition/input-normalize.js +1 -1
  8. package/dist/composition/materialize.js +1 -1
  9. package/dist/composition/mode-gates.js +1 -1
  10. package/dist/composition/param-disclosure.js +1 -1
  11. package/dist/composition/plan-run-store.js +1 -0
  12. package/dist/composition/reflux.js +1 -1
  13. package/dist/composition/role-bindings.js +1 -0
  14. package/dist/composition/shape-expand.js +1 -1
  15. package/dist/composition/supply-chain-emit.js +1 -1
  16. package/dist/config/judgment.d.ts +13 -25
  17. package/dist/config/judgment.js +1 -1
  18. package/dist/config/match-policy-file.js +1 -1
  19. package/dist/config/rule-engine.d.ts +4 -10
  20. package/dist/config/rule-engine.js +1 -1
  21. package/dist/config/template-params.js +1 -1
  22. package/dist/evaluation/engine.js +1 -1
  23. package/dist/experience/realtime-feedback.js +1 -1
  24. package/dist/extensions/capability.js +1 -1
  25. package/dist/graph/onchain/expand.js +1 -1
  26. package/dist/graph/onchain/exposure.js +1 -1
  27. package/dist/harness/forward-roster-preflight.js +1 -0
  28. package/dist/keeper/detectors.js +1 -1
  29. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  30. package/dist/knowledge/arb-operation-face.js +1 -1
  31. package/dist/knowledge/arbitration-rail-verifier.js +1 -1
  32. package/dist/knowledge/audit-rules.d.ts +17 -1
  33. package/dist/knowledge/audit-rules.js +1 -1
  34. package/dist/knowledge/baselines/rules/alloc_audit.json.good.sha256 +1 -0
  35. package/dist/knowledge/baselines/rules/allocation.json.good.sha256 +1 -0
  36. package/dist/knowledge/baselines/rules/arb.json.good.sha256 +1 -0
  37. package/dist/knowledge/baselines/rules/arbitration.json.good.sha256 +1 -0
  38. package/dist/knowledge/baselines/rules/bridge.json.good.sha256 +1 -0
  39. package/dist/knowledge/baselines/rules/contact.json.good.sha256 +1 -0
  40. package/dist/knowledge/baselines/rules/demand.json.good.sha256 +1 -0
  41. package/dist/knowledge/baselines/rules/graph.json.good.sha256 +1 -0
  42. package/dist/knowledge/baselines/rules/guard.json.good.sha256 +1 -0
  43. package/dist/knowledge/baselines/rules/machine.json.good.sha256 +1 -0
  44. package/dist/knowledge/baselines/rules/oracle.json.good.sha256 +1 -0
  45. package/dist/knowledge/baselines/rules/order.json.good.sha256 +1 -0
  46. package/dist/knowledge/baselines/rules/payment.json.good.sha256 +1 -0
  47. package/dist/knowledge/baselines/rules/permission.json.good.sha256 +1 -0
  48. package/dist/knowledge/baselines/rules/personal.json.good.sha256 +1 -0
  49. package/dist/knowledge/baselines/rules/plan.json +153 -33
  50. package/dist/knowledge/baselines/rules/plan.json.good +153 -33
  51. package/dist/knowledge/baselines/rules/plan.json.good.sha256 +1 -0
  52. package/dist/knowledge/baselines/rules/progress.json.good.sha256 +1 -0
  53. package/dist/knowledge/baselines/rules/proof.json.good.sha256 +1 -0
  54. package/dist/knowledge/baselines/rules/registrar.json.good.sha256 +1 -0
  55. package/dist/knowledge/baselines/rules/repository.json.good.sha256 +1 -0
  56. package/dist/knowledge/baselines/rules/resource.json.good.sha256 +1 -0
  57. package/dist/knowledge/baselines/rules/reward.json.good.sha256 +1 -0
  58. package/dist/knowledge/baselines/rules/service.json.good.sha256 +1 -0
  59. package/dist/knowledge/baselines/rules/treasury.json.good.sha256 +1 -0
  60. package/dist/knowledge/baselines/rules/util.json.good.sha256 +1 -0
  61. package/dist/knowledge/builtin-templates.d.ts +1 -1
  62. package/dist/knowledge/builtin-templates.js +1 -1
  63. package/dist/knowledge/discount-threshold.js +1 -1
  64. package/dist/knowledge/fee-param-bindings.js +1 -1
  65. package/dist/knowledge/getting-started.js +1 -1
  66. package/dist/knowledge/guard-binding-table.js +1 -1
  67. package/dist/knowledge/guard-design-patterns.js +1 -1
  68. package/dist/knowledge/guard-templates.d.ts +3 -2
  69. package/dist/knowledge/guard-templates.js +1 -1
  70. package/dist/knowledge/index.js +1 -1
  71. package/dist/knowledge/industry-registry.js +1 -1
  72. package/dist/knowledge/jsonrpc-enum.js +1 -1
  73. package/dist/knowledge/knob-docs.js +1 -1
  74. package/dist/knowledge/machine-topology.js +1 -1
  75. package/dist/knowledge/param-schema.js +1 -1
  76. package/dist/knowledge/param-tiers.js +1 -1
  77. package/dist/knowledge/path-oracle/products/alibaba-1688.js +1 -1
  78. package/dist/knowledge/path-oracle/products/amazon.js +1 -1
  79. package/dist/knowledge/path-oracle/products/booking-com.js +1 -1
  80. package/dist/knowledge/path-oracle/products/contra.js +1 -1
  81. package/dist/knowledge/path-oracle/products/costco.js +1 -1
  82. package/dist/knowledge/path-oracle/products/duoduo-maicai.js +1 -1
  83. package/dist/knowledge/path-oracle/products/etsy.js +1 -1
  84. package/dist/knowledge/path-oracle/products/gamefound.js +1 -1
  85. package/dist/knowledge/path-oracle/products/gofundme.js +1 -1
  86. package/dist/knowledge/path-oracle/products/klook.js +1 -1
  87. package/dist/knowledge/path-oracle/products/ninety-nine-designs.js +1 -1
  88. package/dist/knowledge/path-oracle/products/pinduoduo-kuaituantuan.js +1 -1
  89. package/dist/knowledge/path-oracle/products/shansong.js +1 -1
  90. package/dist/knowledge/path-oracle/products/taobao-presale.js +1 -1
  91. package/dist/knowledge/path-oracle/products/upwork-catalog.js +1 -1
  92. package/dist/knowledge/path-oracle/products/upwork.js +1 -1
  93. package/dist/knowledge/pattern-resolutions.js +1 -1
  94. package/dist/knowledge/protocol-facts.js +1 -1
  95. package/dist/knowledge/publish-gate.js +1 -1
  96. package/dist/knowledge/publish-surface-contract.js +1 -1
  97. package/dist/knowledge/template-loader.js +1 -1
  98. package/dist/knowledge/template-registry.js +1 -1
  99. package/dist/knowledge/template-scanner.js +1 -1
  100. package/dist/knowledge/time-units.js +1 -0
  101. package/dist/knowledge/tools-reference.js +1 -1
  102. package/dist/knowledge/workflow-guidance.js +1 -1
  103. package/dist/monitor/MonitorLoop.js +1 -1
  104. package/dist/participation/radar-core.js +1 -1
  105. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  106. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  107. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  108. package/dist/playbooks/service-build/migration-planner.js +1 -1
  109. package/dist/playbooks/service-build/object-panorama.js +1 -1
  110. package/dist/playbooks/service-build/participation-radar.js +1 -1
  111. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  112. package/dist/playbooks/service-build/service-panorama.js +1 -1
  113. package/dist/playbooks/service-build/service-quote.js +1 -1
  114. package/dist/review/index.js +1 -1
  115. package/dist/safety/confirm-gate.js +1 -1
  116. package/dist/schema/benchmark-migration/index.d.ts +110 -2
  117. package/dist/schema/benchmark-migration/index.js +1 -1
  118. package/dist/schema/boundary-coercion.js +1 -0
  119. package/dist/schema/call/arbitration.js +1 -1
  120. package/dist/schema/call/base.js +1 -1
  121. package/dist/schema/call/handler.js +1 -1
  122. package/dist/schema/call/machine.d.ts +56 -8
  123. package/dist/schema/call/order.d.ts +37 -10
  124. package/dist/schema/call/order.js +1 -1
  125. package/dist/schema/call/permission.d.ts +210 -30
  126. package/dist/schema/call/personal.d.ts +56 -8
  127. package/dist/schema/call/progress.d.ts +28 -4
  128. package/dist/schema/call/semantic.js +1 -1
  129. package/dist/schema/call/service.d.ts +84 -12
  130. package/dist/schema/common/index.d.ts +14 -2
  131. package/dist/schema/common/index.js +1 -1
  132. package/dist/schema/evaluation/index.js +1 -1
  133. package/dist/schema/goal/index.d.ts +1 -1
  134. package/dist/schema/goal/planning.js +1 -1
  135. package/dist/schema/local/index.js +1 -1
  136. package/dist/schema/messenger/index.d.ts +168 -24
  137. package/dist/schema/messenger/index.js +1 -1
  138. package/dist/schema/operations.d.ts +655 -22
  139. package/dist/schema/operations.js +1 -1
  140. package/dist/schema/persona/index.d.ts +22 -110
  141. package/dist/schema/query/index.js +1 -1
  142. package/dist/schema/schema-version.js +1 -1
  143. package/dist/schema/workflow/index.d.ts +4 -0
  144. package/dist/schema/workflow/index.js +1 -1
  145. package/dist/schema-query-impl/index.js +1 -1
  146. package/dist/schemas/benchmark_migration_operation.schema.json +1 -1
  147. package/dist/schemas/evaluation_operation.schema.json +1 -1
  148. package/dist/schemas/goal_operation.schema.json +1 -1
  149. package/dist/schemas/guard_rebind_replacement.schema.json +1 -0
  150. package/dist/schemas/index.json +1 -1
  151. package/dist/schemas/messenger_operation.schema.json +1 -1
  152. package/dist/schemas/onchain_operations.schema.json +1 -1
  153. package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
  154. package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1
  155. package/dist/schemas/onchain_operations_contact.schema.json +1 -1
  156. package/dist/schemas/onchain_operations_demand.schema.json +1 -1
  157. package/dist/schemas/onchain_operations_gen_passport.schema.json +1 -1
  158. package/dist/schemas/onchain_operations_machine.schema.json +1 -1
  159. package/dist/schemas/onchain_operations_order.schema.json +1 -1
  160. package/dist/schemas/onchain_operations_permission.schema.json +1 -1
  161. package/dist/schemas/onchain_operations_personal.schema.json +1 -1
  162. package/dist/schemas/onchain_operations_progress.schema.json +1 -1
  163. package/dist/schemas/onchain_operations_proof.schema.json +1 -1
  164. package/dist/schemas/onchain_operations_repository.schema.json +1 -1
  165. package/dist/schemas/onchain_operations_reward.schema.json +1 -1
  166. package/dist/schemas/onchain_operations_service.schema.json +1 -1
  167. package/dist/schemas/onchain_operations_treasury.schema.json +1 -1
  168. package/dist/schemas/persona_operation.schema.json +1 -1
  169. package/dist/schemas/time_convert.schema.json +1 -0
  170. package/dist/schemas/wip_file.schema.json +1 -1
  171. package/dist/schemas/workflow_operation.schema.json +1 -1
  172. package/dist/tools/handlers/benchmark-migration.js +1 -1
  173. package/dist/tools/handlers/config.js +1 -1
  174. package/dist/tools/handlers/fund-rail-recipe.js +1 -1
  175. package/dist/tools/handlers/guard-rebind-replacement.js +1 -0
  176. package/dist/tools/handlers/local.js +1 -1
  177. package/dist/tools/handlers/mark-namespace.js +1 -1
  178. package/dist/tools/handlers/onchain.js +1 -1
  179. package/dist/tools/handlers/query.js +1 -1
  180. package/dist/tools/handlers/settle-sweep.js +1 -1
  181. package/dist/tools/handlers/time-convert.js +1 -0
  182. package/dist/tools/handlers/wip.js +1 -1
  183. package/dist/tools/handlers/workflow.js +1 -1
  184. package/dist/tools/index.d.ts +1 -0
  185. package/dist/tools/index.js +1 -1
  186. package/dist/tools/registry/business.js +1 -1
  187. package/dist/tools/registry/local.js +1 -1
  188. package/dist/tools/registry/onchain.js +1 -1
  189. package/dist/tools/wip-verify-ledger.js +1 -1
  190. package/dist/tools/wrap.js +1 -1
  191. package/package.json +6 -5
@@ -1 +1 @@
1
- import{Config,LocalMark,query_objects,query_serviceContext,queryTableItem_RepositoryData,simulateGuard,ValueType}from'@wowok/wowok';import{resolveAddress as a427a}from'../../tools/handlers/name-resolution.js';import{parseGuardTimeBounds}from'../../knowledge/guard-anchor-reach.js';import{incentiveRatingFloorClaims,rewardWindowDayClaims}from'../../knowledge/template-scanner.js';import{lineBuyability,skuNameGateNote}from'../../knowledge/sku-name-gate.js';import{formatMoneyAnnotation}from'./facet-money.js';const balanceStr=a=>a===null||a===undefined?'0':typeof a==='bigint'?a['toString']():String(a);async function displayOf(a,b,c){try{return(await formatMoneyAnnotation(a,b,c))['display'];}catch{return a;}}function describeRecipient(a){if(typeof a==='string')return a;if(a&&typeof a==='object'){const b=a;if('GuardIdentifier'in b)return'submission\x20slot\x20'+String(b['GuardIdentifier']);if('Entity'in b){const c=b['Entity'],d=c&&typeof c==='object'?c['name_or_address']:c;return d===''?'Entity(\x22\x22)\x20—\x20MCP\x20default\x20local\x20account':'Entity:'+String(d);}return JSON['stringify'](a);}return'unknown';}const PER_ORDER_REPLAY_NOTE='A\x20per-order\x20replay\x20on\x20the\x20reward\x20PULL\x20rail\x20needs\x20BOTH\x20a\x20guard_add\x20store_from_id\x20stamp\x20on\x20the\x20'+'submitted-Order\x20slot\x20(0\x20by\x20convention)\x20AND\x20an\x20order-scoped\x20where:{storeFromId:{identifier:<same\x20slot>}}\x20'+'record\x20gate\x20in\x20the\x20claim\x20guard\x20(SV-2).\x20For\x20a\x20per-order\x20once\x20the\x20CHAIN\x20enforces\x20regardless\x20of\x20guard-tree\x20'+'mistakes,\x20route\x20the\x20incentive\x20through\x20an\x20Allocation\x20leg\x20declaring\x20protocol\x20slot\x20254\x20(the\x20once\x20key\x20derives\x20'+'on-chain\x20from\x20bcs(payment_info.for_object);\x20a\x20second\x20alloc\x20aborts\x2016,\x20E_ONCE_TRIGGERED).',quoteOwnerAddr=a=>{if(typeof a==='string')return a;const b=a;if(b&&typeof b==='object'){if(typeof b['AddressOwner']==='string')return b['AddressOwner'];if(typeof b['ObjectOwner']==='string')return b['ObjectOwner'];const c=Object['values'](b)['find'](d=>typeof d==='string'&&d['length']>0x14);if(typeof c==='string')return c;}return null;};export async function handleServiceQuote(a){const b=a['context_network']??undefined??await Config['Instance']()['network_get'](),d=await a427a(a['object_address']??a['service_address']??'','object_address\x20(or\x20service_address)'),f=a['no_cache']!==![],h=await query_serviceContext({'service':d,'network':b,...f?{'no_cache':!![]}:{}}),i=h['service'];if(!i)throw new Error('Service\x20\x27'+a['service_address']+'\x27\x20not\x20found\x20on\x20network\x20'+b+'.');const j=i?.['type_raw']??i?.['type']??'',k=j['match'](/<(.+)>$/),l=k?k[0x1]:null,n=Array['isArray'](i['sales'])?i['sales']:[],q=new Map();for(const ag of n){if(!ag||typeof ag['name']!=='string')continue;const ah=ag['stock']?.['balance']??ag['stock'];q['set'](ag['name'],{'price':balanceStr(ag['price']?.['balance']??ag['price']??0x0),'suspended':ag['suspension']===!![],'stock':ah==null?null:balanceStr(ah),'wip':typeof ag['wip']==='string'&&ag['wip']!==''?ag['wip']:null});}let t=0x0n;for(const ai of q['values']()){const aj=/^\d+$/['test'](ai['price'])?BigInt(ai['price']):0x0n;aj>0x0n&&(t===0x0n||aj<t)&&(t=aj);}const u=i['paused']===!![]||i['bPaused']===!![],w=(ak,al=0x0)=>{if(!ak||typeof ak!=='object'||al>0x4)return null;if(ak['root']&&Array['isArray'](ak['table']))return ak;for(const am of Object['values'](ak)){if(am&&typeof am==='object'){const an=w(am,al+0x1);if(an)return an;}}return null;},x=async()=>{try{const ak=i['buy_guard'];if(typeof ak!=='string'||!/^0x[0-9a-fA-F]{40,64}$/['test'](ak))return null;const al=await query_objects({'objects':[ak],'network':b}),am=Array['isArray'](al?.['objects'])?al['objects'][0x0]:null,an=w(am);if(!an)return null;const ao=aB=>Array['isArray'](an['table'])?an['table']['find'](aC=>aC?.['identifier']===aB&&aC?.['b_submission']===![])??null:null,ap=(aB,aC=0x0)=>{if(!aB||typeof aB!=='object'||aC>0xc)return null;if(aB['type']==='logic_as_u256_lesser_or_equal'&&Array['isArray'](aB['nodes'])&&aB['nodes']['some'](aD=>aD?.['type']==='context'&&aD?.['context']==='Clock')){const aD=aB['nodes']['find'](aE=>aE?.['type']==='query'&&aE?.['query']==='repository.data');if(aD)return aD;}for(const aE of Object['values'](aB)){if(aE&&typeof aE==='object'){const aF=ap(aE,aC+0x1);if(aF)return aF;}}return null;},aq=ap(an['root']);if(!aq)return null;const ar=ao(aq['parameters']?.[0x0]?.['identifier']);if(!ar||ar['value']!=='next_cycle_deadline')return null;const as=ao(aq['object']?.['identifier']),at=ao(aq['parameters']?.[0x1]?.['identifier']);if(!as||!at)return null;const au=typeof as['value']==='string'?as['value']:String(as['value']??'');if(!au)return null;const av=at['value'],aw=typeof av==='number'&&Number['isFinite'](av)?BigInt(Math['trunc'](av)):typeof av==='string'&&/^\d+$/['test'](av)?BigInt(av):typeof av==='string'&&av!==''?av:null;if(aw===null)return null;const ax=await queryTableItem_RepositoryData({'parent':au,'name':'next_cycle_deadline','entity':aw,'network':b});if(ax===undefined)return{'closed':!![],'deadlineMs':null,'note':'the\x20campaign\x20window\x20row\x20(next_cycle_deadline)\x20is\x20NOT\x20seeded\x20—\x20the\x20mounted\x20buy\x20window\x20'+'reads\x200\x20and\x20Clock\x20<=\x200\x20is\x20false,\x20so\x20the\x20chain\x20refuses\x20EVERY\x20order\x20until\x20the\x20merchant\x20'+'seeds\x20the\x20row\x20(fail-closed,\x20W5-22)'};const ay=aB=>{const aC=aB?.['data']?.['value']??aB?.['value'];try{if(typeof aC==='bigint')return aC;if(typeof aC==='number'&&Number['isFinite'](aC))return BigInt(Math['trunc'](aC));if(typeof aC==='string'&&/^\d+$/['test'](aC['trim']()))return BigInt(aC['trim']());if(aC instanceof Uint8Array&&(aC['length']===0x8||aC['length']===0x20)){let aD=0x0n;for(let aE=aC['length']-0x1;aE>=0x0;aE--)aD=aD<<0x8n|BigInt(aC[aE]);return aD;}}catch{}return null;},az=ay(ax);if(az===null||az<=0x0n)return null;const aA=Date['now']()>az;return{'closed':aA,'deadlineMs':az['toString'](),'note':aA?'the\x20campaign\x20window\x20closed\x20at\x20epoch-ms\x20'+az+'\x20('+new Date(Number(az))['toISOString']()+')\x20—\x20'+'order_new\x20aborts\x20at\x20the\x20buy\x20guard;\x20the\x20merchant\x20re-opens\x20by\x20rolling\x20the\x20'+'next_cycle_deadline\x20row\x20forward\x20(tpl_buy_guard_campaign_window)':'the\x20campaign\x20window\x20is\x20OPEN\x20until\x20epoch-ms\x20'+az+'\x20('+new Date(Number(az))['toISOString']()+')'};}catch{return null;}},y=await x(),z=(ak,al=0x0)=>{if(!ak||typeof ak!=='object'||al>0x10)return![];if((ak['type']==='logic_as_u256_lesser'||ak['type']==='logic_as_u256_lesser_or_equal')&&Array['isArray'](ak['nodes'])){const am=an=>typeof an?.['type']==='string'&&/sum_where/i['test'](an['type'])||an?.['type']==='query'&&typeof an?.['query']==='string'&&/repository\.data sum where/i['test'](an['query']);if(ak['nodes']['some'](am))return!![];}for(const an of Object['values'](ak)){if(an&&typeof an==='object'&&z(an,al+0x1))return!![];}return![];},A=async()=>{try{const ak=i['order_allocators'],al=Array['isArray'](ak?.['allocators'])?ak['allocators']:Array['isArray'](ak)?ak:[],am=al['map'](ap=>typeof ap?.['guard']==='string'?ap['guard']:ap?.['guard']?.['guard'])['filter'](ap=>typeof ap==='string'&&ap['trim']()!=='');if(am['length']===0x0)return![];const an=await query_objects({'objects':am,'network':b}),ao=Array['isArray'](an?.['objects'])?an['objects']:[];for(const ap of ao){const aq=ap&&typeof ap==='object'?ap:null;if(!aq)continue;const ar=String(aq['query_name']??aq['name']??'');if(/threshold_refund|missed_refund|refund.*missed|missed.*refund/i['test'](ar))return!![];const as=w(aq);if(as&&z(as['root']))return!![];}return![];}catch{return![];}},B=await A(),C=async()=>{const ak=a['per_buyer_cap'];if(!ak||ak<=0x0)return null;if(!a['per_buyer_cap_repository']||!a['per_buyer_cap_key']||!a['buyer'])return{'declared_cap':ak,'repository':'','key':'','buyer':'','purchased_count':0x0,'exceeded':![],'note':'per_buyer_cap\x20'+ak+'\x20is\x20declared\x20but\x20the\x20cap\x20ledger\x20is\x20unspecified\x20—\x20pass\x20'+'per_buyer_cap_repository\x20+\x20per_buyer_cap_key\x20+\x20buyer\x20to\x20run\x20the\x20preflight\x20'+'(kernel\x20query\x201183,\x20owner-filtered\x20mode).\x20No\x20blocking\x20performed.'};try{const al=await a427a(a['per_buyer_cap_repository'],'per_buyer_cap_repository'),am=await a427a(a['buyer'],'buyer'),an=await simulateGuard({'table':[{'identifier':0x1,'value_type':ValueType['Address'],'value':al,'b_submission':![],'name':'probe_cap_repository'},{'identifier':0x2,'value_type':ValueType['Address'],'value':am,'b_submission':![],'name':'probe_cap_buyer'},{'identifier':0x3,'value_type':ValueType['U256'],'value':ak,'b_submission':![],'name':'probe_cap_limit'}],'root':{'type':'logic_as_u256_greater_or_equal','nodes':[{'type':'query_repository_data_owner_count','object':{'identifier':0x1},'owner':{'identifier':0x2},'key':a['per_buyer_cap_key'],'where':{'kind':'gt','value':'0'}},{'type':'identifier','identifier':0x3}]}},{'network':b});if(an['verdict']==='incomplete')return{'declared_cap':ak,'repository':al,'key':a['per_buyer_cap_key'],'buyer':am,'purchased_count':0x0,'exceeded':![],'note':'cap\x20probe\x20UNDECIDABLE\x20locally\x20('+(an['legs'][0x0]?.['detail']??'unsupported\x20read')+')\x20—\x20'+'treated\x20as\x20NOT\x20blocking\x20per\x20the\x20fail-soft\x20contract;\x20verify\x20on-chain\x20before\x20checkout.'};const ao=an['legs'][0x0]?.['operands']??{},ap=Object['keys'](ao)['find'](as=>as['includes']('owner\x20count')),aq=ap!==undefined?Number(ao[ap]):0x0,ar=an['verdict']==='pass';return{'declared_cap':ak,'repository':al,'key':a['per_buyer_cap_key'],'buyer':am,'purchased_count':Number['isFinite'](aq)?Math['max'](0x0,aq):0x0,'exceeded':ar,'note':ar?'PER_BUYER_CAP_EXCEEDED:\x20this\x20buyer\x20already\x20holds\x20'+aq+'\x20purchase(s)\x20under\x20\x27'+a['per_buyer_cap_key']+'\x27\x20'+('(cap\x20'+ak+').\x20A\x20further\x20buy\x20breaches\x20the\x20declared\x20cap.\x20Advisory-only:\x20the\x20on-chain\x20purchase\x20kernel\x20')+'has\x20no\x20cap\x20hook\x20yet\x20(buy\x20pre-hook\x20pending\x20a\x20separate\x20board\x20decision)\x20—\x20the\x20chain\x20will\x20not\x20'+'refuse\x20the\x20buy\x20today;\x20this\x20storefront\x20gate\x20refuses\x20the\x20basket\x20pre-order.':'Under\x20cap:\x20'+aq+'/'+ak+'\x20purchase(s)\x20recorded\x20under\x20\x27'+a['per_buyer_cap_key']+'\x27\x20(query\x201183,\x20'+'owner-filtered;\x20withdrawn\x20zeroed\x20rows\x20excluded).\x20Advisory-only\x20—\x20the\x20chain\x20does\x20not\x20enforce\x20'+'the\x20cap\x20yet\x20(buy\x20pre-hook\x20pending\x20a\x20separate\x20board\x20decision).'};}catch(as){return{'declared_cap':ak,'repository':'','key':a['per_buyer_cap_key']??'','buyer':'','purchased_count':0x0,'exceeded':![],'note':'cap\x20probe\x20FAILED\x20(fail-soft,\x20not\x20blocking):\x20'+(as instanceof Error?as['message']:String(as))+'\x20—\x20'+'verify\x20on-chain\x20before\x20checkout.'};}},D=await C(),E=Array['isArray'](i['sales'])?i['sales']:[],F=ak=>{if(typeof ak['name']==='string'&&ak['name']!=='')return ak['name'];if(typeof ak['sale_id']==='number'){const al=E[ak['sale_id']];return al&&typeof al['name']==='string'&&al['name']!==''?al['name']:null;}return null;},G=a['items']??[...q['keys']()]['map'](ak=>({'name':ak,'quantity':0x1})),H=G['map'](ak=>({'name':F(ak),'quantity':ak['quantity']})),I=G['filter'](ak=>F(ak)===null);if(I['length']>0x0)throw new Error('Sale(s)\x20not\x20resolvable\x20on\x20this\x20Service:\x20'+I['map'](ak=>'sale_id'in ak&&typeof ak['sale_id']==='number'?'sale_id\x20'+ak['sale_id']:'\x27'+(ak['name']??'<empty>')+'\x27')['join'](',\x20')+'.\x20'+('Available\x20sales\x20(index:\x20name):\x20'+(E['map']((ak,al)=>al+':\x20\x27'+(ak?.['name']??'?')+'\x27')['join'](',\x20')||'<none>')+'.'));const J=H['filter'](ak=>!q['has'](ak['name']));if(J['length']>0x0)throw new Error('Sale(s)\x20not\x20found\x20on\x20this\x20Service:\x20'+J['map'](ak=>'\x27'+ak['name']+'\x27')['join'](',\x20')+'.\x20'+('Available\x20sales:\x20'+([...q['keys']()]['map'](ak=>'\x27'+ak+'\x27')['join'](',\x20')||'<none>')+'.'));if(H['length']===0x0)throw new Error('This\x20Service\x20has\x20NO\x20configured\x20sales\x20—\x20nothing\x20to\x20quote.');const K=[];let L=0x0n;for(const ak of H){const al=ak['name'],am=q['get'](al),an=BigInt(am['price']||'0'),ao=an*BigInt(ak['quantity']);L+=ao;const ap=am['stock']!=null&&/^\d+$/['test'](am['stock'])?BigInt(am['stock']):null,aq=lineBuyability(al,[...am['suspended']?['sale\x20is\x20suspended\x20(merchant\x20sale_suspension)']:[],...ap!=null&&ap<BigInt(ak['quantity'])?['stock\x20'+am['stock']+'\x20<\x20requested\x20quantity\x20'+ak['quantity']]:[],...y?.['closed']?['CAMPAIGN_CLOSED\x20—\x20the\x20storefront\x20deadline\x20window\x20has\x20closed\x20(or\x20is\x20unseeded)']:[],...D?.['exceeded']?['PER_BUYER_CAP_EXCEEDED\x20—\x20buyer\x20already\x20holds\x20'+D['purchased_count']+'\x20purchase(s)\x20under\x20\x27'+D['key']+'\x27\x20(cap\x20'+D['declared_cap']+')']:[]],ap!=null);K['push']({'name':al,'quantity':ak['quantity'],'unit_price':am['price'],'unit_price_display':await displayOf(am['price'],l,b),'line_total':ao['toString'](),'suspended':am['suspended'],'stock':am['stock'],'stock_ok':ap==null?null:ap>=BigInt(ak['quantity']),'buyable':aq['buyable'],'buyable_blockers':aq['blockers'],'wip':am['wip']});}let M=L,N=null;if(typeof a['discount']==='string'&&a['discount']['trim']()!==''){const ar=await a427a(a['discount'],'discount');let as=null;try{const aF=await query_objects({'objects':[ar],'network':b});as=aF?.['objects']?.[0x0]??null;}catch{as=null;}if(!as)throw new Error('E_DISCOUNT_NOT_FOUND:\x20coupon\x20\x27'+ar+'\x27\x20not\x20found\x20—\x20it\x20was\x20already\x20burned\x20on\x20a\x20'+'previous\x20buy\x20(a\x20burned\x20coupon\x20is\x20destroyed\x20on\x20chain\x20and\x20cannot\x20be\x20quoted\x20again)\x20'+'or\x20the\x20address\x20is\x20wrong.\x20Re-quote\x20without\x20the\x20coupon.');const at=String(as['service']??'');if(at['toLowerCase']()!==d['toLowerCase']())throw new Error('E_SERVICE_DISCOUNT_NOT_MATCH:\x20coupon\x20\x27'+ar+'\x27\x20is\x20bound\x20to\x20service\x20'+((at||'<unparseable>')+',\x20not\x20to\x20'+d+'.\x20A\x20buy\x20with\x20this\x20coupon\x20aborts.'));const au=aG=>{const aH=balanceStr(aG)['trim']();return/^\d+$/['test'](aH)?BigInt(aH):0x0n;},av=BigInt(Date['now']()),aw=au(as['time_start']),ax=au(as['time_end']);if(av<aw||av>ax)throw new Error('E_DISCOUNT_TIME_INVALID:\x20coupon\x20\x27'+ar+'\x27\x20is\x20valid\x20'+(aw+'–'+ax+'\x20(ms\x20epoch),\x20now\x20is\x20'+av+'.\x20A\x20buy\x20with\x20this\x20coupon\x20aborts.'));const ay=Number(as['discount_type'])===0x0,az=au(as['off']),aA=quoteOwnerAddr(as['owner']),aB=aA?'Coupon\x20is\x20owned\x20by\x20'+aA+';\x20only\x20the\x20holder\x20can\x20redeem\x20it\x20—\x20a\x20coupon\x20held\x20by\x20another\x20address\x20cannot\x20be\x20applied\x20to\x20your\x20order,\x20have\x20the\x20owner\x20transfer\x20it\x20first\x20(call\x20service\x20discount_send).\x20Refunds\x20settle\x20the\x20post-coupon\x20amount\x20only.':'Coupon\x20holder\x20could\x20not\x20be\x20read\x20from\x20the\x20chain\x20—\x20VERIFY\x20the\x20holder\x20before\x20checkout:\x20only\x20the\x20holder\x20can\x20redeem,\x20a\x20coupon\x20held\x20by\x20another\x20address\x20cannot\x20be\x20applied\x20to\x20your\x20order\x20(have\x20the\x20owner\x20transfer\x20it\x20first\x20via\x20call\x20service\x20discount_send),\x20and\x20refunds\x20settle\x20the\x20post-coupon\x20amount\x20only.',aC=as['benchmark']===null||as['benchmark']===undefined?null:au(as['benchmark']),aD=aC===null?!![]:L>=aC;let aE=![];aD&&(aE=!![],M=ay?L-L*az/0x2710n:L>az?L-az:0x0n),N={'coupon':ar,'name':typeof as['name']==='string'?as['name']:null,'owned_by':aA,'ownership_note':aB,'type':ay?'rates':'minus','off':az['toString'](),'benchmark':aC===null?null:aC['toString'](),'benchmark_met':aD,'applied':aE,'list_total':L['toString'](),'final_total':M['toString'](),'final_total_display':await displayOf(M['toString'](),l,b),'note':aE?M===0x0n?'DEAD\x20BASKET\x20(F-BS-75):\x20the\x20coupon\x20covers\x20the\x20entire\x20basket,\x20but\x20the\x20chain\x20REFUSES\x20zero-total\x20'+'buys\x20—\x20the\x20client\x20gate\x20(order_new_zero_total_dead_order)\x20and\x20the\x20on-chain\x20zero-total\x20gate\x20'+'(abort\x2042)\x20both\x20reject\x20this\x20buy;\x20NOTHING\x20is\x20purchasable\x20at\x20total\x200,\x20free\x20product\x20or\x20not.\x20'+'Lower\x20the\x20coupon\x20value\x20so\x20the\x20final\x20total\x20stays\x20>=\x201\x20smallest\x20unit\x20(or\x20price\x20a\x20deliberate\x20'+'free\x20tier\x20at\x201\x20smallest\x20unit,\x20or\x20deliver\x20it\x20outside\x20the\x20sales\x20rails).\x20allow_zero_total\x20does\x20'+'NOT\x20unlock\x20this\x20buy\x20and\x20no\x20longer\x20waives\x20the\x20issuance\x20gate\x20either\x20(BSX-F07).':'Discounted\x20total\x20shown\x20—\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20this\x20final_total\x20(bs29\x20R-17:\x20total_pay\x20is\x20a\x20FLOOR;\x20the\x20order\x20escrows\x20exactly\x20this\x20amount,\x20an\x20over-funded\x20total\x20is\x20never\x20escrowed).\x20Pass\x20exactly\x20this\x20value;\x20the\x20coupon\x20is\x20consumed\x20at\x20buy.\x20'+'BURN-ON-USE\x20(F-ETS-03):\x20attaching\x20this\x20coupon\x20to\x20a\x20buy\x20DESTROYS\x20it\x20on\x20chain\x20—\x20the\x20coupon\x20'+'object\x20is\x20gone\x20once\x20the\x20order\x20is\x20created\x20(a\x20later\x20quote\x20hits\x20E_DISCOUNT_NOT_FOUND).\x20'+'CANCELLATION\x20REFUNDS\x20THE\x20DISCOUNTED\x20AMOUNT\x20ONLY:\x20refund\x20rails\x20pay\x20the\x20order\x27s\x20escrowed\x20'+'amount\x20(this\x20final_total),\x20so\x20a\x20cancelled\x20order\x20does\x20NOT\x20restore\x20the\x20coupon\x27s\x20face\x20value\x20—\x20'+'the\x20difference\x20is\x20forfeited\x20even\x20on\x20a\x20no-fault\x20cancel.\x20Disclose\x20this\x20to\x20the\x20buyer\x20before\x20checkout.':'⚠\x20Benchmark\x20NOT\x20met\x20(list\x20total\x20'+L+'\x20<\x20'+aC+'):\x20the\x20chain\x20REJECTS\x20this\x20buy\x20when\x20the\x20coupon\x20is\x20attached\x20(error\x2038\x20—\x20full\x20rollback,\x20nothing\x20paid,\x20coupon\x20preserved).\x20Raise\x20the\x20basket\x20to\x20>=\x20'+aC+',\x20or\x20order\x20without\x20the\x20coupon\x20and\x20keep\x20it.'};}const O=balanceStr(i['compensation_fund']??0x0),P=/^\d+$/['test'](O['trim']())?BigInt(O['trim']()):0x0n,Q=0x3n*M,R=Q>P?Q-P:0x0n,S=P/0x3n,T=await displayOf(S['toString'](),l,b),U={'fund_balance':P['toString'](),'fund_balance_display':await displayOf(P['toString'](),l,b),'max_coverable_order':S['toString'](),'max_coverable_order_display':T,'required_for_this_basket':Q['toString'](),'required_display':await displayOf(Q['toString'](),l,b),'shortfall':R['toString'](),'shortfall_display':await displayOf(R['toString'](),l,b),'covered':P>=Q,'note':P===0x0n?'This\x20Service\x20runs\x20WITHOUT\x20a\x20compensation\x20fund\x20—\x20a\x20legitimate\x20merchant\x20choice,\x20never\x20blocked\x20at\x20buy.\x20An\x20arbitration\x20award\x20beyond\x20the\x20pool\x20aborts\x20the\x20buyer\x27s\x20payout\x20(code\x2027,\x20claim\x20NOT\x20consumed)\x20and\x20waits\x20on\x20the\x20merchant\x20wallet.':P>=Q?'The\x20fund\x20covers\x203x\x20this\x20basket\x27s\x20amount\x20—\x20a\x20single\x20ruling\x20at\x20the\x20maximum\x20award\x20multiple\x20is\x20payable\x20from\x20the\x20pool.\x20Storefront\x20ceiling:\x20orders\x20above\x20'+T+'\x20(fund/3)\x20are\x20NOT\x20fully\x20covered\x20(they\x20proceed\x20with\x20a\x20buy-time\x20warning)\x20—\x20quote\x20a\x20bigger\x20basket\x20against\x20the\x20ceiling,\x20not\x20just\x20this\x20one.':'BELOW\x20the\x20per-order\x20payout\x20requirement\x20(compensation_fund_below_order_ceiling):\x20the\x20buy\x20still\x20PROCEEDS\x20with\x20a\x20warning\x20—\x20coverage\x20is\x20no\x20longer\x20enforced\x20pre-buy\x20(拍板⑤\x20dm-mtw-261027).\x20Risk\x20to\x20disclose\x20to\x20the\x20buyer\x20BEFORE\x20checkout:\x20if\x20a\x20ruling\x20awards\x20at\x20the\x20cap,\x20settlement\x20is\x20ALL-OR-NOTHING\x20—\x20the\x20claim\x20aborts\x20(code\x2027),\x20nothing\x20is\x20paid,\x20and\x20it\x20waits\x20on\x20the\x20merchant\x20topping\x20up\x20via\x20service.compensation_fund_add\x20by\x20'+await displayOf(R['toString'](),l,b)+'\x20(to\x20>=\x203x\x20this\x20basket).\x20Standing\x20ceiling:\x20orders\x20above\x20'+T+'\x20(fund/3)\x20are\x20not\x20fully\x20covered,\x20so\x20this\x20basket\x20is\x20only\x20the\x20latest\x20casualty\x20—\x20every\x20bigger\x20SKU\x20is\x20under-covered\x20too.'},V=await displayOf(M['toString'](),l,b),W=i['order_allocators'],X=Array['isArray'](W?.['allocators'])?W['allocators']:[],Y=X['length']>0x0?X[0x0]:undefined,Z=Y?{'allocator_index':0x0,'note':'Sharing\x20rows\x20of\x20the\x20FIRST\x20order_allocator\x20(index\x200\x20—\x20NOT\x20necessarily\x20the\x20normal\x20'+'payout\x20path:\x20services\x20that\x20ship\x20refund-first\x20rails\x20put\x20the\x20refund\x20track\x20at\x20index\x200,\x20'+'klk15\x20C-06).\x20Guards\x20select\x20per-case\x20allocators\x20(refund\x20/\x20damage\x20/\x20late-cancel),\x20so\x20'+'the\x20LIVE\x20split\x20depends\x20on\x20which\x20guard\x20passes\x20—\x20identify\x20the\x20settlement\x20allocator\x20'+'via\x20service_panorama\x20before\x20ordering.','sharing':(Array['isArray'](Y['sharing'])?Y['sharing']:[])['map'](aG=>({'recipient':describeRecipient(aG?.['who']),'mode':typeof aG?.['mode']==='string'?aG['mode']:null,'value':balanceStr(aG?.['sharing']?.['balance']??aG?.['sharing']??0x0)}))}:null,a0=Array['isArray'](i['rewards'])?i['rewards']['filter'](aG=>typeof aG==='string'&&aG!==''):[];let a1=null;if(a0['length']>0x0){const aG=[],aH=[];let aI=[];try{const aJ=await query_objects({'objects':a0,'network':b});aI=Array['isArray'](aJ?.['objects'])?aJ['objects']:[];}catch(aK){aG['push']('Reward\x20lookup\x20failed\x20('+(aK instanceof Error?aK['message']:String(aK))+')\x20—\x20reward\x20terms\x20NOT\x20verified;\x20do\x20not\x20rely\x20on\x20them.');}for(const aL of a0){const aM=aI['find'](bh=>typeof bh?.['object']==='string'&&bh['object']['toLowerCase']()===aL['toLowerCase']());if(!aM){aG['push']('Reward\x20\x27'+aL+'\x27\x20could\x20not\x20be\x20read\x20—\x20its\x20terms\x20are\x20unknown;\x20do\x20not\x20rely\x20on\x20it.');continue;}const aN=balanceStr(aM['balance']??0x0),aO=/^\d+$/['test'](aN)?BigInt(aN):0x0n,aP=[];let aQ=0x0n,aR=![];for(const bh of Array['isArray'](aM['guards'])?aM['guards']:[]){const bi=bh?.['amount'],bj=bi!=null&&(bi['type']===0x1||bi['type']==='Fixed'),bk=bh?.['expiration_time'],bl=bk==null?null:Number(bk),bm=bl!=null&&Number['isFinite'](bl)?bl:null;if(bj){const bn=balanceStr(bi['value']??0x0),bo=/^\d+$/['test'](bn)?BigInt(bn):0x0n;if(bo>aQ)aQ=bo;aP['push']({'guard':String(bh?.['guard']??''),'amount_type':'fixed','amount':bn,'amount_display':await displayOf(bn,l,b),'expiration_time':bm,'expiration_display':bm!=null?new Date(bm)['toISOString']():null,'expired':bm!=null?Date['now']()>bm:null,'min_rating':null,'min_rows':null,'unreadable_legs':null,'claim_window':null,'claim_state':'unknown','claim_state_note':'Not\x20decoded\x20yet.'});}else aR=!![],aP['push']({'guard':String(bh?.['guard']??''),'amount_type':'guard_submission','amount':'submission\x20identifier\x20'+String(bi?.['value']??'?'),'amount_display':null,'expiration_time':bm,'expiration_display':bm!=null?new Date(bm)['toISOString']():null,'expired':bm!=null?Date['now']()>bm:null,'min_rating':null,'min_rows':null,'unreadable_legs':null,'claim_window':null,'claim_state':'unknown','claim_state_note':'Not\x20decoded\x20yet.'});}const aS=Array['from'](new Set(aP['map'](bp=>bp['guard'])['filter'](bp=>bp!==''))),aT=new Map();if(aS['length']>0x0)try{const bp=await query_objects({'objects':aS,'network':b});for(const bq of Array['isArray'](bp?.['objects'])?bp['objects']:[]){if(typeof bq?.['object']==='string')aT['set'](bq['object']['toLowerCase'](),bq);}}catch{aG['push']('Claim\x20guard\x20lookup\x20failed\x20—\x20rating\x20conditions\x20on\x20'+aS['length']+'\x20claim\x20guard(s)\x20NOT\x20verified;\x20do\x20not\x20promise\x20the\x20incentive.');}const aU=(br,bs=0x0)=>{if(!br||typeof br!=='object'||bs>0x4)return null;if(br['root']&&Array['isArray'](br['table']))return br;for(const bt of Object['values'](br)){if(bt&&typeof bt==='object'){const bu=aU(bt,bs+0x1);if(bu)return bu;}}return null;},aV=br=>{if(br>=0x15180&&br%0x15180===0x0)return br/0x15180+'\x20day(s)';if(br>=0xe10&&br%0xe10===0x0)return br/0xe10+'\x20hour(s)';return br+'\x20seconds';},aW=(br,bs)=>{const bt=br['table']['find'](bv=>bv?.['identifier']===bs&&bv?.['b_submission']===![]);if(!bt)return null;const bu=typeof bt['value']==='number'?bt['value']:Number(String(bt['value']??''));return Number['isFinite'](bu)?bu:null;},aX=/^query_repository_data_(count|find|sum)(?:_bound)?_where$/,aY=br=>{if(!br||typeof br!=='object')return null;const bs=bt=>{const bu=typeof bt==='number'?bt:Number(String(bt??''));return Number['isFinite'](bu)?bu:null;};switch(br['kind']){case'gte':{const bt=bs(br['value']);return bt!=null?'>=\x20'+bt:null;}case'gt':{const bu=bs(br['value']);return bu!=null?'>\x20'+bu:null;}case'numEq':{const bv=bs(br['value']);return bv!=null?'==\x20'+bv:null;}case'range':{const bw=bs(br['valueMin']);if(bw!=null)return br['minInclusive']===![]?'>\x20'+bw:'>=\x20'+bw;const bx=bs(br['valueMax']);if(bx!=null)return br['maxInclusive']===![]?'<\x20'+bx:'<=\x20'+bx;return null;}default:return null;}},aZ=br=>{const bs=[],bt=(bu,bv)=>{if(!bu||typeof bu!=='object'||bv>0x18)return;const bw=typeof bu['type']==='string'?bu['type']:'';if(bw['startsWith']('vec_contains')){const bx=JSON['stringify'](bu),by=bx['includes']('find_where')||bx['includes']('1176');bs['push'](by?bw+'[repository\x20find_where\x20membership\x20read]\x20—\x20set-membership\x20gate\x20over\x20found\x20rows;\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time':bw+'\x20membership\x20gate\x20—\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time');return;}else bw==='query'&&typeof bu['query']==='string'&&bu['query']['includes']('find_where')&&bs['push']('query\x20'+bu['query']+'\x20—\x20repository\x20find_where\x20read\x20feeding\x20a\x20comparison;\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time');for(const bz of Object['values'](bu)){if(Array['isArray'](bz)){for(const bA of bz)bt(bA,bv+0x1);}else bz&&typeof bz==='object'&&bt(bz,bv+0x1);}};return bt(br,0x0),bs;},b0=(br,bs)=>{const bt=new Set();for(const by of bs['table']??[]){if(by?.['b_submission']===![]&&typeof by?.['value']==='string'&&/rating/i['test'](by['value']))bt['add'](Number(by['identifier']));}const bu=bz=>{if(!bz)return null;if(bz['type']==='identifier')return aW(bs,Number(bz['identifier']));if(typeof bz['value']==='number')return bz['value'];const bA=Number(String(bz['value']??''));return Number['isFinite'](bA)?bA:null;};let bv=null;const bw=bz=>{if(!bv||bz['ratingKeyed']&&!bv['ratingKeyed'])bv=bz;},bx=(bz,bA)=>{if(!bz||typeof bz!=='object'||bA>0x18)return;const bB=typeof bz['type']==='string'?bz['type']:'';if(bB==='logic_as_u256_greater_or_equal'||bB==='logic_as_u256_greater'||bB==='logic_as_u256_equal'){const bC=Array['isArray'](bz['nodes'])?bz['nodes']:[],bD=bC[0x0],bE=JSON['stringify'](bD??{});if(bC['length']>=0x2&&bD&&(bE['includes']('repository.data')||bE['includes']('repository_data'))){let bF=null;const bG=(bI,bJ)=>{if(!bI||typeof bI!=='object'||bJ>0x8||bF)return;if(bI['type']==='query'&&bI['where']&&(typeof bI['query']==='string'&&aX['test'](bI['query'])||typeof bI['query']==='number')){bF=bI;return;}for(const bK of Object['values'](bI))if(bK&&typeof bK==='object')bG(bK,bJ+0x1);};bG(bD,0x0);const bH=bu(bC[bC['length']-0x1]);if(bF){const bI=bF['key']?.['identifier']!=null?Number(bF['key']['identifier']):null;bw({'floor':aY(bF['where']),'min_rows':bH,'aggregate':!![],'ratingKeyed':bI!=null&&bt['has'](bI)});}else{const bJ=bu(bC[bC['length']-0x1]);if(bJ!=null){const bK=bB==='logic_as_u256_greater_or_equal'?'>=':bB==='logic_as_u256_greater'?'>':'==';bw({'floor':bK+'\x20'+bJ,'min_rows':null,'aggregate':![],'ratingKeyed':![]});}}}}for(const bL of Object['values'](bz)){if(Array['isArray'](bL)){for(const bM of bL)bx(bM,bA+0x1);}else bL&&typeof bL==='object'&&bx(bL,bA+0x1);}};return bx(br,0x0),bv??{'floor':null,'min_rows':null,'aggregate':![],'ratingKeyed':![]};};for(const br of aP){br['min_rating']=null;const bs=aT['get'](br['guard']['toLowerCase']());if(!bs)continue;{const bx=aU(bs),by=bx?parseGuardTimeBounds(bx['root'],bx['table']):null;by&&(br['claim_window']={'opens_after_s':by['lowerOffsetMs']!=null?by['lowerOffsetMs']/0x3e8:null,'closes_after_s':by['upperWindowMs']!=null?by['upperWindowMs']/0x3e8:null,'anchor':by['anchor']});}{const bz=br['claim_window'],bA=bz?.['opens_after_s']??null,bB=bz?.['closes_after_s']??null;if(br['expiration_time']!=null&&br['expired']===!![])br['claim_state']='expired',br['claim_state_note']='The\x20pool-level\x20entry\x20expired\x20at\x20'+br['expiration_display']+'\x20—\x20claims\x20abort\x20E_GUARD_EXPIRED.\x20The\x20unclaimed\x20remainder\x20is\x20NOT\x20lost:\x20once\x20the\x20pool\x27s\x20own\x20commitment\x20lock\x20has\x20elapsed\x20(guard_not_added_expiration_time),\x20the\x20owner\x20may\x20extend/clear\x20the\x20guard\x20windows\x20(guard_expiration_time_add)\x20or\x20withdraw\x20the\x20remainder\x20(the\x20owner-side\x20withdrawal\x20unwraps\x20the\x20held\x20Coin)\x20—\x20an\x20expiring\x20claim\x20window\x20never\x20strands\x20the\x20bounty\x20permanently,\x20it\x20only\x20ends\x20the\x20promise\x20to\x20buyers.';else{if(!bz)br['claim_state']='unknown',br['claim_state_note']='The\x20claim\x20guard\x27s\x20window\x20could\x20not\x20be\x20decoded\x20(unreadable\x20payload\x20or\x20no\x20Clock\x20comparison)\x20—\x20check\x20the\x20guard\x20before\x20promising\x20a\x20timing\x20to\x20the\x20buyer.';else{if(bA!=null&&bA>0x0&&bB==null)br['claim_state']='delayed_open_ended',br['claim_state_note']='NOT\x20claimable\x20at\x20the\x20anchor\x20event\x20—\x20opens\x20'+aV(bA)+'\x20after\x20it\x20('+bz['anchor']+'),\x20and\x20the\x20window\x20NEVER\x20closes:\x20any\x20\x22N\x20days\x20to\x20claim\x22\x20wording\x20is\x20fictional\x20(bsw4\x20F-11).';else{if(bA!=null&&bA>0x0){br['claim_state']='delayed_window';const bC=bB-bA;br['claim_state_note']='Opens\x20'+aV(bA)+'\x20after\x20the\x20anchor\x20event\x20('+bz['anchor']+'),\x20stays\x20claimable\x20for\x20a\x20further\x20'+aV(bC)+'\x20—\x20hard\x20deadline\x20'+aV(bB)+'\x20after\x20the\x20anchor.';}else bB!=null?(br['claim_state']='open_window',br['claim_state_note']='Claimable\x20at\x20the\x20anchor\x20event\x20('+bz['anchor']+'),\x20until\x20'+aV(bB)+'\x20after\x20it.'):(br['claim_state']='open_ended',br['claim_state_note']='Claimable\x20at\x20the\x20anchor\x20event\x20('+bz['anchor']+')\x20and\x20never\x20closes\x20—\x20an\x20open-ended\x20bounty\x20(a\x20deliberate\x20design;\x20disclose\x20it\x20explicitly).');}}}}let bt;try{bt=JSON['stringify'](bs,(bD,bE)=>bE instanceof Uint8Array?Buffer['from'](bE)['toString']('base64'):bE);}catch{continue;}const bu=bt['includes']('\x22rating\x22')||bt['includes']('114,97,116,105,110,103')||bt['toLowerCase']()['includes']('726174696e67')||bt['includes']('cmF0aW5n');if(!bu)continue;const bv=aU(bs),bw=bv?b0(bv['root'],bv):null;if(bw?.['floor'])br['min_rating']=bw['floor'],br['min_rows']=bw['min_rows'];else{const bD=bt['toLowerCase']();if(bD['includes']('\x22like\x22'))br['min_rating']='like';else{if(bD['includes']('\x22dislike\x22'))br['min_rating']='dislike';else br['min_rating']='unknown';}if(bw?.['min_rows']!=null)br['min_rows']=bw['min_rows'];const bE=bv?aZ(bv['root']):[];if(bE['length']>0x0)br['unreadable_legs']=bE;}}let b1='';if(aQ>0x0n&&t>0x0n){const bF=Number(aQ)/Number(t);Number['isFinite'](bF)&&(b1='\x20Bounty/cheapest-SKU\x20price\x20ratio:\x20'+bF['toFixed'](0x2)+'x\x20'+('('+await displayOf(aQ['toString'](),l,b)+'\x20vs\x20')+(await displayOf(t['toString'](),l,b)+').')+(bF>0.5?'\x20⚠\x20SCALE\x20(T-02):\x20each\x20claimed\x20order\x20pays\x20out\x20MORE\x20than\x20the\x20cheapest\x20sale\x20earns\x20—\x20a\x20bounty-farm\x20shape;\x20a\x20sybil\x20can\x20mint\x20cheap\x20orders\x20and\x20drain\x20this\x20pool.\x20Rebalance\x20the\x20bounty\x20or\x20the\x20catalog\x20before\x20funding.':''));}const b2=aO===0x0n?'Pool\x20is\x20EMPTY\x20—\x20any\x20claim\x20aborts\x20on-chain\x20on\x20the\x20reward\x20module\x27s\x20E_INSUFFICIENT_BALANCE\x20(not\x20the\x20allocation\x20module\x27s\x20same-named\x20constant);\x20do\x20not\x20budget\x20on\x20this\x20reward.':aR||aQ===0x0n?null:'Pool\x20covers\x20~'+(aO/aQ)['toString']()+'\x20further\x20claim(s)\x20at\x20the\x20largest\x20configured\x20per-claim\x20amount.'+b1,b3=Array['isArray'](aM['guards'])?aM['guards']:[],b4=b3['filter'](bG=>bG?.['store_from_id']!=null)['map'](bG=>Number(bG['store_from_id'])),b5=((()=>{if(b3['length']===0x0)return{'scope':'unknown','detail':'No\x20mounted\x20guard\x20entry\x20was\x20readable,\x20so\x20the\x20claim\x20scope\x20could\x20not\x20be\x20determined\x20—\x20do\x20not\x20assume\x20a\x20per-order\x20bounty.','per_order_note':PER_ORDER_REPLAY_NOTE};if(b4['length']===b3['length']&&b4['every'](bG=>bG===0x0))return{'scope':'once_per_order','detail':'Every\x20claim\x20entry\x20stamps\x20store_from_id=0\x20(the\x20conventional\x20submitted-Order\x20slot):\x20the\x20once\x20key\x20is\x20(guard,\x20order)\x20with\x20the\x20recipient\x20pinned\x20to\x20the\x20@0x0\x20sentinel\x20—\x20the\x20FIRST\x20claim\x20consumes\x20the\x20slot\x20for\x20EVERY\x20signer\x20on\x20that\x20order\x20(a\x20second\x20claim\x20aborts\x2013,\x20E_CLAIM_ALREADY_MADE:\x20this\x20(guard,\x20order)\x20was\x20already\x20claimed\x20by\x20any\x20signer);\x20the\x20same\x20buyer\x20can\x20still\x20claim\x20again\x20on\x20a\x20NEW\x20order\x20(fresh\x20slot).','per_order_note':PER_ORDER_REPLAY_NOTE};if(b4['length']===b3['length'])return{'scope':'once_per_stamp','detail':'Every\x20claim\x20entry\x20carries\x20a\x20store_from_id\x20stamp,\x20but\x20not\x20the\x20conventional\x20Order\x20slot\x200\x20(slots:\x20'+b4['join'](',\x20')+'):\x20claims\x20are\x20keyed\x20per\x20(guard,\x20stamped\x20value)\x20with\x20the\x20recipient\x20pinned\x20to\x20the\x20@0x0\x20sentinel\x20—\x20the\x20first\x20claim\x20consumes\x20the\x20slot\x20for\x20every\x20signer;\x20per-ORDER\x20only\x20when\x20that\x20slot\x20is\x20the\x20submitted\x20Order.','per_order_note':PER_ORDER_REPLAY_NOTE};if(b4['length']===0x0)return{'scope':'once_per_recipient_guard','detail':'Every\x20claim\x20entry\x20has\x20an\x20EMPTY\x20store_from\x20slot:\x20ONE\x20claim\x20per\x20(recipient,\x20guard)\x20for\x20LIFE\x20—\x20the\x20same\x20buyer\x27s\x20second\x20order\x20claims\x20nothing\x20(abort\x2013,\x20E_CLAIM_ALREADY_MADE),\x20even\x20when\x20the\x20bounty\x20is\x20described\x20as\x20per-order.','per_order_note':PER_ORDER_REPLAY_NOTE};return{'scope':'mixed','detail':b4['length']+'\x20of\x20'+b3['length']+'\x20claim\x20entries\x20carry\x20a\x20store_from_id\x20stamp\x20—\x20those\x20are\x20per-stamp\x20scoped;\x20the\x20remaining\x20entries\x20are\x20once\x20per\x20(recipient,\x20guard)\x20for\x20life.\x20Read\x20each\x20claims[]\x20row.','per_order_note':PER_ORDER_REPLAY_NOTE};})()),b6=aP['filter'](bG=>bG['min_rating']==='unknown')['length'];b6>0x0&&aG['push'](b6+'\x20claim(s)\x20gate\x20on\x20a\x20rating\x20condition\x20whose\x20polarity\x20could\x20not\x20be\x20parsed\x20'+'(min_rating=unknown)\x20—\x20read\x20the\x20claim\x20guard\x20before\x20promising\x20this\x20incentive\x20to\x20the\x20buyer');const b7=aP['find'](bG=>bG['claim_window']!=null),b8=b7?.['claim_window']?.['opens_after_s']??null,b9=b7?.['claim_window']?.['closes_after_s']??null,ba=bG=>bG!=null&&bG>0x0&&bG%0x15180===0x0?bG/0x15180:null,bb=ba(b8),bc=b9!=null?b9-(b8??0x0):null,bd=ba(bc),be=aP['find'](bG=>typeof bG['min_rating']==='string'&&/\d/['test'](bG['min_rating'])),bf=typeof be?.['min_rating']==='string'?be['min_rating']['match'](/\d+/):null,bg=b5['scope']==='once_per_order'?0x1:null;aH['push']({'reward':aL,'description':typeof aM['description']==='string'?aM['description']:null,'pool_balance':aO['toString'](),'pool_balance_display':await displayOf(aO['toString'](),l,b),'record_count':Number['isFinite'](Number(aM['record_count']))?Number(aM['record_count']):0x0,'rating_floor':bf?Number(bf[0x0]):null,'opens_after_days':bb,'closes_after_days':bd,'per_order_limit':bg,'claims':aP,'replay_scope':b5,'coverage':b2});}a1={'note':'Pre-order\x20reward\x20terms\x20for\x20every\x20Reward\x20hung\x20on\x20this\x20Service\x20(bound\x20at\x20build\x20time):\x20pool\x20balance,\x20'+'per-claim\x20amount\x20and\x20claim\x20windows.\x20A\x20claim\x20aborts\x20after\x20its\x20window\x20(E_GUARD_EXPIRED)\x20or\x20'+'against\x20an\x20empty\x20pool\x20(E_INSUFFICIENT_BALANCE)\x20—\x20never\x20budget\x20on\x20an\x20expired\x20or\x20empty\x20'+'reward.\x20Claiming\x20requires\x20passing\x20the\x20claim\x20guard\x27s\x20conditions.\x20'+'RATING\x20DEPENDENCY\x20(ddmc2\x20P0-1):\x20a\x20rating-floor\x20claim\x20reads\x20the\x20buyer\x27s\x20order-keyed\x20U64\x20row\x20'+'under\x20the\x20\x27rating\x27\x20policy\x20of\x20the\x20plan-created\x20review\x20repository\x20—\x20if\x20that\x20policy\x20was\x20dropped\x20'+'at\x20execution\x20(chain\x20policies\x20list\x20shows\x20only\x20\x27review\x27),\x20the\x20floor\x20can\x20NEVER\x20pass\x20and\x20the\x20bounty\x20'+'is\x20permanently\x20unclaimable.\x20The\x20publish\x20receipt\x27s\x20readback\x20\x27policies\x27\x20check\x20is\x20the\x20authority;\x20'+'its\x20failure\x20text\x20carries\x20the\x20permission-102\x20repair\x20recipe.','rewards':aH,'data_gaps':aG};}let a2=null;const a3=typeof i['description']==='string'?i['description']:'';if(a3['trim']()!==''){const bG={'build_notes':a3},bH=[...incentiveRatingFloorClaims(bG)['map'](bI=>({'kind':bI['kind']==='numeric'?'rating_floor':'praise_review','claimed':String(bI['claimed']),'excerpt':bI['excerpt']})),...rewardWindowDayClaims(bG)['map'](bI=>({'kind':'claim_window','claimed':bI['claimed']+'\x20days','excerpt':bI['excerpt']}))];for(const bI of a3['matchAll'](/(\d{1,2})\s*%\s*off/gi)){bH['push']({'kind':'discount_percent','claimed':bI[0x1]+'%\x20off','excerpt':bI[0x0]['trim']()});}bH['length']>0x0&&(a2={'source':'service\x20description\x20prose\x20(plan-only)','disclosure':'SOURCE\x20DISCLOSURE\x20(TRIAGE-261109\x20item\x20E):\x20these\x20claims\x20are\x20DERIVED\x20FROM\x20THE\x20SERVICE\x20DESCRIPTION\x20'+'prose\x20and\x20are\x20NOT\x20on-chain-verified.\x20Only\x20reward_terms\x20entries\x20backed\x20by\x20on-chain\x20Reward\x20'+'objects\x20(and\x20discount\x20rules\x20compiled\x20into\x20a\x20published\x20coupon\x20—\x20the\x20discount\x20field)\x20are\x20'+'enforceable;\x20a\x20claim\x20listed\x20here\x20with\x20no\x20on-chain\x20backing\x20is\x20the\x20merchant\x27s\x20plan\x20prose\x20and\x20'+'CANNOT\x20be\x20claimed\x20through\x20the\x20chain.\x20Verify\x20against\x20reward_terms\x20before\x20budgeting\x20on\x20it.','on_chain_backed':a0['length']>0x0,'claims':bH});}const a4=Array['isArray'](i['arbitrations'])?i['arbitrations']['filter'](bJ=>typeof bJ==='string'&&bJ!=='')['length']:0x0,a5=a4>0x0?'⚠\x20DISPUTE\x20FILING\x20BOUNDARY\x20(ddmc2\x20F-02):\x20advancing\x20a\x20dispute\x20on\x20this\x20Service\x20validates\x20only\x20the\x20filing\x20'+'edge\x27s\x20guard\x20—\x20the\x20chain\x20does\x20NOT\x20require\x20an\x20arbitration\x20case\x20to\x20exist\x20(protocol-level\x20gap,\x20fix\x20'+'registered).\x20Any\x20account\x20passing\x20that\x20edge\x27s\x20guard\x20can\x20advance\x20an\x20order\x20into\x20its\x20dispute\x20node\x20'+'(append-only,\x20no\x20clearing\x20primitive),\x20wedging\x20settlement\x20until\x20the\x20buyer\x20withdraws\x20or\x20a\x20real\x20case\x20'+'resolves.\x20File\x20disputes\x20through\x20the\x20bound\x20arbitration\x20service\x20(Arbitration.dispute\x20creates\x20a\x20REAL\x20'+'case)\x20and\x20have\x20the\x20filing\x20edge\x27s\x20identity\x20legs\x20checked\x20(service_panorama)\x20before\x20large\x20orders.\x20':'';let a6=null;try{const bJ=await LocalMark['Instance']()['list']({'address':d});a6=bJ?.[0x0]?.['name']??null;}catch{a6=null;}const a7=n['filter'](bK=>typeof bK?.['wip']==='string'&&bK['wip']['includes']('wip.store.wowok.net'))['map'](bK=>String(bK['name'])),a8=a7['length']>0x0?'⚠\x20WIP\x20FREE-STORE\x20HOSTING\x20(ks7\x20F-24):\x20item\x20detail(s)\x20'+a7['map'](bK=>'\x27'+bK+'\x27')['join'](',\x20')+'\x20are\x20hosted\x20on\x20the\x20official\x20free\x20WIP\x20store\x20(wip.store.wowok.net)\x20—\x20a\x20free,\x20best-effort\x20service\x20'+'(10\x20files/account,\x20~6-month\x20retention,\x20no\x20availability\x20guarantee).\x20The\x20item\x27s\x20on-chain\x20wip_hash\x20'+'stays\x20verifiable\x20only\x20while\x20that\x20file\x20remains\x20reachable,\x20which\x20can\x20be\x20SHORTER\x20than\x20this\x20order\x27s\x20'+'after-sales\x20window.\x20Ask\x20the\x20merchant\x20about\x20self-hosted\x20(storage=\x27custom\x27)\x20WIP\x20hosting\x20for\x20'+'long-lived\x20verifiability.\x20':'',a9=K['filter'](bK=>bK['stock_ok']===![]),aa=a9['length']>0x0?'⚠\x20STOCK\x20SHORT\x20(F-20):\x20the\x20chain\x20refuses\x20a\x20buy\x20whose\x20quantity\x20exceeds\x20the\x20sale\x27s\x20remaining\x20'+'stock\x20(service:16\x20E_STOCK_NOT_ENOUGH)\x20—\x20this\x20basket\x20CANNOT\x20be\x20purchased\x20as\x20quoted.\x20Short\x20line(s):\x20'+a9['map'](bK=>bK['name']+'\x20(asked\x20'+bK['quantity']+',\x20stock\x20'+(bK['stock']??'?')+')')['join'](';\x20')+'.\x20Reduce\x20the\x20quantity\x20to\x20the\x20stock\x20shown,\x20pick\x20another\x20item,\x20or\x20ask\x20the\x20merchant\x20to\x20restock\x20'+'(service\x20sales\x20stock_add)\x20and\x20re-quote.\x20':'',ab=K['filter'](bK=>bK['buyable']===![]),ac=K['filter'](bK=>bK['buyable']===null),ad=ab['map'](bK=>bK['name'])['find'](bK=>skuNameGateNote(bK)!==''),ae={'purchasable':ab['length']>0x0||u||M===0x0n||y?.['closed']===!![]||D?.['exceeded']===!![]?![]:ac['length']>0x0?null:!![],'blocked_items':ab['map'](bK=>bK['name']),'note':D?.['exceeded']===!![]?'⚠\x20PER_BUYER_CAP_EXCEEDED\x20(U-25):\x20'+D['note']:y?.['closed']===!![]?'⚠\x20CAMPAIGN_CLOSED\x20(W5-22):\x20'+y['note']+'.':ad!==undefined?'⚠\x20UNBUYABLE\x20SKU\x20NAME\x20(F-RQ-01):\x20'+skuNameGateNote(ad):ab['length']>0x0?'Blocked\x20line(s):\x20'+ab['map'](bK=>bK['name']+'\x20—\x20'+bK['buyable_blockers']['join'](';\x20'))['join']('\x20|\x20')+'.':ac['length']>0x0?'No\x20known\x20blocker,\x20but\x20at\x20least\x20one\x20line\x27s\x20stock\x20could\x20not\x20be\x20read\x20from\x20the\x20chain\x20—\x20verify\x20before\x20checkout.':'Every\x20line\x20passes\x20the\x20known\x20buy\x20gates\x20(name\x20≤\x2064\x20bytes,\x20not\x20suspended,\x20stock\x20sufficient).'},af=ae['purchasable']===![]?'⚠\x20UNBUYABLE\x20BASKET\x20(F-RQ-01):\x20this\x20quote\x20is\x20PRICED\x20but\x20the\x20chain\x20will\x20refuse\x20every\x20order\x20—\x20read\x20the\x20buyable\x20block\x20before\x20attempting\x20order_new.\x20':'';return{'action':'service_quote','network':String(b),'service':{'address':d,'name':a6},'paused':u,'payment_token':{'coin_type':l,'display_note':l?'Prices\x20and\x20the\x20order\x20total\x20are\x20denominated\x20in\x20this\x20token\x27s\x20smallest\x20units;\x20displays\x20convert\x20with\x20the\x20token\x27s\x20on-chain\x20precision.':'Payment\x20token\x20could\x20not\x20be\x20parsed\x20from\x20the\x20Service\x20type\x20—\x20raw\x20smallest\x20units\x20only,\x20precision\x20NOT\x20guessed.'},'items':K,'buyable':ae,'per_buyer_cap_check':D,'total_pay':{'balance':M['toString'](),'display':V,'note':af+aa+a5+a8+'ENTRY\x20IGNITION\x20(ddmc2\x20P0-2):\x20after\x20checkout\x20the\x20order\x20starts\x20on\x20the\x20machine\x27s\x20EMPTY\x20entry\x20node\x20'+'(progress_current\x20\x22\x22)\x20—\x20business\x20forwards\x20fired\x20from\x20there\x20ALWAYS\x20abort\x20with\x20E_INFO_NOT_FOUND\x20'+'(the\x20forward\x20is\x20not\x20an\x20out-edge\x20of\x20the\x20entry\x20node).\x20The\x20buy\x20receipt\x20'+'carries\x20the\x20entry_edge\x20recipe:\x20OPEN\x20or\x20signature-only\x20entries\x20fire\x20IN-SESSION\x20(ENTRY\x20EDGE\x20FIRED),\x20'+'guarded\x20ones\x20return\x20the\x20ENTRY\x20EDGE\x20PENDING\x20recipe\x20(exact\x20forward\x20name\x20+\x20guard\x20slots;\x20slot\x20254\x20=\x20the\x20'+'order,\x20buyer-signed)\x20—\x20drive\x20that\x20once\x20before\x20any\x20business\x20forward.\x20'+(y?'⚠\x20CAMPAIGN\x20WINDOW\x20('+(y['closed']?'CLOSED':'OPEN')+')\x20(W5-22):\x20'+y['note']+'\x20':'')+(B?'⚠\x20GROUP\x20THRESHOLD\x20(amount\x20≠\x20headcount\x20—\x20GOAL-LATCH-01\x20disclosure):\x20this\x20storefront\x20settles\x20an\x20'+'all-or-nothing\x20campaign\x20on\x20an\x20AMOUNT\x20aggregate\x20—\x20the\x20round\x20completes\x20the\x20moment\x20total\x20contributions\x20'+'cross\x20the\x20funding\x20threshold,\x20and\x20a\x20SINGLE\x20buyer\x20funding\x20the\x20whole\x20threshold\x20amount\x20completes\x20it\x20ALONE\x20'+'((金额门槛≠人数门槛:单人一笔买足\x20threshold\x20金额即成团;a\x20distinct-buyer\x20headcount\x20is\x20now\x20readable\x20'+'via\x20kernel\x20query\x201183\x20—\x20UNEXPRESSIBLE\x20U-25\x20—\x20but\x20the\x20amount\x20threshold\x20itself\x20does\x20not\x20gate\x20on\x20'+'headcount).\x20Joining\x20does\x20not\x20imply\x20other\x20participants.\x20Also:\x20once\x20the\x20goal\x20is\x20'+'reached,\x20the\x20kernel\x27s\x20GoalStamp\x20latch\x20(enable_progress_goal_latch)\x20permanently\x20saturates\x20that\x20'+'repository\x20key\x27s\x20aggregate\x20—\x20the\x20missed-goal\x20refund\x20polarity\x20can\x20never\x20pass\x20again\x20on\x20the\x20same\x20key,\x20'+'so\x20a\x20later\x20campaign\x20round\x20needs\x20the\x20merchant\x27s\x20NEW\x20repository\x20key.\x20Builds\x20from\x20W44\x20on\x20also\x20AUTO-ARM\x20'+'the\x20builtin\x20contribution\x20spec\x20(repository\x20builtin_spec)\x20on\x20the\x20campaign\x20ledger,\x20so\x20buyers\x20record\x20'+'contributions\x20through\x20the\x20atomic\x20progress\x20operate.contribute\x20rail\x20(row\x20+\x20edge\x20advance\x20in\x20ONE\x20tx)\x20—\x20'+'an\x20unarmed\x20older\x20ledger\x20falls\x20back\x20to\x20the\x20identity-guard\x20data_add\x20write.\x20':'')+(u?'⚠\x20SERVICE\x20PAUSED\x20(bs29\x20R-16):\x20this\x20Service\x20is\x20currently\x20paused\x20—\x20every\x20buy\x20is\x20refused\x20'+'(client\x20pre-buy\x20gate,\x20then\x20the\x20on-chain\x20E_PAUSED\x20assert)\x20while\x20the\x20pause\x20'+'stands,\x20and\x20there\x20is\x20NO\x20on-chain\x20scheduled\x20resume:\x20the\x20merchant\x20must\x20submit\x20pause:false.\x20'+'The\x20prices\x20below\x20are\x20reference\x20only.\x20':'')+(M===0x0n?'DEAD\x20BASKET\x20(F-BS-75):\x20this\x20quote\x20totals\x20ZERO\x20—\x20the\x20chain\x20REFUSES\x20zero-total\x20buys\x20(client\x20'+'order_new_zero_total_dead_order,\x20on-chain\x20abort\x2042),\x20so\x20this\x20basket\x20cannot\x20be\x20purchased\x20at\x20'+'all.\x20Either\x20the\x20basket\x20contains\x20a\x20zero-priced\x20SKU\x20(permanently\x20unbuyable\x20—\x20F-BS-76;\x20the\x20'+'merchant\x20must\x20reprice\x20it\x20to\x20>=\x201\x20smallest\x20unit)\x20or\x20a\x20coupon\x20zeroes\x20it\x20(lower\x20the\x20coupon\x20'+'value).\x20Do\x20NOT\x20attempt\x20the\x20buy.\x20allow_zero_total\x20waives\x20nothing\x20(BSX-F07).':N?.['applied']?'FLOOR\x20semantics\x20(bs29\x20R-17,\x20the\x20published\x20buy\x20contract):\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20'+'this\x20discounted\x20total\x20—\x20an\x20under-funded\x20total\x20aborts\x20(E_COIN_NOT_ENOUGH);\x20an\x20over-funded\x20one\x20'+'succeeds\x20but\x20the\x20ORDER\x20still\x20escrows\x20exactly\x20this\x20amount\x20(the\x20excess\x20is\x20split\x20back,\x20never\x20'+'escrowed).\x20Pass\x20exactly\x20this\x20value.\x20The\x20on-chain\x20buy\x20aborts\x20only\x20on\x20an\x20UNDER-funded\x20total;\x20'+'the\x20coupon\x20is\x20consumed\x20at\x20buy.':'FLOOR\x20semantics\x20(bs29\x20R-17,\x20the\x20published\x20buy\x20contract):\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20'+'this\x20total\x20—\x20an\x20under-funded\x20total\x20aborts\x20(E_COIN_NOT_ENOUGH);\x20an\x20over-funded\x20one\x20'+'succeeds\x20but\x20the\x20ORDER\x20still\x20escrows\x20exactly\x20Σ(unit_price\x20×\x20quantity)\x20—\x20the\x20excess\x20is\x20split\x20'+'back\x20to\x20the\x20payer\x20and\x20never\x20enters\x20the\x20escrow.\x20WITHOUT\x20a\x20discount\x20you\x20may\x20also\x20omit\x20'+'total_pay\x20entirely:\x20the\x20buy\x20auto-derives\x20this\x20exact\x20total\x20(M-K17).')},'discount':N,'allocation_preview':Z,'compensation_fund_coverage':U,'reward_terms':a1,'incentive_plan_derived':a2};}
1
+ import{Config,LocalMark,query_objects,query_serviceContext,queryTableItem_RepositoryData,simulateGuard,ValueType}from'@wowok/wowok';import{resolveAddress as a431a}from'../../tools/handlers/name-resolution.js';import{parseGuardTimeBounds}from'../../knowledge/guard-anchor-reach.js';import{incentiveRatingFloorClaims,rewardWindowDayClaims}from'../../knowledge/template-scanner.js';import{lineBuyability,skuNameGateNote}from'../../knowledge/sku-name-gate.js';import{formatMoneyAnnotation}from'./facet-money.js';const balanceStr=a=>a===null||a===undefined?'0':typeof a==='bigint'?a['toString']():String(a);async function displayOf(a,b,c){try{return(await formatMoneyAnnotation(a,b,c))['display'];}catch{return a;}}function describeRecipient(a){if(typeof a==='string')return a;if(a&&typeof a==='object'){const b=a;if('GuardIdentifier'in b)return'submission\x20slot\x20'+String(b['GuardIdentifier']);if('Entity'in b){const c=b['Entity'],d=c&&typeof c==='object'?c['name_or_address']:c;return d===''?'Entity(\x22\x22)\x20—\x20MCP\x20default\x20local\x20account':'Entity:'+String(d);}return JSON['stringify'](a);}return'unknown';}const PER_ORDER_REPLAY_NOTE='A\x20per-order\x20replay\x20on\x20the\x20reward\x20PULL\x20rail\x20needs\x20BOTH\x20a\x20guard_add\x20store_from_id\x20stamp\x20on\x20the\x20'+'submitted-Order\x20slot\x20(0\x20by\x20convention)\x20AND\x20an\x20order-scoped\x20where:{storeFromId:{identifier:<same\x20slot>}}\x20'+'record\x20gate\x20in\x20the\x20claim\x20guard\x20(SV-2).\x20For\x20a\x20per-order\x20once\x20the\x20CHAIN\x20enforces\x20regardless\x20of\x20guard-tree\x20'+'mistakes,\x20route\x20the\x20incentive\x20through\x20an\x20Allocation\x20leg\x20declaring\x20protocol\x20slot\x20254\x20(the\x20once\x20key\x20derives\x20'+'on-chain\x20from\x20bcs(payment_info.for_object);\x20a\x20second\x20alloc\x20aborts\x2016,\x20E_ONCE_TRIGGERED).',quoteOwnerAddr=a=>{if(typeof a==='string')return a;const b=a;if(b&&typeof b==='object'){if(typeof b['AddressOwner']==='string')return b['AddressOwner'];if(typeof b['ObjectOwner']==='string')return b['ObjectOwner'];const c=Object['values'](b)['find'](d=>typeof d==='string'&&d['length']>0x14);if(typeof c==='string')return c;}return null;};export async function handleServiceQuote(a){const b=a['context_network']??undefined??await Config['Instance']()['network_get'](),d=await a431a(a['object_address']??a['service_address']??'','object_address\x20(or\x20service_address)'),f=a['no_cache']!==![],h=await query_serviceContext({'service':d,'network':b,...f?{'no_cache':!![]}:{}}),i=h['service'];if(!i)throw new Error('Service\x20\x27'+a['service_address']+'\x27\x20not\x20found\x20on\x20network\x20'+b+'.');const j=i?.['type_raw']??i?.['type']??'',k=j['match'](/<(.+)>$/),l=k?k[0x1]:null,n=Array['isArray'](i['sales'])?i['sales']:[],q=new Map();for(const ag of n){if(!ag||typeof ag['name']!=='string')continue;const ah=ag['stock']?.['balance']??ag['stock'];q['set'](ag['name'],{'price':balanceStr(ag['price']?.['balance']??ag['price']??0x0),'suspended':ag['suspension']===!![],'stock':ah==null?null:balanceStr(ah),'wip':typeof ag['wip']==='string'&&ag['wip']!==''?ag['wip']:null});}let t=0x0n;for(const ai of q['values']()){const aj=/^\d+$/['test'](ai['price'])?BigInt(ai['price']):0x0n;aj>0x0n&&(t===0x0n||aj<t)&&(t=aj);}const u=i['paused']===!![]||i['bPaused']===!![],w=(ak,al=0x0)=>{if(!ak||typeof ak!=='object'||al>0x4)return null;if(ak['root']&&Array['isArray'](ak['table']))return ak;for(const am of Object['values'](ak)){if(am&&typeof am==='object'){const an=w(am,al+0x1);if(an)return an;}}return null;},x=async()=>{try{const ak=i['buy_guard'];if(typeof ak!=='string'||!/^0x[0-9a-fA-F]{40,64}$/['test'](ak))return null;const al=await query_objects({'objects':[ak],'network':b}),am=Array['isArray'](al?.['objects'])?al['objects'][0x0]:null,an=w(am);if(!an)return null;const ao=aB=>Array['isArray'](an['table'])?an['table']['find'](aC=>aC?.['identifier']===aB&&aC?.['b_submission']===![])??null:null,ap=(aB,aC=0x0)=>{if(!aB||typeof aB!=='object'||aC>0xc)return null;if(aB['type']==='logic_as_u256_lesser_or_equal'&&Array['isArray'](aB['nodes'])&&aB['nodes']['some'](aD=>aD?.['type']==='context'&&aD?.['context']==='Clock')){const aD=aB['nodes']['find'](aE=>aE?.['type']==='query'&&aE?.['query']==='repository.data');if(aD)return aD;}for(const aE of Object['values'](aB)){if(aE&&typeof aE==='object'){const aF=ap(aE,aC+0x1);if(aF)return aF;}}return null;},aq=ap(an['root']);if(!aq)return null;const ar=ao(aq['parameters']?.[0x0]?.['identifier']);if(!ar||ar['value']!=='next_cycle_deadline')return null;const as=ao(aq['object']?.['identifier']),at=ao(aq['parameters']?.[0x1]?.['identifier']);if(!as||!at)return null;const au=typeof as['value']==='string'?as['value']:String(as['value']??'');if(!au)return null;const av=at['value'],aw=typeof av==='number'&&Number['isFinite'](av)?BigInt(Math['trunc'](av)):typeof av==='string'&&/^\d+$/['test'](av)?BigInt(av):typeof av==='string'&&av!==''?av:null;if(aw===null)return null;const ax=await queryTableItem_RepositoryData({'parent':au,'name':'next_cycle_deadline','entity':aw,'network':b});if(ax===undefined)return{'closed':!![],'deadlineMs':null,'note':'the\x20campaign\x20window\x20row\x20(next_cycle_deadline)\x20is\x20NOT\x20seeded\x20—\x20the\x20mounted\x20buy\x20window\x20'+'reads\x200\x20and\x20Clock\x20<=\x200\x20is\x20false,\x20so\x20the\x20chain\x20refuses\x20EVERY\x20order\x20until\x20the\x20merchant\x20'+'seeds\x20the\x20row\x20(fail-closed,\x20W5-22)'};const ay=aB=>{const aC=aB?.['data']?.['value']??aB?.['value'];try{if(typeof aC==='bigint')return aC;if(typeof aC==='number'&&Number['isFinite'](aC))return BigInt(Math['trunc'](aC));if(typeof aC==='string'&&/^\d+$/['test'](aC['trim']()))return BigInt(aC['trim']());if(aC instanceof Uint8Array&&(aC['length']===0x8||aC['length']===0x20)){let aD=0x0n;for(let aE=aC['length']-0x1;aE>=0x0;aE--)aD=aD<<0x8n|BigInt(aC[aE]);return aD;}}catch{}return null;},az=ay(ax);if(az===null||az<=0x0n)return null;const aA=Date['now']()>az;return{'closed':aA,'deadlineMs':az['toString'](),'note':aA?'the\x20campaign\x20window\x20closed\x20at\x20epoch-ms\x20'+az+'\x20('+new Date(Number(az))['toISOString']()+')\x20—\x20'+'order_new\x20aborts\x20at\x20the\x20buy\x20guard;\x20the\x20merchant\x20re-opens\x20by\x20rolling\x20the\x20'+'next_cycle_deadline\x20row\x20forward\x20(tpl_buy_guard_campaign_window)':'the\x20campaign\x20window\x20is\x20OPEN\x20until\x20epoch-ms\x20'+az+'\x20('+new Date(Number(az))['toISOString']()+')'};}catch{return null;}},y=await x(),z=(ak,al=0x0)=>{if(!ak||typeof ak!=='object'||al>0x10)return![];if((ak['type']==='logic_as_u256_lesser'||ak['type']==='logic_as_u256_lesser_or_equal')&&Array['isArray'](ak['nodes'])){const am=an=>typeof an?.['type']==='string'&&/sum_where/i['test'](an['type'])||an?.['type']==='query'&&typeof an?.['query']==='string'&&/repository\.data sum where/i['test'](an['query']);if(ak['nodes']['some'](am))return!![];}for(const an of Object['values'](ak)){if(an&&typeof an==='object'&&z(an,al+0x1))return!![];}return![];},A=async()=>{try{const ak=i['order_allocators'],al=Array['isArray'](ak?.['allocators'])?ak['allocators']:Array['isArray'](ak)?ak:[],am=al['map'](ap=>typeof ap?.['guard']==='string'?ap['guard']:ap?.['guard']?.['guard'])['filter'](ap=>typeof ap==='string'&&ap['trim']()!=='');if(am['length']===0x0)return![];const an=await query_objects({'objects':am,'network':b}),ao=Array['isArray'](an?.['objects'])?an['objects']:[];for(const ap of ao){const aq=ap&&typeof ap==='object'?ap:null;if(!aq)continue;const ar=String(aq['query_name']??aq['name']??'');if(/threshold_refund|missed_refund|refund.*missed|missed.*refund/i['test'](ar))return!![];const as=w(aq);if(as&&z(as['root']))return!![];}return![];}catch{return![];}},B=await A(),C=async()=>{const ak=a['per_buyer_cap'];if(!ak||ak<=0x0)return null;if(!a['per_buyer_cap_repository']||!a['per_buyer_cap_key']||!a['buyer'])return{'declared_cap':ak,'repository':'','key':'','buyer':'','purchased_count':0x0,'exceeded':![],'note':'per_buyer_cap\x20'+ak+'\x20is\x20declared\x20but\x20the\x20cap\x20ledger\x20is\x20unspecified\x20—\x20pass\x20'+'per_buyer_cap_repository\x20+\x20per_buyer_cap_key\x20+\x20buyer\x20to\x20run\x20the\x20preflight\x20'+'(kernel\x20query\x201183,\x20owner-filtered\x20mode).\x20No\x20blocking\x20performed.'};try{const al=await a431a(a['per_buyer_cap_repository'],'per_buyer_cap_repository'),am=await a431a(a['buyer'],'buyer'),an=await simulateGuard({'table':[{'identifier':0x1,'value_type':ValueType['Address'],'value':al,'b_submission':![],'name':'probe_cap_repository'},{'identifier':0x2,'value_type':ValueType['Address'],'value':am,'b_submission':![],'name':'probe_cap_buyer'},{'identifier':0x3,'value_type':ValueType['U256'],'value':ak,'b_submission':![],'name':'probe_cap_limit'}],'root':{'type':'logic_as_u256_greater_or_equal','nodes':[{'type':'query_repository_data_owner_count','object':{'identifier':0x1},'owner':{'identifier':0x2},'key':a['per_buyer_cap_key'],'where':{'kind':'gt','value':'0'}},{'type':'identifier','identifier':0x3}]}},{'network':b});if(an['verdict']==='incomplete')return{'declared_cap':ak,'repository':al,'key':a['per_buyer_cap_key'],'buyer':am,'purchased_count':0x0,'exceeded':![],'note':'cap\x20probe\x20UNDECIDABLE\x20locally\x20('+(an['legs'][0x0]?.['detail']??'unsupported\x20read')+')\x20—\x20'+'treated\x20as\x20NOT\x20blocking\x20per\x20the\x20fail-soft\x20contract;\x20verify\x20on-chain\x20before\x20checkout.'};const ao=an['legs'][0x0]?.['operands']??{},ap=Object['keys'](ao)['find'](as=>as['includes']('owner\x20count')),aq=ap!==undefined?Number(ao[ap]):0x0,ar=an['verdict']==='pass';return{'declared_cap':ak,'repository':al,'key':a['per_buyer_cap_key'],'buyer':am,'purchased_count':Number['isFinite'](aq)?Math['max'](0x0,aq):0x0,'exceeded':ar,'note':ar?'PER_BUYER_CAP_EXCEEDED:\x20this\x20buyer\x20already\x20holds\x20'+aq+'\x20purchase(s)\x20under\x20\x27'+a['per_buyer_cap_key']+'\x27\x20'+('(cap\x20'+ak+').\x20A\x20further\x20buy\x20breaches\x20the\x20declared\x20cap.\x20Advisory-only:\x20the\x20on-chain\x20purchase\x20kernel\x20')+'has\x20no\x20cap\x20hook\x20yet\x20(buy\x20pre-hook\x20pending\x20a\x20separate\x20board\x20decision)\x20—\x20the\x20chain\x20will\x20not\x20'+'refuse\x20the\x20buy\x20today;\x20this\x20storefront\x20gate\x20refuses\x20the\x20basket\x20pre-order.':'Under\x20cap:\x20'+aq+'/'+ak+'\x20purchase(s)\x20recorded\x20under\x20\x27'+a['per_buyer_cap_key']+'\x27\x20(query\x201183,\x20'+'owner-filtered;\x20withdrawn\x20zeroed\x20rows\x20excluded).\x20Advisory-only\x20—\x20the\x20chain\x20does\x20not\x20enforce\x20'+'the\x20cap\x20yet\x20(buy\x20pre-hook\x20pending\x20a\x20separate\x20board\x20decision).'};}catch(as){return{'declared_cap':ak,'repository':'','key':a['per_buyer_cap_key']??'','buyer':'','purchased_count':0x0,'exceeded':![],'note':'cap\x20probe\x20FAILED\x20(fail-soft,\x20not\x20blocking):\x20'+(as instanceof Error?as['message']:String(as))+'\x20—\x20'+'verify\x20on-chain\x20before\x20checkout.'};}},D=await C(),E=Array['isArray'](i['sales'])?i['sales']:[],F=ak=>{if(typeof ak['name']==='string'&&ak['name']!=='')return ak['name'];if(typeof ak['sale_id']==='number'){const al=E[ak['sale_id']];return al&&typeof al['name']==='string'&&al['name']!==''?al['name']:null;}return null;},G=a['items']??[...q['keys']()]['map'](ak=>({'name':ak,'quantity':0x1})),H=G['map'](ak=>({'name':F(ak),'quantity':ak['quantity']})),I=G['filter'](ak=>F(ak)===null);if(I['length']>0x0)throw new Error('Sale(s)\x20not\x20resolvable\x20on\x20this\x20Service:\x20'+I['map'](ak=>'sale_id'in ak&&typeof ak['sale_id']==='number'?'sale_id\x20'+ak['sale_id']:'\x27'+(ak['name']??'<empty>')+'\x27')['join'](',\x20')+'.\x20'+('Available\x20sales\x20(index:\x20name):\x20'+(E['map']((ak,al)=>al+':\x20\x27'+(ak?.['name']??'?')+'\x27')['join'](',\x20')||'<none>')+'.'));const J=H['filter'](ak=>!q['has'](ak['name']));if(J['length']>0x0)throw new Error('Sale(s)\x20not\x20found\x20on\x20this\x20Service:\x20'+J['map'](ak=>'\x27'+ak['name']+'\x27')['join'](',\x20')+'.\x20'+('Available\x20sales:\x20'+([...q['keys']()]['map'](ak=>'\x27'+ak+'\x27')['join'](',\x20')||'<none>')+'.'));if(H['length']===0x0)throw new Error('This\x20Service\x20has\x20NO\x20configured\x20sales\x20—\x20nothing\x20to\x20quote.');const K=[];let L=0x0n;for(const ak of H){const al=ak['name'],am=q['get'](al),an=BigInt(am['price']||'0'),ao=an*BigInt(ak['quantity']);L+=ao;const ap=am['stock']!=null&&/^\d+$/['test'](am['stock'])?BigInt(am['stock']):null,aq=lineBuyability(al,[...am['suspended']?['sale\x20is\x20suspended\x20(merchant\x20sale_suspension)']:[],...ap!=null&&ap<BigInt(ak['quantity'])?['stock\x20'+am['stock']+'\x20<\x20requested\x20quantity\x20'+ak['quantity']]:[],...y?.['closed']?['CAMPAIGN_CLOSED\x20—\x20the\x20storefront\x20deadline\x20window\x20has\x20closed\x20(or\x20is\x20unseeded)']:[],...D?.['exceeded']?['PER_BUYER_CAP_EXCEEDED\x20—\x20buyer\x20already\x20holds\x20'+D['purchased_count']+'\x20purchase(s)\x20under\x20\x27'+D['key']+'\x27\x20(cap\x20'+D['declared_cap']+')']:[]],ap!=null);K['push']({'name':al,'quantity':ak['quantity'],'unit_price':am['price'],'unit_price_display':await displayOf(am['price'],l,b),'line_total':ao['toString'](),'suspended':am['suspended'],'stock':am['stock'],'stock_ok':ap==null?null:ap>=BigInt(ak['quantity']),'buyable':aq['buyable'],'buyable_blockers':aq['blockers'],'wip':am['wip']});}let M=L,N=null;if(typeof a['discount']==='string'&&a['discount']['trim']()!==''){const ar=await a431a(a['discount'],'discount');let as=null;try{const aF=await query_objects({'objects':[ar],'network':b});as=aF?.['objects']?.[0x0]??null;}catch{as=null;}if(!as)throw new Error('E_DISCOUNT_NOT_FOUND:\x20coupon\x20\x27'+ar+'\x27\x20not\x20found\x20—\x20it\x20was\x20already\x20burned\x20on\x20a\x20'+'previous\x20buy\x20(a\x20burned\x20coupon\x20is\x20destroyed\x20on\x20chain\x20and\x20cannot\x20be\x20quoted\x20again)\x20'+'or\x20the\x20address\x20is\x20wrong.\x20Re-quote\x20without\x20the\x20coupon.');const at=String(as['service']??'');if(at['toLowerCase']()!==d['toLowerCase']())throw new Error('E_SERVICE_DISCOUNT_NOT_MATCH:\x20coupon\x20\x27'+ar+'\x27\x20is\x20bound\x20to\x20service\x20'+((at||'<unparseable>')+',\x20not\x20to\x20'+d+'.\x20A\x20buy\x20with\x20this\x20coupon\x20aborts.'));const au=aG=>{const aH=balanceStr(aG)['trim']();return/^\d+$/['test'](aH)?BigInt(aH):0x0n;},av=BigInt(Date['now']()),aw=au(as['time_start']),ax=au(as['time_end']);if(av<aw||av>ax)throw new Error('E_DISCOUNT_TIME_INVALID:\x20coupon\x20\x27'+ar+'\x27\x20is\x20valid\x20'+(aw+'–'+ax+'\x20(ms\x20epoch),\x20now\x20is\x20'+av+'.\x20A\x20buy\x20with\x20this\x20coupon\x20aborts.'));const ay=Number(as['discount_type'])===0x0,az=au(as['off']),aA=quoteOwnerAddr(as['owner']),aB=aA?'Coupon\x20is\x20owned\x20by\x20'+aA+';\x20only\x20the\x20holder\x20can\x20redeem\x20it\x20—\x20a\x20coupon\x20held\x20by\x20another\x20address\x20cannot\x20be\x20applied\x20to\x20your\x20order,\x20have\x20the\x20owner\x20transfer\x20it\x20first\x20(call\x20service\x20discount_send).\x20Refunds\x20settle\x20the\x20post-coupon\x20amount\x20only.':'Coupon\x20holder\x20could\x20not\x20be\x20read\x20from\x20the\x20chain\x20—\x20VERIFY\x20the\x20holder\x20before\x20checkout:\x20only\x20the\x20holder\x20can\x20redeem,\x20a\x20coupon\x20held\x20by\x20another\x20address\x20cannot\x20be\x20applied\x20to\x20your\x20order\x20(have\x20the\x20owner\x20transfer\x20it\x20first\x20via\x20call\x20service\x20discount_send),\x20and\x20refunds\x20settle\x20the\x20post-coupon\x20amount\x20only.',aC=as['benchmark']===null||as['benchmark']===undefined?null:au(as['benchmark']),aD=aC===null?!![]:L>=aC;let aE=![];aD&&(aE=!![],M=ay?L-L*az/0x2710n:L>az?L-az:0x0n),N={'coupon':ar,'name':typeof as['name']==='string'?as['name']:null,'owned_by':aA,'ownership_note':aB,'type':ay?'rates':'minus','off':az['toString'](),'benchmark':aC===null?null:aC['toString'](),'benchmark_met':aD,'applied':aE,'list_total':L['toString'](),'final_total':M['toString'](),'final_total_display':await displayOf(M['toString'](),l,b),'note':aE?M===0x0n?'DEAD\x20BASKET\x20(F-BS-75):\x20the\x20coupon\x20covers\x20the\x20entire\x20basket,\x20but\x20the\x20chain\x20REFUSES\x20zero-total\x20'+'buys\x20—\x20the\x20client\x20gate\x20(order_new_zero_total_dead_order)\x20and\x20the\x20on-chain\x20zero-total\x20gate\x20'+'(abort\x2042)\x20both\x20reject\x20this\x20buy;\x20NOTHING\x20is\x20purchasable\x20at\x20total\x200,\x20free\x20product\x20or\x20not.\x20'+'Lower\x20the\x20coupon\x20value\x20so\x20the\x20final\x20total\x20stays\x20>=\x201\x20smallest\x20unit\x20(or\x20price\x20a\x20deliberate\x20'+'free\x20tier\x20at\x201\x20smallest\x20unit,\x20or\x20deliver\x20it\x20outside\x20the\x20sales\x20rails).\x20allow_zero_total\x20does\x20'+'NOT\x20unlock\x20this\x20buy\x20and\x20no\x20longer\x20waives\x20the\x20issuance\x20gate\x20either\x20(BSX-F07).':'Discounted\x20total\x20shown\x20—\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20this\x20final_total\x20(bs29\x20R-17:\x20total_pay\x20is\x20a\x20FLOOR;\x20the\x20order\x20escrows\x20exactly\x20this\x20amount,\x20an\x20over-funded\x20total\x20is\x20never\x20escrowed).\x20Pass\x20exactly\x20this\x20value;\x20the\x20coupon\x20is\x20consumed\x20at\x20buy.\x20'+'BURN-ON-USE\x20(F-ETS-03):\x20attaching\x20this\x20coupon\x20to\x20a\x20buy\x20DESTROYS\x20it\x20on\x20chain\x20—\x20the\x20coupon\x20'+'object\x20is\x20gone\x20once\x20the\x20order\x20is\x20created\x20(a\x20later\x20quote\x20hits\x20E_DISCOUNT_NOT_FOUND).\x20'+'CANCELLATION\x20REFUNDS\x20THE\x20DISCOUNTED\x20AMOUNT\x20ONLY:\x20refund\x20rails\x20pay\x20the\x20order\x27s\x20escrowed\x20'+'amount\x20(this\x20final_total),\x20so\x20a\x20cancelled\x20order\x20does\x20NOT\x20restore\x20the\x20coupon\x27s\x20face\x20value\x20—\x20'+'the\x20difference\x20is\x20forfeited\x20even\x20on\x20a\x20no-fault\x20cancel.\x20Disclose\x20this\x20to\x20the\x20buyer\x20before\x20checkout.':'⚠\x20Benchmark\x20NOT\x20met\x20(list\x20total\x20'+L+'\x20<\x20'+aC+'):\x20the\x20chain\x20REJECTS\x20this\x20buy\x20when\x20the\x20coupon\x20is\x20attached\x20(error\x2038\x20—\x20full\x20rollback,\x20nothing\x20paid,\x20coupon\x20preserved).\x20Raise\x20the\x20basket\x20to\x20>=\x20'+aC+',\x20or\x20order\x20without\x20the\x20coupon\x20and\x20keep\x20it.'};}const O=balanceStr(i['compensation_fund']??0x0),P=/^\d+$/['test'](O['trim']())?BigInt(O['trim']()):0x0n,Q=0x3n*M,R=Q>P?Q-P:0x0n,S=P/0x3n,T=await displayOf(S['toString'](),l,b),U={'fund_balance':P['toString'](),'fund_balance_display':await displayOf(P['toString'](),l,b),'max_coverable_order':S['toString'](),'max_coverable_order_display':T,'required_for_this_basket':Q['toString'](),'required_display':await displayOf(Q['toString'](),l,b),'shortfall':R['toString'](),'shortfall_display':await displayOf(R['toString'](),l,b),'covered':P>=Q,'note':P===0x0n?'This\x20Service\x20runs\x20WITHOUT\x20a\x20compensation\x20fund\x20—\x20a\x20legitimate\x20merchant\x20choice,\x20never\x20blocked\x20at\x20buy.\x20An\x20arbitration\x20award\x20beyond\x20the\x20pool\x20aborts\x20the\x20buyer\x27s\x20payout\x20(code\x2027,\x20claim\x20NOT\x20consumed)\x20and\x20waits\x20on\x20the\x20merchant\x20wallet.':P>=Q?'The\x20fund\x20covers\x203x\x20this\x20basket\x27s\x20amount\x20—\x20a\x20single\x20ruling\x20at\x20the\x20maximum\x20award\x20multiple\x20is\x20payable\x20from\x20the\x20pool.\x20Storefront\x20ceiling:\x20orders\x20above\x20'+T+'\x20(fund/3)\x20are\x20NOT\x20fully\x20covered\x20(they\x20proceed\x20with\x20a\x20buy-time\x20warning)\x20—\x20quote\x20a\x20bigger\x20basket\x20against\x20the\x20ceiling,\x20not\x20just\x20this\x20one.':'BELOW\x20the\x20per-order\x20payout\x20requirement\x20(compensation_fund_below_order_ceiling):\x20the\x20buy\x20still\x20PROCEEDS\x20with\x20a\x20warning\x20—\x20coverage\x20is\x20no\x20longer\x20enforced\x20pre-buy\x20(拍板⑤\x20dm-mtw-261027).\x20Risk\x20to\x20disclose\x20to\x20the\x20buyer\x20BEFORE\x20checkout:\x20if\x20a\x20ruling\x20awards\x20at\x20the\x20cap,\x20settlement\x20is\x20ALL-OR-NOTHING\x20—\x20the\x20claim\x20aborts\x20(code\x2027),\x20nothing\x20is\x20paid,\x20and\x20it\x20waits\x20on\x20the\x20merchant\x20topping\x20up\x20via\x20service.compensation_fund_add\x20by\x20'+await displayOf(R['toString'](),l,b)+'\x20(to\x20>=\x203x\x20this\x20basket).\x20Standing\x20ceiling:\x20orders\x20above\x20'+T+'\x20(fund/3)\x20are\x20not\x20fully\x20covered,\x20so\x20this\x20basket\x20is\x20only\x20the\x20latest\x20casualty\x20—\x20every\x20bigger\x20SKU\x20is\x20under-covered\x20too.'},V=await displayOf(M['toString'](),l,b),W=i['order_allocators'],X=Array['isArray'](W?.['allocators'])?W['allocators']:[],Y=X['length']>0x0?X[0x0]:undefined,Z=Y?{'allocator_index':0x0,'note':'Sharing\x20rows\x20of\x20the\x20FIRST\x20order_allocator\x20(index\x200\x20—\x20NOT\x20necessarily\x20the\x20normal\x20'+'payout\x20path:\x20services\x20that\x20ship\x20refund-first\x20rails\x20put\x20the\x20refund\x20track\x20at\x20index\x200,\x20'+'klk15\x20C-06).\x20Guards\x20select\x20per-case\x20allocators\x20(refund\x20/\x20damage\x20/\x20late-cancel),\x20so\x20'+'the\x20LIVE\x20split\x20depends\x20on\x20which\x20guard\x20passes\x20—\x20identify\x20the\x20settlement\x20allocator\x20'+'via\x20service_panorama\x20before\x20ordering.','sharing':(Array['isArray'](Y['sharing'])?Y['sharing']:[])['map'](aG=>({'recipient':describeRecipient(aG?.['who']),'mode':typeof aG?.['mode']==='string'?aG['mode']:null,'value':balanceStr(aG?.['sharing']?.['balance']??aG?.['sharing']??0x0)}))}:null,a0=Array['isArray'](i['rewards'])?i['rewards']['filter'](aG=>typeof aG==='string'&&aG!==''):[];let a1=null;if(a0['length']>0x0){const aG=[],aH=[];let aI=[];try{const aJ=await query_objects({'objects':a0,'network':b});aI=Array['isArray'](aJ?.['objects'])?aJ['objects']:[];}catch(aK){aG['push']('Reward\x20lookup\x20failed\x20('+(aK instanceof Error?aK['message']:String(aK))+')\x20—\x20reward\x20terms\x20NOT\x20verified;\x20do\x20not\x20rely\x20on\x20them.');}for(const aL of a0){const aM=aI['find'](bh=>typeof bh?.['object']==='string'&&bh['object']['toLowerCase']()===aL['toLowerCase']());if(!aM){aG['push']('Reward\x20\x27'+aL+'\x27\x20could\x20not\x20be\x20read\x20—\x20its\x20terms\x20are\x20unknown;\x20do\x20not\x20rely\x20on\x20it.');continue;}const aN=balanceStr(aM['balance']??0x0),aO=/^\d+$/['test'](aN)?BigInt(aN):0x0n,aP=[];let aQ=0x0n,aR=![];for(const bh of Array['isArray'](aM['guards'])?aM['guards']:[]){const bi=bh?.['amount'],bj=bi!=null&&(bi['type']===0x1||bi['type']==='Fixed'),bk=bh?.['expiration_time'],bl=bk==null?null:Number(bk),bm=bl!=null&&Number['isFinite'](bl)?bl:null;if(bj){const bn=balanceStr(bi['value']??0x0),bo=/^\d+$/['test'](bn)?BigInt(bn):0x0n;if(bo>aQ)aQ=bo;aP['push']({'guard':String(bh?.['guard']??''),'amount_type':'fixed','amount':bn,'amount_display':await displayOf(bn,l,b),'expiration_time':bm,'expiration_display':bm!=null?new Date(bm)['toISOString']():null,'expired':bm!=null?Date['now']()>bm:null,'min_rating':null,'min_rows':null,'unreadable_legs':null,'claim_window':null,'claim_state':'unknown','claim_state_note':'Not\x20decoded\x20yet.'});}else aR=!![],aP['push']({'guard':String(bh?.['guard']??''),'amount_type':'guard_submission','amount':'submission\x20identifier\x20'+String(bi?.['value']??'?'),'amount_display':null,'expiration_time':bm,'expiration_display':bm!=null?new Date(bm)['toISOString']():null,'expired':bm!=null?Date['now']()>bm:null,'min_rating':null,'min_rows':null,'unreadable_legs':null,'claim_window':null,'claim_state':'unknown','claim_state_note':'Not\x20decoded\x20yet.'});}const aS=Array['from'](new Set(aP['map'](bp=>bp['guard'])['filter'](bp=>bp!==''))),aT=new Map();if(aS['length']>0x0)try{const bp=await query_objects({'objects':aS,'network':b});for(const bq of Array['isArray'](bp?.['objects'])?bp['objects']:[]){if(typeof bq?.['object']==='string')aT['set'](bq['object']['toLowerCase'](),bq);}}catch{aG['push']('Claim\x20guard\x20lookup\x20failed\x20—\x20rating\x20conditions\x20on\x20'+aS['length']+'\x20claim\x20guard(s)\x20NOT\x20verified;\x20do\x20not\x20promise\x20the\x20incentive.');}const aU=(br,bs=0x0)=>{if(!br||typeof br!=='object'||bs>0x4)return null;if(br['root']&&Array['isArray'](br['table']))return br;for(const bt of Object['values'](br)){if(bt&&typeof bt==='object'){const bu=aU(bt,bs+0x1);if(bu)return bu;}}return null;},aV=br=>{if(br>=0x15180&&br%0x15180===0x0)return br/0x15180+'\x20day(s)';if(br>=0xe10&&br%0xe10===0x0)return br/0xe10+'\x20hour(s)';return br+'\x20seconds';},aW=(br,bs)=>{const bt=br['table']['find'](bv=>bv?.['identifier']===bs&&bv?.['b_submission']===![]);if(!bt)return null;const bu=typeof bt['value']==='number'?bt['value']:Number(String(bt['value']??''));return Number['isFinite'](bu)?bu:null;},aX=/^query_repository_data_(count|find|sum)(?:_bound)?_where$/,aY=br=>{if(!br||typeof br!=='object')return null;const bs=bt=>{const bu=typeof bt==='number'?bt:Number(String(bt??''));return Number['isFinite'](bu)?bu:null;};switch(br['kind']){case'gte':{const bt=bs(br['value']);return bt!=null?'>=\x20'+bt:null;}case'gt':{const bu=bs(br['value']);return bu!=null?'>\x20'+bu:null;}case'numEq':{const bv=bs(br['value']);return bv!=null?'==\x20'+bv:null;}case'range':{const bw=bs(br['valueMin']);if(bw!=null)return br['minInclusive']===![]?'>\x20'+bw:'>=\x20'+bw;const bx=bs(br['valueMax']);if(bx!=null)return br['maxInclusive']===![]?'<\x20'+bx:'<=\x20'+bx;return null;}default:return null;}},aZ=br=>{const bs=[],bt=(bu,bv)=>{if(!bu||typeof bu!=='object'||bv>0x18)return;const bw=typeof bu['type']==='string'?bu['type']:'';if(bw['startsWith']('vec_contains')){const bx=JSON['stringify'](bu),by=bx['includes']('find_where')||bx['includes']('1176');bs['push'](by?bw+'[repository\x20find_where\x20membership\x20read]\x20—\x20set-membership\x20gate\x20over\x20found\x20rows;\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time':bw+'\x20membership\x20gate\x20—\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time');return;}else bw==='query'&&typeof bu['query']==='string'&&bu['query']['includes']('find_where')&&bs['push']('query\x20'+bu['query']+'\x20—\x20repository\x20find_where\x20read\x20feeding\x20a\x20comparison;\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time');for(const bz of Object['values'](bu)){if(Array['isArray'](bz)){for(const bA of bz)bt(bA,bv+0x1);}else bz&&typeof bz==='object'&&bt(bz,bv+0x1);}};return bt(br,0x0),bs;},b0=(br,bs)=>{const bt=new Set();for(const by of bs['table']??[]){if(by?.['b_submission']===![]&&typeof by?.['value']==='string'&&/rating/i['test'](by['value']))bt['add'](Number(by['identifier']));}const bu=bz=>{if(!bz)return null;if(bz['type']==='identifier')return aW(bs,Number(bz['identifier']));if(typeof bz['value']==='number')return bz['value'];const bA=Number(String(bz['value']??''));return Number['isFinite'](bA)?bA:null;};let bv=null;const bw=bz=>{if(!bv||bz['ratingKeyed']&&!bv['ratingKeyed'])bv=bz;},bx=(bz,bA)=>{if(!bz||typeof bz!=='object'||bA>0x18)return;const bB=typeof bz['type']==='string'?bz['type']:'';if(bB==='logic_as_u256_greater_or_equal'||bB==='logic_as_u256_greater'||bB==='logic_as_u256_equal'){const bC=Array['isArray'](bz['nodes'])?bz['nodes']:[],bD=bC[0x0],bE=JSON['stringify'](bD??{});if(bC['length']>=0x2&&bD&&(bE['includes']('repository.data')||bE['includes']('repository_data'))){let bF=null;const bG=(bI,bJ)=>{if(!bI||typeof bI!=='object'||bJ>0x8||bF)return;if(bI['type']==='query'&&bI['where']&&(typeof bI['query']==='string'&&aX['test'](bI['query'])||typeof bI['query']==='number')){bF=bI;return;}for(const bK of Object['values'](bI))if(bK&&typeof bK==='object')bG(bK,bJ+0x1);};bG(bD,0x0);const bH=bu(bC[bC['length']-0x1]);if(bF){const bI=bF['key']?.['identifier']!=null?Number(bF['key']['identifier']):null;bw({'floor':aY(bF['where']),'min_rows':bH,'aggregate':!![],'ratingKeyed':bI!=null&&bt['has'](bI)});}else{const bJ=bu(bC[bC['length']-0x1]);if(bJ!=null){const bK=bB==='logic_as_u256_greater_or_equal'?'>=':bB==='logic_as_u256_greater'?'>':'==';bw({'floor':bK+'\x20'+bJ,'min_rows':null,'aggregate':![],'ratingKeyed':![]});}}}}for(const bL of Object['values'](bz)){if(Array['isArray'](bL)){for(const bM of bL)bx(bM,bA+0x1);}else bL&&typeof bL==='object'&&bx(bL,bA+0x1);}};return bx(br,0x0),bv??{'floor':null,'min_rows':null,'aggregate':![],'ratingKeyed':![]};};for(const br of aP){br['min_rating']=null;const bs=aT['get'](br['guard']['toLowerCase']());if(!bs)continue;{const bx=aU(bs),by=bx?parseGuardTimeBounds(bx['root'],bx['table']):null;by&&(br['claim_window']={'opens_after_s':by['lowerOffsetMs']!=null?by['lowerOffsetMs']/0x3e8:null,'closes_after_s':by['upperWindowMs']!=null?by['upperWindowMs']/0x3e8:null,'anchor':by['anchor']});}{const bz=br['claim_window'],bA=bz?.['opens_after_s']??null,bB=bz?.['closes_after_s']??null;if(br['expiration_time']!=null&&br['expired']===!![])br['claim_state']='expired',br['claim_state_note']='The\x20pool-level\x20entry\x20expired\x20at\x20'+br['expiration_display']+'\x20—\x20claims\x20abort\x20E_GUARD_EXPIRED.\x20The\x20unclaimed\x20remainder\x20is\x20NOT\x20lost:\x20once\x20the\x20pool\x27s\x20own\x20commitment\x20lock\x20has\x20elapsed\x20(guard_not_added_expiration_time),\x20the\x20owner\x20may\x20extend/clear\x20the\x20guard\x20windows\x20(guard_expiration_time_add)\x20or\x20withdraw\x20the\x20remainder\x20(the\x20owner-side\x20withdrawal\x20unwraps\x20the\x20held\x20Coin)\x20—\x20an\x20expiring\x20claim\x20window\x20never\x20strands\x20the\x20bounty\x20permanently,\x20it\x20only\x20ends\x20the\x20promise\x20to\x20buyers.';else{if(!bz)br['claim_state']='unknown',br['claim_state_note']='The\x20claim\x20guard\x27s\x20window\x20could\x20not\x20be\x20decoded\x20(unreadable\x20payload\x20or\x20no\x20Clock\x20comparison)\x20—\x20check\x20the\x20guard\x20before\x20promising\x20a\x20timing\x20to\x20the\x20buyer.';else{if(bA!=null&&bA>0x0&&bB==null)br['claim_state']='delayed_open_ended',br['claim_state_note']='NOT\x20claimable\x20at\x20the\x20anchor\x20event\x20—\x20opens\x20'+aV(bA)+'\x20after\x20it\x20('+bz['anchor']+'),\x20and\x20the\x20window\x20NEVER\x20closes:\x20any\x20\x22N\x20days\x20to\x20claim\x22\x20wording\x20is\x20fictional\x20(bsw4\x20F-11).';else{if(bA!=null&&bA>0x0){br['claim_state']='delayed_window';const bC=bB-bA;br['claim_state_note']='Opens\x20'+aV(bA)+'\x20after\x20the\x20anchor\x20event\x20('+bz['anchor']+'),\x20stays\x20claimable\x20for\x20a\x20further\x20'+aV(bC)+'\x20—\x20hard\x20deadline\x20'+aV(bB)+'\x20after\x20the\x20anchor.';}else bB!=null?(br['claim_state']='open_window',br['claim_state_note']='Claimable\x20at\x20the\x20anchor\x20event\x20('+bz['anchor']+'),\x20until\x20'+aV(bB)+'\x20after\x20it.'):(br['claim_state']='open_ended',br['claim_state_note']='Claimable\x20at\x20the\x20anchor\x20event\x20('+bz['anchor']+')\x20and\x20never\x20closes\x20—\x20an\x20open-ended\x20bounty\x20(a\x20deliberate\x20design;\x20disclose\x20it\x20explicitly).');}}}}let bt;try{bt=JSON['stringify'](bs,(bD,bE)=>bE instanceof Uint8Array?Buffer['from'](bE)['toString']('base64'):bE);}catch{continue;}const bu=bt['includes']('\x22rating\x22')||bt['includes']('114,97,116,105,110,103')||bt['toLowerCase']()['includes']('726174696e67')||bt['includes']('cmF0aW5n');if(!bu)continue;const bv=aU(bs),bw=bv?b0(bv['root'],bv):null;if(bw?.['floor'])br['min_rating']=bw['floor'],br['min_rows']=bw['min_rows'];else{const bD=bt['toLowerCase']();if(bD['includes']('\x22like\x22'))br['min_rating']='like';else{if(bD['includes']('\x22dislike\x22'))br['min_rating']='dislike';else br['min_rating']='unknown';}if(bw?.['min_rows']!=null)br['min_rows']=bw['min_rows'];const bE=bv?aZ(bv['root']):[];if(bE['length']>0x0)br['unreadable_legs']=bE;}}let b1='';if(aQ>0x0n&&t>0x0n){const bF=Number(aQ)/Number(t);Number['isFinite'](bF)&&(b1='\x20Bounty/cheapest-SKU\x20price\x20ratio:\x20'+bF['toFixed'](0x2)+'x\x20'+('('+await displayOf(aQ['toString'](),l,b)+'\x20vs\x20')+(await displayOf(t['toString'](),l,b)+').')+(bF>0.5?'\x20⚠\x20SCALE\x20(T-02):\x20each\x20claimed\x20order\x20pays\x20out\x20MORE\x20than\x20the\x20cheapest\x20sale\x20earns\x20—\x20a\x20bounty-farm\x20shape;\x20a\x20sybil\x20can\x20mint\x20cheap\x20orders\x20and\x20drain\x20this\x20pool.\x20Rebalance\x20the\x20bounty\x20or\x20the\x20catalog\x20before\x20funding.':''));}const b2=aO===0x0n?'Pool\x20is\x20EMPTY\x20—\x20any\x20claim\x20aborts\x20on-chain\x20on\x20the\x20reward\x20module\x27s\x20E_INSUFFICIENT_BALANCE\x20(not\x20the\x20allocation\x20module\x27s\x20same-named\x20constant);\x20do\x20not\x20budget\x20on\x20this\x20reward.':aR||aQ===0x0n?null:'Pool\x20covers\x20~'+(aO/aQ)['toString']()+'\x20further\x20claim(s)\x20at\x20the\x20largest\x20configured\x20per-claim\x20amount.'+b1,b3=Array['isArray'](aM['guards'])?aM['guards']:[],b4=b3['filter'](bG=>bG?.['store_from_id']!=null)['map'](bG=>Number(bG['store_from_id'])),b5=((()=>{if(b3['length']===0x0)return{'scope':'unknown','detail':'No\x20mounted\x20guard\x20entry\x20was\x20readable,\x20so\x20the\x20claim\x20scope\x20could\x20not\x20be\x20determined\x20—\x20do\x20not\x20assume\x20a\x20per-order\x20bounty.','per_order_note':PER_ORDER_REPLAY_NOTE};if(b4['length']===b3['length']&&b4['every'](bG=>bG===0x0))return{'scope':'once_per_order','detail':'Every\x20claim\x20entry\x20stamps\x20store_from_id=0\x20(the\x20conventional\x20submitted-Order\x20slot):\x20the\x20once\x20key\x20is\x20(guard,\x20order)\x20with\x20the\x20recipient\x20pinned\x20to\x20the\x20@0x0\x20sentinel\x20—\x20the\x20FIRST\x20claim\x20consumes\x20the\x20slot\x20for\x20EVERY\x20signer\x20on\x20that\x20order\x20(a\x20second\x20claim\x20aborts\x2013,\x20E_CLAIM_ALREADY_MADE:\x20this\x20(guard,\x20order)\x20was\x20already\x20claimed\x20by\x20any\x20signer);\x20the\x20same\x20buyer\x20can\x20still\x20claim\x20again\x20on\x20a\x20NEW\x20order\x20(fresh\x20slot).','per_order_note':PER_ORDER_REPLAY_NOTE};if(b4['length']===b3['length'])return{'scope':'once_per_stamp','detail':'Every\x20claim\x20entry\x20carries\x20a\x20store_from_id\x20stamp,\x20but\x20not\x20the\x20conventional\x20Order\x20slot\x200\x20(slots:\x20'+b4['join'](',\x20')+'):\x20claims\x20are\x20keyed\x20per\x20(guard,\x20stamped\x20value)\x20with\x20the\x20recipient\x20pinned\x20to\x20the\x20@0x0\x20sentinel\x20—\x20the\x20first\x20claim\x20consumes\x20the\x20slot\x20for\x20every\x20signer;\x20per-ORDER\x20only\x20when\x20that\x20slot\x20is\x20the\x20submitted\x20Order.','per_order_note':PER_ORDER_REPLAY_NOTE};if(b4['length']===0x0)return{'scope':'once_per_recipient_guard','detail':'Every\x20claim\x20entry\x20has\x20an\x20EMPTY\x20store_from\x20slot:\x20ONE\x20claim\x20per\x20(recipient,\x20guard)\x20for\x20LIFE\x20—\x20the\x20same\x20buyer\x27s\x20second\x20order\x20claims\x20nothing\x20(abort\x2013,\x20E_CLAIM_ALREADY_MADE),\x20even\x20when\x20the\x20bounty\x20is\x20described\x20as\x20per-order.','per_order_note':PER_ORDER_REPLAY_NOTE};return{'scope':'mixed','detail':b4['length']+'\x20of\x20'+b3['length']+'\x20claim\x20entries\x20carry\x20a\x20store_from_id\x20stamp\x20—\x20those\x20are\x20per-stamp\x20scoped;\x20the\x20remaining\x20entries\x20are\x20once\x20per\x20(recipient,\x20guard)\x20for\x20life.\x20Read\x20each\x20claims[]\x20row.','per_order_note':PER_ORDER_REPLAY_NOTE};})()),b6=aP['filter'](bG=>bG['min_rating']==='unknown')['length'];b6>0x0&&aG['push'](b6+'\x20claim(s)\x20gate\x20on\x20a\x20rating\x20condition\x20whose\x20polarity\x20could\x20not\x20be\x20parsed\x20'+'(min_rating=unknown)\x20—\x20read\x20the\x20claim\x20guard\x20before\x20promising\x20this\x20incentive\x20to\x20the\x20buyer');const b7=aP['find'](bG=>bG['claim_window']!=null),b8=b7?.['claim_window']?.['opens_after_s']??null,b9=b7?.['claim_window']?.['closes_after_s']??null,ba=bG=>bG!=null&&bG>0x0&&bG%0x15180===0x0?bG/0x15180:null,bb=ba(b8),bc=b9!=null?b9-(b8??0x0):null,bd=ba(bc),be=aP['find'](bG=>typeof bG['min_rating']==='string'&&/\d/['test'](bG['min_rating'])),bf=typeof be?.['min_rating']==='string'?be['min_rating']['match'](/\d+/):null,bg=b5['scope']==='once_per_order'?0x1:null;aH['push']({'reward':aL,'description':typeof aM['description']==='string'?aM['description']:null,'pool_balance':aO['toString'](),'pool_balance_display':await displayOf(aO['toString'](),l,b),'record_count':Number['isFinite'](Number(aM['record_count']))?Number(aM['record_count']):0x0,'rating_floor':bf?Number(bf[0x0]):null,'opens_after_days':bb,'closes_after_days':bd,'per_order_limit':bg,'claims':aP,'replay_scope':b5,'coverage':b2});}a1={'note':'Pre-order\x20reward\x20terms\x20for\x20every\x20Reward\x20hung\x20on\x20this\x20Service\x20(bound\x20at\x20build\x20time):\x20pool\x20balance,\x20'+'per-claim\x20amount\x20and\x20claim\x20windows.\x20A\x20claim\x20aborts\x20after\x20its\x20window\x20(E_GUARD_EXPIRED)\x20or\x20'+'against\x20an\x20empty\x20pool\x20(E_INSUFFICIENT_BALANCE)\x20—\x20never\x20budget\x20on\x20an\x20expired\x20or\x20empty\x20'+'reward.\x20Claiming\x20requires\x20passing\x20the\x20claim\x20guard\x27s\x20conditions.\x20'+'GAS\x20PRINCIPLE\x20(user-ratified\x202026-11-10):\x20whoever\x20initiates\x20a\x20transaction\x20pays\x20its\x20gas\x20—\x20the\x20CLAIMER\x20'+'fires\x20the\x20claim\x20tx\x20(≈0.0026\x20WOW\x20on\x20mainnet,\x20cour\x20BOUNTY-BELOW-GAS),\x20so\x20every\x20per-claim\x20bounty\x20on\x20this\x20'+'Service\x20is\x20quoted\x20NET\x20of\x20the\x20claimer\x27s\x20gas\x20cost;\x20the\x20compile-time\x20floor\x20(REWARD_BELOW_CLAIM_GAS,\x20'+'0.006\x20WOW/claim)\x20enforces\x20bounty\x20>=\x20claim\x20gas,\x20and\x20a\x20merchant-side\x20gas\x20top-up\x20does\x20NOT\x20exist\x20by\x20design\x20'+'(D-③:\x20low-priced\x20services\x20should\x20express\x20incentives\x20as\x20a\x20discount/rebate\x20on\x20the\x20sales\x20price\x20instead\x20'+'of\x20a\x20claimable\x20pool).\x20'+'RATING\x20DEPENDENCY\x20(ddmc2\x20P0-1):\x20a\x20rating-floor\x20claim\x20reads\x20the\x20buyer\x27s\x20order-keyed\x20U64\x20row\x20'+'under\x20the\x20\x27rating\x27\x20policy\x20of\x20the\x20plan-created\x20review\x20repository\x20—\x20if\x20that\x20policy\x20was\x20dropped\x20'+'at\x20execution\x20(chain\x20policies\x20list\x20shows\x20only\x20\x27review\x27),\x20the\x20floor\x20can\x20NEVER\x20pass\x20and\x20the\x20bounty\x20'+'is\x20permanently\x20unclaimable.\x20The\x20publish\x20receipt\x27s\x20readback\x20\x27policies\x27\x20check\x20is\x20the\x20authority;\x20'+'its\x20failure\x20text\x20carries\x20the\x20permission-102\x20repair\x20recipe.','rewards':aH,'data_gaps':aG};}let a2=null;const a3=typeof i['description']==='string'?i['description']:'';if(a3['trim']()!==''){const bG={'build_notes':a3},bH=[...incentiveRatingFloorClaims(bG)['map'](bI=>({'kind':bI['kind']==='numeric'?'rating_floor':'praise_review','claimed':String(bI['claimed']),'excerpt':bI['excerpt']})),...rewardWindowDayClaims(bG)['map'](bI=>({'kind':'claim_window','claimed':bI['claimed']+'\x20days','excerpt':bI['excerpt']}))];for(const bI of a3['matchAll'](/(\d{1,2})\s*%\s*off/gi)){bH['push']({'kind':'discount_percent','claimed':bI[0x1]+'%\x20off','excerpt':bI[0x0]['trim']()});}bH['length']>0x0&&(a2={'source':'service\x20description\x20prose\x20(plan-only)','disclosure':'SOURCE\x20DISCLOSURE\x20(TRIAGE-261109\x20item\x20E):\x20these\x20claims\x20are\x20DERIVED\x20FROM\x20THE\x20SERVICE\x20DESCRIPTION\x20'+'prose\x20and\x20are\x20NOT\x20on-chain-verified.\x20Only\x20reward_terms\x20entries\x20backed\x20by\x20on-chain\x20Reward\x20'+'objects\x20(and\x20discount\x20rules\x20compiled\x20into\x20a\x20published\x20coupon\x20—\x20the\x20discount\x20field)\x20are\x20'+'enforceable;\x20a\x20claim\x20listed\x20here\x20with\x20no\x20on-chain\x20backing\x20is\x20the\x20merchant\x27s\x20plan\x20prose\x20and\x20'+'CANNOT\x20be\x20claimed\x20through\x20the\x20chain.\x20Verify\x20against\x20reward_terms\x20before\x20budgeting\x20on\x20it.','on_chain_backed':a0['length']>0x0,'claims':bH});}const a4=Array['isArray'](i['arbitrations'])?i['arbitrations']['filter'](bJ=>typeof bJ==='string'&&bJ!=='')['length']:0x0,a5=a4>0x0?'⚠\x20DISPUTE\x20FILING\x20BOUNDARY\x20(ddmc2\x20F-02):\x20advancing\x20a\x20dispute\x20on\x20this\x20Service\x20validates\x20only\x20the\x20filing\x20'+'edge\x27s\x20guard\x20—\x20the\x20chain\x20does\x20NOT\x20require\x20an\x20arbitration\x20case\x20to\x20exist\x20(protocol-level\x20gap,\x20fix\x20'+'registered).\x20Any\x20account\x20passing\x20that\x20edge\x27s\x20guard\x20can\x20advance\x20an\x20order\x20into\x20its\x20dispute\x20node\x20'+'(append-only,\x20no\x20clearing\x20primitive),\x20wedging\x20settlement\x20until\x20the\x20buyer\x20withdraws\x20or\x20a\x20real\x20case\x20'+'resolves.\x20File\x20disputes\x20through\x20the\x20bound\x20arbitration\x20service\x20(Arbitration.dispute\x20creates\x20a\x20REAL\x20'+'case)\x20and\x20have\x20the\x20filing\x20edge\x27s\x20identity\x20legs\x20checked\x20(service_panorama)\x20before\x20large\x20orders.\x20':'';let a6=null;try{const bJ=await LocalMark['Instance']()['list']({'address':d});a6=bJ?.[0x0]?.['name']??null;}catch{a6=null;}const a7=n['filter'](bK=>typeof bK?.['wip']==='string'&&bK['wip']['includes']('wip.store.wowok.net'))['map'](bK=>String(bK['name'])),a8=a7['length']>0x0?'⚠\x20WIP\x20FREE-STORE\x20HOSTING\x20(ks7\x20F-24):\x20item\x20detail(s)\x20'+a7['map'](bK=>'\x27'+bK+'\x27')['join'](',\x20')+'\x20are\x20hosted\x20on\x20the\x20official\x20free\x20WIP\x20store\x20(wip.store.wowok.net)\x20—\x20a\x20free,\x20best-effort\x20service\x20'+'(10\x20files/account,\x20~6-month\x20retention,\x20no\x20availability\x20guarantee).\x20The\x20item\x27s\x20on-chain\x20wip_hash\x20'+'stays\x20verifiable\x20only\x20while\x20that\x20file\x20remains\x20reachable,\x20which\x20can\x20be\x20SHORTER\x20than\x20this\x20order\x27s\x20'+'after-sales\x20window.\x20Ask\x20the\x20merchant\x20about\x20self-hosted\x20(storage=\x27custom\x27)\x20WIP\x20hosting\x20for\x20'+'long-lived\x20verifiability.\x20':'',a9=K['filter'](bK=>bK['stock_ok']===![]),aa=a9['length']>0x0?'⚠\x20STOCK\x20SHORT\x20(F-20):\x20the\x20chain\x20refuses\x20a\x20buy\x20whose\x20quantity\x20exceeds\x20the\x20sale\x27s\x20remaining\x20'+'stock\x20(service:16\x20E_STOCK_NOT_ENOUGH)\x20—\x20this\x20basket\x20CANNOT\x20be\x20purchased\x20as\x20quoted.\x20Short\x20line(s):\x20'+a9['map'](bK=>bK['name']+'\x20(asked\x20'+bK['quantity']+',\x20stock\x20'+(bK['stock']??'?')+')')['join'](';\x20')+'.\x20Reduce\x20the\x20quantity\x20to\x20the\x20stock\x20shown,\x20pick\x20another\x20item,\x20or\x20ask\x20the\x20merchant\x20to\x20restock\x20'+'(service\x20sales\x20stock_add)\x20and\x20re-quote.\x20':'',ab=K['filter'](bK=>bK['buyable']===![]),ac=K['filter'](bK=>bK['buyable']===null),ad=ab['map'](bK=>bK['name'])['find'](bK=>skuNameGateNote(bK)!==''),ae={'purchasable':ab['length']>0x0||u||M===0x0n||y?.['closed']===!![]||D?.['exceeded']===!![]?![]:ac['length']>0x0?null:!![],'blocked_items':ab['map'](bK=>bK['name']),'note':D?.['exceeded']===!![]?'⚠\x20PER_BUYER_CAP_EXCEEDED\x20(U-25):\x20'+D['note']:y?.['closed']===!![]?'⚠\x20CAMPAIGN_CLOSED\x20(W5-22):\x20'+y['note']+'.':ad!==undefined?'⚠\x20UNBUYABLE\x20SKU\x20NAME\x20(F-RQ-01):\x20'+skuNameGateNote(ad):ab['length']>0x0?'Blocked\x20line(s):\x20'+ab['map'](bK=>bK['name']+'\x20—\x20'+bK['buyable_blockers']['join'](';\x20'))['join']('\x20|\x20')+'.':ac['length']>0x0?'No\x20known\x20blocker,\x20but\x20at\x20least\x20one\x20line\x27s\x20stock\x20could\x20not\x20be\x20read\x20from\x20the\x20chain\x20—\x20verify\x20before\x20checkout.':'Every\x20line\x20passes\x20the\x20known\x20buy\x20gates\x20(name\x20≤\x2064\x20bytes,\x20not\x20suspended,\x20stock\x20sufficient).'},af=ae['purchasable']===![]?'⚠\x20UNBUYABLE\x20BASKET\x20(F-RQ-01):\x20this\x20quote\x20is\x20PRICED\x20but\x20the\x20chain\x20will\x20refuse\x20every\x20order\x20—\x20read\x20the\x20buyable\x20block\x20before\x20attempting\x20order_new.\x20':'';return{'action':'service_quote','network':String(b),'service':{'address':d,'name':a6},'paused':u,'payment_token':{'coin_type':l,'display_note':l?'Prices\x20and\x20the\x20order\x20total\x20are\x20denominated\x20in\x20this\x20token\x27s\x20smallest\x20units;\x20displays\x20convert\x20with\x20the\x20token\x27s\x20on-chain\x20precision.':'Payment\x20token\x20could\x20not\x20be\x20parsed\x20from\x20the\x20Service\x20type\x20—\x20raw\x20smallest\x20units\x20only,\x20precision\x20NOT\x20guessed.'},'items':K,'buyable':ae,'per_buyer_cap_check':D,'total_pay':{'balance':M['toString'](),'display':V,'note':af+aa+a5+a8+'ENTRY\x20IGNITION\x20(ddmc2\x20P0-2):\x20after\x20checkout\x20the\x20order\x20starts\x20on\x20the\x20machine\x27s\x20EMPTY\x20entry\x20node\x20'+'(progress_current\x20\x22\x22)\x20—\x20business\x20forwards\x20fired\x20from\x20there\x20ALWAYS\x20abort\x20with\x20E_INFO_NOT_FOUND\x20'+'(the\x20forward\x20is\x20not\x20an\x20out-edge\x20of\x20the\x20entry\x20node).\x20The\x20buy\x20receipt\x20'+'carries\x20the\x20entry_edge\x20recipe:\x20OPEN\x20or\x20signature-only\x20entries\x20fire\x20IN-SESSION\x20(ENTRY\x20EDGE\x20FIRED),\x20'+'guarded\x20ones\x20return\x20the\x20ENTRY\x20EDGE\x20PENDING\x20recipe\x20(exact\x20forward\x20name\x20+\x20guard\x20slots;\x20slot\x20254\x20=\x20the\x20'+'order,\x20buyer-signed)\x20—\x20drive\x20that\x20once\x20before\x20any\x20business\x20forward.\x20'+(y?'⚠\x20CAMPAIGN\x20WINDOW\x20('+(y['closed']?'CLOSED':'OPEN')+')\x20(W5-22):\x20'+y['note']+'\x20':'')+(B?'⚠\x20GROUP\x20THRESHOLD\x20(amount\x20≠\x20headcount\x20—\x20GOAL-LATCH-01\x20disclosure):\x20this\x20storefront\x20settles\x20an\x20'+'all-or-nothing\x20campaign\x20on\x20an\x20AMOUNT\x20aggregate\x20—\x20the\x20round\x20completes\x20the\x20moment\x20total\x20contributions\x20'+'cross\x20the\x20funding\x20threshold,\x20and\x20a\x20SINGLE\x20buyer\x20funding\x20the\x20whole\x20threshold\x20amount\x20completes\x20it\x20ALONE\x20'+'((金额门槛≠人数门槛:单人一笔买足\x20threshold\x20金额即成团;a\x20distinct-buyer\x20headcount\x20is\x20now\x20readable\x20'+'via\x20kernel\x20query\x201183\x20—\x20UNEXPRESSIBLE\x20U-25\x20—\x20but\x20the\x20amount\x20threshold\x20itself\x20does\x20not\x20gate\x20on\x20'+'headcount).\x20Joining\x20does\x20not\x20imply\x20other\x20participants.\x20Also:\x20once\x20the\x20goal\x20is\x20'+'reached,\x20the\x20kernel\x27s\x20GoalStamp\x20latch\x20(enable_progress_goal_latch)\x20permanently\x20saturates\x20that\x20'+'repository\x20key\x27s\x20aggregate\x20—\x20the\x20missed-goal\x20refund\x20polarity\x20can\x20never\x20pass\x20again\x20on\x20the\x20same\x20key,\x20'+'so\x20a\x20later\x20campaign\x20round\x20needs\x20the\x20merchant\x27s\x20NEW\x20repository\x20key.\x20Builds\x20from\x20W44\x20on\x20also\x20AUTO-ARM\x20'+'the\x20builtin\x20contribution\x20spec\x20(repository\x20builtin_spec)\x20on\x20the\x20campaign\x20ledger,\x20so\x20buyers\x20record\x20'+'contributions\x20through\x20the\x20atomic\x20progress\x20operate.contribute\x20rail\x20(row\x20+\x20edge\x20advance\x20in\x20ONE\x20tx)\x20—\x20'+'an\x20unarmed\x20older\x20ledger\x20falls\x20back\x20to\x20the\x20identity-guard\x20data_add\x20write.\x20':'')+(u?'⚠\x20SERVICE\x20PAUSED\x20(bs29\x20R-16):\x20this\x20Service\x20is\x20currently\x20paused\x20—\x20every\x20buy\x20is\x20refused\x20'+'(client\x20pre-buy\x20gate,\x20then\x20the\x20on-chain\x20E_PAUSED\x20assert)\x20while\x20the\x20pause\x20'+'stands,\x20and\x20there\x20is\x20NO\x20on-chain\x20scheduled\x20resume:\x20the\x20merchant\x20must\x20submit\x20pause:false.\x20'+'The\x20prices\x20below\x20are\x20reference\x20only.\x20':'')+(M===0x0n?'DEAD\x20BASKET\x20(F-BS-75):\x20this\x20quote\x20totals\x20ZERO\x20—\x20the\x20chain\x20REFUSES\x20zero-total\x20buys\x20(client\x20'+'order_new_zero_total_dead_order,\x20on-chain\x20abort\x2042),\x20so\x20this\x20basket\x20cannot\x20be\x20purchased\x20at\x20'+'all.\x20Either\x20the\x20basket\x20contains\x20a\x20zero-priced\x20SKU\x20(permanently\x20unbuyable\x20—\x20F-BS-76;\x20the\x20'+'merchant\x20must\x20reprice\x20it\x20to\x20>=\x201\x20smallest\x20unit)\x20or\x20a\x20coupon\x20zeroes\x20it\x20(lower\x20the\x20coupon\x20'+'value).\x20Do\x20NOT\x20attempt\x20the\x20buy.\x20allow_zero_total\x20waives\x20nothing\x20(BSX-F07).':N?.['applied']?'FLOOR\x20semantics\x20(bs29\x20R-17,\x20the\x20published\x20buy\x20contract):\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20'+'this\x20discounted\x20total\x20—\x20an\x20under-funded\x20total\x20aborts\x20(E_COIN_NOT_ENOUGH);\x20an\x20over-funded\x20one\x20'+'succeeds\x20but\x20the\x20ORDER\x20still\x20escrows\x20exactly\x20this\x20amount\x20(the\x20excess\x20is\x20split\x20back,\x20never\x20'+'escrowed).\x20Pass\x20exactly\x20this\x20value.\x20The\x20on-chain\x20buy\x20aborts\x20only\x20on\x20an\x20UNDER-funded\x20total;\x20'+'the\x20coupon\x20is\x20consumed\x20at\x20buy.':'FLOOR\x20semantics\x20(bs29\x20R-17,\x20the\x20published\x20buy\x20contract):\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20'+'this\x20total\x20—\x20an\x20under-funded\x20total\x20aborts\x20(E_COIN_NOT_ENOUGH);\x20an\x20over-funded\x20one\x20'+'succeeds\x20but\x20the\x20ORDER\x20still\x20escrows\x20exactly\x20Σ(unit_price\x20×\x20quantity)\x20—\x20the\x20excess\x20is\x20split\x20'+'back\x20to\x20the\x20payer\x20and\x20never\x20enters\x20the\x20escrow.\x20WITHOUT\x20a\x20discount\x20you\x20may\x20also\x20omit\x20'+'total_pay\x20entirely:\x20the\x20buy\x20auto-derives\x20this\x20exact\x20total\x20(M-K17).')},'discount':N,'allocation_preview':Z,'compensation_fund_coverage':U,'reward_terms':a1,'incentive_plan_derived':a2};}
@@ -1 +1 @@
1
- import{objectTypeFromAddress,ObjectType}from'@wowok/wowok';import{resolveAddress as a437a}from'../tools/handlers/name-resolution.js';import{handleObjectPanorama}from'../playbooks/service-build/object-panorama.js';import{handleServicePanorama}from'../playbooks/service-build/service-panorama.js';import{handleMachinePanorama}from'../playbooks/service-build/machine-panorama.js';import{assembleOrderReview}from'./order.js';import{assembleServiceReview}from'./service.js';import{assembleMachineReview}from'./machine.js';import{assembleArbReview}from'./arb.js';import{assembleDemandReview}from'./demand.js';import{assembleRepositoryReview}from'./repository.js';import{assembleProgressReview}from'./progress.js';export const REVIEW_PACK_TYPES=['Order','Service','Arb','Demand','Repository','Progress','Machine'];export async function handleReviewPack(a){const b=a['object_address'];if(!b)throw new Error('\x27object_address\x27\x20is\x20required\x20for\x20review_pack');const c=await a437a(b,'object_address'),d=objectTypeFromAddress(c);if(d===ObjectType['Order']){const g=await handleObjectPanorama(a);if(g['object_type']!=='Order')throw new Error('review_pack:\x20expected\x20an\x20Order,\x20resolved\x20to\x20'+g['object_type']);return assembleOrderReview(g);}if(d===ObjectType['Service']){const h=await handleServicePanorama({...a,'service_address':c});return assembleServiceReview(h);}if(d===ObjectType['Machine']){const i=await handleMachinePanorama({...a,'object_address':c});if(i['machineAddress']?.['toLowerCase']()!==c['toLowerCase']())throw new Error('review_pack:\x20expected\x20a\x20Machine,\x20resolved\x20to\x20'+i['machineAddress']);return assembleMachineReview(i);}const e={[ObjectType['Arb']]:assembleArbReview,[ObjectType['Demand']]:assembleDemandReview,[ObjectType['Repository']]:assembleRepositoryReview,[ObjectType['Progress']]:assembleProgressReview},f=d?e[d]:undefined;if(f){const j=await handleObjectPanorama(a);if(j['object_type']!==d)throw new Error('review_pack:\x20expected\x20a\x20'+d+',\x20resolved\x20to\x20'+j['object_type']);return f(j);}throw new Error('review_pack:\x20unsupported\x20object\x20type\x20\x27'+(d??'unknown')+'\x27\x20—\x20supported:\x20'+REVIEW_PACK_TYPES['join'](',\x20')+'.\x20Other\x20types\x20keep\x20object_panorama\x20/\x20machine_panorama\x20/\x20service_panorama.');}
1
+ import{objectTypeFromAddress,ObjectType}from'@wowok/wowok';import{resolveAddress as a441a}from'../tools/handlers/name-resolution.js';import{handleObjectPanorama}from'../playbooks/service-build/object-panorama.js';import{handleServicePanorama}from'../playbooks/service-build/service-panorama.js';import{handleMachinePanorama}from'../playbooks/service-build/machine-panorama.js';import{assembleOrderReview}from'./order.js';import{assembleServiceReview}from'./service.js';import{assembleMachineReview}from'./machine.js';import{assembleArbReview}from'./arb.js';import{assembleDemandReview}from'./demand.js';import{assembleRepositoryReview}from'./repository.js';import{assembleProgressReview}from'./progress.js';export const REVIEW_PACK_TYPES=['Order','Service','Arb','Demand','Repository','Progress','Machine'];export async function handleReviewPack(a){const b=a['object_address'];if(!b)throw new Error('\x27object_address\x27\x20is\x20required\x20for\x20review_pack');const c=await a441a(b,'object_address'),d=objectTypeFromAddress(c);if(d===ObjectType['Order']){const g=await handleObjectPanorama(a);if(g['object_type']!=='Order')throw new Error('review_pack:\x20expected\x20an\x20Order,\x20resolved\x20to\x20'+g['object_type']);return assembleOrderReview(g);}if(d===ObjectType['Service']){const h=await handleServicePanorama({...a,'service_address':c});return assembleServiceReview(h);}if(d===ObjectType['Machine']){const i=await handleMachinePanorama({...a,'object_address':c});if(i['machineAddress']?.['toLowerCase']()!==c['toLowerCase']())throw new Error('review_pack:\x20expected\x20a\x20Machine,\x20resolved\x20to\x20'+i['machineAddress']);return assembleMachineReview(i);}const e={[ObjectType['Arb']]:assembleArbReview,[ObjectType['Demand']]:assembleDemandReview,[ObjectType['Repository']]:assembleRepositoryReview,[ObjectType['Progress']]:assembleProgressReview},f=d?e[d]:undefined;if(f){const j=await handleObjectPanorama(a);if(j['object_type']!==d)throw new Error('review_pack:\x20expected\x20a\x20'+d+',\x20resolved\x20to\x20'+j['object_type']);return f(j);}throw new Error('review_pack:\x20unsupported\x20object\x20type\x20\x27'+(d??'unknown')+'\x27\x20—\x20supported:\x20'+REVIEW_PACK_TYPES['join'](',\x20')+'.\x20Other\x20types\x20keep\x20object_panorama\x20/\x20machine_panorama\x20/\x20service_panorama.');}
@@ -1 +1 @@
1
- import{normalizeErrorMessage}from'../schema/call/normalize-error.js';import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as a453a}from'../config/index.js';import{isPlanPreapproved}from'../goal/plan-approval.js';export function isConfirmGateEnabled(){return a453a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+normalizeErrorMessage(b));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(a,b,c){const d=b!==undefined?normalizeErrorMessage(b):undefined;return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':a,'irreversible':!![],'warnings':[...c?['ConfirmGate\x20rule\x20\x27'+c+'\x27\x20matched\x20but\x20its\x20preview\x20could\x20not\x20be\x20generated.']:['An\x20error\x20occurred\x20while\x20matching\x20confirmation\x20rules.'],...d!==undefined?['Reason:\x20'+d]:[],'The\x20operation\x20was\x20NOT\x20executed.\x20Review\x20the\x20parameters\x20for\x20malformed\x20values\x20(e.g.\x20decimal\x20amounts\x20instead\x20of\x20smallest-unit\x20integers)\x20before\x20confirming.']},'rule_id':'internal_error'};}function emitGuardQuietNotice(a,b,c,d,f){try{const g=f['preview'](a,b,c),h=['[ConfirmGate]\x20guard\x20CREATE\x20proceeded\x20WITHOUT\x20interactive\x20confirmation\x20(confirm_mode:\x20'+d+').','\x20\x20Object:\x20'+String(g['object']??'(unnamed)')+'\x20\x20Network:\x20'+String(g['network']??'?'),...(g['warnings']??[])['map'](i=>'\x20\x20-\x20'+i),'\x20\x20Immutable\x20after\x20creation\x20—\x20changes\x20require\x20a\x20NEW\x20guard\x20+\x20rebind.\x20Verify\x20with\x20analyze_guard_semantics\x20after\x20creation.'];console['warn'](h['join']('\x0a'));}catch(i){console['warn']('[ConfirmGate]\x20guard\x20CREATE\x20proceeded\x20in\x20'+d+'\x20mode\x20(manifest\x20unavailable:\x20'+(i instanceof Error?i['message']:String(i))+')');}}export function confirmGate(a,b,c,d,f,g){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};if(c?.['dry_run']===!![])return{'pass':!![]};let h,i=null;try{h=CONFIRMATION_RULES['find'](n=>{try{return n['when'](a,b,c);}catch(o){logInternalError('rule_when:'+n['id'],o);if(getFailMode(n['level'])==='closed')throw o;return![];}});}catch(n){i=n;}if(i)return logInternalError('rule_search',i),buildInternalErrorResult(a,i);if(!h)return{'pass':!![]};if(getFailMode(h['level'])==='open'&&isPlanPreapproved(c))return{'pass':!![]};const j=resolveOverrideId(h['id'],a),k=j?f?.[j]:undefined;if(k==='auto')return{'pass':!![]};const l=c?.['confirm_mode']==='quiet'||c?.['confirm_mode']==='streamlined'?c['confirm_mode']:'full';if(l!=='full'&&k!=='block'&&getFailMode(h['level'])==='open')return{'pass':!![]};if(h['id']==='guard_create_immutable'&&l!=='full'&&k!=='block')return emitGuardQuietNotice(a,b,c,l,h),{'pass':!![]};if(k!=='block'&&g?.['intent_bypass']!==![]&&h['bypass_on_explicit_intent']&&d&&d['length']>0x0){const o=d['map'](q=>q['toLowerCase']()),p=h['bypass_on_explicit_intent']['some'](q=>o['some'](r=>r['includes'](q['toLowerCase']())));if(p)return{'pass':!![]};}let m;try{m=h['preview'](a,b,c);}catch(q){logInternalError('rule_preview:'+h['id'],q);if(getFailMode(h['level'])==='closed')return buildInternalErrorResult(a,q,h['id']);return{'pass':!![]};}return{'pass':![],'level':h['level'],'preview':m,'rule_id':h['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}
1
+ import{normalizeErrorMessage}from'../schema/call/normalize-error.js';import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as a457a}from'../config/index.js';import{isPlanPreapproved}from'../goal/plan-approval.js';export function isConfirmGateEnabled(){return a457a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+normalizeErrorMessage(b));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(a,b,c){const d=b!==undefined?normalizeErrorMessage(b):undefined;return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':a,'irreversible':!![],'warnings':[...c?['ConfirmGate\x20rule\x20\x27'+c+'\x27\x20matched\x20but\x20its\x20preview\x20could\x20not\x20be\x20generated.']:['An\x20error\x20occurred\x20while\x20matching\x20confirmation\x20rules.'],...d!==undefined?['Reason:\x20'+d]:[],'The\x20operation\x20was\x20NOT\x20executed.\x20Review\x20the\x20parameters\x20for\x20malformed\x20values\x20(e.g.\x20decimal\x20amounts\x20instead\x20of\x20smallest-unit\x20integers)\x20before\x20confirming.']},'rule_id':'internal_error'};}function emitGuardQuietNotice(a,b,c,d,f){try{const g=f['preview'](a,b,c),h=['[ConfirmGate]\x20guard\x20CREATE\x20proceeded\x20WITHOUT\x20interactive\x20confirmation\x20(confirm_mode:\x20'+d+').','\x20\x20Object:\x20'+String(g['object']??'(unnamed)')+'\x20\x20Network:\x20'+String(g['network']??'?'),...(g['warnings']??[])['map'](i=>'\x20\x20-\x20'+i),'\x20\x20Immutable\x20after\x20creation\x20—\x20changes\x20require\x20a\x20NEW\x20guard\x20+\x20rebind.\x20Verify\x20with\x20analyze_guard_semantics\x20after\x20creation.'];console['warn'](h['join']('\x0a'));}catch(i){console['warn']('[ConfirmGate]\x20guard\x20CREATE\x20proceeded\x20in\x20'+d+'\x20mode\x20(manifest\x20unavailable:\x20'+(i instanceof Error?i['message']:String(i))+')');}}export function confirmGate(a,b,c,d,f,g){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};if(c?.['dry_run']===!![])return{'pass':!![]};let h,i=null;try{h=CONFIRMATION_RULES['find'](n=>{try{return n['when'](a,b,c);}catch(o){logInternalError('rule_when:'+n['id'],o);if(getFailMode(n['level'])==='closed')throw o;return![];}});}catch(n){i=n;}if(i)return logInternalError('rule_search',i),buildInternalErrorResult(a,i);if(!h)return{'pass':!![]};if(getFailMode(h['level'])==='open'&&isPlanPreapproved(c))return{'pass':!![]};const j=resolveOverrideId(h['id'],a),k=j?f?.[j]:undefined;if(k==='auto')return{'pass':!![]};const l=c?.['confirm_mode']==='quiet'||c?.['confirm_mode']==='streamlined'?c['confirm_mode']:'full';if(l!=='full'&&k!=='block'&&getFailMode(h['level'])==='open')return{'pass':!![]};if(h['id']==='guard_create_immutable'&&l!=='full'&&k!=='block')return emitGuardQuietNotice(a,b,c,l,h),{'pass':!![]};if(k!=='block'&&g?.['intent_bypass']!==![]&&h['bypass_on_explicit_intent']&&d&&d['length']>0x0){const o=d['map'](q=>q['toLowerCase']()),p=h['bypass_on_explicit_intent']['some'](q=>o['some'](r=>r['includes'](q['toLowerCase']())));if(p)return{'pass':!![]};}let m;try{m=h['preview'](a,b,c);}catch(q){logInternalError('rule_preview:'+h['id'],q);if(getFailMode(h['level'])==='closed')return buildInternalErrorResult(a,q,h['id']);return{'pass':!![]};}return{'pass':![],'level':h['level'],'preview':m,'rule_id':h['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}
@@ -5,11 +5,13 @@ export declare const BenchmarkMigrationSchema: z.ZodObject<{
5
5
  template_get: "template_get";
6
6
  template_generate: "template_generate";
7
7
  plan_execute: "plan_execute";
8
+ plan_status: "plan_status";
8
9
  template_scan: "template_scan";
9
10
  migration_import: "migration_import";
10
11
  migration_review: "migration_review";
11
12
  migration_apply: "migration_apply";
12
13
  }>;
14
+ run_id: z.ZodOptional<z.ZodString>;
13
15
  template_id: z.ZodOptional<z.ZodString>;
14
16
  industry: z.ZodOptional<z.ZodString>;
15
17
  description: z.ZodOptional<z.ZodString>;
@@ -63,7 +65,7 @@ export declare const BenchmarkMigrationSchema: z.ZodObject<{
63
65
  }, z.core.$strict>;
64
66
  }, z.core.$strict>>;
65
67
  url: z.ZodOptional<z.ZodString>;
66
- fee_overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
68
+ fee_overrides: z.ZodOptional<z.ZodPreprocess<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>>;
67
69
  guard_resolutions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
68
70
  kind: z.ZodLiteral<"template">;
69
71
  template_id: z.ZodString;
@@ -78,6 +80,13 @@ export declare const BenchmarkMigrationSchema: z.ZodObject<{
78
80
  }, z.core.$strict>, z.ZodObject<{
79
81
  kind: z.ZodLiteral<"omit">;
80
82
  }, z.core.$strict>]>>>;
83
+ clause_dispositions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
84
+ disposition: z.ZodLiteral<"not_applicable">;
85
+ reason: z.ZodString;
86
+ }, z.core.$strip>>>;
87
+ staff_addresses: z.ZodOptional<z.ZodArray<z.ZodString>>;
88
+ arb_executors: z.ZodOptional<z.ZodArray<z.ZodString>>;
89
+ arb_panel: z.ZodOptional<z.ZodArray<z.ZodString>>;
81
90
  review_mode: z.ZodOptional<z.ZodEnum<{
82
91
  review: "review";
83
92
  none: "none";
@@ -160,10 +169,17 @@ export declare const BenchmarkMigrationSchema: z.ZodObject<{
160
169
  party_panel: "party_panel";
161
170
  }>>;
162
171
  reward_claim_opens_after_days: z.ZodOptional<z.ZodNumber>;
172
+ reward_opens_policy: z.ZodOptional<z.ZodEnum<{
173
+ after_sales_close: "after_sales_close";
174
+ after_review: "after_review";
175
+ }>>;
163
176
  reward_claim_closes_after_days: z.ZodOptional<z.ZodNumber>;
177
+ reward_claim_opens_after_ms: z.ZodOptional<z.ZodNumber>;
178
+ reward_claim_closes_after_ms: z.ZodOptional<z.ZodNumber>;
164
179
  reward_rating_floor: z.ZodOptional<z.ZodNumber>;
165
180
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
166
- accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
181
+ accounts: z.ZodOptional<z.ZodPreprocess<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
182
+ acknowledge_third_party_payees: z.ZodOptional<z.ZodArray<z.ZodString>>;
167
183
  timeout_ms: z.ZodOptional<z.ZodNumber>;
168
184
  }, z.core.$strict>;
169
185
  export type BenchmarkMigrationInput = z.infer<typeof BenchmarkMigrationSchema>;
@@ -365,6 +381,19 @@ export declare const BenchmarkMigrationOutputSchema: z.ZodObject<{
365
381
  target: z.ZodOptional<z.ZodString>;
366
382
  note: z.ZodString;
367
383
  }, z.core.$strict>>>;
384
+ clause_ledger: z.ZodOptional<z.ZodArray<z.ZodObject<{
385
+ key: z.ZodString;
386
+ clause: z.ZodString;
387
+ evidence: z.ZodString;
388
+ disposition: z.ZodEnum<{
389
+ not_applicable: "not_applicable";
390
+ pending: "pending";
391
+ inexpressible: "inexpressible";
392
+ implemented: "implemented";
393
+ }>;
394
+ target: z.ZodOptional<z.ZodString>;
395
+ reason: z.ZodOptional<z.ZodString>;
396
+ }, z.core.$strip>>>;
368
397
  network: z.ZodEnum<{
369
398
  testnet: "testnet";
370
399
  mainnet: "mainnet";
@@ -456,6 +485,19 @@ export declare const BenchmarkMigrationOutputSchema: z.ZodObject<{
456
485
  target: z.ZodOptional<z.ZodString>;
457
486
  note: z.ZodString;
458
487
  }, z.core.$strict>>>;
488
+ clause_ledger: z.ZodOptional<z.ZodArray<z.ZodObject<{
489
+ key: z.ZodString;
490
+ clause: z.ZodString;
491
+ evidence: z.ZodString;
492
+ disposition: z.ZodEnum<{
493
+ not_applicable: "not_applicable";
494
+ pending: "pending";
495
+ inexpressible: "inexpressible";
496
+ implemented: "implemented";
497
+ }>;
498
+ target: z.ZodOptional<z.ZodString>;
499
+ reason: z.ZodOptional<z.ZodString>;
500
+ }, z.core.$strip>>>;
459
501
  network: z.ZodEnum<{
460
502
  testnet: "testnet";
461
503
  mainnet: "mainnet";
@@ -467,6 +509,11 @@ export declare const BenchmarkMigrationOutputSchema: z.ZodObject<{
467
509
  unmapped_count: z.ZodNumber;
468
510
  manual_review_count: z.ZodNumber;
469
511
  risk_passed: z.ZodBoolean;
512
+ clause_ledger: z.ZodOptional<z.ZodObject<{
513
+ total: z.ZodNumber;
514
+ pending: z.ZodNumber;
515
+ pending_keys: z.ZodArray<z.ZodString>;
516
+ }, z.core.$strip>>;
470
517
  buildable: z.ZodOptional<z.ZodBoolean>;
471
518
  build_blockers: z.ZodOptional<z.ZodArray<z.ZodString>>;
472
519
  compile_dry_run: z.ZodOptional<z.ZodObject<{
@@ -506,6 +553,19 @@ export declare const BenchmarkMigrationOutputSchema: z.ZodObject<{
506
553
  red_flags: z.ZodArray<z.ZodString>;
507
554
  }, z.core.$strip>;
508
555
  plan: z.ZodRecord<z.ZodString, z.ZodUnknown>;
556
+ clause_ledger: z.ZodOptional<z.ZodArray<z.ZodObject<{
557
+ key: z.ZodString;
558
+ clause: z.ZodString;
559
+ evidence: z.ZodString;
560
+ disposition: z.ZodEnum<{
561
+ not_applicable: "not_applicable";
562
+ pending: "pending";
563
+ inexpressible: "inexpressible";
564
+ implemented: "implemented";
565
+ }>;
566
+ target: z.ZodOptional<z.ZodString>;
567
+ reason: z.ZodOptional<z.ZodString>;
568
+ }, z.core.$strip>>>;
509
569
  verdict: z.ZodObject<{
510
570
  buildable: z.ZodBoolean;
511
571
  blockers: z.ZodArray<z.ZodString>;
@@ -558,7 +618,55 @@ export declare const BenchmarkMigrationOutputSchema: z.ZodObject<{
558
618
  reason: z.ZodString;
559
619
  stale_build: z.ZodRecord<z.ZodString, z.ZodUnknown>;
560
620
  }, z.core.$strip>>;
621
+ durable_run: z.ZodObject<{
622
+ run_id: z.ZodString;
623
+ status: z.ZodEnum<{
624
+ completed: "completed";
625
+ halted: "halted";
626
+ }>;
627
+ completed_steps: z.ZodNumber;
628
+ auto_resumed_from: z.ZodOptional<z.ZodString>;
629
+ note: z.ZodString;
630
+ }, z.core.$strip>;
561
631
  next_action: z.ZodString;
632
+ }, z.core.$strip>, z.ZodObject<{
633
+ action: z.ZodLiteral<"plan_status">;
634
+ run: z.ZodObject<{
635
+ run_id: z.ZodString;
636
+ plan_digest: z.ZodString;
637
+ total_steps: z.ZodNumber;
638
+ status: z.ZodEnum<{
639
+ completed: "completed";
640
+ running: "running";
641
+ halted: "halted";
642
+ }>;
643
+ started_at: z.ZodNumber;
644
+ updated_at: z.ZodNumber;
645
+ executed: z.ZodNumber;
646
+ steps: z.ZodRecord<z.ZodString, z.ZodObject<{
647
+ status: z.ZodEnum<{
648
+ failed: "failed";
649
+ blocked: "blocked";
650
+ executed: "executed";
651
+ }>;
652
+ address: z.ZodOptional<z.ZodString>;
653
+ error: z.ZodOptional<z.ZodString>;
654
+ }, z.core.$strip>>;
655
+ outputs: z.ZodRecord<z.ZodString, z.ZodString>;
656
+ }, z.core.$strip>;
657
+ runs: z.ZodOptional<z.ZodArray<z.ZodObject<{
658
+ run_id: z.ZodString;
659
+ plan_digest: z.ZodString;
660
+ status: z.ZodEnum<{
661
+ completed: "completed";
662
+ running: "running";
663
+ halted: "halted";
664
+ }>;
665
+ executed: z.ZodNumber;
666
+ total_steps: z.ZodNumber;
667
+ updated_at: z.ZodNumber;
668
+ }, z.core.$strip>>>;
669
+ note: z.ZodString;
562
670
  }, z.core.$strip>], "action">;
563
671
  }, z.core.$strict>;
564
672
  export type BenchmarkMigrationOutput = z.infer<typeof BenchmarkMigrationOutputSchema>;