@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{fillGuardTemplate,getTemplateById}from'../knowledge/guard-templates.js';import{validateQuerySignatures}from'../knowledge/chain-query-registry.js';import{hasCallerIdentityLeg}from'../knowledge/allocator-rail-verifier.js';import{applyFeeParamBindings}from'../knowledge/fee-param-bindings.js';import{identityDefaultResolution,MS_PER_DAY,patternDefaultResolution,progressStateDefaultResolution,timeInstantiationFor,timeWindowMsResolution}from'../knowledge/pattern-resolutions.js';import{GUARD_DESIGN_PATTERNS}from'../knowledge/guard-design-patterns.js';import{lookupBinding}from'../knowledge/guard-binding-table.js';import{TASK_BINDING_SLOT,ONCE_SLOT_BYTES}from'../knowledge/onchain-constants.js';import{feeParamCouplingMismatches,feeParamUnlanded,windowMathMismatches,incentiveRatingFloorClaims,rewardWindowDayClaims,evidencePolicyCollisions}from'../knowledge/template-scanner.js';import{verifyGuardBinding}from'../knowledge/guard-binding-verifier.js';import{ref}from'./plan.js';import{applyConditionalSelectors}from'./input-normalize.js';function safeId(a){return a['replace'](/[^a-zA-Z0-9_]/g,'_');}function normalizeLogicArity(a){if(Array['isArray'](a))return a['map'](normalizeLogicArity);if(a===null||typeof a!=='object')return a;const b=a,c={};for(const [d,e]of Object['entries'](b))c[d]=normalizeLogicArity(e);if((c['type']==='logic_and'||c['type']==='logic_or')&&Array['isArray'](c['nodes'])){const f=c['nodes'];if(f['length']===0x1)return f[0x0];}return c;}const WINDOW_LEG_DAYS_PARAM='closing_window_days',WINDOW_LEG_ANCHOR_PARAM='window_anchor_node';function windowLegDecl(a){if(a===null||typeof a!=='object')return undefined;const b=a,c=b[WINDOW_LEG_DAYS_PARAM],d=b[WINDOW_LEG_ANCHOR_PARAM];if(typeof c!=='string'||c===''||typeof d!=='string'||d==='')return undefined;return{'daysKey':c,'anchorNode':d};}function andClosingWindowLeg(a,b,c,d){const e=[...a],f=new Set();let g;for(const m of e){const n=m;if(typeof n['identifier']==='number')f['add'](n['identifier']);g===undefined&&n['b_submission']===!![]&&n['object_type']==='Order'&&n['value_type']==='Address'&&(g=n['identifier']);}const h=()=>{let o=0x0;while(f['has'](o)||o===TASK_BINDING_SLOT||o===ONCE_SLOT_BYTES)o+=0x1;return f['add'](o),o;};g===undefined&&(g=h(),e['push']({'identifier':g,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(window-leg\x20progress\x20witness)'}));const i=h(),j=h(),k=h();e['push']({'identifier':i,'b_submission':![],'value_type':'String','value':c,'name':'Window\x20anchor\x20node\x20(closing\x20leg)'},{'identifier':j,'b_submission':![],'value_type':'U64','value':d,'name':'Window\x20length\x20in\x20days\x20(closing\x20leg)'},{'identifier':k,'b_submission':![],'value_type':'U64','value':MS_PER_DAY,'name':'Days-to-milliseconds\x20constant\x20(closing\x20leg)'});const l={'type':'logic_as_u256_lesser_or_equal','nodes':[{'type':'context','context':'Clock'},{'type':'calc_number_add','nodes':[{'type':'query_progress_history_time','object':{'identifier':g,'convert_witness':'OrderProgress'},'where':{'nextNode':c},'find':'last'},{'type':'calc_number_multiply','nodes':[{'type':'identifier','identifier':j},{'type':'identifier','identifier':k}]}]}]};return{'table':e,'root':{'type':'logic_and','nodes':[b,l]}};}const NODE_GATE_PARAM='write_window_nodes';function nodeGateDecl(a){if(a===null||typeof a!=='object')return undefined;const b=a[NODE_GATE_PARAM];if(typeof b!=='string')return undefined;const c=b['split'](/[,\s]+/)['map'](d=>d['trim']())['filter'](d=>d!=='');return c['length']>0x0?{'nodes':c}:undefined;}function andNodeGateLeg(a,b,c){const d=[...a],e=new Set();let f;for(const k of d){const l=k;if(typeof l['identifier']==='number')e['add'](l['identifier']);f===undefined&&l['b_submission']===!![]&&l['object_type']==='Order'&&l['value_type']==='Address'&&(f=l['identifier']);}const g=()=>{let m=0x0;while(e['has'](m)||m===TASK_BINDING_SLOT||m===ONCE_SLOT_BYTES)m+=0x1;return e['add'](m),m;};f===undefined&&(f=g(),d['push']({'identifier':f,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(node-window\x20progress\x20witness)'}));const h=c['map'](()=>g());c['forEach']((m,o)=>d['push']({'identifier':h[o],'b_submission':![],'value_type':'String','value':m,'name':'Node-window\x20member\x20(write\x20gate)'}));const i=h['map'](m=>({'type':'logic_equal','nodes':[{'type':'query','query':'progress.current','object':{'identifier':f,'convert_witness':'OrderProgress'},'parameters':[]},{'type':'identifier','identifier':m}]})),j=i['length']===0x1?i[0x0]:{'type':'logic_or','nodes':i};return{'table':d,'root':{'type':'logic_and','nodes':[b,j]}};}function andDisputeBindLeg(a,b){const c=[...a],d=new Set();let e;for(const f of c){const g=f;if(typeof g['identifier']==='number')d['add'](g['identifier']);e===undefined&&g['b_submission']===!![]&&g['object_type']==='Order'&&g['value_type']==='Address'&&g['identifier']!==TASK_BINDING_SLOT&&(e=g['identifier']);}if(e===undefined){let h=0x0;while(d['has'](h)||h===TASK_BINDING_SLOT||h===ONCE_SLOT_BYTES)h+=0x1;e=h,d['add'](h),c['push']({'identifier':e,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(case-bind\x20dispute-state\x20witness)'});}return{'table':c,'root':{'type':'logic_and','nodes':[b,{'type':'query','query':'order.dispute.open','object':{'identifier':e},'parameters':[]}]}};}export function normalizeInlineGuardTable(a,b){const c=b+'_service',d=f=>f['replace'](/\//g,'_'),e=d(c);return a['map'](f=>{if(f===null||typeof f!=='object'||Array['isArray'](f))return f;const g={...f};typeof g['value']==='string'&&d(g['value'])===e&&(g['value']=ref('service'));if(g['b_submission']===undefined)g['b_submission']=![];return g;});}function shortRowLabel(a,b){const c=a['search'](/:| \(| — /),d=c>0x0?a['slice'](0x0,c)['trim']():'';if(d['length']>0x0&&Buffer['byteLength'](d,'utf8')<=b)return d;let e=a;while(e['length']>0x0&&Buffer['byteLength'](e+'...','utf8')>b)e=e['slice'](0x0,-0x1);return e+'...';}const MAX_GUARD_DESCRIPTION_CONTENT=0xf9e;export function normalizeGuardRowNames(a,b,c){const d=0x3f,e=[],f=a['map'](j=>{if(!j||typeof j!=='object')return j;const k=j,l=k['name'];if(typeof l!=='string')return j;const m=l['startsWith']('0x')?'n_'+l:l;if(Buffer['byteLength'](m,'utf8')<=d)return m===l?j:{...k,'name':m};return e['push']('slot\x20'+String(k['identifier']??'?')+':\x20'+m),{...k,'name':shortRowLabel(m,d)};});if(e['length']===0x0)return{'table':f,'description':b};const g=typeof b==='string'?b:'';let h=g+'\x0a\x0aRow\x20labels\x20(the\x20on-chain\x20name\x20column\x20is\x20capped\x20at\x2064\x20BCS\x20bytes,\x20so\x20each\x20long\x20label\x20is\x20spelled\x20out\x20here):',i=0x0;for(const j of e){const k=h+'\x0a-\x20'+j;if(Buffer['byteLength'](k,'utf8')>c)break;h=k,i+=0x1;}return{'table':f,'description':i===0x0?b:h};}export function guardMountCensus(a,b,c){const {selectorDroppedKeys:d,shape:e,rows:f}=c??applyConditionalSelectors(a,b),g=new Set(e['flatMap'](k=>(k['from']??[])['map'](l=>typeof l==='string'?undefined:l['guard_key'])['filter'](l=>typeof l==='string'))),h=new Set(f['map'](k=>k['guard_key'])['filter'](l=>typeof l==='string')),i=new Set();let j=![];return a['guards']['forEach']((k,l)=>{if(d['has'](k['key']??k['template_id']+'#'+l))return;if(k['policy']!==undefined)i['add'](k['key']??k['template_id']+'#'+l);if(k['host']==='service'&&(k['key']??k['template_id']+'#'+l)==='buy')j=!![];}),{'edgeKeys':g,'railKeys':h,'policyKeys':i,'buyMounted':j};}const REVIEW_OUTCOME_CLASS=/wonder|no_wonder|praise|like|dislike/i;export function fillGuards(a){const {template:b,base:e,inputs:f,guardResolutions:h}=a,{dropKeys:i,selectorDroppedKeys:j,shape:k,rows:l}=a['selector'],o=[],p={},q=new Set();b['guards']['forEach']((af,ag)=>{const ah=af['key']??af['template_id']+'#'+ag;if(j['has'](ah))return;const ai=timeWindowMsResolution(b['id'],ah,f,b['fee_params'])??patternDefaultResolution(b['id'],ah)??progressStateDefaultResolution(b,af)??identityDefaultResolution(b,af);if(ai!==undefined)p[ah]=ai;}),Object['assign'](p,Object['fromEntries'](Object['entries'](h??{})['filter'](([,af])=>af?.['kind']!=='declare')));const t=[];for(const [af,ag]of Object['entries'](h??{})){if(ag?.['kind']==='omit')t['push'](af);}const u=new Set();if(t['length']>0x0){const ah=guardMountCensus(b,f,a['selector']);for(const ai of t){const aj=b['guards']['find']((al,am)=>(al['key']??al['template_id']+'#'+am)===ai);if(aj===undefined)continue;const ak=[];if(ah['edgeKeys']['has'](ai))ak['push']('a\x20machine\x20forward\x20edge\x20(guard_key)');if(ah['railKeys']['has'](ai))ak['push']('an\x20allocator\x20rail\x20row\x20(guard_key)');if(ah['policyKeys']['has'](ai))ak['push']('a\x20Repository\x20write-policy\x20credential\x20(policy)');if(aj['host']==='service'&&ai==='buy')ak['push']('the\x20Service\x20buy\x20gate\x20(buy_guard)');ak['length']>0x0?o['push']({'code':'GUARD_OMIT_UNSUPPORTED','detail':'guard_resolutions[\x27'+ai+'\x27]\x20=\x20{kind:\x27omit\x27}\x20refused:\x20this\x20design\x20is\x20bound\x20to\x20'+ak['join']('\x20and\x20')+'\x20—\x20'+'omitting\x20it\x20would\x20orphan\x20the\x20binding\x20(open\x20rail\x20/\x20open\x20write\x20/\x20ungated\x20purchase).\x20'+'Fold\x20the\x20design\x27s\x20intent\x20into\x20the\x20bound\x20site\x20instead,\x20or\x20keep\x20the\x20guard\x20resolved.'}):u['add'](ai);}}const w=new Set(l['map'](al=>al['guard_key'])['filter'](al=>typeof al==='string')),x=new Map();b['guards']['forEach']((al,am)=>{const an=al['key']??al['template_id']+'#'+am,ao=al['identity_leg_exempt'];typeof ao==='string'&&ao['trim']()!==''&&w['has'](an)&&x['set'](an,ao['trim']());});for(const [al,am]of Object['entries'](h??{})){if(am?.['kind']!=='declare')continue;const an=typeof am['reason']==='string'?am['reason']['trim']():'';if(an===''){o['push']({'code':'GUARD_DECLARE_UNSUPPORTED','detail':'guard_resolutions[\x27'+al+'\x27]\x20=\x20{kind:\x27declare\x27}\x20refused:\x20the\x20reason\x20field\x20is\x20mandatory\x20and\x20'+'must\x20be\x20non-empty\x20—\x20the\x20disclosure\x20that\x20ships\x20with\x20the\x20exemption\x20quotes\x20it\x20verbatim,\x20and\x20an\x20'+'unexplained\x20legless\x20money\x20rail\x20is\x20exactly\x20what\x20the\x20gate\x20exists\x20to\x20prevent\x20(ks11).'});continue;}const ao=b['guards']['find']((ap,aq)=>(ap['key']??ap['template_id']+'#'+aq)===al);if(ao===undefined)continue;if(!w['has'](al)){o['push']({'code':'GUARD_DECLARE_UNSUPPORTED','detail':'guard_resolutions[\x27'+al+'\x27]\x20=\x20{kind:\x27declare\x27}\x20refused:\x20the\x20declare\x20channel\x20is\x20honored\x20ONLY\x20for\x20'+('allocator-rail-bound\x20designs\x20(a\x20spec\x20mounted\x20on\x20an\x20allocator\x20row),\x20and\x20\x27'+al+'\x27\x20is\x20bound\x20to\x20no\x20')+'allocator\x20row.\x20An\x20identity-less\x20forward/policy/buy\x20gate\x20is\x20a\x20different\x20violation\x20family\x20'+'(RELEASE_EDGE_NO_IDENTITY\x20/\x20REPO_GUARD_POLICY_MISSING)\x20with\x20its\x20own\x20remedy\x20—\x20declare\x20does\x20not\x20reach\x20it.'});continue;}x['set'](al,an);}const y=b['guards']['map']((ap,aq)=>{const ar=ap['key']??ap['template_id']+'#'+aq,as=applyFeeParamBindings(ap['params'],b['id'],ar,f,b['fee_params']);return{'key':ar,'template_id':ap['template_id'],'host':ap['host'],'purpose':ap['purpose'],'policy':ap['policy'],'params':as};})['filter'](ap=>!i['has'](ap['key'])&&!u['has'](ap['key'])),z=new Set(b['guards']['map'](ap=>getTemplateById(ap['template_id']))['filter'](ap=>ap?.['numeric_row_comparison']===!![])['map'](ap=>ap['id']));if(z['size']>0x0){const ap=new Map();for(const aq of y){if(aq['host']!=='repository'||!aq['policy']||typeof aq['policy']['name']!=='string')continue;ap['set'](aq['policy']['name'],{'valueType':String(aq['policy']['value_type']??'String'),'specKey':aq['key']});}for(const ar of y){if(!z['has'](ar['template_id']))continue;const as=ar['params']?.['row_name'];if(typeof as!=='string'||as==='')continue;const at=ap['get'](as);if(!at)continue;if(/^U(8|16|32|64|128|256)$/i['test'](at['valueType']))continue;o['push']({'code':'REPO_POLICY_TYPE_MISMATCH','detail':'guard\x20spec\x20\x27'+ar['key']+'\x27\x20('+ar['template_id']+')\x20compares\x20repository\x20row\x20\x27'+as+'\x27\x20with\x20a\x20numeric\x20'+('(U8..U256)\x20read,\x20but\x20the\x20sibling\x20policy\x20(spec\x20\x27'+at['specKey']+'\x27)\x20declares\x20value_type\x20')+('\x27'+at['valueType']+'\x27.\x20The\x20chain\x20parses\x20ONLY\x20the\x20U8..U256\x20type\x20tags\x20')+'(E_NUMBER_TYPE_NOT_MATCH)\x20and\x20the\x20write\x20side\x20pins\x20data[0]\x20to\x20the\x20policy\x20value_type\x20'+'—\x20a\x20String\x20row\x20aborts\x20this\x20guard\x20on\x20EVERY\x20evaluation,\x20so\x20the\x20rail\x20it\x20'+'gates\x20is\x20structurally\x20dead\x20(mainnet\x20proof:\x20upw-b7k2\x20R1,\x20all\x20three\x20band\x20allocators\x20dead\x20in\x20'+'template\x20v212).\x20Change\x20the\x20policy\x20value_type\x20to\x20a\x20numeric\x20type\x20(U64\x20for\x20bps-scale\x20values).'});}}const A=new Map();{const au=new Set(y['map'](aw=>aw['key'])),av=aw=>{if(aw===undefined)return![];const ax=y['find'](az=>az['key']===aw);if(ax===undefined)return![];const ay=p[aw];if(ay?.['kind']==='inline'||ay?.['kind']==='template'||ax['template_id']['startsWith']('tpl_'))return!![];if(ay?.['kind']==='omit'&&u['has'](aw))return![];return lookupBinding(ax,b)!==undefined;};for(const aw of k){for(const ax of aw['from']??[]){const ay=typeof ax==='string'?{'prev':ax}:ax,az=ay['operator']??aw['operator']??(ay['prev']===''?'order_payer':'merchant');if(az!=='order_payer')continue;if(ay['guard_key']!==undefined&&av(ay['guard_key']))continue;const aA=ay['forward']??(ay['prev']===''?'enter_'+aw['name']:ay['prev']+'_to_'+aw['name']);if(A['has'](aA))continue;let aB='order_holder_'+aA;while(au['has'](aB))aB=aB+'_x';au['add'](aB),A['set'](aA,aB);const aC=ay['guard_key']===undefined?'Declare\x20an\x20explicit\x20order-holder\x20guard_key\x20on\x20the\x20edge\x20to\x20replace\x20this\x20auto\x20key\x20with\x20a\x20named\x20credential.':'The\x20edge\x20DOES\x20declare\x20guard_key\x20\x27'+ay['guard_key']+'\x27,\x20but\x20that\x20design\x20does\x20not\x20resolve\x20to\x20a\x20Guard\x20object,\x20so\x20the\x20forward\x20would\x20otherwise\x20ship\x20unguarded;\x20resolve\x20\x27'+ay['guard_key']+'\x27\x20(guard_resolutions,\x20or\x20re-point\x20the\x20spec\x20at\x20an\x20instantiable\x20tpl_*\x20id)\x20to\x20carry\x20the\x20richer\x20condition\x20—\x20this\x20identity\x20leg\x20stays\x20bound\x20either\x20way.';y['push']({'key':aB,'template_id':'tpl_forward_order_holder','host':'machine','purpose':'F05\x20kernel-injected\x20order-holder\x20identity\x20binding\x20for\x20the\x20buyer-exclusive\x20forward\x20'+('\x27'+aA+'\x27\x20(edge\x20\x27'+ay['prev']+'\x27->\x27'+aw['name']+'\x27):\x20namedOperator\x20\x22\x22\x20passes\x20for\x20')+'anyone\x20at\x20the\x20permission\x20layer,\x20so\x20without\x20this\x20guard\x20the\x20'+'buyer\x20rail\x20is\x20advanceable\x20by\x20ANY\x20passport\x20holder\x20attached\x20to\x20the\x20order\x20—\x20takeover\x20'+('risk.\x20'+aC)});}}}const B=f['arbitration_vote_policy'],C=B==='party_panel'?'party_panel':'open';if(b['arbitration_mode']==='third_party'&&C==='open'&&!y['some'](aD=>aD['template_id']['startsWith']('tpl_voting_guard_'))){let aD='arbitration_vote_open';const aE=new Set(y['map'](aF=>aF['key']));while(aE['has'](aD))aD=aD+'_x';y['push']({'key':aD,'template_id':'tpl_voting_guard_open_vote','host':'arbitration','purpose':'F-cu\x20kernel-injected\x20open-vote\x20surface\x20for\x20the\x20third_party\x20venue:\x20an\x20EMPTY\x20'+'voting_guard\x20is\x20NOT\x20open\x20voting\x20—\x20plain\x20votes\x20hard-require\x20permission\x20358\x20'+'(admin-only\x20by\x20default),\x20so\x20disputes\x20dead-lock\x20when\x20the\x20arb\x20admin\x20is\x20'+'unresponsive\x20(crs9-F-36).\x20Every\x20Passport\x20holder\x20may\x20vote\x20at\x20flat\x20weight\x201\x20'+'(O-F26:\x20CONSTANT-TRUE\x20gate\x20—\x20the\x20scanner\x20red-flags\x20it;\x20configure\x20a\x20'+'roster+threshold\x20guard\x20before\x20real\x20disputes,\x20or\x20pass\x20'+'arbitration_vote_policy:\x27party_panel\x27\x20to\x20skip\x20this\x20injection\x20entirely\x20and\x20'+'bind\x20tpl_voting_guard_numeric_weight\x20/\x20tpl_voting_guard_party_only);\x20'+'a\x20deliberately\x20closed\x20panel\x20re-declares\x20tpl_voting_guard_numeric_weight.','params':{'vote_weight':0x1}});}const D=new Map(y['map'](aF=>[aF['key'],aF])),E=f['review_mode'],F=E==='review'||E==='review_reward'||E==='none'?E:undefined,G=F??b['review_mode']??'none',H=e+'_review_reward',I=aF=>{const aG=f[aF]??b['fee_params'][aF];if(typeof aG==='number'&&Number['isFinite'](aG))return aG;if(typeof aG==='string'&&aG['trim']()!==''&&Number['isFinite'](Number(aG)))return Number(aG);return undefined;},J=0x4,K=I('reward_rating_floor'),L=K??J,M=I('reward_claim_opens_after_days'),N=I('reward_claim_closes_after_days'),O=0xe,P=0xe,Q=b['fee_params']['return_window_days']??b['fee_params']['review_window_days'],R=typeof Q==='number'&&Number['isFinite'](Q)&&Q>0x0?Q:0x0,S=Math['max'](O,R+0x1),T=M??S,U=N??P;if(G==='review_reward'){const aF=y['find'](aJ=>aJ['host']==='reward'),aG=aF!==undefined?p[aF['key']]:undefined,aH=aG!==undefined&&(aG['kind']==='template'||aG['kind']==='inline'),aI=aF!==undefined&&(aF['template_id']['startsWith']('tpl_')||aH);if(aF===undefined||!aI){const aJ=/deliver|complet|receiv|fulfil|finish/i,aK=/fund|pledge|back/i,aL=k['find'](aS=>/review/i['test'](aS['name'])),aM=k['find'](aS=>aJ['test'](aS['name'])),aN=k['filter'](aS=>aS['semantic_role']==='final')['map'](aS=>aS['name']),aO=k['filter'](aS=>REVIEW_OUTCOME_CLASS['test'](aS['name']))['map'](aS=>aS['name']),aP=aL?.['name']??aM?.['name']??aN[0x0],aQ=aM!==undefined?aN['filter'](aS=>!aK['test'](aS)):aN,aR=[...new Set([aP,...aO,...aQ])]['slice'](0x0,0x4);if(aP!==undefined){const aS=new Set([aP,...aO,...aQ])['size']>0x4,aT='Claim-set\x20default\x20(ks7\x20F-25\x20+\x20kq4x\x20P-018):\x20the\x20bounty\x20anchors\x20on\x20the\x20review\x20node,\x20else\x20a\x20delivery-class\x20node,\x20else\x20the\x20first\x20terminal;\x20review-outcome\x20nodes\x20(wonder/no_wonder/praise/like/dislike)\x20take\x20the\x20slots\x20between\x20the\x20anchor\x20and\x20the\x20settlement\x20terminals'+(aM!==undefined?',\x20and\x20funding-class\x20settlement\x20terminals\x20are\x20EXCLUDED\x20—\x20a\x20funding\x20release\x20(funded_released\x20family)\x20precedes\x20physical\x20fulfillment,\x20so\x20a\x20window\x20measured\x20there\x20ships\x20the\x20bounty\x20permanently\x20unclaimable;\x20hosting\x20the\x20bounty\x20on\x20a\x20funding\x20terminal\x20requires\x20an\x20explicit\x20host:\x22reward\x22\x20spec\x20(the\x20named-design\x20escape\x20hatch).':'\x20(this\x20shape\x20mounts\x20no\x20delivery-class\x20node,\x20so\x20funding-class\x20terminals\x20stay\x20IN\x20the\x20default\x20set);\x20an\x20explicit\x20host:\x22reward\x22\x20spec\x20can\x20pin\x20any\x20claim\x20set.'),aU=L>0x0,aV=aU?'Rating\x20leg\x20ARMED\x20on\x20the\x20plan-created\x20\x27'+e+'_review\x27\x20repository\x20/\x20\x27rating\x27\x20policy\x20(order-keyed\x20U64):\x20pays\x20only\x20at\x20rating\x20>=\x20'+L+'\x20(reward_rating_floor\x20input'+(K===undefined?'\x20—\x20S14\x20default\x20'+J+',\x20no\x20input\x20given':'')+').':'No\x20rating\x20leg\x20—\x20reward_rating_floor\x20was\x20EXPLICITLY\x20set\x20to\x200\x20(plain\x20praise\x20bounty\x20opt-out,\x20S14\x20default\x20is\x20'+J+').',aW=M!==undefined?'Claim\x20window:\x20opens\x20'+T+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(reward_claim_opens_after_days\x20input;\x20overrides\x20the\x20after-sales-expiry\x20derivation\x20—\x20keep\x20it\x20ABOVE\x20the\x20store\x27s\x20return/review\x20window\x20or\x20the\x20claim-and-return\x20arbitrage\x20re-opens,\x20tbs7\x20F-04),\x20claimable\x20for\x20a\x20further\x20'+U+'\x20day(s)\x20(bsw4\x20F-11\x20close).':'Claim\x20window:\x20opens\x20'+T+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(derived\x20after-sales\x20expiry\x20+\x201d,\x20floored\x20at\x2014d\x20—\x20tbs7\x20F-04:\x20the\x20bounty\x20opens\x20only\x20after\x20the\x20return/review\x20window\x20closed),\x20claimable\x20for\x20a\x20further\x20'+U+'\x20day(s)\x20(bsw4\x20F-11:\x20the\x20window\x20CLOSES\x20—\x20a\x20real\x20deadline,\x20counted\x20from\x20the\x20open).',aX='Pool\x20terms:\x20the\x20per-guard\x20claim\x20window\x20above\x20is\x20a\x20BUYER\x20promise,\x20not\x20the\x20end\x20of\x20the\x20pool\x20—\x20Reward.guard_not_added_expiration_time\x20is\x20the\x20owner\x27s\x20commitment\x20'+'lock\x20that\x20freezes\x20the\x20guard\x20set\x20and\x20blocks\x20withdrawal\x20only\x20while\x20it\x20is\x20still\x20in\x20the\x20future;\x20after\x20it\x20elapses\x20the\x20owner\x20may\x20extend/clear\x20the\x20guard\x20windows\x20'+'(guard_expiration_time_add)\x20or\x20withdraw\x20the\x20unclaimed\x20remainder\x20(the\x20owner-side\x20withdrawal\x20unwraps\x20the\x20held\x20Coin).\x20Do\x20not\x20describe\x20an\x20expiring\x20window\x20as\x20\x22funds\x20locked\x20forever\x22.',aY={'reward_address':'review_pool','expected_pre_claim_node':aR[0x0],...aR['length']>0x1?{'expected_pre_claim_node_alt':aR[0x1]}:{},...aR['length']>0x2?{'expected_pre_claim_node_alt2':aR[0x2]}:{},...aR['length']>0x3?{'expected_pre_claim_node_alt3':aR[0x3]}:{},...aU?{'rating_repository':e+'_review','rating_policy_name':'rating','rating_floor':String(L)}:{'rating_repository':''},'opens_after_days':String(T),'closes_after_days':String(U),'min_paid_amount':String(Math['max'](0x1,I('review_reward_per_claim')??0x1))};if(aF===undefined){let aZ='reward_claim_default';while(y['some'](b0=>b0['key']===aZ))aZ=aZ+'_x';y['push']({'key':aZ,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'4R-02\x20kernel-injected\x20DEFAULT\x20claim\x20guard\x20for\x20review_mode\x20\x27review_reward\x27\x20(the\x20template\x20'+('declares\x20no\x20reward\x20spec):\x20claim-allowed\x20SET\x20{'+aR['join'](',\x20')+'}'+(aS?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20the\x20shape\x20carries\x20more\x20terminals;\x20declare\x20an\x20explicit\x20host:\x22reward\x22\x20spec)':'')+',\x20')+'bounty\x20derived\x20T-02\x20(2%\x20of\x20the\x20cheapest\x20SKU,\x20floored\x20at\x201),\x20funding\x20fail-closed\x20'+('(REVIEW_REWARD_UNFUNDED).\x20'+aV+'\x20'+aW+'\x20'+aX+'\x20'+aT+'\x20W5-03\x20mutual\x20exclusion:\x20the\x20claim\x20set\x20')+'carries\x20NO\x20cancelled-role\x20node\x20—\x20a\x20refunded\x20order\x20cannot\x20reach\x20this\x20bounty\x20(a\x20chain-level\x20'+'\x27was\x20ever\x20refunded\x27\x20boolean\x20does\x20not\x20exist;\x20mounting\x20a\x20review/reward\x20advance\x20on\x20a\x20cancelled\x20'+'terminal\x20is\x20blocked\x20by\x20audit\x20STATE-REFUNDED-REWARD-01).\x20Declare\x20an\x20explicit\x20host:\x22reward\x22\x20guard\x20spec\x20to\x20replace\x20this\x20'+'default\x20with\x20a\x20named\x20design.','params':aY});}else{const b0=aF['template_id'];aF['template_id']='tpl_reward_one_time_claim',aF['params']=aY,aF['purpose']='4R-02\x20default\x20assembly\x20replaced\x20the\x20unresolved\x20design\x20reference\x20(was\x20\x27'+b0+'\x27\x20with\x20no\x20'+('caller\x20resolution):\x20claim-allowed\x20SET\x20{'+aR['join'](',\x20')+'}'+(aS?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20declare\x20an\x20explicit\x20spec\x20or\x20resolve\x20this\x20key\x20to\x20cover\x20every\x20terminal)':'')+'.\x20')+(aV+'\x20'+aW+'\x20'+aX+'\x20'+aT+'\x20Resolve\x20this\x20key\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20or\x20\x27template\x27)\x20to\x20override\x20the\x20')+'default\x20mount\x20per\x20build.';}}}}const V=f['experience_compensation_mode'],W=V==='reward'||V==='none'?V:b['experience_compensation_mode']??'none';let X;if(W==='reward'){const b1=/deliver|complet|receiv|fulfil|finish/i,b2=/fund|pledge|back/i,b3=/cancel|refund|kill/i,b4=k['filter'](b8=>b8['semantic_role']==='final')['map'](b8=>b8['name']),b5=k['find'](b8=>b1['test'](b8['name'])),b6=b4['filter'](b8=>!b2['test'](b8)&&!b3['test'](b8)),b7=b5?.['name']??b6[0x0]??b4[0x0];if(b7!==undefined){const b8=k['find'](bi=>/compensat/i['test'](String(bi?.['name']??''))),b9=[...new Set([...b8?[String(b8['name'])]:[],b7,...b6])],ba=b9['slice'](0x0,0x4),bb=b9['length']>0x4,bc=b['fee_params']['return_window_hours'],bd=typeof bc==='number'&&Number['isFinite'](bc)&&bc>0x0?bc:0x0,be=Math['max'](R,Math['ceil'](bd/0x18)),bf=I('experience_claim_opens_after_days')??Math['max'](0x1,be+0x1),bg=I('experience_claim_closes_after_days')??0x7;let bh='experience_compensation_claim';while(y['some'](bi=>bi['key']===bh))bh=bh+'_x';y['push']({'key':bh,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'C-11\x20kernel-injected\x20EXPERIENCE-COMPENSATION\x20claim\x20guard\x20(scene\x20reward_experience_compensation\x20/\x20'+'reward_delay_compensation):\x20an\x20independent\x20goodwill\x20pool\x20the\x20merchant\x20pre-funds,\x20claimed\x20PROACTIVELY\x20by\x20the\x20'+'buyer\x20—\x20never\x20a\x20settlement-edge\x20guard\x20and\x20never\x20a\x20voluntary\x20Payment\x20voucher\x20(both\x20rejected\x20by\x20K3\x20C-11).\x20'+('Claim-allowed\x20SET\x20{'+ba['join'](',\x20')+'}')+((bb?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20declare\x20an\x20explicit\x20key\x20\x27'+bh+'\x27\x20spec\x20to\x20cover\x20every\x20terminal)':'')+';\x20')+'funding-class\x20AND\x20cancelled-class\x20finals\x20are\x20EXCLUDED\x20(a\x20refunded\x20order\x20can\x20never\x20claim\x20—\x20tbs7\x20F-04\x20/\x20Scene\x207).\x20'+'NO\x20rating\x20leg\x20—\x20goodwill\x20is\x20not\x20review-gated\x20(rating_repository\x20empty\x20ships\x20without\x20the\x20leg).\x20'+('Claim\x20window:\x20opens\x20'+bf+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(derived:\x20after-sales\x20return\x20window\x20')+('lapsed\x20+\x201d'+(bd>0x0?'\x20—\x20fee_param\x20return_window_hours\x20'+bd+'h':'')+'),\x20')+('claimable\x20for\x20a\x20further\x20'+bg+'\x20day(s)\x20—\x20experience\x20compensation\x20must\x20be\x20claimed\x20promptly.\x20')+'Per-order\x20once\x20(template\x20record-gate).\x20Fixed\x20amount\x20tier:\x20fee_param\x20experience_claim_amount\x20(mount-side,\x20'+'emitReviewComponent);\x20fail-closed\x20funding\x20(EXPERIENCE_COMPENSATION_UNFUNDED,\x20INV-4\x20family).\x20'+'Resolve\x20this\x20key\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20or\x20\x27template\x27)\x20to\x20override\x20the\x20mount\x20per\x20build;\x20'+'a\x20GuardU64Identifier\x20amount\x20variant\x20(submission-resolved\x20tier)\x20must\x20disclose\x20its\x20rule\x20in\x20the\x20listing.','params':{'reward_address':'experience_pool','expected_pre_claim_node':ba[0x0],'expected_pre_claim_node_alt':ba[0x1]??b7,'expected_pre_claim_node_alt2':ba[0x2]??b7,'expected_pre_claim_node_alt3':ba[0x3]??b7,'rating_repository':'','opens_after_days':String(bf),'closes_after_days':String(bg),'min_paid_amount':String(Math['max'](0x1,I('experience_claim_amount')??0x1))}}),X=bh;}}const Y=f['price_rebate_mode'],Z=Y==='reward'||Y==='none'?Y:b['price_rebate_mode']??'none';let a0;if(Z==='reward'){const bi=/fund|pledge|back/i,bj=/cancel|refund|kill/i,bk=k['filter'](bn=>bn['semantic_role']==='final')['map'](bn=>bn['name']),bl=bk['filter'](bn=>!bi['test'](bn)&&!bj['test'](bn)),bm=bl[0x0]??bk[0x0];if(bm!==undefined){const bn=I('price_rebate_opens_after_days')??0x0,bo=I('price_rebate_closes_after_days')??0x7;let bp='price_rebate_claim';while(y['some'](bq=>bq['key']===bp))bp=bp+'_x';y['push']({'key':bp,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'stage2\x20#1\x20P-11\x20kernel-injected\x20PRICE-REBATE\x20claim\x20guard\x20(FLOWS\x20E28,\x20the\x20overcharge/mispricing\x20'+'remedy):\x20an\x20independent\x20pre-funded\x20rebate\x20pool\x20the\x20merchant\x20controls,\x20claimed\x20PROACTIVELY\x20by\x20the\x20'+'buyer\x20—\x20never\x20an\x20escrow\x20rail\x20(the\x20order\x27s\x20own\x20settlement\x20is\x20untouched;\x20nothing\x20is\x20deducted\x20from\x20'+('anyone).\x20Claim-allowed\x20SET\x20{'+bl['join'](',\x20')+'};\x20funding-class\x20AND\x20cancelled-class\x20finals\x20')+'are\x20EXCLUDED\x20(a\x20refunded\x20order\x20has\x20no\x20fulfilled\x20purchase\x20to\x20rebate\x20—\x20W5-03).\x20NO\x20rating\x20leg\x20and\x20NO\x20'+'late-evidence\x20leg:\x20an\x20overcharge\x20has\x20no\x20on-chain\x20evidence\x20face\x20(no\x20price\x20oracle,\x20red\x20line\x203)\x20—\x20the\x20'+'funding\x20input\x20IS\x20the\x20merchant\x27s\x20rebate\x20budget.\x20Cheaper\x20direct-sale\x20cure\x20disclosed\x20in\x20build_notes:\x20'+'fold\x20the\x20correction\x20into\x20the\x20quote\x20BEFORE\x20payment;\x20this\x20pool\x20only\x20remedies\x20an\x20ALREADY-collected\x20'+('mischarge.\x20Claim\x20window:\x20opens\x20'+bn+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry,\x20claimable\x20for\x20a\x20')+('further\x20'+bo+'\x20day(s).\x20Per-order\x20once\x20(template\x20record-gate).\x20Fixed\x20amount\x20tier:\x20fee_param\x20')+'price_rebate_claim_amount\x20(mount-side);\x20fail-closed\x20funding\x20(PRICE_REBATE_UNFUNDED,\x20INV-4\x20family).\x20'+'Resolve\x20this\x20key\x20via\x20guard_resolutions\x20to\x20override\x20the\x20mount\x20per\x20build.','params':{'reward_address':'price_rebate_pool','expected_pre_claim_node':bl[0x0],'expected_pre_claim_node_alt':bl[0x1]??bm,'expected_pre_claim_node_alt2':bl[0x2]??bm,'expected_pre_claim_node_alt3':bl[0x3]??bm,'rating_repository':'','opens_after_days':String(bn),'closes_after_days':String(bo),'min_paid_amount':String(Math['max'](0x1,I('price_rebate_claim_amount')??0x1))}}),a0=bp;}}const a1=new Set(['wip_provenance','subscription_with_proof']),a2=Array['isArray'](f['adopted_module_ids'])?f['adopted_module_ids']['filter'](bq=>typeof bq==='string'):[],a3=y['some'](bq=>bq['host']==='repository'||bq['template_id']==='pattern.repository_data_check'||bq['template_id']==='pattern.repository_write_authorization'||bq['template_id']==='tpl_repository_row_present'||bq['template_id']==='tpl_repository_row_present_signer'||bq['template_id']==='tpl_repository_row_equals_order_field'||bq['template_id']==='tpl_holder_confirm_evidence_gate')||a2['some'](bq=>a1['has'](bq)),a4=new Map(),a5=[],a6=new Map();b['guards']['forEach']((bq,br)=>{const bs=windowLegDecl(bq['params']);if(bs!==undefined)a6['set'](bq['key']??bq['template_id']+'#'+br,bs);});const a7=new Map();b['guards']['forEach']((bq,br)=>{const bs=nodeGateDecl(bq['params']);if(bs!==undefined)a7['set'](bq['key']??bq['template_id']+'#'+br,bs);});const a8=new Set();(b['machine_shape']??[])['forEach'](bq=>{const br=bq['from'];if(!Array['isArray'](br))return;for(const bs of br){const bt=bs;bt['forward']==='WithdrawClaim'&&typeof bt['guard_key']==='string'&&a8['add'](bt['guard_key']);}});const a9=y['map'](bq=>bq['key']);for(const bq of Object['keys'](h??{})){if(u['has'](bq))continue;!D['has'](bq)&&o['push']({'code':'GUARD_RESOLUTION_UNKNOWN','detail':'guard_resolutions\x20key\x20\x27'+bq+'\x27\x20matches\x20no\x20guard\x20spec\x20key\x20declared\x20by\x20\x27'+e+'\x27.\x20'+('Legal\x20keys:\x20'+(a9['length']>0x0?a9['join'](',\x20'):'(none\x20—\x20this\x20template\x20declares\x20no\x20keyed\x20guards)')+'.\x20')+'An\x20unknown\x20key\x20was\x20previously\x20dropped\x20silently,\x20leaving\x20the\x20intended\x20guard\x20pending\x20while\x20the\x20build\x20looked\x20resolved.'});}for(const br of y){const bs='guard_'+safeId(br['key']),bt=p[br['key']];let bu=br['purpose'],bv,bw;if(bt?.['kind']==='inline')bv=normalizeInlineGuardTable(bt['table'],e),bw=bt['root'],bu=bt['description']??br['purpose'];else{const bx=bt===undefined||bt['kind']==='omit'&&!u['has'](br['key'])||bt['kind']==='declare'?lookupBinding(br,b,f):undefined,by=bt?.['kind']==='template'?bt['template_id']:br['template_id']['startsWith']('tpl_')?br['template_id']:bx?.['template_id'];if(by!==undefined){if(by==='tpl_allocator_node_gate_recover')q['add'](br['key']);const bz={'service_name':e+'_service',...a3?{'repository_name':e+'_evidence'}:{},...G!=='none'?{'review_repository':e+'_review'}:{},...b['arbitration_mode']!==undefined&&b['arbitration_mode']!=='none'?{'arbitration_name':e+'_arbitration'}:{},...b['fee_params'],...f,...br['params'],...bx!==undefined?bx['params']:{},...bt?.['kind']==='template'?bt['params']:{}};if(by==='tpl_repository_row_equals_order_field'&&bz['wip_item']===undefined){const bB=f['sales'],bC=Array['isArray'](bB)?bB['map'](bD=>bD!==null&&typeof bD==='object'&&typeof bD['name']==='string'?bD['name']:undefined)['filter'](bD=>bD!==undefined&&bD['trim']()!==''):[];if(bC['length']===0x1)bz['wip_item']=bC[0x0];}const bA=fillGuardTemplate(by,bz);if(!bA['ok'])o['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+br['key']+'\x27\x20('+by+'):\x20'+bA['error']});else{bv=bA['table'],bw=bA['root'];const bD=validateQuerySignatures(bw,by,br['key']);bD!==undefined&&o['push']({'code':'GUARD_QUERY_SIGNATURE','detail':bD});const bE=a6['get'](br['key']);if(bE!==undefined){const bG=bz[bE['daysKey']],bH=typeof bG==='number'&&Number['isInteger'](bG)?bG:typeof bG==='string'&&bG['trim']()!==''&&Number['isInteger'](Number(bG))?Number(bG):undefined;if(bH===undefined||bH<=0x0)o['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+br['key']+'\x27\x20('+by+'):\x20the\x20entry\x20declares\x20a\x20closing\x20window\x20via\x20params.'+WINDOW_LEG_DAYS_PARAM+'\x20->\x20\x27'+bE['daysKey']+'\x27,\x20'+('but\x20the\x20merged\x20value\x20\x27'+String(bG)+'\x27\x20is\x20not\x20a\x20positive\x20integer\x20day\x20count.\x20Supply\x20the\x20fee\x20param\x20(or\x20an\x20input/params\x20override),\x20')+('or\x20drop\x20the\x20'+WINDOW_LEG_DAYS_PARAM+'/'+WINDOW_LEG_ANCHOR_PARAM+'\x20declaration\x20from\x20the\x20guard\x20entry.')});else{const bI=andClosingWindowLeg(bv,bw,bE['anchorNode'],bH);bv=bI['table'],bw=bI['root'];}}const bF=a7['get'](br['key']);if(bF!==undefined){const bJ=andNodeGateLeg(bv,bw,bF['nodes']);bv=bJ['table'],bw=bJ['root'];}if(a8['has'](br['key'])){const bK=andDisputeBindLeg(bv,bw);bv=bK['table'],bw=bK['root'];}}}}if(bv!==undefined){const bL=x['has'](br['key'])&&bw!==undefined&&!hasCallerIdentityLeg(bw);a4['set'](br['key'],{'stepId':bs,'description':bL?bu+'\x20(merchant-declared\x20exemption:\x20rail\x20\x27'+br['key']+'\x27\x20ships\x20without\x20a\x20caller\x20identity\x20leg\x20—\x20'+x['get'](br['key'])+')':bu,'table':bv,'root':normalizeLogicArity(bw)}),br['step_id']=bs;}else!br['template_id']['startsWith']('tpl_')&&getTemplateById(br['template_id'])===undefined&&!GUARD_DESIGN_PATTERNS['some'](bM=>bM['id']===br['template_id'])&&o['push']({'code':'GUARD_PATTERN_UNKNOWN','detail':'guard\x20\x27'+br['key']+'\x27\x20of\x20\x27'+e+'\x27\x20references\x20design\x20\x27'+br['template_id']+'\x27,\x20which\x20exists\x20in\x20neither\x20the\x20Guard\x20design-pattern\x20catalog\x20nor\x20the\x20guard-template\x20registry\x20—\x20'+'no\x20resolution\x20path\x20can\x20ever\x20fill\x20it\x20(guide\x20confirm,\x20guard_resolutions\x20and\x20module\x20plumbing\x20all\x20key\x20off\x20real\x20ids).\x20'+'Keeping\x20it\x20as\x20a\x20pending\x20design\x20would\x20leave\x20its\x20bound\x20path\x20UNGUARDED\x20behind\x20a\x20plausible\x20pending\x20label\x20'+'(bs-mn-261022\x20TPL-01:\x20nine\x20such\x20specs\x20compiled\x20into\x20a\x20machine\x20with\x20no\x20guards\x20on\x20the\x20grant-lifecycle\x20forwards).\x20'+'Correct\x20the\x20template\x27s\x20guard\x20spec\x20id\x20to\x20a\x20known\x20pattern,\x20or\x20resolve\x20this\x20spec\x20explicitly\x20(guard_resolutions\x20with\x20kind\x20\x27inline\x27).'}),a5['push'](br);}const aa=b['fee_param_defaults']??b['fee_params'],ab=new Set();for(const bM of[{'guards':b['guards'],'fee_params':b['fee_params'],'defaults':aa},{'guards':y['filter'](bN=>bN['step_id']!==undefined&&Object['values'](bN['params']??{})['some'](bO=>typeof bO==='number'&&Number['isFinite'](bO))),'fee_params':b['fee_params'],'defaults':b['fee_params']}]){for(const bN of feeParamCouplingMismatches(bM)){const bO=bN['key']+'::'+bN['param'];if(ab['has'](bO))continue;ab['add'](bO),o['push']({'code':'FEE_PARAM_COUPLING_MISMATCH','detail':'guard\x20\x27'+bN['key']+'\x27\x20('+bN['template_id']+')\x20claims\x20to\x20mirror\x20fee_param\x20\x27'+bN['param']+'\x27\x20('+bN['declared']+')\x20but\x20carries\x20no\x20matching\x20'+('numeric\x20literal\x20(params:\x20'+(bN['literals']['length']>0x0?bN['literals']['join'](',\x20'):'none')+').\x20The\x20guard\x20literal\x20is\x20the\x20ONLY\x20value\x20that\x20')+'becomes\x20on-chain\x20—\x20the\x20fee\x20param\x20the\x20merchant\x20sets\x20stays\x20decorative\x20(rex5-tn-261028\x20T-02).\x20'+('Re-sync\x20the\x20literal\x20with\x20fee_param\x20\x27'+bN['param']+'\x27\x20or\x20drop\x20the\x20coupling\x20claim\x20from\x20the\x20purpose.')});}}for(const bP of feeParamUnlanded(b,b['fee_params'],p)){o['push']({'code':'FEE_PARAM_UNLANDED','detail':'fee_param\x20\x27'+bP['param']+'\x27\x20=\x20'+bP['value']+'\x20on\x20\x27'+b['id']+'\x27\x20lands\x20nowhere:\x20no\x20platform-take\x20landing,\x20no\x20FEE_PARAM_BINDINGS\x20row,\x20'+'no\x20allocator\x20value_from/value_from_complement,\x20no\x20mounted\x20guard-template\x20placeholder,\x20no\x20kernel\x20consumer,\x20no\x20time-instantiation\x20or\x20'+'merged-lock\x20knob,\x20and\x20no\x20identical\x20frozen\x20constant\x20in\x20the\x20shipped\x20shape\x20—\x20whoever\x20sets\x20it\x20(shipped\x20default\x20or\x20fee_overrides)\x20changes\x20'+'nothing\x20on\x20chain\x20while\x20the\x20money\x20shape\x20ignores\x20it\x20(cour-mn-261102-z5t8\x20①②).\x20'+'Fix\x20ONE\x20way:\x20zero\x20the\x20knob\x20(direct\x20sales\x20default),\x20wire\x20the\x20allocator\x20rows\x20to\x20it\x20explicitly\x20(value_from\x20/\x20value_from_complement\x20naming\x20the\x20key),\x20'+'or\x20declare\x20an\x20author-literal\x20FEE_PARAM_BINDINGS\x20row\x20so\x20the\x20value\x20provably\x20lands.'});}for(const bQ of evidencePolicyCollisions(b)){o['push']({'code':'EVIDENCE_POLICY_COLLISION','detail':'repository\x20policy\x20\x27'+bQ['row_name']+'\x27\x20is\x20shared\x20by\x20'+bQ['markers']['length']+'\x20evidence\x20kinds\x20('+bQ['markers']['map'](bR=>'\x27'+bR+'\x27')['join'](',\x20')+')\x20'+('on\x20\x27'+b['id']+'\x27\x20—\x20the\x20repository\x20ledger\x20keys\x20each\x20row\x20by\x20(policy\x20name,\x20row\x20id),\x20and\x20order-scoped\x20rows\x20pin\x20the\x20row\x20id\x20to\x20the\x20order\x20address,\x20so\x20every\x20kind\x20writing\x20')+('under\x20policy\x20\x27'+bQ['row_name']+'\x27\x20lands\x20on\x20the\x20SAME\x20order-scoped\x20row:\x20with\x20write_once\x20the\x20second\x20kind\x27s\x20write\x20aborts\x20')+'with\x20the\x20write-once\x20conflict\x20(E_POLICY_WRITE_ONCE_CONFLICT)\x20and\x20the\x20machine\x20bricks\x20mid-flow;\x20without\x20it\x20the\x20later\x20row\x20silently\x20'+'overwrites\x20the\x20earlier\x20stage\x27s\x20evidence\x20(F-12,\x20sso7-mn-261104).\x20'+('Doctrine:\x20ONE\x20EVIDENCE\x20KIND\x20PER\x20POLICY\x20(W5-13/pdd\x20F-04).\x20Colliding\x20guards:\x20'+bQ['members']['join'](';\x20')+'.\x20')+'Split\x20into\x20per-kind\x20policies\x20(evidence_<kind>,\x20write_once)\x20with\x20one\x20write\x20guard\x20each,\x20and\x20re-point\x20every\x20reader\x27s\x20'+'row_name/binding\x20derive.'});}for(const bR of windowMathMismatches(b)){o['push']({'code':'WINDOW_MATH_MISMATCH','detail':bR['rule']==='R-WINDOW-MATH-ZERO'?'settlement\x20window\x20fee_param\x20\x27'+bR['settle_param']+'\x27\x20=\x20'+bR['settle_value']+':\x20the\x20escrow\x20releases\x20the\x20moment\x20the\x20anchor\x20node\x20is\x20entered,\x20so\x20every\x20buyer\x20window\x20is\x20structurally\x20dead\x20from\x20the\x20first\x20order\x20(ksk4\x20F-35).\x20'+'Set\x20it\x20to\x20a\x20positive\x20duration\x20that\x20covers\x20the\x20after-sales\x20schedule.':'settlement\x20window\x20fee_param\x20\x27'+bR['settle_param']+'\x27\x20('+bR['settle_value']+')\x20opens\x20the\x20release\x20before\x20buyer\x20window\x20'+bR['violates']+'\x20closes\x20—\x20the\x20refund\x20rail\x20is\x20structurally\x20dead\x20from\x20the\x20release\x20moment,\x20since\x20settlement\x20drains\x20the\x20allocation\x20balance\x20and\x20every\x20later\x20refund\x20leg\x20aborts\x20on\x20empty\x20(ktt3\x20F-05).\x20'+'This\x20is\x20an\x20INEQUALITY\x20check\x20on\x20unit-normalized\x20values\x20(mtwm\x20F-MT-03\x20misdiagnosis\x20note):\x20it\x20never\x20compares\x20against\x20template\x20defaults,\x20so\x20compressed\x20test\x20values\x20are\x20legal\x20as\x20long\x20as\x20the\x20ordering\x20holds\x20—\x20compress\x20proportionally\x20so\x20settle\x20stays\x20>=\x20every\x20buyer\x20window.\x20'+'Raise\x20the\x20settlement\x20window\x20to\x20>=\x20the\x20largest\x20buyer\x20window,\x20or\x20shorten\x20the\x20buyer\x20window\x20to\x20match\x20the\x20real\x20policy;\x20re-sync\x20guards[].params\x20with\x20the\x20new\x20fee_params\x20value\x20(FEE_PARAM_COUPLING_MISMATCH).'});}const ac=incentiveRatingFloorClaims(b);if(ac['length']>0x0){const bS=[...new Set(ac['map'](bU=>'\x27'+bU['excerpt']+'\x27\x20('+bU['field']+')'))]['join'](',\x20'),bT=[...new Set(ac['map'](bU=>bU['claimed']))];if(G!=='review_reward')o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20rating\x20floor\x20('+bS+')\x20but\x20review_mode\x20is\x20\x27'+G+'\x27\x20—\x20no\x20reward\x20track\x20'+'exists,\x20so\x20the\x20promise\x20pays\x20nothing\x20regardless\x20of\x20rating\x20(ktt3\x20F02/F12\x20residual).\x20'+('Build\x20with\x20review_mode\x20\x27review_reward\x27\x20and\x20reward_rating_floor\x20=\x20'+bT['join']('/')+',\x20or\x20drop\x20the\x20promise\x20from\x20the\x20prose.')});else{const bU=y['find'](c1=>c1['host']==='reward'),bV=bU!==undefined?p[bU['key']]:undefined,bW=bV?.['kind']==='template'&&bV['params']?{...bU?.['params']??{},...bV['params']}:bU?.['params']??{},bX=bW['rating_floor'],bY=typeof bX==='number'&&Number['isFinite'](bX)?bX:typeof bX==='string'&&bX['trim']()!==''&&Number['isFinite'](Number(bX))?Number(bX):undefined,bZ=Math['max'](0x0,...ac['filter'](c1=>c1['kind']==='praise')['map'](c1=>c1['claimed'])),c0=[...new Set(ac['filter'](c1=>c1['kind']==='numeric')['map'](c1=>c1['claimed']))];if(bY===undefined||bY<=0x0){const c1=bV?.['kind']==='inline'?'the\x20claim\x20guard\x20is\x20a\x20hand-designed\x20inline\x20root\x20compile\x20cannot\x20statically\x20parse\x20—\x20verify\x20its\x20rating\x20leg\x20yourself':'the\x20reward\x20track\x20carries\x20NO\x20rating\x20leg\x20(reward_rating_floor:\x200\x20explicit\x20opt-out,\x20or\x20a\x20reward\x20spec\x20without\x20rating_floor\x20—\x20the\x20S14\x20default\x20only\x20arms\x20the\x20kernel\x20DEFAULT\x20assembly)';o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20rating\x20floor\x20('+bS+')\x20but\x20the\x20compiled\x20reward\x20track\x20carries\x20NO\x20statically\x20visible\x20'+('rating\x20leg:\x20'+c1+'\x20—\x20the\x20bounty\x20pays\x20even\x20at\x20rating\x201\x20while\x20the\x20store\x20page\x20advertises\x20the\x20floor\x20')+('(ktt3\x20F02/F12\x20residual;\x20S14\x20default\x20arms\x20'+J+').\x20Pass\x20reward_rating_floor\x20=\x20'+bT['join']('/')+'\x20to\x20arm\x20it,\x20or\x20drop\x20the\x20promise\x20from\x20the\x20prose.')});}else{if(bZ>0x0&&bY<bZ)o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20GOOD-review\x20reward\x20('+bS+')\x20—\x20a\x20praise\x20promise\x20derives\x20to\x20floor\x20'+(bZ+'\x20(good\x20==\x204+,\x20S14)\x20—\x20but\x20the\x20armed\x20floor\x20is\x20'+bY+':\x20ratings\x20between\x20'+bY+'\x20')+('and\x20'+(bZ-0x1)+'\x20would\x20PAY\x20while\x20the\x20store\x20page\x20advertises\x20a\x20good-review-only\x20bounty\x20')+('(ktt3\x20F02/F12\x20residual,\x20S14\x20praise\x20shape).\x20Raise\x20reward_rating_floor\x20to\x20>=\x20'+bZ+',\x20or\x20rewrite\x20the\x20prose.')});else c0['length']>0x0&&!c0['includes'](bY)&&o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20rating\x20floor\x20'+c0['join']('/')+'\x20('+bS+')\x20but\x20the\x20armed\x20floor\x20is\x20'+bY+'\x20—\x20'+'orders\x20at\x20the\x20promised\x20rating\x20would\x20be\x20REJECTED\x20by\x20the\x20claim\x20guard\x20while\x20the\x20store\x20page\x20advertises\x20it\x20'+'(ktt3\x20F02/F12\x20residual).\x20Align\x20reward_rating_floor\x20with\x20the\x20prose,\x20or\x20rewrite\x20the\x20prose.'});}}}if(G==='review_reward'){const c2=rewardWindowDayClaims(b);if(c2['length']>0x0){const c3=y['find'](c5=>c5['host']==='reward'),c4=c3!==undefined?p[c3['key']]:undefined;if(c3!==undefined&&c4?.['kind']!=='inline'){const c5=c4?.['kind']==='template'&&c4['params']?{...c3['params']??{},...c4['params']}:c3['params']??{},c6=cb=>typeof cb==='number'&&Number['isFinite'](cb)?cb:typeof cb==='string'&&cb['trim']()!==''&&Number['isFinite'](Number(cb))?Number(cb):undefined,c7=c6(c5['closes_after_days']),c8=c7??U,c9=[...new Set(c2['map'](cb=>cb['claimed']))],ca=[...new Set(c2['map'](cb=>'\x27'+cb['excerpt']+'\x27\x20('+cb['field']+')'))]['join'](',\x20');!c9['includes'](c8)&&o['push']({'code':'INCENTIVE_WINDOW_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20claimable\x20span\x20of\x20'+c9['join']('/')+'\x20day(s)\x20('+ca+')\x20but\x20the\x20compiled\x20'+('claim\x20window\x20closes\x20'+c8+'\x20day(s)\x20after\x20it\x20opens\x20(closes_after_days')+(c7!==undefined?'\x20from\x20the\x20declared\x20reward\x20spec\x20params)':'\x20—\x20kernel\x20default\x20assembly,\x20bsw4\x20F-11\x20span\x20'+P)+'):\x20orders\x20claimed\x20inside\x20the\x20ADVERTISED\x20window\x20would\x20abort\x20E_GUARD_EXPIRED\x20while\x20the\x20store\x20page\x20advertises\x20it\x20'+'(h1w9\x20F-15:\x20\x227\x20days\x20to\x20claim\x22\x20advertising\x20vs\x20the\x20compiled\x2014d).\x20Align\x20the\x20window\x20—\x20pass\x20'+('reward_claim_closes_after_days\x20=\x20'+c9['join']('/')+'\x20(kernel\x20default\x20assembly)\x20or\x20pin\x20the\x20reward\x20spec\x27s\x20')+'closes_after_days\x20param\x20to\x20it\x20—\x20or\x20rewrite\x20the\x20prose.'});}}}const ad=new Set(k['flatMap'](cb=>(cb['from']??[])['map'](cc=>typeof cc==='string'?undefined:cc['guard_key'])['filter'](cc=>typeof cc==='string')));for(const cb of l){typeof cb['guard_key']==='string'&&cb['recipient']==='guard_identifier'&&cb['recipient_key']===String(TASK_BINDING_SLOT)&&ad['add'](cb['guard_key']);}const ae=new Set();for(const cc of y){if(!ad['has'](cc['key'])&&!q['has'](cc['key']))continue;const cd=a4['get'](cc['key']);if(cd===undefined)continue;const ce=cd['table']['some'](cf=>cf['identifier']===TASK_BINDING_SLOT);if(ce)continue;a4['set'](cc['key'],{...cd,'table':[...cd['table'],{'identifier':TASK_BINDING_SLOT,'b_submission':!![],'value_type':'Address','name':'task_binding\x20order\x20anchor\x20(protocol\x20slot\x20254;\x20written\x20by\x20order\x20creation)'}]}),ae['add'](cc['key']);}for(const cf of y){if(cf['host']!=='reward')continue;const cg=a4['get'](cf['key']);if(cg?.['root']===undefined)continue;const ch=cg['table']['some'](cj=>{const ck=cj;if(ck['b_submission']!==!![])return![];if(ck['object_type']==='Order')return!![];const cl=ck['name'];return typeof cl==='string'&&/order/i['test'](cl);}),ci=verifyGuardBinding({'host':'reward_claim','root':cg['root'],'facts':{'order_submission_declared':ch}});ci['some'](cj=>cj['code']==='RC_NO_ORDER_ANCHOR')&&o['push']({'code':'REWARD_WINDOW_UNRESOLVABLE','detail':'reward\x20claim\x20guard\x20\x27'+cf['key']+'\x27\x20of\x20\x27'+e+'\x27\x20carries\x20order./progress.\x20window\x20legs\x20that\x20have\x20NOTHING\x20to\x20resolve\x20against\x20in\x20the\x20'+'reward\x20context\x20(the\x20resolved\x20guard\x20table\x20declares\x20no\x20order-slot\x20submission)\x20—\x20the\x20legs\x20never\x20evaluate,\x20yet\x20they\x20fire\x20as\x20the\x20claim\x20'+'window\x20money\x20gate,\x20so\x20a\x20day-0\x20claim\x20releases\x20the\x20bounty\x20while\x20the\x20disclosed\x20OPENS/CLOSES\x20schedule\x20is\x20fiction\x20(cour\x20C2\x20⑤,\x20T2).\x20'+'Fix\x20ONE\x20way:\x20mount\x20a\x20guard\x20template\x20that\x20declares\x20the\x20order-slot\x20submission\x20(identifier\x200,\x20b_submission,\x20object_type\x20Order\x20—\x20e.g.\x20tpl_reward_one_time_claim),\x20'+'or\x20drop\x20the\x20order./progress.\x20window\x20legs\x20and\x20gate\x20the\x20claim\x20on\x20the\x20reward-context\x20facts\x20(claim-allowed\x20node\x20set,\x20rating\x20leg,\x20open/close\x20day\x20twins).'});}{const cj=b['settlement_window_merge'];if(cj!==undefined&&cj['length']>0x0){const ck=b['fee_params'],cl=cp=>{const cq=f[cp]??ck[cp];if(cq===undefined||cq===null)return undefined;const cr=typeof cq==='number'?cq:Number(cq);return Number['isFinite'](cr)&&cr>=0x0?cr:undefined;};let cm=0x0;for(const cp of cj){const cq=cl(cp);if(cq===undefined){cm=undefined;break;}cm+=cq;}const cn='settlement_window_merge\x20['+cj['join']('\x20+\x20')+']',co=y['find'](cr=>{const cs=timeInstantiationFor(b['id'],cr['key']);return cs!==undefined&&cs['direction']==='lower'&&cs['days']!==undefined&&cj['includes'](cs['days']);});if(cm===undefined)o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cn+':\x20a\x20merged\x20window\x20has\x20no\x20readable\x20day\x20value,\x20so\x20the\x20effective\x20release\x20lock\x20cannot\x20be\x20'+'determined.\x20Declare\x20every\x20merged\x20key\x20as\x20a\x20numeric\x20fee_param\x20(or\x20supply\x20it\x20as\x20an\x20input).'});else{if(co===undefined)o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cn+'\x20(=\x20'+cm+'\x20days)\x20declares\x20a\x20merged\x20release\x20lock,\x20but\x20no\x20compiled\x20settlement\x20gate\x20'+'(\x22lower\x22\x20time\x20instantiation\x20whose\x20day\x20knob\x20is\x20one\x20of\x20the\x20merged\x20keys)\x20carries\x20it\x20—\x20the\x20'+'declaration\x20would\x20be\x20prose\x20while\x20the\x20escrow\x20releases\x20before\x20the\x20merged\x20windows\x20finish.'});else{if(p[co['key']]?.['kind']!=='inline'&&a4['has'](co['key'])){const cr=a4['get'](co['key'])['table'];let cs;for(const ct of cr){if(ct['identifier']!==0x3)continue;const cu=ct['value'],cv=typeof cu==='number'?cu:Number(cu);if(Number['isFinite'](cv))cs=cv;}cs!==cm&&o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cn+'\x20=\x20'+cm+'\x20days\x20by\x20declaration,\x20but\x20guard\x20\x27'+co['key']+'\x27\x20compiled\x20its\x20length\x20'+('literal\x20to\x20'+(cs===undefined?'(none)':cs+'\x20days')+'.\x20The\x20escrow\x20would\x20')+'release\x20early\x20while\x20a\x20merged\x20buyer\x20window\x20can\x20still\x20draw\x20it.'});}}}}}for(const [cw,cx]of a4){const cy=normalizeGuardRowNames(cx['table'],cx['description'],MAX_GUARD_DESCRIPTION_CONTENT);(cy['table']!==cx['table']||cy['description']!==cx['description'])&&a4['set'](cw,{...cx,'table':cy['table'],'description':typeof cy['description']==='string'?cy['description']:cx['description']});}for(const cz of y){if(cz['host']!=='reward')continue;const cA=cz['params']??{},cB=['expected_pre_claim_node','expected_pre_claim_node_alt','expected_pre_claim_node_alt2','expected_pre_claim_node_alt3'],cC=cB['map'](cF=>cA[cF])['filter'](cF=>typeof cF==='string'),cD=cC['length']!==new Set(cC)['size'];if(!cD)continue;const cE=k['filter'](cF=>(REVIEW_OUTCOME_CLASS['test'](cF['name'])||cF['semantic_role']==='final')&&!cC['includes'](cF['name']))['map'](cF=>cF['name']);if(cE['length']===0x0)continue;cz['purpose']=cz['purpose']+'\x20REWARD_CLAIM_NODESET_DISPLACED\x20(kq4x\x20P-018):\x20the\x20expected_pre_claim_node*\x20slots\x20carry\x20a\x20'+('duplicate\x20same-value\x20leg\x20('+cC['join'](',\x20')+')\x20while\x20the\x20machine\x20shape\x20mounts\x20claim-eligible\x20node(s)\x20NOT\x20in\x20')+('the\x20set:\x20'+cE['join'](',\x20')+'\x20—\x20those\x20nodes\x20can\x20never\x20open\x20this\x20bounty.\x20If\x20they\x20SHOULD,\x20pin\x20the\x20full\x20set\x20')+'with\x20explicit\x20distinct\x20expected_pre_claim_node\x20/\x20_alt\x20/\x20_alt2\x20/\x20_alt3\x20params\x20on\x20this\x20host:\x22reward\x22\x20spec\x20'+'(a\x20two-slot\x20primary+alt\x20form\x20is\x20legal\x20—\x20unused\x20alts\x20may\x20stay\x20undeclared).';}return{'guardSpecs':y,'resolutions':p,'resolvedGuards':a4,'unresolved':a5,'omitKeys':u,'recoverTwinRails':q,'declareReasons':x,'specByKey':D,'slot254Injected':ae,'injectedOrderHolderKeys':A,'edgeBoundKeys':ad,'derived':{'reviewMode':G,'rewardMark':H,'needsRepository':a3,'experienceClaimKey':X,'priceRebateClaimKey':a0},'blockers':o};}
1
+ import{fillGuardTemplate,getTemplateById}from'../knowledge/guard-templates.js';import{resolveLocalWindowMs}from'../knowledge/time-units.js';import{validateQuerySignatures}from'../knowledge/chain-query-registry.js';import{hasCallerIdentityLeg}from'../knowledge/allocator-rail-verifier.js';import{applyFeeParamBindings}from'../knowledge/fee-param-bindings.js';import{identityDefaultResolution,MS_PER_DAY,patternDefaultResolution,progressStateDefaultResolution,timeInstantiationFor,timeWindowMsResolution}from'../knowledge/pattern-resolutions.js';import{GUARD_DESIGN_PATTERNS}from'../knowledge/guard-design-patterns.js';import{lookupBinding}from'../knowledge/guard-binding-table.js';import{TASK_BINDING_SLOT,ONCE_SLOT_BYTES}from'../knowledge/onchain-constants.js';import{feeParamCouplingMismatches,feeParamUnlanded,windowMathMismatches,incentiveRatingFloorClaims,rewardWindowDayClaims,evidencePolicyCollisions}from'../knowledge/template-scanner.js';import{verifyGuardBinding}from'../knowledge/guard-binding-verifier.js';import{ref}from'./plan.js';import{applyConditionalSelectors}from'./input-normalize.js';function safeId(a){return a['replace'](/[^a-zA-Z0-9_]/g,'_');}function normalizeLogicArity(a){if(Array['isArray'](a))return a['map'](normalizeLogicArity);if(a===null||typeof a!=='object')return a;const b=a,c={};for(const [d,e]of Object['entries'](b))c[d]=normalizeLogicArity(e);if((c['type']==='logic_and'||c['type']==='logic_or')&&Array['isArray'](c['nodes'])){const f=c['nodes'];if(f['length']===0x1)return f[0x0];}return c;}const WINDOW_LEG_DAYS_PARAM='closing_window_days',WINDOW_LEG_ANCHOR_PARAM='window_anchor_node';function windowLegDecl(a){if(a===null||typeof a!=='object')return undefined;const b=a,c=b[WINDOW_LEG_DAYS_PARAM],d=b[WINDOW_LEG_ANCHOR_PARAM];if(typeof c!=='string'||c===''||typeof d!=='string'||d==='')return undefined;return{'daysKey':c,'anchorNode':d};}function andClosingWindowLeg(a,b,c,d,e='production'){const f=resolveLocalWindowMs(String(d),'day',e)??Math['round'](d*MS_PER_DAY),g=[...a],h=new Set();let i;for(const n of g){const o=n;if(typeof o['identifier']==='number')h['add'](o['identifier']);i===undefined&&o['b_submission']===!![]&&o['object_type']==='Order'&&o['value_type']==='Address'&&(i=o['identifier']);}const j=()=>{let p=0x0;while(h['has'](p)||p===TASK_BINDING_SLOT||p===ONCE_SLOT_BYTES)p+=0x1;return h['add'](p),p;};i===undefined&&(i=j(),g['push']({'identifier':i,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(window-leg\x20progress\x20witness)'}));const k=j(),l=j();g['push']({'identifier':k,'b_submission':![],'value_type':'String','value':c,'name':'Window\x20anchor\x20node\x20(closing\x20leg)'},{'identifier':l,'b_submission':![],'value_type':'U64','value':f,'name':'Closing\x20window\x20length\x20in\x20MILLISECONDS\x20(resolved\x20locally\x20at\x20compile;\x20no\x20on-chain\x20multiply)'});const m={'type':'logic_as_u256_lesser_or_equal','nodes':[{'type':'context','context':'Clock'},{'type':'calc_number_add','nodes':[{'type':'query_progress_history_time','object':{'identifier':i,'convert_witness':'OrderProgress'},'where':{'nextNode':c},'find':'last'},{'type':'identifier','identifier':l}]}]};return{'table':g,'root':{'type':'logic_and','nodes':[b,m]}};}const NODE_GATE_PARAM='write_window_nodes';function nodeGateDecl(a){if(a===null||typeof a!=='object')return undefined;const b=a[NODE_GATE_PARAM];if(typeof b!=='string')return undefined;const c=b['split'](/[,\s]+/)['map'](d=>d['trim']())['filter'](d=>d!=='');return c['length']>0x0?{'nodes':c}:undefined;}function andNodeGateLeg(a,b,c){const d=[...a],e=new Set();let f;for(const k of d){const l=k;if(typeof l['identifier']==='number')e['add'](l['identifier']);f===undefined&&l['b_submission']===!![]&&l['object_type']==='Order'&&l['value_type']==='Address'&&(f=l['identifier']);}const g=()=>{let m=0x0;while(e['has'](m)||m===TASK_BINDING_SLOT||m===ONCE_SLOT_BYTES)m+=0x1;return e['add'](m),m;};f===undefined&&(f=g(),d['push']({'identifier':f,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(node-window\x20progress\x20witness)'}));const h=c['map'](()=>g());c['forEach']((m,o)=>d['push']({'identifier':h[o],'b_submission':![],'value_type':'String','value':m,'name':'Node-window\x20member\x20(write\x20gate)'}));const i=h['map'](m=>({'type':'logic_equal','nodes':[{'type':'query','query':'progress.current','object':{'identifier':f,'convert_witness':'OrderProgress'},'parameters':[]},{'type':'identifier','identifier':m}]})),j=i['length']===0x1?i[0x0]:{'type':'logic_or','nodes':i};return{'table':d,'root':{'type':'logic_and','nodes':[b,j]}};}export function normalizeInlineGuardTable(a,b){const c=b+'_service',d=f=>f['replace'](/\//g,'_'),e=d(c);return a['map'](f=>{if(f===null||typeof f!=='object'||Array['isArray'](f))return f;const g={...f};typeof g['value']==='string'&&d(g['value'])===e&&(g['value']=ref('service'));if(g['b_submission']===undefined)g['b_submission']=![];return g;});}function shortRowLabel(a,b){const c=a['search'](/:| \(| — /),d=c>0x0?a['slice'](0x0,c)['trim']():'';if(d['length']>0x0&&Buffer['byteLength'](d,'utf8')<=b)return d;let e=a;while(e['length']>0x0&&Buffer['byteLength'](e+'...','utf8')>b)e=e['slice'](0x0,-0x1);return e+'...';}const MAX_GUARD_DESCRIPTION_CONTENT=0xf9e;export function normalizeGuardRowNames(a,b,c){const d=0x3f,e=[],f=a['map'](j=>{if(!j||typeof j!=='object')return j;const k=j,l=k['name'];if(typeof l!=='string')return j;const m=l['startsWith']('0x')?'n_'+l:l;if(Buffer['byteLength'](m,'utf8')<=d)return m===l?j:{...k,'name':m};return e['push']('slot\x20'+String(k['identifier']??'?')+':\x20'+m),{...k,'name':shortRowLabel(m,d)};});if(e['length']===0x0)return{'table':f,'description':b};const g=typeof b==='string'?b:'';let h=g+'\x0a\x0aRow\x20labels\x20(the\x20on-chain\x20name\x20column\x20is\x20capped\x20at\x2064\x20BCS\x20bytes,\x20so\x20each\x20long\x20label\x20is\x20spelled\x20out\x20here):',i=0x0;for(const j of e){const k=h+'\x0a-\x20'+j;if(Buffer['byteLength'](k,'utf8')>c)break;h=k,i+=0x1;}return{'table':f,'description':i===0x0?b:h};}export function guardMountCensus(a,b,c){const {selectorDroppedKeys:d,shape:e,rows:f}=c??applyConditionalSelectors(a,b),g=new Set(e['flatMap'](k=>(k['from']??[])['map'](l=>typeof l==='string'?undefined:l['guard_key'])['filter'](l=>typeof l==='string'))),h=new Set(f['map'](k=>k['guard_key'])['filter'](l=>typeof l==='string')),i=new Set();let j=![];return a['guards']['forEach']((k,l)=>{if(d['has'](k['key']??k['template_id']+'#'+l))return;if(k['policy']!==undefined)i['add'](k['key']??k['template_id']+'#'+l);if(k['host']==='service'&&(k['key']??k['template_id']+'#'+l)==='buy')j=!![];}),{'edgeKeys':g,'railKeys':h,'policyKeys':i,'buyMounted':j};}const REVIEW_OUTCOME_CLASS=/wonder|no_wonder|praise|like|dislike|amend/i;export function fillGuards(a){const {template:b,base:e,inputs:f,guardResolutions:h}=a,{dropKeys:i,selectorDroppedKeys:j,shape:k,rows:l}=a['selector'],o=[],p={},q=new Set();b['guards']['forEach']((aq,ar)=>{const as=aq['key']??aq['template_id']+'#'+ar;if(j['has'](as))return;const at=timeWindowMsResolution(b['id'],as,f,b['fee_params'])??patternDefaultResolution(b['id'],as)??progressStateDefaultResolution(b,aq)??identityDefaultResolution(b,aq);if(at!==undefined)p[as]=at;}),Object['assign'](p,Object['fromEntries'](Object['entries'](h??{})['filter'](([,aq])=>aq?.['kind']!=='declare')));const t=[];for(const [aq,ar]of Object['entries'](h??{})){if(ar?.['kind']==='omit')t['push'](aq);}const u=new Set();if(t['length']>0x0){const as=guardMountCensus(b,f,a['selector']);for(const at of t){const au=b['guards']['find']((aw,ax)=>(aw['key']??aw['template_id']+'#'+ax)===at);if(au===undefined)continue;const av=[];if(as['edgeKeys']['has'](at))av['push']('a\x20machine\x20forward\x20edge\x20(guard_key)');if(as['railKeys']['has'](at))av['push']('an\x20allocator\x20rail\x20row\x20(guard_key)');if(as['policyKeys']['has'](at))av['push']('a\x20Repository\x20write-policy\x20credential\x20(policy)');if(au['host']==='service'&&at==='buy')av['push']('the\x20Service\x20buy\x20gate\x20(buy_guard)');av['length']>0x0?o['push']({'code':'GUARD_OMIT_UNSUPPORTED','detail':'guard_resolutions[\x27'+at+'\x27]\x20=\x20{kind:\x27omit\x27}\x20refused:\x20this\x20design\x20is\x20bound\x20to\x20'+av['join']('\x20and\x20')+'\x20—\x20'+'omitting\x20it\x20would\x20orphan\x20the\x20binding\x20(open\x20rail\x20/\x20open\x20write\x20/\x20ungated\x20purchase).\x20'+'Fold\x20the\x20design\x27s\x20intent\x20into\x20the\x20bound\x20site\x20instead,\x20or\x20keep\x20the\x20guard\x20resolved.'}):u['add'](at);}}const w=new Set(l['map'](aw=>aw['guard_key'])['filter'](aw=>typeof aw==='string')),x=new Map();b['guards']['forEach']((aw,ax)=>{const ay=aw['key']??aw['template_id']+'#'+ax,az=aw['identity_leg_exempt'];typeof az==='string'&&az['trim']()!==''&&w['has'](ay)&&x['set'](ay,az['trim']());});for(const [aw,ax]of Object['entries'](h??{})){if(ax?.['kind']!=='declare')continue;const ay=typeof ax['reason']==='string'?ax['reason']['trim']():'';if(ay===''){o['push']({'code':'GUARD_DECLARE_UNSUPPORTED','detail':'guard_resolutions[\x27'+aw+'\x27]\x20=\x20{kind:\x27declare\x27}\x20refused:\x20the\x20reason\x20field\x20is\x20mandatory\x20and\x20'+'must\x20be\x20non-empty\x20—\x20the\x20disclosure\x20that\x20ships\x20with\x20the\x20exemption\x20quotes\x20it\x20verbatim,\x20and\x20an\x20'+'unexplained\x20legless\x20money\x20rail\x20is\x20exactly\x20what\x20the\x20gate\x20exists\x20to\x20prevent\x20(ks11).'});continue;}const az=b['guards']['find']((aA,aB)=>(aA['key']??aA['template_id']+'#'+aB)===aw);if(az===undefined)continue;if(!w['has'](aw)){o['push']({'code':'GUARD_DECLARE_UNSUPPORTED','detail':'guard_resolutions[\x27'+aw+'\x27]\x20=\x20{kind:\x27declare\x27}\x20refused:\x20the\x20declare\x20channel\x20is\x20honored\x20ONLY\x20for\x20'+('allocator-rail-bound\x20designs\x20(a\x20spec\x20mounted\x20on\x20an\x20allocator\x20row),\x20and\x20\x27'+aw+'\x27\x20is\x20bound\x20to\x20no\x20')+'allocator\x20row.\x20An\x20identity-less\x20forward/policy/buy\x20gate\x20is\x20a\x20different\x20violation\x20family\x20'+'(RELEASE_EDGE_NO_IDENTITY\x20/\x20REPO_GUARD_POLICY_MISSING)\x20with\x20its\x20own\x20remedy\x20—\x20declare\x20does\x20not\x20reach\x20it.'});continue;}x['set'](aw,ay);}const y=b['guards']['map']((aA,aB)=>{const aC=aA['key']??aA['template_id']+'#'+aB,aD=applyFeeParamBindings(aA['params'],b['id'],aC,f,b['fee_params']);return{'key':aC,'template_id':aA['template_id'],'host':aA['host'],'purpose':aA['purpose'],'policy':aA['policy'],'params':aD};})['filter'](aA=>!i['has'](aA['key'])&&!u['has'](aA['key'])),z=new Map();for(const aA of y){if(aA['host']!=='repository'||!aA['policy']||typeof aA['policy']['name']!=='string')continue;z['set'](aA['policy']['name'],{'valueType':String(aA['policy']['value_type']??'String'),'specKey':aA['key']});}const A=new Set(b['guards']['map'](aB=>getTemplateById(aB['template_id']))['filter'](aB=>aB?.['numeric_row_comparison']===!![])['map'](aB=>aB['id']));if(A['size']>0x0)for(const aB of y){if(!A['has'](aB['template_id']))continue;const aC=aB['params']?.['row_name'];if(typeof aC!=='string'||aC==='')continue;const aD=z['get'](aC);if(!aD)continue;if(/^U(8|16|32|64|128|256)$/i['test'](aD['valueType']))continue;o['push']({'code':'REPO_POLICY_TYPE_MISMATCH','detail':'guard\x20spec\x20\x27'+aB['key']+'\x27\x20('+aB['template_id']+')\x20compares\x20repository\x20row\x20\x27'+aC+'\x27\x20with\x20a\x20numeric\x20'+('(U8..U256)\x20read,\x20but\x20the\x20sibling\x20policy\x20(spec\x20\x27'+aD['specKey']+'\x27)\x20declares\x20value_type\x20')+('\x27'+aD['valueType']+'\x27.\x20The\x20chain\x20parses\x20ONLY\x20the\x20U8..U256\x20type\x20tags\x20')+'(E_NUMBER_TYPE_NOT_MATCH)\x20and\x20the\x20write\x20side\x20pins\x20data[0]\x20to\x20the\x20policy\x20value_type\x20'+'—\x20a\x20String\x20row\x20aborts\x20this\x20guard\x20on\x20EVERY\x20evaluation,\x20so\x20the\x20rail\x20it\x20'+'gates\x20is\x20structurally\x20dead\x20(mainnet\x20proof:\x20upw-b7k2\x20R1,\x20all\x20three\x20band\x20allocators\x20dead\x20in\x20'+'template\x20v212).\x20Change\x20the\x20policy\x20value_type\x20to\x20a\x20numeric\x20type\x20(U64\x20for\x20bps-scale\x20values).'});}const B=new Map();{const aE=new Set(y['map'](aG=>aG['key'])),aF=aG=>{if(aG===undefined)return![];const aH=y['find'](aJ=>aJ['key']===aG);if(aH===undefined)return![];const aI=p[aG];if(aI?.['kind']==='inline'||aI?.['kind']==='template'||aH['template_id']['startsWith']('tpl_'))return!![];if(aI?.['kind']==='omit'&&u['has'](aG))return![];return lookupBinding(aH,b)!==undefined;};for(const aG of k){for(const aH of aG['from']??[]){const aI=typeof aH==='string'?{'prev':aH}:aH,aJ=aI['operator']??aG['operator']??(aI['prev']===''?'order_payer':'merchant');if(aJ!=='order_payer')continue;if(aI['guard_key']!==undefined&&aF(aI['guard_key']))continue;const aK=aI['forward']??(aI['prev']===''?'enter_'+aG['name']:aI['prev']+'_to_'+aG['name']);if(B['has'](aK))continue;let aL='order_holder_'+aK;while(aE['has'](aL))aL=aL+'_x';aE['add'](aL),B['set'](aK,aL);const aM=aI['guard_key']===undefined?'Declare\x20an\x20explicit\x20order-holder\x20guard_key\x20on\x20the\x20edge\x20to\x20replace\x20this\x20auto\x20key\x20with\x20a\x20named\x20credential.':'The\x20edge\x20DOES\x20declare\x20guard_key\x20\x27'+aI['guard_key']+'\x27,\x20but\x20that\x20design\x20does\x20not\x20resolve\x20to\x20a\x20Guard\x20object,\x20so\x20the\x20forward\x20would\x20otherwise\x20ship\x20unguarded;\x20resolve\x20\x27'+aI['guard_key']+'\x27\x20(guard_resolutions,\x20or\x20re-point\x20the\x20spec\x20at\x20an\x20instantiable\x20tpl_*\x20id)\x20to\x20carry\x20the\x20richer\x20condition\x20—\x20this\x20identity\x20leg\x20stays\x20bound\x20either\x20way.';y['push']({'key':aL,'template_id':'tpl_forward_order_holder','host':'machine','purpose':'F05\x20kernel-injected\x20order-holder\x20identity\x20binding\x20for\x20the\x20buyer-exclusive\x20forward\x20'+('\x27'+aK+'\x27\x20(edge\x20\x27'+aI['prev']+'\x27->\x27'+aG['name']+'\x27):\x20namedOperator\x20\x22\x22\x20passes\x20for\x20')+'anyone\x20at\x20the\x20permission\x20layer,\x20so\x20without\x20this\x20guard\x20the\x20'+'buyer\x20rail\x20is\x20advanceable\x20by\x20ANY\x20passport\x20holder\x20attached\x20to\x20the\x20order\x20—\x20takeover\x20'+('risk.\x20'+aM)});}}}const C=a['arbPanel']??[],D=f['arbitration_vote_policy'],E=D==='party_panel'?'party_panel':D==='open'?'open':C['length']>0x0?'party_panel':'open';if(b['arbitration_mode']==='third_party'&&E==='open'&&!y['some'](aN=>aN['template_id']['startsWith']('tpl_voting_guard_'))){let aN='arbitration_vote_open';const aO=new Set(y['map'](aP=>aP['key']));while(aO['has'](aN))aN=aN+'_x';y['push']({'key':aN,'template_id':'tpl_voting_guard_open_vote','host':'arbitration','purpose':'F-cu\x20kernel-injected\x20open-vote\x20surface\x20for\x20the\x20third_party\x20venue:\x20an\x20EMPTY\x20'+'voting_guard\x20is\x20NOT\x20open\x20voting\x20—\x20plain\x20votes\x20hard-require\x20permission\x20358\x20'+'(admin-only\x20by\x20default),\x20so\x20disputes\x20dead-lock\x20when\x20the\x20arb\x20admin\x20is\x20'+'unresponsive\x20(crs9-F-36).\x20Every\x20Passport\x20holder\x20may\x20vote\x20at\x20flat\x20weight\x201\x20'+'(O-F26:\x20CONSTANT-TRUE\x20gate\x20—\x20the\x20scanner\x20red-flags\x20it;\x20configure\x20a\x20'+'roster+threshold\x20guard\x20before\x20real\x20disputes,\x20or\x20pass\x20'+'arbitration_vote_policy:\x27party_panel\x27\x20to\x20skip\x20this\x20injection\x20entirely\x20and\x20'+'bind\x20tpl_voting_guard_numeric_weight\x20/\x20tpl_voting_guard_party_only);\x20'+'a\x20deliberately\x20closed\x20panel\x20re-declares\x20tpl_voting_guard_numeric_weight.','params':{'vote_weight':0x1}});}if(b['arbitration_mode']==='third_party'&&E==='party_panel'&&C['length']>0x0&&!y['some'](aP=>aP['template_id']['startsWith']('tpl_voting_guard_'))){let aP='arbitration_vote_party_panel';const aQ=new Set(y['map'](aR=>aR['key']));while(aQ['has'](aP))aP=aP+'_x';y['push']({'key':aP,'template_id':'tpl_voting_guard_party_only','host':'arbitration','purpose':'P0-3\x20kernel-injected\x20party-panel\x20voting\x20surface\x20(upw-mn-261110):\x20the\x20caller\x20declared\x20an\x20arb_panel,\x20'+'so\x20the\x20venue\x20is\x20CLOSED\x20—\x20ballots\x20resolve\x20to\x20the\x20declared\x20panel\x20(the\x20STAFF\x20face\x20of\x20the\x20voter\x20'+'universe)\x20or\x20the\x20disputed\x20order\x27s\x20buyer\x20(order.owner\x20+\x20the\x20arb.order==order\x20anti-spoof\x20pin);\x20an\x20'+'always-true\x20open\x20surface\x20would\x20let\x20any\x20Passport\x20holder\x20swing\x20a\x20party\x20ballot\x20(tbpm9\x20O6-02,\x20mainnet\x20'+'pddk-b4).\x20The\x20panel\x20rides\x20the\x20party_panel\x20vec\x20param\x20from\x20inputs.arb_panel;\x20permission\x20358\x20is\x20'+'granted\x20to\x20the\x20same\x20roster\x20on\x20the\x20arb\x20Permission\x20at\x20deploy\x20(both\x20layers\x20pass\x20on\x20the\x20first\x20tap).','params':{'party_panel':C}});}const F=new Map(y['map'](aR=>[aR['key'],aR])),G=f['review_mode'],H=G==='review'||G==='review_reward'||G==='none'?G:undefined,I=H??b['review_mode']??'none',J=e+'_review_reward',K=aR=>{const aS=f[aR]??b['fee_params'][aR];if(typeof aS==='number'&&Number['isFinite'](aS))return aS;if(typeof aS==='string'&&aS['trim']()!==''&&Number['isFinite'](Number(aS)))return Number(aS);return undefined;},L=0x4,M=K('reward_rating_floor'),N=M??L,O=K('reward_claim_opens_after_days'),P=K('reward_claim_closes_after_days'),Q=0xe,R=0xe,S=f['reward_opens_policy']??b['fee_params']['reward_opens_policy'],T=S==='after_review'?'after_review':'after_sales_close',U=b['fee_params']['return_window_days']??b['fee_params']['review_window_days'],V=typeof U==='number'&&Number['isFinite'](U)&&U>0x0?U:0x0,W=T==='after_review'?0x0:a['windowProfile']==='test'?0x1:Math['max'](Q,V+0x1),X=O??W,Y=P??R,Z=K('reward_claim_opens_after_ms'),a0=K('reward_claim_closes_after_ms'),a1=Z!==undefined||a0!==undefined?{'opens':Z??X*0x5265c00,'closes':a0??Y*0x5265c00}:undefined,a2=I==='review_reward'&&y['some'](aR=>aR['host']==='reward'),a3=a1?'Claim\x20window:\x20opens\x20'+a1['opens']+'\x20ms\x20after\x20the\x20claim-allowed\x20entry,\x20claimable\x20for\x20a\x20further\x20'+a1['closes']+'\x20ms\x20(the\x20reward_claim_*_after_ms\x20twins\x20—\x20a\x20SUB-DAY\x20window,\x20cstc-mn-261109\x20A10\x20/\x20algr-mn-261109\x20F-13;\x20the\x20ms\x20answer\x20REPLACES\x20the\x20day\x20knobs\x20and\x20a\x20lone\x20twin\x20converts\x20its\x20day\x20sibling\x20at\x20days\x20×\x20864000000;\x20the\x20tbs7\x20F-04\x20floor\x20does\x20not\x20apply\x20to\x20an\x20explicit\x20answer).':O!==undefined?'Claim\x20window:\x20opens\x20'+X+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(reward_claim_opens_after_days\x20input;\x20overrides\x20the\x20after-sales-expiry\x20derivation\x20—\x20keep\x20it\x20ABOVE\x20the\x20store\x27s\x20return/review\x20window\x20or\x20the\x20claim-and-return\x20arbitrage\x20re-opens,\x20tbs7\x20F-04),\x20claimable\x20for\x20a\x20further\x20'+Y+'\x20day(s)\x20(bsw4\x20F-11\x20close).':T==='after_review'?'Claim\x20window:\x20opens\x20AT\x20the\x20claim-allowed\x20entry\x20(reward_opens_policy\x20\x27after_review\x27\x20—\x20review\x20pays\x20immediately,\x20F-22\x20card\x201;\x20the\x20rating\x20credential\x20leg\x20floor\x20'+N+'\x20is\x20the\x20sybil\x20gate,\x20and\x20the\x20merchant\x20has\x20accepted\x20the\x20claim-and-return\x20arbitrage\x20exposure\x20tbs7\x20F-04\x20guards\x20against\x20BY\x20DECLARATION\x20—\x20prefer\x20a\x20short\x20return\x20window\x20alongside\x20this\x20policy),\x20claimable\x20for\x20a\x20further\x20'+Y+'\x20day(s)\x20(bsw4\x20F-11:\x20the\x20window\x20CLOSES\x20—\x20a\x20real\x20deadline,\x20counted\x20from\x20the\x20open).':a['windowProfile']==='test'?'Claim\x20window:\x20opens\x201\x20test\x20minute\x20after\x20the\x20claim-allowed\x20entry\x20(the\x20derived\x20after-sales\x20floor\x20max(14,\x20after-sales+1)d\x20is\x20FOLDED\x20by\x20the\x20test\x20profile\x20—\x20F-22\x20card\x201:\x20the\x20anti-arbitrage\x20floor\x20is\x20a\x20production\x20economic\x20control,\x20not\x20a\x20reachability\x20one),\x20claimable\x20for\x20a\x20further\x20'+Y+'\x20day(s).':'Claim\x20window:\x20opens\x20'+X+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(derived\x20after-sales\x20expiry\x20+\x201d,\x20floored\x20at\x2014d\x20—\x20tbs7\x20F-04:\x20the\x20bounty\x20opens\x20only\x20after\x20the\x20return/review\x20window\x20closed),\x20claimable\x20for\x20a\x20further\x20'+Y+'\x20day(s)\x20(bsw4\x20F-11:\x20the\x20window\x20CLOSES\x20—\x20a\x20real\x20deadline,\x20counted\x20from\x20the\x20open).',a4='Pool\x20terms:\x20the\x20per-guard\x20claim\x20window\x20above\x20is\x20a\x20BUYER\x20promise,\x20not\x20the\x20end\x20of\x20the\x20pool\x20—\x20Reward.guard_not_added_expiration_time\x20is\x20the\x20owner\x27s\x20commitment\x20'+'lock\x20that\x20freezes\x20the\x20guard\x20set\x20and\x20blocks\x20withdrawal\x20only\x20while\x20it\x20is\x20still\x20in\x20the\x20future;\x20after\x20it\x20elapses\x20the\x20owner\x20may\x20extend/clear\x20the\x20guard\x20windows\x20'+'(guard_expiration_time_add)\x20or\x20withdraw\x20the\x20unclaimed\x20remainder\x20(the\x20owner-side\x20withdrawal\x20unwraps\x20the\x20held\x20Coin).\x20Do\x20not\x20describe\x20an\x20expiring\x20window\x20as\x20\x22funds\x20locked\x20forever\x22.',a5=(Array['isArray'](f['sales'])?f['sales']:[])['map'](aR=>aR!==null&&typeof aR==='object'?aR:undefined)['filter'](aR=>aR!==undefined&&aR['incentive']!==undefined&&aR['incentive']!==null&&String(aR['incentive'])['trim']()!=='')['map'](aR=>'\x27'+String(aR['name']??'?')+'\x27:\x20'+String(aR['incentive']))['join'](';\x20'),a6=a5!==''?'SKU\x20incentive\x20declarations\x20(buyer-perceivable;\x20retained\x20in\x20plan.inputs.sales\x20and\x20honored\x20by\x20THIS\x20claim\x20rail):\x20'+a5+'.':'';a2&&T==='after_review'&&N<=0x0&&o['push']({'code':'REWARD_OPENS_POLICY_CREDENTIAL_REQUIRED','detail':'reward_opens_policy\x20\x27after_review\x27\x20opens\x20the\x20bounty\x20AT\x20the\x20review\x20entry,\x20and\x20reward_rating_floor:\x200\x20strips\x20the\x20review\x20credential\x20leg\x20(the\x20order-keyed\x20rating\x20row)\x20—\x20'+'the\x20combination\x20pays\x20a\x20plain-praise\x20bounty\x20with\x20NO\x20on-chain\x20check\x20(self-buy-self-review\x20drain,\x20and\x20the\x20tbs7\x20F-04\x20claim-and-return\x20arbitrage\x20is\x20unguarded\x20too).\x20'+('Set\x20reward_rating_floor\x20>=\x201\x20(S14\x20default\x20'+L+')\x20to\x20keep\x20the\x20credential\x20leg,\x20or\x20keep\x20reward_opens_policy\x20\x27after_sales_close\x27.')});a5!==''&&!a2&&o['push']({'code':'SALE_INCENTIVE_UNBACKED','detail':'sales[]\x20carries\x20an\x20SKU\x20\x27incentive\x27\x20declaration\x20('+a5+')\x20but\x20this\x20build\x20mounts\x20NO\x20reward\x20claim\x20rail\x20'+('(review_mode\x20\x27'+I+'\x27\x20with\x20no\x20host:\x22reward\x22\x20spec)\x20—\x20the\x20promise\x20is\x20unreadable\x20on-chain\x20and\x20unhonorable\x20at\x20claim\x20time.\x20')+'Declare\x20review_mode\x20\x27review_reward\x27\x20(the\x20kernel\x20mounts\x20the\x20claim\x20rail),\x20or\x20add\x20an\x20explicit\x20host:\x22reward\x22\x20guard\x20spec,\x20or\x20drop\x20the\x20declaration.'});if(I==='review_reward'){const aR=y['find'](aV=>aV['host']==='reward'),aS=aR!==undefined?p[aR['key']]:undefined,aT=aS!==undefined&&(aS['kind']==='template'||aS['kind']==='inline'),aU=aR!==undefined&&(aR['template_id']['startsWith']('tpl_')||aT);if(aR===undefined||!aU){const aV=/deliver|complet|receiv|fulfil|finish/i,aW=/fund|pledge|back/i,aX=k['find'](b4=>/review/i['test'](b4['name'])),aY=k['find'](b4=>aV['test'](b4['name'])),aZ=k['filter'](b4=>b4['semantic_role']==='final')['map'](b4=>b4['name']),b0=k['filter'](b4=>REVIEW_OUTCOME_CLASS['test'](b4['name']))['map'](b4=>b4['name']),b1=aX?.['name']??aY?.['name']??aZ[0x0],b2=aY!==undefined?aZ['filter'](b4=>!aW['test'](b4)):aZ,b3=[...new Set([b1,...b0,...b2])]['slice'](0x0,0x4);if(b1!==undefined){const b4=new Set([b1,...b0,...b2])['size']>0x4,b5='Claim-set\x20default\x20(ks7\x20F-25\x20+\x20kq4x\x20P-018):\x20the\x20bounty\x20anchors\x20on\x20the\x20review\x20node,\x20else\x20a\x20delivery-class\x20node,\x20else\x20the\x20first\x20terminal;\x20review-outcome\x20nodes\x20(wonder/no_wonder/praise/like/dislike)\x20take\x20the\x20slots\x20between\x20the\x20anchor\x20and\x20the\x20settlement\x20terminals'+(aY!==undefined?',\x20and\x20funding-class\x20settlement\x20terminals\x20are\x20EXCLUDED\x20—\x20a\x20funding\x20release\x20(funded_released\x20family)\x20precedes\x20physical\x20fulfillment,\x20so\x20a\x20window\x20measured\x20there\x20ships\x20the\x20bounty\x20permanently\x20unclaimable;\x20hosting\x20the\x20bounty\x20on\x20a\x20funding\x20terminal\x20requires\x20an\x20explicit\x20host:\x22reward\x22\x20spec\x20(the\x20named-design\x20escape\x20hatch).':'\x20(this\x20shape\x20mounts\x20no\x20delivery-class\x20node,\x20so\x20funding-class\x20terminals\x20stay\x20IN\x20the\x20default\x20set);\x20an\x20explicit\x20host:\x22reward\x22\x20spec\x20can\x20pin\x20any\x20claim\x20set.'),b6=N>0x0,b7=b6?'Rating\x20leg\x20ARMED\x20on\x20the\x20plan-created\x20\x27'+e+'_review\x27\x20repository\x20/\x20\x27rating\x27\x20policy\x20(order-keyed\x20U64):\x20pays\x20only\x20at\x20rating\x20>=\x20'+N+'\x20(reward_rating_floor\x20input'+(M===undefined?'\x20—\x20S14\x20default\x20'+L+',\x20no\x20input\x20given':'')+').':'No\x20rating\x20leg\x20—\x20reward_rating_floor\x20was\x20EXPLICITLY\x20set\x20to\x200\x20(plain\x20praise\x20bounty\x20opt-out,\x20S14\x20default\x20is\x20'+L+').',b8={'reward_address':'review_pool','expected_pre_claim_node':b3[0x0],...b3['length']>0x1?{'expected_pre_claim_node_alt':b3[0x1]}:{},...b3['length']>0x2?{'expected_pre_claim_node_alt2':b3[0x2]}:{},...b3['length']>0x3?{'expected_pre_claim_node_alt3':b3[0x3]}:{},...b6?{'rating_repository':e+'_review','rating_policy_name':'rating','rating_floor':String(N)}:{'rating_repository':''},'opens_after_days':String(X),'closes_after_days':String(Y),...a1?{'opens_after_ms':String(a1['opens']),'closes_after_ms':String(a1['closes'])}:{},'min_paid_amount':String(Math['max'](0x1,K('review_reward_per_claim')??0x1))};if(aR===undefined){let b9='reward_claim_default';while(y['some'](ba=>ba['key']===b9))b9=b9+'_x';y['push']({'key':b9,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'4R-02\x20kernel-injected\x20DEFAULT\x20claim\x20guard\x20for\x20review_mode\x20\x27review_reward\x27\x20(the\x20template\x20'+('declares\x20no\x20reward\x20spec):\x20claim-allowed\x20SET\x20{'+b3['join'](',\x20')+'}'+(b4?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20the\x20shape\x20carries\x20more\x20terminals;\x20declare\x20an\x20explicit\x20host:\x22reward\x22\x20spec)':'')+',\x20')+'bounty\x20derived\x20T-02\x20(2%\x20of\x20the\x20cheapest\x20SKU,\x20floored\x20at\x201),\x20funding\x20fail-closed\x20'+('(REVIEW_REWARD_UNFUNDED).\x20'+b7+'\x20'+a3+'\x20'+a4+'\x20'+a6+'\x20'+b5+'\x20W5-03\x20mutual\x20exclusion:\x20the\x20claim\x20set\x20')+'carries\x20NO\x20cancelled-role\x20node\x20—\x20a\x20refunded\x20order\x20cannot\x20reach\x20this\x20bounty\x20(a\x20chain-level\x20'+'\x27was\x20ever\x20refunded\x27\x20boolean\x20does\x20not\x20exist;\x20mounting\x20a\x20review/reward\x20advance\x20on\x20a\x20cancelled\x20'+'terminal\x20is\x20blocked\x20by\x20audit\x20STATE-REFUNDED-REWARD-01).\x20Declare\x20an\x20explicit\x20host:\x22reward\x22\x20guard\x20spec\x20to\x20replace\x20this\x20'+'default\x20with\x20a\x20named\x20design.','params':b8});}else{const ba=aR['template_id'];aR['template_id']='tpl_reward_one_time_claim',aR['params']=b8,aR['purpose']='4R-02\x20default\x20assembly\x20replaced\x20the\x20unresolved\x20design\x20reference\x20(was\x20\x27'+ba+'\x27\x20with\x20no\x20'+('caller\x20resolution):\x20claim-allowed\x20SET\x20{'+b3['join'](',\x20')+'}'+(b4?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20declare\x20an\x20explicit\x20spec\x20or\x20resolve\x20this\x20key\x20to\x20cover\x20every\x20terminal)':'')+'.\x20')+(b7+'\x20'+a3+'\x20'+a4+'\x20'+a6+'\x20'+b5+'\x20Resolve\x20this\x20key\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20or\x20\x27template\x27)\x20to\x20override\x20the\x20')+'default\x20mount\x20per\x20build.';}}}else{const bb=aR['params']??{},bc=bb['opens_after_days']!==undefined||bb['opens_after_ms']!==undefined;!bc&&(aR['params']={...bb,...a1?{'opens_after_ms':String(a1['opens']),'closes_after_ms':String(a1['closes'])}:{'opens_after_days':String(X),'closes_after_days':String(Y)}}),aR['purpose']=(aR['purpose']??'')+'\x20'+a3+'\x20'+a4+(a6!==''?'\x20'+a6:'');}}const a7=f['experience_compensation_mode'],a8=a7==='reward'||a7==='none'?a7:b['experience_compensation_mode']??'none';let a9;if(a8==='reward'){const bd=/deliver|complet|receiv|fulfil|finish/i,be=/fund|pledge|back/i,bf=/cancel|refund|kill/i,bg=k['filter'](bk=>bk['semantic_role']==='final')['map'](bk=>bk['name']),bh=k['find'](bk=>bd['test'](bk['name'])),bi=bg['filter'](bk=>!be['test'](bk)&&!bf['test'](bk)),bj=bh?.['name']??bi[0x0]??bg[0x0];if(bj!==undefined){const bk=k['find'](bu=>/compensat/i['test'](String(bu?.['name']??''))),bl=[...new Set([...bk?[String(bk['name'])]:[],bj,...bi])],bm=bl['slice'](0x0,0x4),bn=bl['length']>0x4,bo=b['fee_params']['return_window_hours'],bp=typeof bo==='number'&&Number['isFinite'](bo)&&bo>0x0?bo:0x0,bq=Math['max'](V,Math['ceil'](bp/0x18)),br=K('experience_claim_opens_after_days')??Math['max'](0x1,bq+0x1),bs=K('experience_claim_closes_after_days')??0x7;let bt='experience_compensation_claim';while(y['some'](bu=>bu['key']===bt))bt=bt+'_x';y['push']({'key':bt,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'C-11\x20kernel-injected\x20EXPERIENCE-COMPENSATION\x20claim\x20guard\x20(scene\x20reward_experience_compensation\x20/\x20'+'reward_delay_compensation):\x20an\x20independent\x20goodwill\x20pool\x20the\x20merchant\x20pre-funds,\x20claimed\x20PROACTIVELY\x20by\x20the\x20'+'buyer\x20—\x20never\x20a\x20settlement-edge\x20guard\x20and\x20never\x20a\x20voluntary\x20Payment\x20voucher\x20(both\x20rejected\x20by\x20K3\x20C-11).\x20'+('Claim-allowed\x20SET\x20{'+bm['join'](',\x20')+'}')+((bn?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20declare\x20an\x20explicit\x20key\x20\x27'+bt+'\x27\x20spec\x20to\x20cover\x20every\x20terminal)':'')+';\x20')+'funding-class\x20AND\x20cancelled-class\x20finals\x20are\x20EXCLUDED\x20(a\x20refunded\x20order\x20can\x20never\x20claim\x20—\x20tbs7\x20F-04\x20/\x20Scene\x207).\x20'+'NO\x20rating\x20leg\x20—\x20goodwill\x20is\x20not\x20review-gated\x20(rating_repository\x20empty\x20ships\x20without\x20the\x20leg).\x20'+('Claim\x20window:\x20opens\x20'+br+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(derived:\x20after-sales\x20return\x20window\x20')+('lapsed\x20+\x201d'+(bp>0x0?'\x20—\x20fee_param\x20return_window_hours\x20'+bp+'h':'')+'),\x20')+('claimable\x20for\x20a\x20further\x20'+bs+'\x20day(s)\x20—\x20experience\x20compensation\x20must\x20be\x20claimed\x20promptly.\x20')+'Per-order\x20once\x20(template\x20record-gate).\x20Fixed\x20amount\x20tier:\x20fee_param\x20experience_claim_amount\x20(mount-side,\x20'+'emitReviewComponent);\x20fail-closed\x20funding\x20(EXPERIENCE_COMPENSATION_UNFUNDED,\x20INV-4\x20family).\x20'+'Resolve\x20this\x20key\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20or\x20\x27template\x27)\x20to\x20override\x20the\x20mount\x20per\x20build;\x20'+'a\x20GuardU64Identifier\x20amount\x20variant\x20(submission-resolved\x20tier)\x20must\x20disclose\x20its\x20rule\x20in\x20the\x20listing.','params':{'reward_address':'experience_pool','expected_pre_claim_node':bm[0x0],'expected_pre_claim_node_alt':bm[0x1]??bj,'expected_pre_claim_node_alt2':bm[0x2]??bj,'expected_pre_claim_node_alt3':bm[0x3]??bj,'rating_repository':'','opens_after_days':String(br),'closes_after_days':String(bs),'min_paid_amount':String(Math['max'](0x1,K('experience_claim_amount')??0x1))}}),a9=bt;}}const aa=f['price_rebate_mode'],ab=aa==='reward'||aa==='none'?aa:b['price_rebate_mode']??'none';let ac;if(ab==='reward'){const bu=/fund|pledge|back/i,bv=/cancel|refund|kill/i,bw=k['filter'](bz=>bz['semantic_role']==='final')['map'](bz=>bz['name']),bx=bw['filter'](bz=>!bu['test'](bz)&&!bv['test'](bz)),by=bx[0x0]??bw[0x0];if(by!==undefined){const bz=K('price_rebate_opens_after_days')??0x0,bA=K('price_rebate_closes_after_days')??0x7;let bB='price_rebate_claim';while(y['some'](bC=>bC['key']===bB))bB=bB+'_x';y['push']({'key':bB,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'stage2\x20#1\x20P-11\x20kernel-injected\x20PRICE-REBATE\x20claim\x20guard\x20(FLOWS\x20E28,\x20the\x20overcharge/mispricing\x20'+'remedy):\x20an\x20independent\x20pre-funded\x20rebate\x20pool\x20the\x20merchant\x20controls,\x20claimed\x20PROACTIVELY\x20by\x20the\x20'+'buyer\x20—\x20never\x20an\x20escrow\x20rail\x20(the\x20order\x27s\x20own\x20settlement\x20is\x20untouched;\x20nothing\x20is\x20deducted\x20from\x20'+('anyone).\x20Claim-allowed\x20SET\x20{'+bx['join'](',\x20')+'};\x20funding-class\x20AND\x20cancelled-class\x20finals\x20')+'are\x20EXCLUDED\x20(a\x20refunded\x20order\x20has\x20no\x20fulfilled\x20purchase\x20to\x20rebate\x20—\x20W5-03).\x20NO\x20rating\x20leg\x20and\x20NO\x20'+'late-evidence\x20leg:\x20an\x20overcharge\x20has\x20no\x20on-chain\x20evidence\x20face\x20(no\x20price\x20oracle,\x20red\x20line\x203)\x20—\x20the\x20'+'funding\x20input\x20IS\x20the\x20merchant\x27s\x20rebate\x20budget.\x20Cheaper\x20direct-sale\x20cure\x20disclosed\x20in\x20build_notes:\x20'+'fold\x20the\x20correction\x20into\x20the\x20quote\x20BEFORE\x20payment;\x20this\x20pool\x20only\x20remedies\x20an\x20ALREADY-collected\x20'+('mischarge.\x20Claim\x20window:\x20opens\x20'+bz+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry,\x20claimable\x20for\x20a\x20')+('further\x20'+bA+'\x20day(s).\x20Per-order\x20once\x20(template\x20record-gate).\x20Fixed\x20amount\x20tier:\x20fee_param\x20')+'price_rebate_claim_amount\x20(mount-side);\x20fail-closed\x20funding\x20(PRICE_REBATE_UNFUNDED,\x20INV-4\x20family).\x20'+'Resolve\x20this\x20key\x20via\x20guard_resolutions\x20to\x20override\x20the\x20mount\x20per\x20build.','params':{'reward_address':'price_rebate_pool','expected_pre_claim_node':bx[0x0],'expected_pre_claim_node_alt':bx[0x1]??by,'expected_pre_claim_node_alt2':bx[0x2]??by,'expected_pre_claim_node_alt3':bx[0x3]??by,'rating_repository':'','opens_after_days':String(bz),'closes_after_days':String(bA),'min_paid_amount':String(Math['max'](0x1,K('price_rebate_claim_amount')??0x1))}}),ac=bB;}}const ad=new Set(['wip_provenance','subscription_with_proof']),ae=Array['isArray'](f['adopted_module_ids'])?f['adopted_module_ids']['filter'](bC=>typeof bC==='string'):[],af=y['some'](bC=>bC['host']==='repository'||bC['template_id']==='pattern.repository_data_check'||bC['template_id']==='pattern.repository_write_authorization'||bC['template_id']==='tpl_repository_row_present'||bC['template_id']==='tpl_repository_row_present_signer'||bC['template_id']==='tpl_repository_row_exists_order_keyed'||bC['template_id']==='tpl_repository_row_equals_order_field'||bC['template_id']==='tpl_holder_confirm_evidence_gate')||ae['some'](bC=>ad['has'](bC)),ag=new Map(),ah=[],ai=new Map();b['guards']['forEach']((bC,bD)=>{const bE=windowLegDecl(bC['params']);if(bE!==undefined)ai['set'](bC['key']??bC['template_id']+'#'+bD,bE);});const aj=new Map();b['guards']['forEach']((bC,bD)=>{const bE=nodeGateDecl(bC['params']);if(bE!==undefined)aj['set'](bC['key']??bC['template_id']+'#'+bD,bE);});const ak=y['map'](bC=>bC['key']);for(const bC of Object['keys'](h??{})){if(u['has'](bC))continue;!F['has'](bC)&&o['push']({'code':'GUARD_RESOLUTION_UNKNOWN','detail':'guard_resolutions\x20key\x20\x27'+bC+'\x27\x20matches\x20no\x20guard\x20spec\x20key\x20declared\x20by\x20\x27'+e+'\x27.\x20'+('Legal\x20keys:\x20'+(ak['length']>0x0?ak['join'](',\x20'):'(none\x20—\x20this\x20template\x20declares\x20no\x20keyed\x20guards)')+'.\x20')+'An\x20unknown\x20key\x20was\x20previously\x20dropped\x20silently,\x20leaving\x20the\x20intended\x20guard\x20pending\x20while\x20the\x20build\x20looked\x20resolved.'});}for(const bD of y){const bE='guard_'+safeId(bD['key']),bF=p[bD['key']];let bG=bD['purpose'],bH,bI;if(bF?.['kind']==='inline')bH=normalizeInlineGuardTable(bF['table'],e),bI=bF['root'],bG=bF['description']??bD['purpose'];else{const bJ=bF===undefined||bF['kind']==='omit'&&!u['has'](bD['key'])||bF['kind']==='declare'?lookupBinding(bD,b,f):undefined,bK=bF?.['kind']==='template'?bF['template_id']:bD['template_id']['startsWith']('tpl_')?bD['template_id']:bJ?.['template_id'];if(bK!==undefined){if(bK==='tpl_allocator_node_gate_recover')q['add'](bD['key']);const bL={'service_name':e+'_service',...af?{'repository_name':e+'_evidence'}:{},...I!=='none'?{'review_repository':e+'_review'}:{},...b['arbitration_mode']!==undefined&&b['arbitration_mode']!=='none'?{'arbitration_name':e+'_arbitration'}:{},...b['fee_params'],...f,...bD['params'],...bJ!==undefined?bJ['params']:{},...bF?.['kind']==='template'?bF['params']:{}};if(bK==='tpl_repository_row_equals_order_field'&&bL['wip_item']===undefined){const bN=f['sales'],bO=Array['isArray'](bN)?bN['map'](bP=>bP!==null&&typeof bP==='object'&&typeof bP['name']==='string'?bP['name']:undefined)['filter'](bP=>bP!==undefined&&bP['trim']()!==''):[];if(bO['length']===0x1)bL['wip_item']=bO[0x0];}if(getTemplateById(bK)?.['marker_row_substring']===!![])for(const bP of['row_name','request_policy','provided_policy']){const bQ=bL[bP];if(typeof bQ!=='string'||bQ==='')continue;const bR=z['get'](bQ);if(!bR||bR['valueType']==='String')continue;o['push']({'code':'GUARD_MARKER_TYPE_MISMATCH','detail':'guard\x20\x27'+bD['key']+'\x27\x20('+bK+'):\x20marker-substring\x20gate\x20over\x20repository\x20policy\x20\x27'+bQ+'\x27\x20'+('(params.'+bP+'),\x20but\x20the\x20sibling\x20policy\x20(spec\x20\x27'+bR['specKey']+'\x27)\x20declares\x20value_type\x20')+('\x27'+bR['valueType']+'\x27.\x20The\x20chain\x20matches\x20stringContains\x20ONLY\x20against\x20String\x20row\x20values\x20')+'(repository.rs\x20predicate_matches\x20skips\x20every\x20non-Str\x20—\x20honest\x20no-match),\x20so\x20this\x20gate\x20is\x20'+'STRUCTURALLY\x20UNSATISFIABLE:\x20the\x20deployment\x20succeeds,\x20evidence\x20writes\x20succeed,\x20and\x20the\x20'+'gated\x20edge\x20can\x20never\x20fire\x20(mainnet\x20proof:\x20h1z\x20G4\x20—\x20the\x20bug-bounty\x20submit\x20edge\x20welded\x20shut\x20'+'on\x20an\x20Address-typed\x20\x27report\x27\x20policy).\x20Rebind\x20to\x20the\x20value-type-agnostic\x20'+'tpl_repository_row_exists_order_keyed,\x20or\x20change\x20the\x20policy\x20value_type\x20to\x20String.'});}const bM=fillGuardTemplate(bK,bL,a['windowProfile']??'production');if(!bM['ok'])o['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+bD['key']+'\x27\x20('+bK+'):\x20'+bM['error']});else{bH=bM['table'],bI=bM['root'];const bS=validateQuerySignatures(bI,bK,bD['key']);bS!==undefined&&o['push']({'code':'GUARD_QUERY_SIGNATURE','detail':bS});const bT=ai['get'](bD['key']);if(bT!==undefined){const bV=bL[bT['daysKey']],bW=typeof bV==='number'&&Number['isInteger'](bV)?bV:typeof bV==='string'&&bV['trim']()!==''&&Number['isInteger'](Number(bV))?Number(bV):undefined;if(bW===undefined||bW<=0x0)o['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+bD['key']+'\x27\x20('+bK+'):\x20the\x20entry\x20declares\x20a\x20closing\x20window\x20via\x20params.'+WINDOW_LEG_DAYS_PARAM+'\x20->\x20\x27'+bT['daysKey']+'\x27,\x20'+('but\x20the\x20merged\x20value\x20\x27'+String(bV)+'\x27\x20is\x20not\x20a\x20positive\x20integer\x20day\x20count.\x20Supply\x20the\x20fee\x20param\x20(or\x20an\x20input/params\x20override),\x20')+('or\x20drop\x20the\x20'+WINDOW_LEG_DAYS_PARAM+'/'+WINDOW_LEG_ANCHOR_PARAM+'\x20declaration\x20from\x20the\x20guard\x20entry.')});else{const bX=andClosingWindowLeg(bH,bI,bT['anchorNode'],bW,a['windowProfile']??'production');bH=bX['table'],bI=bX['root'];}}const bU=aj['get'](bD['key']);if(bU!==undefined){const bY=andNodeGateLeg(bH,bI,bU['nodes']);bH=bY['table'],bI=bY['root'];}}}}if(bH!==undefined){const bZ=x['has'](bD['key'])&&bI!==undefined&&!hasCallerIdentityLeg(bI);ag['set'](bD['key'],{'stepId':bE,'description':bZ?bG+'\x20(merchant-declared\x20exemption:\x20rail\x20\x27'+bD['key']+'\x27\x20ships\x20without\x20a\x20caller\x20identity\x20leg\x20—\x20'+x['get'](bD['key'])+')':bG,'table':bH,'root':normalizeLogicArity(bI)}),bD['step_id']=bE;}else!bD['template_id']['startsWith']('tpl_')&&getTemplateById(bD['template_id'])===undefined&&!GUARD_DESIGN_PATTERNS['some'](c0=>c0['id']===bD['template_id'])&&o['push']({'code':'GUARD_PATTERN_UNKNOWN','detail':'guard\x20\x27'+bD['key']+'\x27\x20of\x20\x27'+e+'\x27\x20references\x20design\x20\x27'+bD['template_id']+'\x27,\x20which\x20exists\x20in\x20neither\x20the\x20Guard\x20design-pattern\x20catalog\x20nor\x20the\x20guard-template\x20registry\x20—\x20'+'no\x20resolution\x20path\x20can\x20ever\x20fill\x20it\x20(guide\x20confirm,\x20guard_resolutions\x20and\x20module\x20plumbing\x20all\x20key\x20off\x20real\x20ids).\x20'+'Keeping\x20it\x20as\x20a\x20pending\x20design\x20would\x20leave\x20its\x20bound\x20path\x20UNGUARDED\x20behind\x20a\x20plausible\x20pending\x20label\x20'+'(bs-mn-261022\x20TPL-01:\x20nine\x20such\x20specs\x20compiled\x20into\x20a\x20machine\x20with\x20no\x20guards\x20on\x20the\x20grant-lifecycle\x20forwards).\x20'+'Correct\x20the\x20template\x27s\x20guard\x20spec\x20id\x20to\x20a\x20known\x20pattern,\x20or\x20resolve\x20this\x20spec\x20explicitly\x20(guard_resolutions\x20with\x20kind\x20\x27inline\x27).'}),ah['push'](bD);}const al=b['fee_param_defaults']??b['fee_params'],am=new Set();for(const c0 of[{'guards':b['guards'],'fee_params':b['fee_params'],'defaults':al},{'guards':y['filter'](c1=>c1['step_id']!==undefined&&Object['values'](c1['params']??{})['some'](c2=>typeof c2==='number'&&Number['isFinite'](c2))),'fee_params':b['fee_params'],'defaults':b['fee_params']}]){for(const c1 of feeParamCouplingMismatches(c0)){const c2=c1['key']+'::'+c1['param'];if(am['has'](c2))continue;am['add'](c2),o['push']({'code':'FEE_PARAM_COUPLING_MISMATCH','detail':'guard\x20\x27'+c1['key']+'\x27\x20('+c1['template_id']+')\x20claims\x20to\x20mirror\x20fee_param\x20\x27'+c1['param']+'\x27\x20('+c1['declared']+')\x20but\x20carries\x20no\x20matching\x20'+('numeric\x20literal\x20(params:\x20'+(c1['literals']['length']>0x0?c1['literals']['join'](',\x20'):'none')+').\x20The\x20guard\x20literal\x20is\x20the\x20ONLY\x20value\x20that\x20')+'becomes\x20on-chain\x20—\x20the\x20fee\x20param\x20the\x20merchant\x20sets\x20stays\x20decorative\x20(rex5-tn-261028\x20T-02).\x20'+('Re-sync\x20the\x20literal\x20with\x20fee_param\x20\x27'+c1['param']+'\x27\x20or\x20drop\x20the\x20coupling\x20claim\x20from\x20the\x20purpose.')});}}for(const c3 of feeParamUnlanded(b,b['fee_params'],p)){o['push']({'code':'FEE_PARAM_UNLANDED','detail':'fee_param\x20\x27'+c3['param']+'\x27\x20=\x20'+c3['value']+'\x20on\x20\x27'+b['id']+'\x27\x20lands\x20nowhere:\x20no\x20platform-take\x20landing,\x20no\x20FEE_PARAM_BINDINGS\x20row,\x20'+'no\x20allocator\x20value_from/value_from_complement,\x20no\x20mounted\x20guard-template\x20placeholder,\x20no\x20kernel\x20consumer,\x20no\x20time-instantiation\x20or\x20'+'merged-lock\x20knob,\x20and\x20no\x20identical\x20frozen\x20constant\x20in\x20the\x20shipped\x20shape\x20—\x20whoever\x20sets\x20it\x20(shipped\x20default\x20or\x20fee_overrides)\x20changes\x20'+'nothing\x20on\x20chain\x20while\x20the\x20money\x20shape\x20ignores\x20it\x20(cour-mn-261102-z5t8\x20①②).\x20'+'Fix\x20ONE\x20way:\x20zero\x20the\x20knob\x20(direct\x20sales\x20default),\x20wire\x20the\x20allocator\x20rows\x20to\x20it\x20explicitly\x20(value_from\x20/\x20value_from_complement\x20naming\x20the\x20key),\x20'+'or\x20declare\x20an\x20author-literal\x20FEE_PARAM_BINDINGS\x20row\x20so\x20the\x20value\x20provably\x20lands.'});}for(const c4 of evidencePolicyCollisions(b)){o['push']({'code':'EVIDENCE_POLICY_COLLISION','detail':'repository\x20policy\x20\x27'+c4['row_name']+'\x27\x20is\x20shared\x20by\x20'+c4['markers']['length']+'\x20evidence\x20kinds\x20('+c4['markers']['map'](c5=>'\x27'+c5+'\x27')['join'](',\x20')+')\x20'+('on\x20\x27'+b['id']+'\x27\x20—\x20the\x20repository\x20ledger\x20keys\x20each\x20row\x20by\x20(policy\x20name,\x20row\x20id),\x20and\x20order-scoped\x20rows\x20pin\x20the\x20row\x20id\x20to\x20the\x20order\x20address,\x20so\x20every\x20kind\x20writing\x20')+('under\x20policy\x20\x27'+c4['row_name']+'\x27\x20lands\x20on\x20the\x20SAME\x20order-scoped\x20row:\x20with\x20write_once\x20the\x20second\x20kind\x27s\x20write\x20aborts\x20')+'with\x20the\x20write-once\x20conflict\x20(E_POLICY_WRITE_ONCE_CONFLICT)\x20and\x20the\x20machine\x20bricks\x20mid-flow;\x20without\x20it\x20the\x20later\x20row\x20silently\x20'+'overwrites\x20the\x20earlier\x20stage\x27s\x20evidence\x20(F-12,\x20sso7-mn-261104).\x20'+('Doctrine:\x20ONE\x20EVIDENCE\x20KIND\x20PER\x20POLICY\x20(W5-13/pdd\x20F-04).\x20Colliding\x20guards:\x20'+c4['members']['join'](';\x20')+'.\x20')+'Split\x20into\x20per-kind\x20policies\x20(evidence_<kind>,\x20write_once)\x20with\x20one\x20write\x20guard\x20each,\x20and\x20re-point\x20every\x20reader\x27s\x20'+'row_name/binding\x20derive.'});}for(const c5 of windowMathMismatches(b)){o['push']({'code':'WINDOW_MATH_MISMATCH','detail':c5['rule']==='R-WINDOW-MATH-ZERO'?'settlement\x20window\x20fee_param\x20\x27'+c5['settle_param']+'\x27\x20=\x20'+c5['settle_value']+':\x20the\x20escrow\x20releases\x20the\x20moment\x20the\x20anchor\x20node\x20is\x20entered,\x20so\x20every\x20buyer\x20window\x20is\x20structurally\x20dead\x20from\x20the\x20first\x20order\x20(ksk4\x20F-35).\x20'+'Set\x20it\x20to\x20a\x20positive\x20duration\x20that\x20covers\x20the\x20after-sales\x20schedule.':'settlement\x20window\x20fee_param\x20\x27'+c5['settle_param']+'\x27\x20('+c5['settle_value']+')\x20opens\x20the\x20release\x20before\x20buyer\x20window\x20'+c5['violates']+'\x20closes\x20—\x20the\x20refund\x20rail\x20is\x20structurally\x20dead\x20from\x20the\x20release\x20moment,\x20since\x20settlement\x20drains\x20the\x20allocation\x20balance\x20and\x20every\x20later\x20refund\x20leg\x20aborts\x20on\x20empty\x20(ktt3\x20F-05).\x20'+'This\x20is\x20an\x20INEQUALITY\x20check\x20on\x20unit-normalized\x20values\x20(mtwm\x20F-MT-03\x20misdiagnosis\x20note):\x20it\x20never\x20compares\x20against\x20template\x20defaults,\x20so\x20compressed\x20test\x20values\x20are\x20legal\x20as\x20long\x20as\x20the\x20ordering\x20holds\x20—\x20compress\x20proportionally\x20so\x20settle\x20stays\x20>=\x20every\x20buyer\x20window.\x20'+'Raise\x20the\x20settlement\x20window\x20to\x20>=\x20the\x20largest\x20buyer\x20window,\x20or\x20shorten\x20the\x20buyer\x20window\x20to\x20match\x20the\x20real\x20policy;\x20re-sync\x20guards[].params\x20with\x20the\x20new\x20fee_params\x20value\x20(FEE_PARAM_COUPLING_MISMATCH).'});}const an=incentiveRatingFloorClaims(b);if(an['length']>0x0){const c6=[...new Set(an['map'](c8=>'\x27'+c8['excerpt']+'\x27\x20('+c8['field']+')'))]['join'](',\x20'),c7=[...new Set(an['map'](c8=>c8['claimed']))];if(I!=='review_reward')o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20rating\x20floor\x20('+c6+')\x20but\x20review_mode\x20is\x20\x27'+I+'\x27\x20—\x20no\x20reward\x20track\x20'+'exists,\x20so\x20the\x20promise\x20pays\x20nothing\x20regardless\x20of\x20rating\x20(ktt3\x20F02/F12\x20residual).\x20'+('Build\x20with\x20review_mode\x20\x27review_reward\x27\x20and\x20reward_rating_floor\x20=\x20'+c7['join']('/')+',\x20or\x20drop\x20the\x20promise\x20from\x20the\x20prose.')});else{const c8=y['find'](cf=>cf['host']==='reward'),c9=c8!==undefined?p[c8['key']]:undefined,ca=c9?.['kind']==='template'&&c9['params']?{...c8?.['params']??{},...c9['params']}:c8?.['params']??{},cb=ca['rating_floor'],cc=typeof cb==='number'&&Number['isFinite'](cb)?cb:typeof cb==='string'&&cb['trim']()!==''&&Number['isFinite'](Number(cb))?Number(cb):undefined,cd=Math['max'](0x0,...an['filter'](cf=>cf['kind']==='praise')['map'](cf=>cf['claimed'])),ce=[...new Set(an['filter'](cf=>cf['kind']==='numeric')['map'](cf=>cf['claimed']))];if(cc===undefined||cc<=0x0){const cf=c9?.['kind']==='inline'?'the\x20claim\x20guard\x20is\x20a\x20hand-designed\x20inline\x20root\x20compile\x20cannot\x20statically\x20parse\x20—\x20verify\x20its\x20rating\x20leg\x20yourself':'the\x20reward\x20track\x20carries\x20NO\x20rating\x20leg\x20(reward_rating_floor:\x200\x20explicit\x20opt-out,\x20or\x20a\x20reward\x20spec\x20without\x20rating_floor\x20—\x20the\x20S14\x20default\x20only\x20arms\x20the\x20kernel\x20DEFAULT\x20assembly)';o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20rating\x20floor\x20('+c6+')\x20but\x20the\x20compiled\x20reward\x20track\x20carries\x20NO\x20statically\x20visible\x20'+('rating\x20leg:\x20'+cf+'\x20—\x20the\x20bounty\x20pays\x20even\x20at\x20rating\x201\x20while\x20the\x20store\x20page\x20advertises\x20the\x20floor\x20')+('(ktt3\x20F02/F12\x20residual;\x20S14\x20default\x20arms\x20'+L+').\x20Pass\x20reward_rating_floor\x20=\x20'+c7['join']('/')+'\x20to\x20arm\x20it,\x20or\x20drop\x20the\x20promise\x20from\x20the\x20prose.')});}else{if(cd>0x0&&cc<cd)o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20GOOD-review\x20reward\x20('+c6+')\x20—\x20a\x20praise\x20promise\x20derives\x20to\x20floor\x20'+(cd+'\x20(good\x20==\x204+,\x20S14)\x20—\x20but\x20the\x20armed\x20floor\x20is\x20'+cc+':\x20ratings\x20between\x20'+cc+'\x20')+('and\x20'+(cd-0x1)+'\x20would\x20PAY\x20while\x20the\x20store\x20page\x20advertises\x20a\x20good-review-only\x20bounty\x20')+('(ktt3\x20F02/F12\x20residual,\x20S14\x20praise\x20shape).\x20Raise\x20reward_rating_floor\x20to\x20>=\x20'+cd+',\x20or\x20rewrite\x20the\x20prose.')});else ce['length']>0x0&&!ce['includes'](cc)&&o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20rating\x20floor\x20'+ce['join']('/')+'\x20('+c6+')\x20but\x20the\x20armed\x20floor\x20is\x20'+cc+'\x20—\x20'+'orders\x20at\x20the\x20promised\x20rating\x20would\x20be\x20REJECTED\x20by\x20the\x20claim\x20guard\x20while\x20the\x20store\x20page\x20advertises\x20it\x20'+'(ktt3\x20F02/F12\x20residual).\x20Align\x20reward_rating_floor\x20with\x20the\x20prose,\x20or\x20rewrite\x20the\x20prose.'});}}}if(I==='review_reward'){const cg=rewardWindowDayClaims(b);if(cg['length']>0x0){const ch=y['find'](cj=>cj['host']==='reward'),ci=ch!==undefined?p[ch['key']]:undefined;if(ch!==undefined&&ci?.['kind']!=='inline'){const cj=ci?.['kind']==='template'&&ci['params']?{...ch['params']??{},...ci['params']}:ch['params']??{},ck=cp=>typeof cp==='number'&&Number['isFinite'](cp)?cp:typeof cp==='string'&&cp['trim']()!==''&&Number['isFinite'](Number(cp))?Number(cp):undefined,cl=ck(cj['closes_after_days']),cm=a1?a1['closes']/0x5265c00:cl??Y,cn=[...new Set(cg['map'](cp=>cp['claimed']))],co=[...new Set(cg['map'](cp=>'\x27'+cp['excerpt']+'\x27\x20('+cp['field']+')'))]['join'](',\x20');!cn['includes'](cm)&&o['push']({'code':'INCENTIVE_WINDOW_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20claimable\x20span\x20of\x20'+cn['join']('/')+'\x20day(s)\x20('+co+')\x20but\x20the\x20compiled\x20'+('claim\x20window\x20closes\x20'+cm+'\x20day(s)\x20after\x20it\x20opens\x20(closes_after_days')+(cl!==undefined?'\x20from\x20the\x20declared\x20reward\x20spec\x20params)':'\x20—\x20kernel\x20default\x20assembly,\x20bsw4\x20F-11\x20span\x20'+R)+'):\x20orders\x20claimed\x20inside\x20the\x20ADVERTISED\x20window\x20would\x20abort\x20E_GUARD_EXPIRED\x20while\x20the\x20store\x20page\x20advertises\x20it\x20'+'(h1w9\x20F-15:\x20\x227\x20days\x20to\x20claim\x22\x20advertising\x20vs\x20the\x20compiled\x2014d).\x20Align\x20the\x20window\x20—\x20pass\x20'+('reward_claim_closes_after_days\x20=\x20'+cn['join']('/')+'\x20(kernel\x20default\x20assembly)\x20or\x20pin\x20the\x20reward\x20spec\x27s\x20')+'closes_after_days\x20param\x20to\x20it\x20—\x20or\x20rewrite\x20the\x20prose.'});}}}const ao=new Set(k['flatMap'](cp=>(cp['from']??[])['map'](cq=>typeof cq==='string'?undefined:cq['guard_key'])['filter'](cq=>typeof cq==='string')));for(const cp of l){typeof cp['guard_key']==='string'&&cp['recipient']==='guard_identifier'&&cp['recipient_key']===String(TASK_BINDING_SLOT)&&ao['add'](cp['guard_key']);}const ap=new Set();for(const cq of y){if(!ao['has'](cq['key'])&&!q['has'](cq['key']))continue;const cr=ag['get'](cq['key']);if(cr===undefined)continue;const cs=cr['table']['some'](ct=>ct['identifier']===TASK_BINDING_SLOT);if(cs)continue;ag['set'](cq['key'],{...cr,'table':[...cr['table'],{'identifier':TASK_BINDING_SLOT,'b_submission':!![],'value_type':'Address','name':'task_binding\x20order\x20anchor\x20(protocol\x20slot\x20254;\x20written\x20by\x20order\x20creation)'}]}),ap['add'](cq['key']);}for(const ct of y){if(ct['host']!=='reward')continue;const cu=ag['get'](ct['key']);if(cu?.['root']===undefined)continue;const cv=cu['table']['some'](cx=>{const cy=cx;if(cy['b_submission']!==!![])return![];if(cy['object_type']==='Order')return!![];const cz=cy['name'];return typeof cz==='string'&&/order/i['test'](cz);}),cw=verifyGuardBinding({'host':'reward_claim','root':cu['root'],'facts':{'order_submission_declared':cv}});cw['some'](cx=>cx['code']==='RC_NO_ORDER_ANCHOR')&&o['push']({'code':'REWARD_WINDOW_UNRESOLVABLE','detail':'reward\x20claim\x20guard\x20\x27'+ct['key']+'\x27\x20of\x20\x27'+e+'\x27\x20carries\x20order./progress.\x20window\x20legs\x20that\x20have\x20NOTHING\x20to\x20resolve\x20against\x20in\x20the\x20'+'reward\x20context\x20(the\x20resolved\x20guard\x20table\x20declares\x20no\x20order-slot\x20submission)\x20—\x20the\x20legs\x20never\x20evaluate,\x20yet\x20they\x20fire\x20as\x20the\x20claim\x20'+'window\x20money\x20gate,\x20so\x20a\x20day-0\x20claim\x20releases\x20the\x20bounty\x20while\x20the\x20disclosed\x20OPENS/CLOSES\x20schedule\x20is\x20fiction\x20(cour\x20C2\x20⑤,\x20T2).\x20'+'Fix\x20ONE\x20way:\x20mount\x20a\x20guard\x20template\x20that\x20declares\x20the\x20order-slot\x20submission\x20(identifier\x200,\x20b_submission,\x20object_type\x20Order\x20—\x20e.g.\x20tpl_reward_one_time_claim),\x20'+'or\x20drop\x20the\x20order./progress.\x20window\x20legs\x20and\x20gate\x20the\x20claim\x20on\x20the\x20reward-context\x20facts\x20(claim-allowed\x20node\x20set,\x20rating\x20leg,\x20open/close\x20day\x20twins).'});}{const cx=b['settlement_window_merge'];if(cx!==undefined&&cx['length']>0x0){const cy=b['fee_params'],cz=cD=>{const cE=f[cD]??cy[cD];if(cE===undefined||cE===null)return undefined;const cF=typeof cE==='number'?cE:Number(cE);return Number['isFinite'](cF)&&cF>=0x0?cF:undefined;};let cA=0x0;for(const cD of cx){const cE=cz(cD);if(cE===undefined){cA=undefined;break;}cA+=cE;}const cB='settlement_window_merge\x20['+cx['join']('\x20+\x20')+']',cC=y['find'](cF=>{const cG=timeInstantiationFor(b['id'],cF['key']);return cG!==undefined&&cG['direction']==='lower'&&cG['days']!==undefined&&cx['includes'](cG['days']);});if(cA===undefined)o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cB+':\x20a\x20merged\x20window\x20has\x20no\x20readable\x20day\x20value,\x20so\x20the\x20effective\x20release\x20lock\x20cannot\x20be\x20'+'determined.\x20Declare\x20every\x20merged\x20key\x20as\x20a\x20numeric\x20fee_param\x20(or\x20supply\x20it\x20as\x20an\x20input).'});else{if(cC===undefined)o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cB+'\x20(=\x20'+cA+'\x20days)\x20declares\x20a\x20merged\x20release\x20lock,\x20but\x20no\x20compiled\x20settlement\x20gate\x20'+'(\x22lower\x22\x20time\x20instantiation\x20whose\x20day\x20knob\x20is\x20one\x20of\x20the\x20merged\x20keys)\x20carries\x20it\x20—\x20the\x20'+'declaration\x20would\x20be\x20prose\x20while\x20the\x20escrow\x20releases\x20before\x20the\x20merged\x20windows\x20finish.'});else{if(p[cC['key']]?.['kind']!=='inline'&&ag['has'](cC['key'])){const cF=ag['get'](cC['key'])['table'];let cG;for(const cI of cF){if(cI['identifier']!==0x3)continue;const cJ=cI['value'],cK=typeof cJ==='number'?cJ:Number(cJ);if(Number['isFinite'](cK))cG=cK;}const cH=resolveLocalWindowMs(String(cA),'day',a['windowProfile']??'production');if(cG!==cA&&cG!==cH){const cL=cG===undefined?'(none)':cG%MS_PER_DAY===0x0?cG+'\x20('+cG/MS_PER_DAY+'\x20days)':cG+'\x20ms';o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cB+'\x20=\x20'+cA+'\x20days\x20by\x20declaration,\x20but\x20guard\x20\x27'+cC['key']+'\x27\x20compiled\x20its\x20length\x20'+('literal\x20to\x20'+cL+'\x20(expected\x20'+cA+'\x20days,\x20')+('or\x20its\x20NW-1b\x20local\x20fold\x20of\x20'+(cH===null?'(windowless)':cH+'\x20ms')+').\x20The\x20escrow\x20would\x20')+'release\x20early\x20while\x20a\x20merged\x20buyer\x20window\x20can\x20still\x20draw\x20it.'});}}}}}}for(const [cM,cN]of ag){const cO=normalizeGuardRowNames(cN['table'],cN['description'],MAX_GUARD_DESCRIPTION_CONTENT);(cO['table']!==cN['table']||cO['description']!==cN['description'])&&ag['set'](cM,{...cN,'table':cO['table'],'description':typeof cO['description']==='string'?cO['description']:cN['description']});}for(const cP of y){if(cP['host']!=='reward')continue;const cQ=cP['params']??{},cR=['expected_pre_claim_node','expected_pre_claim_node_alt','expected_pre_claim_node_alt2','expected_pre_claim_node_alt3'],cS=cR['map'](cV=>cQ[cV])['filter'](cV=>typeof cV==='string'),cT=cS['length']!==new Set(cS)['size'];if(!cT)continue;const cU=k['filter'](cV=>(REVIEW_OUTCOME_CLASS['test'](cV['name'])||cV['semantic_role']==='final')&&!cS['includes'](cV['name']))['map'](cV=>cV['name']);if(cU['length']===0x0)continue;cP['purpose']=cP['purpose']+'\x20REWARD_CLAIM_NODESET_DISPLACED\x20(kq4x\x20P-018):\x20the\x20expected_pre_claim_node*\x20slots\x20carry\x20a\x20'+('duplicate\x20same-value\x20leg\x20('+cS['join'](',\x20')+')\x20while\x20the\x20machine\x20shape\x20mounts\x20claim-eligible\x20node(s)\x20NOT\x20in\x20')+('the\x20set:\x20'+cU['join'](',\x20')+'\x20—\x20those\x20nodes\x20can\x20never\x20open\x20this\x20bounty.\x20If\x20they\x20SHOULD,\x20pin\x20the\x20full\x20set\x20')+'with\x20explicit\x20distinct\x20expected_pre_claim_node\x20/\x20_alt\x20/\x20_alt2\x20/\x20_alt3\x20params\x20on\x20this\x20host:\x22reward\x22\x20spec\x20'+'(a\x20two-slot\x20primary+alt\x20form\x20is\x20legal\x20—\x20unused\x20alts\x20may\x20stay\x20undeclared).';}return{'guardSpecs':y,'resolutions':p,'resolvedGuards':ag,'unresolved':ah,'omitKeys':u,'recoverTwinRails':q,'declareReasons':x,'specByKey':F,'slot254Injected':ap,'injectedOrderHolderKeys':B,'edgeBoundKeys':ao,'derived':{'reviewMode':I,'rewardMark':J,'needsRepository':af,'experienceClaimKey':a9,'priceRebateClaimKey':ac},'blockers':o};}
@@ -1 +1 @@
1
- import{hasMsKnobBinding,hoursParamFractionSafe}from'../knowledge/fee-param-bindings.js';export function normalizeCompileInputs(a,b,c){const d=[],e=[];b['review_reward_pool']!==undefined&&b['reward_funding']===undefined&&(b={...b,'reward_funding':b['review_reward_pool']});{const f=a['fee_params'],g=f['campaign_deadline_ms']!==undefined,h=f['campaign_duration_days']!==undefined,i=b['campaign_duration_hours']!==undefined;if(g&&(h||i)){const j=w=>{if(w===undefined||w===null||w==='')return undefined;const x=typeof w==='number'?w:Number(w);return Number['isFinite'](x)?x:undefined;},l=j(b['campaign_deadline_ms']),m=j(b['campaign_duration_days']),o=j(b['campaign_duration_hours']),p=j(f['campaign_deadline_ms']),q=j(f['campaign_duration_days']),r=m!==undefined?m*0x5265c00:o!==undefined?o*0x36ee80:q!==undefined?q*0x5265c00:undefined,s=m!==undefined?'campaign_duration_days':o!==undefined?'campaign_duration_hours':'campaign_duration_days',t=m??o??q??0x0,u=l!==undefined&&l>0x0?l:p,v=m!==undefined||o!==undefined||u===undefined||u===0x0;if(c!==undefined&&r!==undefined&&r>0x0&&v){const w=Math['round'](c+r),x=m!==undefined?Math['round'](c+m*0x5265c00):undefined,y=o!==undefined?Math['round'](c+o*0x36ee80):undefined,z=[u!==undefined&&u>0x0?u:undefined,x,y]['filter'](A=>A!==undefined);new Set(z)['size']>0x1?d['push']({'code':'CAMPAIGN_DEADLINE_CONFLICT','detail':'the\x20campaign\x20answers\x20name\x20different\x20instants:\x20'+[m!==undefined?'campaign_duration_days\x20('+m+'\x20d\x20→\x20'+x+'\x20at\x20this\x20build\x20instant)':undefined,o!==undefined?'campaign_duration_hours\x20('+o+'\x20h\x20→\x20'+y+'\x20at\x20this\x20build\x20instant)':undefined,u!==undefined&&u>0x0?'campaign_deadline_ms\x20('+u+')':undefined]['filter'](Boolean)['join'](',\x20')+'.\x20ONE\x20campaign\x20has\x20ONE\x20deadline:\x20pass\x20ONE\x20length\x20(days\x20OR\x20hours)\x20or\x20the\x20absolute\x20timestamp,\x20and\x20drop\x20the\x20others\x20(0\x20=\x20unset\x20is\x20not\x20a\x20deadline).'}):(b={...b,'campaign_deadline_ms':w},e['push']({'param':'campaign_deadline_ms','from':s,'input':t,'value':w,'at_ms':c,'note':'converted\x20at\x20generation:\x20'+t+'\x20'+(s==='campaign_duration_hours'?'hour(s)':'day(s)')+'\x20after\x20the\x20build\x20instant\x20'+('('+new Date(c)['toISOString']()+')\x20became\x20the\x20ABSOLUTE\x20campaign\x20')+('deadline\x20epoch-ms\x20'+w+'\x20—\x20the\x20value\x20every\x20deadline\x20gate\x20and\x20the\x20pre-deadline\x20')+'withdrawal\x20window\x20now\x20read\x20on\x20chain'}));}}}{const A=a['fee_params'];for(const [B,C]of Object['entries'](b)){if(!/_days$/['test'](B)||B==='campaign_duration_days'||!(B in A))continue;const D=typeof C==='number'?C:typeof C==='string'&&C['trim']()!==''?Number(C):NaN;Number['isFinite'](D)&&!Number['isInteger'](D)&&d['push']({'code':'WINDOW_TRUNCATION_ZERO','detail':'input\x20\x27'+B+'\x27\x20=\x20'+String(C)+'\x20is\x20a\x20FRACTIONAL\x20day\x20count\x20—\x20the\x20knob\x20lands\x20in\x20a\x20guard-table\x20'+('U64\x20slot\x20as\x20a\x20DAY\x20COUNT,\x20which\x20BCS\x20truncates\x20to\x20'+String(Math['trunc'](D))+':\x20any\x20`<=`\x20closing\x20window\x20')+'it\x20feeds\x20computes\x20anchor\x20+\x200\x20and\x20welds\x20shut\x20the\x20instant\x20its\x20anchor\x20entry\x20lands\x20(Guards\x20are\x20'+'immutable\x20—\x20the\x20live\x20run\x20compiled\x20a\x200.002-day\x20test\x20window\x20into\x20a\x20permanently\x20closed\x20review\x20rail).\x20'+('Pass\x20whole\x20days,\x20or\x20answer\x20the\x20PARALLEL\x20\x27'+B['slice'](0x0,-'_days'['length'])+'_ms\x27\x20knob\x20instead\x20')+'(e.g.\x20review_window_ms:\x20600000\x20=\x20a\x2010-minute\x20window)\x20—\x20the\x20compiler\x20then\x20emits\x20the\x20'+'ms-denominated\x20slot\x20pair\x20(duration\x20in\x20ms\x20beside\x20a\x20day-factor\x20of\x201).'});}}{const E=a['fee_params'];for(const [F,G]of Object['entries'](b)){if(!/_hours$/['test'](F)&&!/_minutes$/['test'](F)||!(F in E))continue;const H=typeof G==='number'?G:typeof G==='string'&&G['trim']()!==''?Number(G):NaN;Number['isFinite'](H)&&!Number['isInteger'](H)&&!hoursParamFractionSafe(a['id'],F)&&d['push']({'code':'WINDOW_TRUNCATION_ZERO','detail':'input\x20\x27'+F+'\x27\x20=\x20'+String(G)+'\x20is\x20a\x20FRACTIONAL\x20hour\x20count\x20whose\x20landing\x20on\x20\x27'+a['id']+'\x27\x20is\x20a\x20'+('U64\x20slot\x20in\x20the\x20param\x27s\x20OWN\x20unit\x20(a\x20'+(/_minutes$/['test'](F)?'minute':'hour')+'-denominated\x20table\x20row,\x20')+('not\x20a\x20duration_ms\x20conversion)\x20—\x20BCS\x20truncates\x20it\x20to\x20'+String(Math['trunc'](H))+':\x20the\x20band\x20or\x20window\x20the\x20')+'slot\x20bounds\x20collapses\x20to\x200\x20(Guards\x20are\x20immutable\x20—\x20the\x20mtw-mainnet\x20run\x20fed\x200.5\x20hours\x20to\x20the\x20'+'travel\x20fee\x20ladder\x20and\x20the\x20tier\x20seam\x20compiled\x20to\x20tier\x20+\x200,\x20melting\x20two\x20cancellation\x20bands\x20into\x20'+'one).\x20Pass\x20a\x20whole\x20number,\x20or\x20resolve\x20the\x20guard\x20via\x20guard_resolutions\x20with\x20an\x20inline\x20'+'ms-denominated\x20table\x20(duration_ms)\x20where\x20the\x20fraction\x20is\x20representable.'});}}{const I=a['fee_params'];for(const [J,K]of Object['entries'](b)){if(!/_ms$/['test'](J))continue;const L=J['slice'](0x0,-'_ms'['length']),M=L+'_days',N=L+'_hours',O=M in I?M:N in I?N:undefined;if(O===undefined)continue;if(typeof K==='number'&&!Number['isFinite'](K))continue;if(typeof K==='string'&&K['trim']()!==''&&!Number['isFinite'](Number(K)))continue;hasMsKnobBinding(a['id'],O)?b[O]!==undefined&&d['push']({'code':'WINDOW_UNIT_CONFLICT','detail':'inputs\x20answer\x20BOTH\x20spellings\x20of\x20one\x20window:\x20\x27'+O+'\x27\x20=\x20'+String(b[O])+'\x20AND\x20'+('\x27'+J+'\x27\x20=\x20'+String(K)+'\x20—\x20ONE\x20window\x20has\x20ONE\x20length,\x20and\x20silently\x20preferring\x20either\x20answer\x20')+('ships\x20a\x20clock\x20the\x20other\x20knob\x20was\x20supposed\x20to\x20move.\x20The\x20\x27'+J+'\x27\x20answer\x20REPLACES\x20the\x20')+((O['endsWith']('_days')?'day':'hour')+'\x20answer\x20(it\x20lands\x20the\x20ms\x20slot\x20pair:\x20duration_ms\x20at\x20')+'scale\x201);\x20pass\x20ONE\x20of\x20the\x20two\x20and\x20drop\x20the\x20other.'}):d['push']({'code':'WINDOW_MS_UNSUPPORTED','detail':'input\x20\x27'+J+'\x27\x20=\x20'+String(K)+'\x20has\x20no\x20millisecond\x20landing:\x20the\x20\x27'+O+'\x27\x20window\x20on\x20'+('\x27'+a['id']+'\x27\x20resolves\x20to\x20a\x20guard\x20form\x20with\x20no\x20ms\x20twin\x20(a\x20multi-mount\x20')+'history\x20twin\x20or\x20a\x20hand-written\x20template),\x20so\x20the\x20value\x20would\x20compile\x20nowhere\x20while\x20'+('the\x20base\x20answer\x20silently\x20wins.\x20Drop\x20the\x20\x27'+J+'\x27\x20input\x20and\x20pass\x20whole\x20')+((O['endsWith']('_days')?'days':'hours')+',\x20or\x20resolve\x20the\x20')+'guard\x20explicitly\x20via\x20guard_resolutions\x20with\x20an\x20inline\x20ms-denominated\x20table.'});}}return{'inputs':b,'derivedParams':e,'blockers':d};}export function applyConditionalSelectors(a,b){const d=[],f=new Set();for(const n of a['conditional_guards']??[]){const o=b[n['param']]??a['fee_params'][n['param']];if(o!==n['emit_value'])f['add'](n['guard_key']);}{const p=new Map();for(const q of a['conditional_guards']??[]){const r=p['get'](q['param']);if(r===undefined)p['set'](q['param'],new Set(q['values']??[]));else{for(const s of q['values']??[])r['add'](s);}}for(const [t,u]of p){if(u['size']===0x0)continue;const w=b[t];if(w===undefined||w===null||w==='')continue;const x=String(w);if(u['has'](x))continue;d['push']({'code':'SELECTOR_VALUE_UNKNOWN','detail':'build\x20input\x20\x27'+t+'\x27\x20=\x20\x27'+x+'\x27\x20is\x20outside\x20the\x20value\x20set\x20this\x20template\x20accepts\x20'+('('+[...u]['join']('\x20|\x20')+').\x20The\x20param\x20drives\x20a\x20conditional\x20guard\x20emission,\x20so\x20an\x20out-of-set\x20answer\x20')+'used\x20to\x20compile\x20the\x20DEFAULT\x20business\x20model\x20silently\x20instead\x20of\x20the\x20one\x20asked\x20for\x20—\x20on\x20the\x20'+'storefront_mode\x20/\x20deposit_exit_policy\x20families\x20that\x20means\x20a\x20public\x20storefront\x20or\x20a\x20refunded\x20deposit\x20'+'with\x20no\x20warning\x20at\x20all.\x20Answer\x20one\x20of\x20the\x20accepted\x20values,\x20or\x20drop\x20the\x20input\x20to\x20take\x20the\x20declared\x20'+('default\x20(\x27'+String(a['fee_params'][t]??'none')+'\x27).')});}}const g=new Map();for(const y of a['conditional_guards']??[]){g['set'](y['param'],(g['get'](y['param'])??0x0)+0x1);}const h=new Set((a['conditional_guards']??[])['filter'](z=>(g['get'](z['param'])??0x0)>0x1)['map'](z=>z['guard_key'])),i=new Set([...f]['filter'](z=>h['has'](z))),j=i['size']>0x0?a['machine_shape']['map'](z=>({...z,'from':(z['from']??[])['filter'](A=>typeof A==='string'||A['guard_key']===undefined||!i['has'](A['guard_key']))})):a['machine_shape'],k=i['size']>0x0?(a['allocator']['rows']??[])['filter'](z=>z['guard_key']===undefined||!i['has'](z['guard_key'])):a['allocator']['rows']??[],l=new Map();for(const z of a['conditional_guards']??[]){let A=l['get'](z['param']);A===undefined&&(A={'kept':[],'pruned':[],'values':new Set(z['values']??[])},l['set'](z['param'],A));for(const B of z['values']??[])A['values']['add'](B);(f['has'](z['guard_key'])?A['pruned']:A['kept'])['push'](z['guard_key']);}const m=[...l['entries']()]['map'](([C,D])=>{const E=b[C]??a['fee_params'][C];return{'param':C,'answered':E===undefined||E===null?null:String(E),'declared_values':[...D['values']],'kept':D['kept'],'pruned':D['pruned']};});return{'dropKeys':f,'selectorDroppedKeys':i,'shape':j,'rows':k,'blockers':d,'selectionReport':m};}
1
+ import{hasMsKnobBinding,timeParamFractionSafe}from'../knowledge/fee-param-bindings.js';import{resolveLocalWindowMs}from'../knowledge/time-units.js';export function normalizeCompileInputs(a,b,c,d='production'){const e=[],f=[];b['review_reward_pool']!==undefined&&b['reward_funding']===undefined&&(b={...b,'reward_funding':b['review_reward_pool']});{const g=a['fee_params'],h=g['campaign_deadline_ms']!==undefined,i=g['campaign_duration_days']!==undefined,j=b['campaign_duration_hours']!==undefined;if(h&&(i||j)){const l=y=>{if(y===undefined||y===null||y==='')return undefined;const z=typeof y==='number'?y:Number(y);return Number['isFinite'](z)?z:undefined;},m=l(b['campaign_deadline_ms']),o=l(b['campaign_duration_days']),p=l(b['campaign_duration_hours']),q=l(g['campaign_deadline_ms']),r=l(g['campaign_duration_days']),s=(y,z)=>y===undefined?undefined:resolveLocalWindowMs(y,z,d)??0x0,t=o!==undefined?s(o,'day'):p!==undefined?s(p,'hour'):r!==undefined?s(r,'day'):undefined,u=o!==undefined?'campaign_duration_days':p!==undefined?'campaign_duration_hours':'campaign_duration_days',v=o??p??r??0x0,w=m!==undefined&&m>0x0?m:q,x=o!==undefined||p!==undefined||w===undefined||w===0x0;if(c!==undefined&&t!==undefined&&t>0x0&&x){const y=Math['round'](c+t),z=o!==undefined?Math['round'](c+(s(o,'day')??0x0)):undefined,A=p!==undefined?Math['round'](c+(s(p,'hour')??0x0)):undefined,B=[w!==undefined&&w>0x0?w:undefined,z,A]['filter'](C=>C!==undefined);new Set(B)['size']>0x1?e['push']({'code':'CAMPAIGN_DEADLINE_CONFLICT','detail':'the\x20campaign\x20answers\x20name\x20different\x20instants:\x20'+[o!==undefined?'campaign_duration_days\x20('+o+'\x20d\x20→\x20'+z+'\x20at\x20this\x20build\x20instant)':undefined,p!==undefined?'campaign_duration_hours\x20('+p+'\x20h\x20→\x20'+A+'\x20at\x20this\x20build\x20instant)':undefined,w!==undefined&&w>0x0?'campaign_deadline_ms\x20('+w+')':undefined]['filter'](Boolean)['join'](',\x20')+'.\x20ONE\x20campaign\x20has\x20ONE\x20deadline:\x20pass\x20ONE\x20length\x20(days\x20OR\x20hours)\x20or\x20the\x20absolute\x20timestamp,\x20and\x20drop\x20the\x20others\x20(0\x20=\x20unset\x20is\x20not\x20a\x20deadline).'}):(b={...b,'campaign_deadline_ms':y},f['push']({'param':'campaign_deadline_ms','from':u,'input':v,'value':y,'at_ms':c,'note':'converted\x20at\x20generation:\x20'+v+'\x20'+(u==='campaign_duration_hours'?'hour(s)':'day(s)')+'\x20after\x20the\x20build\x20instant\x20'+('('+new Date(c)['toISOString']()+')\x20became\x20the\x20ABSOLUTE\x20campaign\x20')+('deadline\x20epoch-ms\x20'+y+'\x20—\x20the\x20value\x20every\x20deadline\x20gate\x20and\x20the\x20pre-deadline\x20')+'withdrawal\x20window\x20now\x20read\x20on\x20chain'}));}}}{const C=a['fee_params'];for(const [D,E]of Object['entries'](b)){if(!/_days$/['test'](D)||D==='campaign_duration_days'||!(D in C))continue;const F=typeof E==='number'?E:typeof E==='string'&&E['trim']()!==''?Number(E):NaN;if(!Number['isFinite'](F)||Number['isInteger'](F))continue;const G=Math['round'](F*0x5265c00);if(timeParamFractionSafe(a['id'],D)&&G>=0x1)continue;e['push']({'code':'WINDOW_TRUNCATION_ZERO','detail':'input\x20\x27'+D+'\x27\x20=\x20'+String(E)+'\x20is\x20a\x20FRACTIONAL\x20day\x20count\x20that\x20cannot\x20be\x20represented\x20on\x20\x27'+a['id']+'\x27:\x20'+(timeParamFractionSafe(a['id'],D)?'the\x20folded\x20length\x20rounds\x20to\x20'+String(G)+'\x20ms\x20—\x20a\x20sub-millisecond\x20window\x20is\x20still\x200\x20on\x20chain,\x20'+'so\x20any\x20`<=`\x20closing\x20window\x20it\x20feeds\x20welds\x20shut\x20the\x20instant\x20its\x20anchor\x20entry\x20lands.\x20':'its\x20landing\x20is\x20a\x20raw\x20U64\x20day\x20count\x20the\x20chain\x20multiplies\x20itself\x20(not\x20a\x20duration_ms\x20fold),\x20so\x20BCS\x20'+('truncates\x20the\x20fraction\x20to\x20'+String(Math['trunc'](F))+':\x20any\x20`<=`\x20closing\x20window\x20it\x20feeds\x20computes\x20')+'anchor\x20+\x200\x20and\x20welds\x20shut\x20the\x20instant\x20its\x20anchor\x20entry\x20lands.\x20')+('Give\x20a\x20length\x20worth\x20at\x20least\x201\x20ms,\x20or\x20answer\x20the\x20PARALLEL\x20\x27'+D['slice'](0x0,-'_days'['length'])+'_ms\x27\x20knob\x20')+'instead\x20(e.g.\x20review_window_ms:\x20600000\x20=\x20a\x2010-minute\x20window)\x20—\x20the\x20compiler\x20then\x20emits\x20the\x20'+'ms-denominated\x20slot\x20pair\x20(duration\x20in\x20ms\x20beside\x20a\x20day-factor\x20of\x201).'});}}{const H=a['fee_params'];for(const [I,J]of Object['entries'](b)){if(!/_hours$/['test'](I)&&!/_minutes$/['test'](I)||!(I in H))continue;const K=typeof J==='number'?J:typeof J==='string'&&J['trim']()!==''?Number(J):NaN;if(!Number['isFinite'](K)||Number['isInteger'](K))continue;const L=/_minutes$/['test'](I)?0xea60:0x36ee80,M=Math['round'](K*L);if(timeParamFractionSafe(a['id'],I)&&M>=0x1)continue;e['push']({'code':'WINDOW_TRUNCATION_ZERO','detail':'input\x20\x27'+I+'\x27\x20=\x20'+String(J)+'\x20is\x20a\x20FRACTIONAL\x20'+(/_minutes$/['test'](I)?'minute':'hour')+'\x20count\x20that\x20cannot\x20be\x20'+('represented\x20on\x20\x27'+a['id']+'\x27:\x20')+(timeParamFractionSafe(a['id'],I)?'the\x20folded\x20length\x20rounds\x20to\x20'+String(M)+'\x20ms\x20—\x20a\x20sub-millisecond\x20window\x20is\x20still\x200\x20on\x20chain.\x20':'its\x20landing\x20is\x20a\x20raw\x20U64\x20slot\x20in\x20the\x20param\x27s\x20OWN\x20unit\x20(a\x20'+(/_minutes$/['test'](I)?'minute':'hour')+'-denominated\x20'+'table\x20row\x20the\x20chain\x20multiplies\x20itself,\x20not\x20a\x20duration_ms\x20fold)\x20—\x20BCS\x20truncates\x20it\x20to\x20'+(String(Math['trunc'](K))+'\x20and\x20the\x20band\x20or\x20window\x20the\x20slot\x20bounds\x20collapses\x20to\x200\x20(Guards\x20are\x20immutable).\x20'))+'Give\x20a\x20length\x20worth\x20at\x20least\x201\x20ms,\x20or\x20resolve\x20the\x20guard\x20via\x20guard_resolutions\x20with\x20an\x20inline\x20'+'ms-denominated\x20table\x20(duration_ms)\x20where\x20the\x20fraction\x20is\x20representable.'});}}{const N=a['fee_params'];for(const [O,P]of Object['entries'](b)){if(!/_ms$/['test'](O))continue;const Q=O['slice'](0x0,-'_ms'['length']),R=Q+'_days',S=Q+'_hours',T=R in N?R:S in N?S:undefined;if(T===undefined)continue;if(typeof P==='number'&&!Number['isFinite'](P))continue;if(typeof P==='string'&&P['trim']()!==''&&!Number['isFinite'](Number(P)))continue;hasMsKnobBinding(a['id'],T)?b[T]!==undefined&&e['push']({'code':'WINDOW_UNIT_CONFLICT','detail':'inputs\x20answer\x20BOTH\x20spellings\x20of\x20one\x20window:\x20\x27'+T+'\x27\x20=\x20'+String(b[T])+'\x20AND\x20'+('\x27'+O+'\x27\x20=\x20'+String(P)+'\x20—\x20ONE\x20window\x20has\x20ONE\x20length,\x20and\x20silently\x20preferring\x20either\x20answer\x20')+('ships\x20a\x20clock\x20the\x20other\x20knob\x20was\x20supposed\x20to\x20move.\x20The\x20\x27'+O+'\x27\x20answer\x20REPLACES\x20the\x20')+((T['endsWith']('_days')?'day':'hour')+'\x20answer\x20(it\x20lands\x20the\x20ms\x20slot\x20pair:\x20duration_ms\x20at\x20')+'scale\x201);\x20pass\x20ONE\x20of\x20the\x20two\x20and\x20drop\x20the\x20other.'}):e['push']({'code':'WINDOW_MS_UNSUPPORTED','detail':'input\x20\x27'+O+'\x27\x20=\x20'+String(P)+'\x20has\x20no\x20millisecond\x20landing:\x20the\x20\x27'+T+'\x27\x20window\x20on\x20'+('\x27'+a['id']+'\x27\x20is\x20a\x20hand-written\x20design\x20with\x20no\x20instantiation-table\x20row,\x20so\x20it\x20')+'resolves\x20to\x20a\x20guard\x20form\x20with\x20no\x20ms\x20twin\x20and\x20the\x20value\x20would\x20compile\x20nowhere\x20while\x20'+('the\x20base\x20answer\x20silently\x20wins.\x20Drop\x20the\x20\x27'+O+'\x27\x20input\x20and\x20pass\x20whole\x20')+((T['endsWith']('_days')?'days':'hours')+',\x20or\x20resolve\x20the\x20')+'guard\x20explicitly\x20via\x20guard_resolutions\x20with\x20an\x20inline\x20ms-denominated\x20table.'});}}return{'inputs':b,'derivedParams':f,'blockers':e};}export function applyConditionalSelectors(a,b){const d=[],f=new Set();for(const n of a['conditional_guards']??[]){const o=b[n['param']]??a['fee_params'][n['param']];if(o!==n['emit_value'])f['add'](n['guard_key']);}{const p=new Map();for(const q of a['conditional_guards']??[]){const r=p['get'](q['param']);if(r===undefined)p['set'](q['param'],new Set(q['values']??[]));else{for(const s of q['values']??[])r['add'](s);}}for(const [t,u]of p){if(u['size']===0x0)continue;const w=b[t];if(w===undefined||w===null||w==='')continue;const x=String(w);if(u['has'](x))continue;d['push']({'code':'SELECTOR_VALUE_UNKNOWN','detail':'build\x20input\x20\x27'+t+'\x27\x20=\x20\x27'+x+'\x27\x20is\x20outside\x20the\x20value\x20set\x20this\x20template\x20accepts\x20'+('('+[...u]['join']('\x20|\x20')+').\x20The\x20param\x20drives\x20a\x20conditional\x20guard\x20emission,\x20so\x20an\x20out-of-set\x20answer\x20')+'used\x20to\x20compile\x20the\x20DEFAULT\x20business\x20model\x20silently\x20instead\x20of\x20the\x20one\x20asked\x20for\x20—\x20on\x20the\x20'+'storefront_mode\x20/\x20deposit_exit_policy\x20families\x20that\x20means\x20a\x20public\x20storefront\x20or\x20a\x20refunded\x20deposit\x20'+'with\x20no\x20warning\x20at\x20all.\x20Answer\x20one\x20of\x20the\x20accepted\x20values,\x20or\x20drop\x20the\x20input\x20to\x20take\x20the\x20declared\x20'+('default\x20(\x27'+String(a['fee_params'][t]??'none')+'\x27).')});}}const g=new Map();for(const y of a['conditional_guards']??[]){g['set'](y['param'],(g['get'](y['param'])??0x0)+0x1);}const h=new Set((a['conditional_guards']??[])['filter'](z=>(g['get'](z['param'])??0x0)>0x1)['map'](z=>z['guard_key'])),i=new Set([...f]['filter'](z=>h['has'](z))),j=i['size']>0x0?a['machine_shape']['map'](z=>({...z,'from':(z['from']??[])['filter'](A=>typeof A==='string'||A['guard_key']===undefined||!i['has'](A['guard_key']))})):a['machine_shape'],k=i['size']>0x0?(a['allocator']['rows']??[])['filter'](z=>z['guard_key']===undefined||!i['has'](z['guard_key'])):a['allocator']['rows']??[],l=new Map();for(const z of a['conditional_guards']??[]){let A=l['get'](z['param']);A===undefined&&(A={'kept':[],'pruned':[],'values':new Set(z['values']??[])},l['set'](z['param'],A));for(const B of z['values']??[])A['values']['add'](B);(f['has'](z['guard_key'])?A['pruned']:A['kept'])['push'](z['guard_key']);}const m=[...l['entries']()]['map'](([C,D])=>{const E=b[C]??a['fee_params'][C];return{'param':C,'answered':E===undefined||E===null?null:String(E),'declared_values':[...D['values']],'kept':D['kept'],'pruned':D['pruned']};});return{'dropKeys':f,'selectorDroppedKeys':i,'shape':j,'rows':k,'blockers':d,'selectionReport':m};}