@wowok/agent-mcp 3.3.2 → 3.3.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 (232) hide show
  1. package/dist/chain-semantics/field-capability.js +1 -1
  2. package/dist/chain-semantics/freeze-map.js +1 -1
  3. package/dist/chain-semantics/fund-flow.js +1 -1
  4. package/dist/chain-semantics/object-graph.js +1 -1
  5. package/dist/composition/audit.js +1 -1
  6. package/dist/composition/compile.d.ts +5 -2
  7. package/dist/composition/compile.js +1 -1
  8. package/dist/composition/inflight.d.ts +27 -3
  9. package/dist/composition/inflight.js +1 -1
  10. package/dist/config/judgment.d.ts +111 -1
  11. package/dist/config/judgment.js +1 -1
  12. package/dist/evaluation/arbitration-game.d.ts +4 -0
  13. package/dist/evaluation/arbitration-game.js +1 -1
  14. package/dist/evaluation/builtins/graph-service.js +1 -1
  15. package/dist/evaluation/builtins/graph-service.spec.js +1 -1
  16. package/dist/evaluation/game-strategy.d.ts +6 -0
  17. package/dist/evaluation/game-strategy.js +1 -1
  18. package/dist/evaluation/node-game.d.ts +7 -0
  19. package/dist/evaluation/node-game.js +1 -1
  20. package/dist/evaluation/value-risk.d.ts +8 -0
  21. package/dist/evaluation/value-risk.js +1 -0
  22. package/dist/experience/realtime-feedback.js +1 -1
  23. package/dist/extensions/business-modules.js +1 -1
  24. package/dist/extensions/industry-pack.js +1 -1
  25. package/dist/graph/onchain/analyze.js +1 -1
  26. package/dist/graph/onchain/analyze.spec.js +1 -1
  27. package/dist/graph/onchain/expand.js +1 -1
  28. package/dist/graph/onchain/exposure.js +1 -1
  29. package/dist/graph/onchain/facet-projection.js +1 -1
  30. package/dist/graph/onchain/facet-projection.spec.js +1 -1
  31. package/dist/graph/onchain/facts.d.ts +20 -0
  32. package/dist/graph/onchain/facts.js +1 -1
  33. package/dist/graph/onchain/facts.spec.js +1 -1
  34. package/dist/graph/onchain/object-held-receipts.d.ts +20 -0
  35. package/dist/graph/onchain/object-held-receipts.js +1 -0
  36. package/dist/graph/onchain/object-held-receipts.spec.d.ts +1 -0
  37. package/dist/graph/onchain/object-held-receipts.spec.js +1 -0
  38. package/dist/graph/onchain/sdk-batch.d.ts +1 -0
  39. package/dist/graph/onchain/sdk-batch.js +1 -1
  40. package/dist/harness/index.d.ts +1 -0
  41. package/dist/harness/recover.d.ts +2 -1
  42. package/dist/harness/recover.js +1 -1
  43. package/dist/knowledge/allocation-ledger.d.ts +0 -1
  44. package/dist/knowledge/allocation-ledger.js +1 -1
  45. package/dist/knowledge/allocation-puzzle.js +1 -1
  46. package/dist/knowledge/allocation-risk.js +1 -1
  47. package/dist/knowledge/arb-fund-facts.d.ts +7 -0
  48. package/dist/knowledge/arb-fund-facts.js +1 -1
  49. package/dist/knowledge/audit-rules.js +1 -1
  50. package/dist/knowledge/baselines/judgment-baselines.json +502 -81
  51. package/dist/knowledge/baselines/rules/allocation.json +0 -14
  52. package/dist/knowledge/baselines/rules/graph.json +4 -4
  53. package/dist/knowledge/baselines/rules/plan.json +33 -3
  54. package/dist/knowledge/builtin-templates.d.ts +1 -1
  55. package/dist/knowledge/builtin-templates.js +1 -1
  56. package/dist/knowledge/discount-threshold.js +1 -1
  57. package/dist/knowledge/event-semantics.js +1 -1
  58. package/dist/knowledge/game-scenarios.d.ts +21 -0
  59. package/dist/knowledge/game-scenarios.js +1 -0
  60. package/dist/knowledge/getting-started.js +1 -1
  61. package/dist/knowledge/guard-bindings.js +1 -1
  62. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  63. package/dist/knowledge/guard-design-patterns.js +1 -1
  64. package/dist/knowledge/guard-field-cognition.js +1 -1
  65. package/dist/knowledge/guard-leg-map.d.ts +5 -0
  66. package/dist/knowledge/guard-leg-map.js +1 -0
  67. package/dist/knowledge/guard-puzzle.js +1 -1
  68. package/dist/knowledge/guard-render.js +1 -1
  69. package/dist/knowledge/guard-risk.js +1 -1
  70. package/dist/knowledge/guard-submission-prompt.js +1 -1
  71. package/dist/knowledge/guard-templates.d.ts +1 -1
  72. package/dist/knowledge/guard-templates.js +1 -1
  73. package/dist/knowledge/guard-translation.js +1 -1
  74. package/dist/knowledge/index.js +1 -1
  75. package/dist/knowledge/industry-registry.js +1 -1
  76. package/dist/knowledge/industry-strategy.js +1 -1
  77. package/dist/knowledge/jsonrpc-enum.js +1 -1
  78. package/dist/knowledge/onchain-constants.d.ts +4 -2
  79. package/dist/knowledge/onchain-constants.js +1 -1
  80. package/dist/knowledge/order-ledger.d.ts +1 -1
  81. package/dist/knowledge/order-ledger.js +1 -1
  82. package/dist/knowledge/order-puzzle.d.ts +3 -0
  83. package/dist/knowledge/order-risk.d.ts +1 -1
  84. package/dist/knowledge/passport-ledger.d.ts +12 -0
  85. package/dist/knowledge/passport-ledger.js +1 -1
  86. package/dist/knowledge/payment-tracker.js +1 -1
  87. package/dist/knowledge/protocol-facts.d.ts +1 -0
  88. package/dist/knowledge/protocol-facts.js +1 -1
  89. package/dist/knowledge/recipient-constraint.d.ts +9 -0
  90. package/dist/knowledge/recipient-constraint.js +1 -1
  91. package/dist/knowledge/repository-write-semantics.d.ts +1 -1
  92. package/dist/knowledge/repository-write-semantics.js +1 -1
  93. package/dist/knowledge/scenario-modes.d.ts +1 -0
  94. package/dist/knowledge/scenario-modes.js +1 -1
  95. package/dist/knowledge/service-ledger.d.ts +14 -0
  96. package/dist/knowledge/service-ledger.js +1 -1
  97. package/dist/knowledge/strategy-manuals.js +1 -1
  98. package/dist/knowledge/template-loader.d.ts +1 -0
  99. package/dist/knowledge/template-loader.js +1 -1
  100. package/dist/knowledge/template-registry.js +1 -1
  101. package/dist/knowledge/template-scanner.d.ts +4 -0
  102. package/dist/knowledge/template-scanner.js +1 -1
  103. package/dist/knowledge/workflow-guidance.d.ts +2 -0
  104. package/dist/knowledge/workflow-guidance.js +1 -1
  105. package/dist/monitor/MonitorLoop.js +1 -1
  106. package/dist/participation/allocation-advice.d.ts +8 -1
  107. package/dist/participation/allocation-advice.js +1 -1
  108. package/dist/participation/game-context.d.ts +25 -0
  109. package/dist/participation/game-context.js +1 -0
  110. package/dist/participation/node-action-advisor.d.ts +64 -0
  111. package/dist/participation/node-action-advisor.js +1 -0
  112. package/dist/participation/radar-core.js +1 -1
  113. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  114. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  115. package/dist/playbooks/service-build/merchant-guide.d.ts +1 -0
  116. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  117. package/dist/playbooks/service-build/migration-planner.d.ts +2 -2
  118. package/dist/playbooks/service-build/migration-planner.js +1 -1
  119. package/dist/playbooks/service-build/object-panorama.d.ts +13 -1
  120. package/dist/playbooks/service-build/object-panorama.js +1 -1
  121. package/dist/playbooks/service-build/participation-radar.js +1 -1
  122. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  123. package/dist/playbooks/service-build/service-panorama.d.ts +8 -0
  124. package/dist/playbooks/service-build/service-panorama.js +1 -1
  125. package/dist/playbooks/service-build/service-quote.js +1 -1
  126. package/dist/playbooks/service-build/service-quote.spec.js +1 -1
  127. package/dist/review/index.js +1 -1
  128. package/dist/review/repository.js +1 -1
  129. package/dist/role/intent.d.ts +23 -0
  130. package/dist/role/intent.js +1 -0
  131. package/dist/safety/confirm-gate.js +1 -1
  132. package/dist/schema/benchmark-migration/index.d.ts +4 -0
  133. package/dist/schema/benchmark-migration/index.js +1 -1
  134. package/dist/schema/call/allocation.d.ts +3 -0
  135. package/dist/schema/call/allocation.js +1 -1
  136. package/dist/schema/call/arbitration.js +1 -1
  137. package/dist/schema/call/base.d.ts +77 -0
  138. package/dist/schema/call/base.js +1 -1
  139. package/dist/schema/call/bridge.d.ts +4 -0
  140. package/dist/schema/call/error-codes.d.ts +1 -1
  141. package/dist/schema/call/error-codes.js +1 -1
  142. package/dist/schema/call/guard.js +1 -1
  143. package/dist/schema/call/handler.js +1 -1
  144. package/dist/schema/call/machine.d.ts +10 -0
  145. package/dist/schema/call/machine.js +1 -1
  146. package/dist/schema/call/order.d.ts +14 -0
  147. package/dist/schema/call/order.js +1 -1
  148. package/dist/schema/call/progress.js +1 -1
  149. package/dist/schema/call/repository.d.ts +4 -0
  150. package/dist/schema/call/semantic.d.ts +6 -0
  151. package/dist/schema/call/semantic.js +1 -1
  152. package/dist/schema/call/service.d.ts +34 -0
  153. package/dist/schema/call/service.js +1 -1
  154. package/dist/schema/common/index.js +1 -1
  155. package/dist/schema/keeper/index.d.ts +2 -0
  156. package/dist/schema/local/index.d.ts +43 -0
  157. package/dist/schema/local/index.js +1 -1
  158. package/dist/schema/messenger/index.d.ts +2 -0
  159. package/dist/schema/operations.d.ts +30 -0
  160. package/dist/schema/operations.js +1 -1
  161. package/dist/schema/persona/index.d.ts +484 -0
  162. package/dist/schema/query/bi.d.ts +6 -0
  163. package/dist/schema/query/bi.js +1 -1
  164. package/dist/schema/query/index.d.ts +207 -48
  165. package/dist/schema/query/index.js +1 -1
  166. package/dist/schema/schema-version.js +1 -1
  167. package/dist/schema-query-impl/index.js +1 -1
  168. package/dist/schemas/account_operation.output.json +15 -8
  169. package/dist/schemas/account_operation.schema.json +1 -1
  170. package/dist/schemas/benchmark_migration_operation.output.json +8 -5
  171. package/dist/schemas/benchmark_migration_operation.schema.json +5 -4
  172. package/dist/schemas/bridge_operation.output.json +15 -8
  173. package/dist/schemas/index.json +1 -1
  174. package/dist/schemas/keeper_operation.output.json +13 -8
  175. package/dist/schemas/local_cache_operation.output.json +36 -8
  176. package/dist/schemas/local_cache_operation.schema.json +16 -1
  177. package/dist/schemas/local_history_operation.output.json +15 -8
  178. package/dist/schemas/local_info_operation.output.json +15 -8
  179. package/dist/schemas/local_info_operation.schema.json +5 -1
  180. package/dist/schemas/local_mark_operation.output.json +15 -8
  181. package/dist/schemas/messenger_operation.output.json +13 -8
  182. package/dist/schemas/monitor_events.output.json +13 -8
  183. package/dist/schemas/monitor_subscription.output.json +13 -8
  184. package/dist/schemas/onchain_events.output.json +68 -19
  185. package/dist/schemas/onchain_events.schema.json +4 -0
  186. package/dist/schemas/onchain_operations.output.json +116 -28
  187. package/dist/schemas/onchain_operations.schema.json +246 -113
  188. package/dist/schemas/onchain_operations_allocation.schema.json +9 -5
  189. package/dist/schemas/onchain_operations_arbitration.schema.json +3 -3
  190. package/dist/schemas/onchain_operations_contact.schema.json +1 -1
  191. package/dist/schemas/onchain_operations_demand.schema.json +3 -3
  192. package/dist/schemas/onchain_operations_gen_passport.schema.json +1 -1
  193. package/dist/schemas/onchain_operations_guard.schema.json +99 -63
  194. package/dist/schemas/onchain_operations_machine.schema.json +10 -1
  195. package/dist/schemas/onchain_operations_order.schema.json +25 -3
  196. package/dist/schemas/onchain_operations_progress.schema.json +4 -4
  197. package/dist/schemas/onchain_operations_proof.schema.json +1 -1
  198. package/dist/schemas/onchain_operations_repository.schema.json +5 -1
  199. package/dist/schemas/onchain_operations_reward.schema.json +4 -4
  200. package/dist/schemas/onchain_operations_service.schema.json +74 -16
  201. package/dist/schemas/onchain_operations_treasury.schema.json +7 -7
  202. package/dist/schemas/onchain_table_data.output.json +18 -9
  203. package/dist/schemas/persona_operation.output.json +1387 -0
  204. package/dist/schemas/persona_operation.schema.json +219 -0
  205. package/dist/schemas/query_toolkit.output.json +113 -60
  206. package/dist/schemas/query_toolkit.schema.json +9 -1
  207. package/dist/schemas/workflow_operation.schema.json +1 -1
  208. package/dist/schemas/wowok_buildin_info.output.json +259 -0
  209. package/dist/schemas/wowok_buildin_info.schema.json +121 -0
  210. package/dist/tools/build-fingerprint.d.ts +28 -0
  211. package/dist/tools/build-fingerprint.js +1 -0
  212. package/dist/tools/handlers/benchmark-migration.js +1 -1
  213. package/dist/tools/handlers/bridge.js +1 -1
  214. package/dist/tools/handlers/config.js +1 -1
  215. package/dist/tools/handlers/dispatch-expectations.js +1 -1
  216. package/dist/tools/handlers/local.js +1 -1
  217. package/dist/tools/handlers/messenger.js +1 -1
  218. package/dist/tools/handlers/onchain-name-registration.d.ts +11 -0
  219. package/dist/tools/handlers/onchain-name-registration.js +1 -1
  220. package/dist/tools/handlers/onchain.d.ts +10 -0
  221. package/dist/tools/handlers/onchain.js +1 -1
  222. package/dist/tools/handlers/query.js +1 -1
  223. package/dist/tools/handlers/review-chain.d.ts +9 -13
  224. package/dist/tools/handlers/review-chain.js +1 -1
  225. package/dist/tools/move-fn-index.gen.js +1 -1
  226. package/dist/tools/registry/local.js +1 -1
  227. package/dist/tools/registry/onchain.js +1 -1
  228. package/dist/tools/registry/query.js +1 -1
  229. package/dist/tools/upgrade-check.d.ts +1 -0
  230. package/dist/tools/upgrade-check.js +1 -1
  231. package/dist/tools/wrap.js +1 -1
  232. package/package.json +3 -3
@@ -1 +1 @@
1
- import{fillGuardTemplate}from'../knowledge/guard-templates.js';import{SV2_UNARMED_PRESCRIPTION}from'../knowledge/protocol-facts.js';import{verifyAllocatorRails}from'../knowledge/allocator-rail-verifier.js';import{rootHasRewardRecordGate}from'../knowledge/template-scanner.js';import{refsOf}from'./plan.js';const P=a=>a;export const TASK_BINDING_SLOT=0xfe;function safeId(a){return a['replace'](/[^a-zA-Z0-9_]/g,'_');}function ref(a){return{'$ref':a};}const MODE_MAP={'amount':'Amount','rate':'Rate','surplus':'Surplus'};export function compileTemplate(a,b,d={}){const h=d['nameBase']??a['id']['replace'](/\//g,'_'),i=d['merchantPermissionIndex']??0x3e8,j=[],k=[],l=new Set();for(const ak of a['conditional_guards']??[]){const al=b[ak['param']]??a['fee_params'][ak['param']];if(al!==ak['emit_value'])l['add'](ak['guard_key']);}const o=new Map();for(const am of a['conditional_guards']??[]){o['set'](am['param'],(o['get'](am['param'])??0x0)+0x1);}const p=new Set((a['conditional_guards']??[])['filter'](an=>(o['get'](an['param'])??0x0)>0x1)['map'](an=>an['guard_key'])),q=new Set([...l]['filter'](an=>p['has'](an))),s=q['size']>0x0?a['machine_shape']['map'](an=>({...an,'from':(an['from']??[])['filter'](ao=>typeof ao==='string'||ao['guard_key']===undefined||!q['has'](ao['guard_key']))})):a['machine_shape'],t=q['size']>0x0?(a['allocator']['rows']??[])['filter'](an=>an['guard_key']===undefined||!q['has'](an['guard_key'])):a['allocator']['rows']??[],u=[];for(const [an,ao]of Object['entries'](d['guardResolutions']??{})){if(ao?.['kind']==='omit')u['push'](an);}const v=new Set();if(u['length']>0x0){const ap=new Set(s['flatMap'](ar=>(ar['from']??[])['map'](as=>typeof as==='string'?undefined:as['guard_key'])['filter'](as=>typeof as==='string'))),aq=new Set(t['map'](ar=>ar['guard_key'])['filter'](ar=>typeof ar==='string'));for(const ar of u){const as=a['guards']['find']((au,av)=>(au['key']??au['template_id']+'#'+av)===ar);if(as===undefined)continue;const at=[];if(ap['has'](ar))at['push']('a\x20machine\x20forward\x20edge\x20(guard_key)');if(aq['has'](ar))at['push']('an\x20allocator\x20rail\x20row\x20(guard_key)');if(as['policy']!==undefined)at['push']('a\x20Repository\x20write-policy\x20credential\x20(policy)');if(as['host']==='service'&&ar==='buy')at['push']('the\x20Service\x20buy\x20gate\x20(buy_guard)');at['length']>0x0?j['push']({'code':'GUARD_OMIT_UNSUPPORTED','detail':'guard_resolutions[\x27'+ar+'\x27]\x20=\x20{kind:\x27omit\x27}\x20refused:\x20this\x20design\x20is\x20bound\x20to\x20'+at['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.'}):v['add'](ar);}}const w=a['guards']['map']((au,av)=>({'key':au['key']??au['template_id']+'#'+av,'template_id':au['template_id'],'host':au['host'],'purpose':au['purpose'],'policy':au['policy']}))['filter'](au=>!l['has'](au['key'])&&!v['has'](au['key'])),x=new Map(w['map'](au=>[au['key'],au])),y=new Map(),z=[],A=w['map'](au=>au['key']);for(const au of Object['keys'](d['guardResolutions']??{})){if(v['has'](au))continue;!x['has'](au)&&j['push']({'code':'GUARD_RESOLUTION_UNKNOWN','detail':'guard_resolutions\x20key\x20\x27'+au+'\x27\x20matches\x20no\x20guard\x20spec\x20key\x20declared\x20by\x20\x27'+h+'\x27.\x20'+('Legal\x20keys:\x20'+(A['length']>0x0?A['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 av of w){const aw='guard_'+safeId(av['key']),ax=d['guardResolutions']?.[av['key']];let ay=av['purpose'],az,aA;if(ax?.['kind']==='inline')az=ax['table'],aA=ax['root'],ay=ax['description']??av['purpose'];else{const aB=ax?.['kind']==='template'?ax['template_id']:av['template_id']['startsWith']('tpl_')?av['template_id']:undefined;if(aB!==undefined){const aC={'service_name':h+'_service',...a['fee_params'],...b,...ax?.['kind']==='template'?ax['params']:{}},aD=fillGuardTemplate(aB,aC);!aD['ok']?j['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+av['key']+'\x27\x20('+aB+'):\x20'+aD['error']}):(az=aD['table'],aA=aD['root']);}}az!==undefined?(y['set'](av['key'],{'stepId':aw,'description':ay,'table':az,'root':aA}),av['step_id']=aw):z['push'](av);}const B=new Set(s['flatMap'](aE=>(aE['from']??[])['map'](aF=>typeof aF==='string'?undefined:aF['guard_key'])['filter'](aF=>typeof aF==='string')));for(const aE of t){typeof aE['guard_key']==='string'&&aE['recipient']==='guard_identifier'&&aE['recipient_key']==='254'&&B['add'](aE['guard_key']);}const C=new Set();for(const aF of w){if(!B['has'](aF['key']))continue;const aG=y['get'](aF['key']);if(aG===undefined)continue;const aH=aG['table']['some'](aI=>aI['identifier']===TASK_BINDING_SLOT);if(aH)continue;y['set'](aF['key'],{...aG,'table':[...aG['table'],{'identifier':TASK_BINDING_SLOT,'b_submission':!![],'value_type':'Address','name':'task_binding\x20order\x20anchor\x20(protocol\x20slot\x20254;\x20written\x20by\x20order\x20creation)'}]}),C['add'](aF['key']);}const D=aI=>y['get'](aI)!==undefined&&refsOf({'table':y['get'](aI)['table'],'root':y['get'](aI)['root']})['has']('service'),E=aI=>{const aJ=y['get'](aI),aK=x['get'](aI)?.['purpose'];return{'op':'create','id':aJ['stepId'],'object':'guard','params':P({'description':aJ['description'],'table':aJ['table'],'root':aJ['root']}),'notes':C['has'](aI)?(aK??'Guard')+'\x20[kernel:\x20protocol\x20slot\x20254\x20(task\x20binding)\x20auto-declared]':aK};};k['push']({'op':'create','id':'permission','object':'permission','params':{'name':h+'_permission'}});const F=a['arbitration_mode']!==undefined&&a['arbitration_mode']!=='none';F&&k['push']({'op':'create','id':'permission_arb','object':'permission','params':{'name':h+'_arb_permission'},'notes':'MUST\x20be\x20created\x20by\x20a\x20different\x20account\x20than\x20the\x20service\x20permission\x20'+'(E_ARBITRATION_PERMISSION_CONFLICT=33):\x20dispute\x20neutrality.'});k['push']({'op':'create','id':'contact','object':'contact','params':{'name':h+'_contact'},'notes':'R8:\x20customer-service\x20channel;\x20mandatory\x20when\x20customer_required\x20is\x20set.'});const G=new Set(['wip_provenance','subscription_with_proof']),H=Array['isArray'](b['adopted_module_ids'])?b['adopted_module_ids']['filter'](aI=>typeof aI==='string'):[],I=w['some'](aI=>aI['host']==='repository'||aI['template_id']==='pattern.repository_data_check'||aI['template_id']==='pattern.repository_write_authorization')||H['some'](aI=>G['has'](aI)),J=b['review_mode'],K=J==='review'||J==='review_reward'||J==='none'?J:undefined,L=K??a['review_mode']??'none',M=h+'_review_reward',N=b['after_sales_mode'],O=N==='return'||N==='exchange'||N==='warranty'||N==='none'?N:undefined,Q=O??a['after_sales_mode']??'none',R=b['acceptance_mode'],S=R==='milestone'||R==='contest'||R==='bounty'||R==='agent'||R==='none'?R:undefined,T=S??a['acceptance_mode']??'none',U=T==='contest'||T==='bounty'||T==='agent',V=b['installment_mode'],W=V==='deposit_balance'||V==='milestone_n'||V==='none'?V:undefined,X=W??a['installment_mode']??'none',Y=b['affiliate_mode'],Z=Y==='commission'||Y==='none'?Y:undefined,a0=Z??a['affiliate_mode']??'none',a1=b['crowdfunding_mode'],a2=a1==='threshold'||a1==='flexible'||a1==='none'?a1:undefined,a3=a2??a['crowdfunding_mode']??'none',a4=aI=>{const aJ=new Set(),aK=aL=>{if(Array['isArray'](aL)){for(const aN of aL)aK(aN);return;}if(typeof aL!=='object'||aL===null)return;const aM=aL;if(typeof aM['type']==='string'&&aM['type']['startsWith']('query_reward_record')){const aO=aM['object'];if(aO!==undefined&&typeof aO['identifier']==='number')aJ['add'](aO['identifier']);}for(const aP of Object['values'](aM))aK(aP);};return aK(aI),aJ;},a5=L==='review_reward'?w['find'](aI=>aI['host']==='reward'):undefined;if(L==='review_reward'&&a5?.['step_id']!==undefined){const aI=y['get'](a5['key']);if(aI!==undefined){const aJ=a4(aI['root']);y['set'](a5['key'],{...aI,'table':aI['table']['map'](aK=>{const aL=aK;if(aL['b_submission']===!![]||!aJ['has'](aL['identifier']))return aK;return{...aL,'value':{'$late':{'by':'local_name','mark':M}}};})});}k['push']({'op':'create','id':'reward_review','object':'reward','params':P({'name':M,'description':'Review\x20incentive\x20pool\x20(sale-time\x20planned;\x20terms\x20disclosed\x20at\x20quote/buy):\x20claim\x20gated\x20by\x20guard\x20\x27'+a5['key']+'\x27.'}),'notes':'REVIEW-COMPONENT:\x20the\x20funded\x20reward\x20must\x20be\x20perceivable\x20by\x20the\x20buyer\x20BEFORE\x20ordering\x20—\x20the\x20full\x20terms\x20ride\x20the\x20quote/buy\x20surface\x20(REVIEW-COMPONENT-PLAN\x20§四).\x20'+'[ZR-08:\x20created\x20BEFORE\x20its\x20claim\x20guard\x20—\x20the\x20guard\x27s\x20Reward-address\x20row\x20freezes\x20at\x20creation\x20and\x20binds\x20this\x20pool\x20by\x20local\x20name]'});}const a6=[];for(const [aK]of y){D(aK)?a6['push'](aK):k['push'](E(aK));}if(I){const aL=Array['isArray'](b['repository_policies'])?b['repository_policies']['filter'](aO=>typeof aO==='object'&&aO!==null):[],aM=[...aL],aN=new Set(aL['map'](aO=>aO['name']));for(const aO of w){if(aO['host']!=='repository'||aO['step_id']===undefined)continue;const aP='host:\x22repository\x22\x20guard\x20\x27'+aO['key']+'\x27\x20(step\x20\x27'+aO['step_id']+'\x27)';if(aO['policy']===undefined){j['push']({'code':'REPO_GUARD_POLICY_MISSING','detail':aP+'\x20declares\x20no\x20policy\x20on\x20the\x20guards[]\x20entry.\x20Its\x20Repository\x20policy\x20'+'(name\x20/\x20id_from\x20/\x20value_type)\x20is\x20business\x20data\x20the\x20kernel\x20must\x20not\x20fabricate,\x20'+'and\x20an\x20unbound\x20repository\x20guard\x20is\x20an\x20orphan\x20create\x20that\x20leaves\x20the\x20Repository\x20'+'open\x20to\x20any\x20writer.\x20Add\x20policy:{name,\x20id_from,\x20value_type}\x20to\x20the\x20spec,\x20or\x20bind\x20'+'the\x20guard\x20through\x20repository_policies\x20inputs\x20with\x20this\x20guard\x27s\x20own\x20write_guard\x20shape.'});continue;}if(D(aO['key'])){j['push']({'code':'REPO_GUARD_POLICY_MISSING','detail':aP+'\x20refs\x20the\x20service,\x20so\x20it\x20is\x20created\x20AFTER\x20the\x20service\x20draft\x20—\x20but\x20the\x20'+'Repository\x20freezes\x20its\x20policies\x20at\x20creation,\x20which\x20happens\x20before.\x20Resolve\x20this\x20'+'guard\x20without\x20a\x20service\x20reference\x20(the\x20writers\x20are\x20asserted\x20by\x20identity,\x20not\x20by\x20'+'service\x20pin),\x20or\x20bind\x20the\x20policy\x20manually\x20via\x20repository_policies\x20inputs.'});continue;}const aQ=aO['policy']['name']??aO['key'];if(aN['has'](aQ))continue;aM['push']({'name':aQ,'description':aO['policy']['description']??aO['purpose'],'write_guard':[{'guard':ref(aO['step_id'])}],'id_from':aO['policy']['id_from']??'signer','value_type':aO['policy']['value_type']??'String'});}k['push']({'op':'create','id':'repository','object':'repository','params':P({'name':h+'_evidence',...aM['length']>0x0?{'policies':aM}:{}}),'notes':'Evidence\x20rows\x20(tracking\x20hash,\x20receipts,\x20WTS\x20proofs).\x20[HOST-GRAPH-01:\x20created\x20after\x20wave-A\x20guards;\x20write_guard\x20policies\x20synthesized\x20from\x20resolved\x20host:\x22repository\x22\x20specs]'});}const a7=new Set(s['map'](aR=>aR['name'])),a8=[];for(const aR of s){if(aR['from']===undefined||aR['from']['length']===0x0){j['push']({'code':'MACHINE_EDGES_MISSING','detail':'machine_shape\x20node\x20\x27'+aR['name']+'\x27\x20declares\x20no\x20\x27from\x27\x20edges.\x20Edges\x20are\x20data\x20'+'(REPORT\x20#10\x20A-2:\x20a\x20missing\x20paid->closed_cancel\x20edge\x20bricks\x20the\x20shop\x20at\x20publish).\x20'+'Annotate\x20the\x20node\x20with\x20from:\x20[...]\x20(use\x20prev:\x20\x22\x22\x20for\x20the\x20entry\x20edge).'});continue;}const aS=[],aT=new Map(),aU=new Map();for(const aW of aR['from']){const aX=typeof aW==='string'?{'prev':aW}:aW;if(aX['prev']!==''&&!a7['has'](aX['prev'])){j['push']({'code':'EDGE_UNKNOWN_PREV','detail':'node\x20\x27'+aR['name']+'\x27\x20edge\x20prev\x20\x27'+aX['prev']+'\x27\x20is\x20not\x20a\x20machine_shape\x20node'});continue;}const aY=aX['operator']??aR['operator']??(aX['prev']===''?'order_payer':'merchant'),aZ={'name':aX['forward']??(aX['prev']===''?'enter_'+aR['name']:aX['prev']+'_to_'+aR['name']),'weight':0x1,...aY==='order_payer'?{'namedOperator':''}:{'permissionIndex':aX['permission_index']??i}};if(aX['guard_key']!==undefined){const b3=x['get'](aX['guard_key']);if(b3===undefined)j['push']({'code':'GUARD_KEY_UNKNOWN','detail':'edge\x20\x27'+aX['prev']+'\x27->\x27'+aR['name']+'\x27\x20binds\x20unknown\x20guard_key\x20\x27'+aX['guard_key']+'\x27'});else{for(const b4 of b3['purpose']['matchAll'](/progress\.current\s*==\s*([a-z0-9_]+)/g)){const b5=b4[0x1];a7['has'](b5)&&b5!==aX['prev']&&j['push']({'code':'FORWARD_GUARD_PINNED_TO_NON_PREV','detail':'edge\x20\x27'+aX['prev']+'\x27->\x27'+aR['name']+'\x27\x20guard\x20\x27'+b3['key']+'\x27\x20pins\x20progress.current\x20==\x20\x27'+b5+'\x27,\x20but\x20a\x20'+('forward\x20guard\x20evaluates\x20BEFORE\x20the\x20advance\x20(progress.current\x20==\x20prev\x20\x27'+aX['prev']+'\x27),\x20so\x20the\x20pin\x20')+'can\x20never\x20pass\x20—\x20dead\x20rail\x20(bkng\x20F22).\x20Keep\x20the\x20pin\x20on\x20the\x20allocator\x20row\x20(evaluated\x20at\x20alloc,\x20'+'current\x20=\x20the\x20reached\x20node);\x20put\x20only\x20time/identity\x20legs\x20on\x20the\x20forward.'});}b3['template_id']==='pattern.identity_check_order_holder'&&aY!=='order_payer'&&j['push']({'code':'FORWARD_GUARD_IDENTITY_PERM_CONFLICT','detail':'edge\x20\x27'+aX['prev']+'\x27->\x27'+aR['name']+'\x27\x20guard\x20\x27'+b3['key']+'\x27\x20is\x20an\x20order-holder\x20(buyer)\x20identity\x20'+'check\x20but\x20the\x20forward\x20rides\x20a\x20permissionIndex\x20rail\x20(merchant-side\x20slot).\x20The\x20identity\x20layer\x20'+'runs\x20BEFORE\x20the\x20guard,\x20and\x20the\x20two\x20signer\x20sets\x20are\x20disjoint\x20—\x20nobody\x20can\x20pass\x20both\x20(bkng\x20F23).\x20'+'Use\x20operator\x20\x27order_payer\x27\x20(namedOperator\x20\x22\x22\x20—\x20the\x20buyer\x20self-advance)\x20for\x20this\x20edge.'}),b3['step_id']!==undefined&&(D(b3['key'])?j['push']({'code':'GUARD_CYCLE','detail':'edge\x20\x27'+aX['prev']+'\x27->\x27'+aR['name']+'\x27\x20binds\x20guard\x20\x27'+b3['key']+'\x27\x20which\x20itself\x20'+'refs\x20the\x20service\x20(created\x20after\x20the\x20machine)\x20—\x20an\x20F-05\x20cycle.\x20Rebind\x20or\x20split\x20the\x20guard.'}):aZ['guard']=ref(b3['step_id']));}}const b0=aT['get'](aX['prev']);b0!==undefined?b0['push'](aZ):aT['set'](aX['prev'],[aZ]);const b1=aU['get'](aX['prev']),b2=aY==='order_payer'?'namedOperator:':'permissionIndex:'+(aX['permission_index']??i);b1!==undefined?b1['add'](b2):aU['set'](aX['prev'],new Set([b2]));}const aV=aR['threshold']??0x0;for(const [b6,b7]of aT){aV>b7['length']&&j['push']({'code':'PAIR_THRESHOLD_UNREACHABLE','detail':'node\x20\x27'+aR['name']+'\x27\x20pair\x20from\x20\x27'+(b6===''?'(entry)':b6)+'\x27\x20declares\x20threshold\x20'+aV+'\x20'+('but\x20the\x20pair\x20merges\x20only\x20'+b7['length']+'\x20forward(s)\x20at\x20weight\x201\x20each\x20—\x20the\x20pair\x20can\x20never\x20')+'migrate\x20and\x20the\x20publish\x20aborts.\x20Add\x20one\x20distinct-operator\x20forward\x20per\x20required\x20signature,\x20or\x20'+'lower\x20the\x20threshold\x20to\x20the\x20forward\x20count.'});if(aV>=0x2){const b8=aU['get'](b6)?.['size']??0x0;b8<0x2&&j['push']({'code':'PAIR_THRESHOLD_SINGLE_OPERATOR','detail':'node\x20\x27'+aR['name']+'\x27\x20pair\x20from\x20\x27'+(b6===''?'(entry)':b6)+'\x27\x20declares\x20threshold\x20'+aV+'\x20'+'but\x20every\x20forward\x20rides\x20the\x20SAME\x20operator\x20rail\x20—\x20one\x20party\x20can\x20tap\x20all\x20of\x20them\x20and\x20the\x20'+'declared\x20dual\x20confirmation\x20silently\x20dissolves\x20(each\x20forward\x20locks\x20to\x20its\x20first\x20operator).\x20'+'Give\x20each\x20required\x20signature\x20its\x20own\x20rail\x20(e.g.\x20permission_index\x201001\x20+\x20operator\x20\x27order_payer\x27).'});}aS['push']({'prev_node':b6,'threshold':aV,'forwards':b7});}a8['push']({'name':aR['name'],...aR['semantic_role']!==undefined?{'role':aR['semantic_role']}:{},...aR['optional']===!![]?{'optional':!![]}:{},'pairs':aS});}k['push']({'op':'create','id':'machine','object':'machine','params':P({'name':h+'_machine','nodes':a8})}),k['push']({'op':'publish','id':'machine_publish','target':ref('machine'),'preflight':[{'check':'machine_publish','status':'pending'},{'check':'TASKBIND-01','status':'pending'}]});const a9=typeof b['currency']==='string'?b['currency']:'0x2::wow::WOW',aa=w['find'](b9=>b9['host']==='service'&&b9['key']==='buy');k['push']({'op':'create','id':'service','object':'service','params':P({'name':h+'_service','type_parameter':a9,'permission':ref('permission'),'machine':ref('machine'),'um':ref('contact'),'description':a['id']+'\x20—\x20compiled\x20by\x20composition/compile',...I?{'repositories':[ref('repository')]}:{},...aa?.['step_id']!==undefined?{'buy_guard':ref(aa['step_id'])}:{},...Array['isArray'](b['customer_required'])?{'customer_required':b['customer_required']}:{}}),'notes':'Draft\x20only:\x20machine/order_allocators\x20are\x20L1-frozen\x20at\x20publish;\x20allocators\x20attach\x20in\x20the\x20configure\x20step.'});for(const b9 of a6)k['push'](E(b9));const ab=t['length']>0x0?t:[{'track':'settlement','recipient':a['allocator']['recipient']==='fixed'?'entity':a['allocator']['recipient'],'recipient_key':a['allocator']['recipient_key'],'mode':a['allocator']['mode'],'value':a['allocator']['mode']==='rate'?0x2710:a['allocator']['mode']==='surplus'?'0':undefined}],ac=[],ad=new Map();for(const ba of ab){if(ba['guard_key']!==undefined){let bb=ad['get'](ba['guard_key']);bb===undefined&&(bb={'key':ba['guard_key'],'rows':[]},ad['set'](ba['guard_key'],bb),ac['push'](bb)),bb['rows']['push'](ba);}else ac['push']({'rows':[ba]});}const ae=[];for(const bc of ac){const bd=[];let be;for(const bg of bc['rows']){let bh=bg['value'];bh===undefined&&bg['value_from']!==undefined&&(bh=b[bg['value_from']]??a['fee_params'][bg['value_from']]);if(bh===undefined&&bg['mode']!=='surplus'){j['push']({'code':'ALLOCATOR_VALUE_MISSING','detail':'allocator\x20row\x20('+bg['track']+'/'+bg['recipient']+')\x20has\x20neither\x20value\x20nor\x20a\x20resolvable\x20value_from'});continue;}(bg['fix']!==undefined||bg['fix_from']!==undefined)&&j['push']({'code':'ALLOCATOR_FIX_UNSUPPORTED','detail':'allocator\x20row\x20('+bg['track']+'/'+bg['recipient']+')\x20declares\x20fix/fix_from\x20—\x20the\x20chain\x20has\x20no\x20holdback\x20'+'parameter:\x20fix\x20is\x20computed\x20on-chain\x20as\x20the\x20sum\x20of\x20the\x20Amount\x20legs\x20and\x20those\x20legs\x20are\x20PAID\x20'+'(allocation.move:399,540),\x20and\x20the\x20allocator-registration\x20call\x20surface\x20(guard,\x20sharing,\x20max)\x20has\x20no\x20fix\x20'+'argument,\x20so\x20this\x20value\x20never\x20reaches\x20the\x20chain.\x20To\x20keep\x20funds\x20in\x20the\x20pool,\x20do\x20not\x20distribute\x20them\x20'+'(a\x20separate\x20Allocation\x20object,\x20or\x20a\x20later\x20guard-gated\x20allocator);\x20to\x20combine\x20fixed\x20fees\x20with\x20a\x20'+'proportional\x20split,\x20use\x20explicit\x20Amount\x20legs\x20plus\x20Rate\x20legs\x20summing\x2010000.'});be??=bg['note'];let bi;if(bg['recipient']==='entity')bi={'Entity':{'$late':{'by':'local_name','mark':bg['recipient_key']??'merchant'}}};else{if(bg['recipient']==='guard_identifier'){const bj=Number(bg['recipient_key']??0x0);bi={'GuardIdentifier':bj};const bk=bc['key']!==undefined?y['get'](bc['key']):undefined;if(bk!==undefined){const bl=bk['table']['find'](bm=>bm['identifier']===bj);(bl===undefined||bl['b_submission']!==!![]||bl['value_type']!=='Address')&&j['push']({'code':'GUARD_SLOT_UNKNOWN','detail':'allocator\x20leg\x20{GuardIdentifier:\x20'+bj+'}\x20on\x20guard\x20\x27'+bc['key']+'\x27\x20of\x20\x27'+h+'\x27:\x20the\x20bound\x20'+('Guard\x20table\x20has\x20no\x20slot\x20'+bj+'\x20Address\x20submission\x20row\x20(b_submission:\x20true).\x20On\x20chain\x20the\x20leg\x20')+('reads\x20slot\x20'+bj+'\x20as\x20its\x20payee\x20and\x20asserts\x20it\x20equals\x20the\x20paying\x20order\x20')+'(payment_info.for_object)\x20—\x20an\x20undeclared\x20or\x20STATIC\x20slot\x20aborts\x20at\x20alloc\x20time\x20with\x20code\x2015\x20'+'(ERECIPIENT_NOT_FOR_OBJECT,\x20allocation.move:500-520)\x20and\x20the\x20leg\x27s\x20funds\x20stranded\x20'+'(az3/abnb7\x20mainnet\x20261013:\x20static\x20GuardIdentifier\x20legs\x20bricked\x20every\x20refund\x20rail).\x20'+'Guard/allocators/forwards\x20are\x20all\x20publish-frozen.\x20Anchor\x20the\x20leg\x20on\x20the\x20protocol\x20slot\x20'+'(254\x20—\x20auto-written\x20with\x20the\x20paying\x20order\x20id\x20at\x20order\x20creation)\x20or\x20declare\x20'+('{identifier:\x20'+bj+',\x20b_submission:\x20true,\x20value_type:\x20\x22Address\x22}\x20in\x20the\x20Guard\x20table.')});}}else bi='Signer';}bd['push']({'who':bi,'sharing':String(bh??'0'),'mode':MODE_MAP[bg['mode']]});}if(bd['length']===0x0)continue;const bf=bc['key']!==undefined?x['get'](bc['key'])?.['step_id']:undefined;bc['key']!==undefined&&!x['has'](bc['key'])&&j['push']({'code':'GUARD_KEY_UNKNOWN','detail':'allocator\x20row\x20('+bc['rows'][0x0]['track']+')\x20binds\x20unknown\x20guard_key\x20\x27'+bc['key']+'\x27'}),ae['push']({...bf!==undefined?{'guard':ref(bf)}:{},...bc['key']!==undefined?{'guard_key':bc['key']}:{},'track':bc['rows'][0x0]['track'],'sharing':bd,...be!==undefined?{'note':be}:{}});}const af=ac['map'](bm=>{if(bm['key']===undefined)return undefined;const bn=y['get'](bm['key']);return{'key':bm['key'],'track':bm['rows'][0x0]['track'],'table':bn?.['table']??[],'root':bn?.['root']};})['filter'](bm=>bm!==undefined);if(af['length']>0x0){const bm=verifyAllocatorRails(af,s['map'](bn=>({'name':bn['name'],'semanticRole':bn['semantic_role']})));for(const bn of bm){j['push']({'code':bn['code'],'detail':bn['detail']});}}k['push']({'op':'configure','id':'service_allocators','target':ref('service'),'method':'order_allocators','params':P({'description':a['allocator']['description'],'threshold':Number(a['fee_params']['threshold']??a['fee_params']['monthly_rent_amount']??0x0)||0x0,'allocators':ae}),'requires':['machine_publish']});Array['isArray'](b['sales'])&&b['sales']['length']>0x0&&k['push']({'op':'configure','id':'service_sales','target':ref('service'),'method':'sales','params':{'op':'add','sales':b['sales']}});if(Q!=='none'){const bo=Q==='return'?/return|refund/i:Q==='exchange'?/exchange|replace|reship|swap/i:/warranty|repair|claim/i,bp=s['some'](bq=>bo['test'](bq['name']));!bp&&j['push']({'code':'AFTER_SALES_RAIL_MISSING','detail':'after_sales_mode\x20\x27'+Q+'\x27\x20declares\x20a\x20buyer\x20after-sales\x20remedy,\x20but\x20machine_shape\x20has\x20no\x20'+('backing\x20rail\x20(no\x20node\x20matching\x20'+bo+').\x20Add\x20the\x20'+Q+'\x20node\x20family\x20')+'(e.g.\x20return_requested\x20->\x20returned\x20for\x20\x27return\x27)\x20with\x20its\x20claimed_by\x20polarity\x20pair\x20—\x20refund\x20leg\x20'+'some==false,\x20merchant-recovery\x20leg\x20some==true\x20(INV-C1)\x20—\x20anchored\x20on\x20the\x20delivered\x20ENTRY\x20time\x20'+'(INV-C2,\x20TIME-ANCHOR-01),\x20and\x20de-conflicted\x20against\x20the\x20settlement\x20rail\x20so\x20the\x20two\x20never\x20both\x20pay\x20'+'(INV-C3,\x20DUAL-RAIL-01).\x20Or\x20set\x20after_sales_mode\x20\x27none\x27\x20if\x20this\x20shop\x20ships\x20no\x20such\x20remedy.'});}if(T!=='none'){U&&a['arbitration_mode']!=='third_party'&&j['push']({'code':'ACCEPTANCE_JUDGE_NOT_INDEPENDENT','detail':'acceptance_mode\x20\x27'+T+'\x27\x20is\x20a\x20judge-decided\x20acceptance\x20(a\x20third\x20party\x20rules\x20on\x20'+('release),\x20but\x20arbitration_mode\x20is\x20\x27'+(a['arbitration_mode']??'none')+'\x27,\x20not\x20\x27third_party\x27.\x20')+'The\x20party\x20owing\x20the\x20payout\x20must\x20not\x20also\x20decide\x20whether\x20it\x20is\x20owed\x20(merchant\x20self-adjudication,\x20'+'INV-A3).\x20Set\x20arbitration_mode\x20\x27third_party\x27\x20so\x20an\x20independent\x20venue/judge\x20Permission\x20rules\x20'+'(R2;\x20enforced\x20at\x20publish\x20by\x20controller-disjointness),\x20or\x20use\x20acceptance_mode\x20\x27milestone\x27\x20if\x20the\x20'+'buyer\x20genuinely\x20self-adjudicates.'});const bq=a['fee_params']['revision_rounds_max'],br=typeof bq==='number'||typeof bq==='string'&&bq['trim']()!==''&&/^\d+$/['test'](bq['trim']());if(br){const bs=w['some'](bt=>bt['host']==='repository'||/repository/i['test'](bt['template_id']));!bs&&j['push']({'code':'ACCEPTANCE_REVISION_UNBOUNDED','detail':'acceptance_mode\x20\x27'+T+'\x27\x20declares\x20a\x20bounded\x20revision\x20loop\x20'+('(fee_params.revision_rounds_max\x20=\x20'+String(bq)+'),\x20but\x20no\x20counter-backed\x20Repository\x20')+'guard\x20exists.\x20progress.move\x20caps\x20EDGE\x20count\x20(MAX_FORWARD\x20/\x20MAX_NODE_PAIR),\x20never\x20VISIT\x20count,\x20'+'so\x20a\x20finite\x20cap\x20in\x20fee_params\x20alone\x20is\x20a\x20promise\x20the\x20chain\x20cannot\x20keep\x20(INV-A1).\x20Either\x20declare\x20'+'revision_rounds_max\x20\x27unlimited\x27\x20(the\x20honest\x20form\x20—\x20the\x20revision\x20loop\x20is\x20then\x20genuinely\x20'+'unbounded)\x20or\x20mount\x20a\x20counter-backed\x20Repository\x20guard\x20(pattern.repository_data_check\x20reading\x20a\x20'+'per-order\x20revision\x20tally\x20written\x20via\x20pattern.repository_write_authorization)\x20that\x20gates\x20the\x20'+'redelivery\x20forward\x20once\x20the\x20tally\x20reaches\x20the\x20cap.'});}}if(X!=='none'){const bt=/(due|owed|owing|unpaid|awaiting|pending)/i,bu=/(paid|captured|funded|settled)/i,bv=/(deposit|down_?pay|balance_due|balance_owed|awaiting|installment|milestone)/i,bw=/(refund|cancel|exit|forfeit|kill|void|abandon|release|expire|lapse)/i,bx=[];for(const bA of s){const bB=bA['name'];for(const bC of bA['from']??[]){typeof bC==='string'?bx['push']({'prev':bC,'target':bB}):bx['push']({'prev':bC['prev'],'target':bB,'guardKey':bC['guard_key']});}}const by=bx['filter'](bD=>bt['test'](bD['prev'])&&bu['test'](bD['target'])&&(bD['guardKey']===undefined||bD['guardKey']['trim']()===''));by['length']>0x0&&j['push']({'code':'INSTALLMENT_FUNDING_UNGATED','detail':'installment_mode\x20\x27'+X+'\x27\x20captures\x20a\x20later\x20payment,\x20but\x20the\x20funding\x20forward(s)\x20'+by['map'](bD=>'\x27'+bD['prev']+'\x27\x20→\x20\x27'+bD['target']+'\x27')['join'](',\x20')+'\x20carry\x20NO\x20guard_key.\x20A\x20bare\x20advance\x20records\x20the\x20balance\x20as\x20paid\x20WITHOUT\x20the\x20capture\x20landing\x20in\x20the\x20'+'Allocation\x20—\x20a\x20zero-value\x20advance\x20(INV-B1,\x20H4).\x20Bind\x20a\x20fund-gate\x20Guard\x20on\x20each\x20capture\x20forward\x20'+'(constant\x20=\x20order\x20address,\x20convert_witness\x20OrderAllocation(109),\x20allocation.balance\x20query\x201051\x20>=\x20the\x20'+'capture\x20amount)\x20so\x20an\x20unfunded\x20advance\x20is\x20REJECTED,\x20and\x20route\x20the\x20buyer\x27s\x20agent\x20through\x20the\x20one-PTB\x20'+'order_renew\x20call\x20(single\x20transaction:\x20create\x20the\x20payment\x20receipt\x20→\x20fund\x20the\x20same\x20order\x27s\x20Allocation\x20→\x20'+'issue\x20the\x20payment\x20→\x20advance,\x20all\x20atomic)\x20so\x20the\x20'+'capture\x20and\x20the\x20advance\x20are\x20atomic.\x20Pair\x20the\x20balance\x20gate\x20with\x20the\x20once\x20slot\x20(H5\x20—\x20the\x20fund\x20gate\x20is\x20a\x20'+'STATE\x20READ,\x20not\x20a\x20once)\x20so\x20a\x20replay\x20cannot\x20re-capture.'});const bz=[];for(const bD of s){if(!bv['test'](bD['name']))continue;const bE=bx['filter'](bG=>bG['prev']===bD['name']),bF=bE['some'](bG=>bw['test'](bG['target']));if(!bF)bz['push'](bD['name']);}bz['length']>0x0&&j['push']({'code':'INSTALLMENT_DEPOSIT_STRANDED','detail':'installment_mode\x20\x27'+X+'\x27\x20holds\x20a\x20buyer\x20payment\x20at\x20state(s)\x20'+bz['map'](bG=>'\x27'+bG+'\x27')['join'](',\x20')+'\x20with\x20NO\x20deposit-exit\x20rail\x20(no\x20outgoing\x20refund\x20/\x20cancel\x20/\x20forfeit\x20/\x20expire\x20edge).\x20There\x20is\x20no\x20on-chain\x20'+'obligation\x20to\x20pay\x20the\x20balance\x20(INV-B2,\x20H1),\x20so\x20a\x20buyer\x20who\x20walks\x20away\x20strands\x20the\x20already-paid\x20portion\x20'+'at\x20that\x20node\x20permanently\x20(Machine\x20+\x20Allocator\x20immutable,\x20IMMUT-001).\x20Add\x20a\x20deposit-exit\x20rail\x20from\x20each\x20'+'held\x20state\x20—\x20a\x20refund/cancel\x20forward\x20into\x20an\x20exit\x20node\x20whose\x20allocator\x20returns\x20the\x20held\x20funds\x20to\x20the\x20'+'order\x20payer\x20(GuardIdentifier(0))\x20or\x20applies\x20the\x20declared\x20deposit_exit_policy\x20(full\x20refund\x20vs\x20a\x20kill\x20fee\x20'+'compensating\x20the\x20merchant\x20for\x20the\x20reserved\x20capacity).'});}if(a0!=='none'){const bG=/(commission|affiliate|referr|attribut|partner_?payout)/i,bH=s['some'](bL=>bG['test'](bL['name'])),bI=ab['some'](bL=>bG['test'](bL['value_from']??'')||bG['test'](bL['recipient_key']??''));!bH&&!bI&&j['push']({'code':'AFFILIATE_RAIL_MISSING','detail':'affiliate_mode\x20\x27'+a0+'\x27\x20declares\x20a\x20referral/affiliate\x20commission\x20overlay,\x20but\x20machine_shape\x20has\x20no\x20'+'commission-family\x20node\x20and\x20the\x20allocator\x20has\x20no\x20commission\x20row\x20—\x20a\x20declared\x20partner\x20payout\x20with\x20no\x20rail\x20to\x20'+'walk\x20it\x20is\x20a\x20false\x20promise\x20at\x20quote\x20time\x20(INV-D3).\x20Add\x20an\x20INDEPENDENT\x20commission\x20leg:\x20a\x20Rate\x20row\x20off\x20a\x20'+'dedicated\x20commission\x20pool\x20(never\x20a\x20Surplus/Rate\x20drain\x20of\x20the\x20buyer\x27s\x20goods\x20escrow\x20—\x20防抢池)\x20to\x20an\x20explicit\x20'+'non-empty\x20partner\x20Entity,\x20gated\x20by\x20a\x20window-anchored\x20claim\x20guard\x20(INV-D1\x20rides\x20TIME-ANCHOR-01)\x20so\x20the\x20'+'commission\x20is\x20claimable\x20only\x20after\x20the\x20attribution/refund\x20window\x20closes.'});const bJ=/(post-?lock|锁后|clawback|不可追偿|不可撤销|unrecoverable|irrevocab|no\s*(?:revers|recov|clawback)|cannot be reversed|once released|released commission)/i,bK=(a['build_notes']??[])['some'](bL=>bJ['test'](bL));!bK&&j['push']({'code':'AFFILIATE_CLAWBACK_UNDISCLOSED','detail':'affiliate_mode\x20\x27'+a0+'\x27\x20declares\x20a\x20commission\x20but\x20no\x20build_note\x20discloses\x20the\x20post-lock\x20no-clawback\x20'+'truth\x20(INV-D2).\x20SOLE\x20TRUTH:\x20Allocation\x20distribute\x20is\x20a\x20ONE-WAY\x20outflow\x20(no\x20debit/clawback\x20primitive,\x20§11.0\x20G2),\x20'+'so\x20once\x20a\x20commission\x20is\x20RELEASED\x20it\x20CANNOT\x20be\x20reversed\x20on\x20chain\x20—\x20a\x20refund/chargeback\x20after\x20release\x20leaves\x20the\x20'+'affiliate\x20commission\x20unrecoverable.\x20Add\x20a\x20build_note\x20stating\x20this\x20honestly\x20(e.g.\x20\x22post-lock:\x20a\x20released\x20'+'affiliate\x20commission\x20is\x20unrecoverable\x20/\x20不可追偿\x20—\x20refunds\x20after\x20the\x20attribution\x20window\x20do\x20NOT\x20claw\x20back\x20the\x20'+'partner\x20payout\x22).\x20L-04/D-5:\x20never\x20imply\x20a\x20recovery\x20capability\x20the\x20chain\x20does\x20not\x20have.'});}if(a3!=='none'){const bL=/(releas|settle|funded|disburs|project)/i,bM=/(refund|missed|unmet|return|reimburse)/i,bN=s['some'](c0=>bL['test'](c0['name'])),bO=ab['some'](c0=>c0['track']==='settlement'&&(bL['test'](c0['guard_key']??'')||bL['test'](c0['recipient_key']??''))),bP=s['some'](c0=>bM['test'](c0['name'])),bQ=ab['some'](c0=>c0['track']==='refund'||bM['test'](c0['guard_key']??''));!bN&&!bO&&j['push']({'code':'CROWDFUNDING_THRESHOLD_GATE_MISSING','detail':'crowdfunding_mode\x20\x27'+a3+'\x27\x20declares\x20a\x20campaign\x20but\x20machine_shape\x20has\x20no\x20release/settlement\x20'+'node\x20and\x20the\x20allocator\x20has\x20no\x20settlement\x20row\x20to\x20the\x20project\x20Entity\x20—\x20the\x20escrowed\x20contributions\x20would\x20'+'strand\x20at\x20the\x20deadline\x20with\x20no\x20exit\x20rail\x20(INV-E1).\x20Add\x20a\x20release\x20leg\x20(Rate\x2010000\x20to\x20a\x20NON-EMPTY\x20project\x20'+'Entity,\x20gated\x20at\x20the\x20campaign-deadline\x20settlement\x20terminal)\x20and,\x20for\x20a\x20threshold\x20campaign,\x20its\x20D-BUG-2\x20'+'refund\x20twin.'});a3==='threshold'&&!bP&&!bQ&&j['push']({'code':'CROWDFUNDING_THRESHOLD_GATE_MISSING','detail':'crowdfunding_mode\x20\x27threshold\x27\x20declares\x20an\x20all-or-nothing\x20campaign\x20but\x20there\x20is\x20NO\x20refund-family\x20node/row\x20—\x20'+'a\x20missed\x20goal\x20would\x20strand\x20every\x20contribution\x20instead\x20of\x20returning\x20it\x20(INV-E1\x20/\x20D-BUG-2).\x20Add\x20the\x20refund\x20'+'leg\x20(per-contributor,\x20for_object\x20slot\x20254,\x20claimed_by\x20some==false)\x20as\x20the\x20mutually-exclusive\x20twin\x20of\x20the\x20'+'release\x20leg:\x20aggregate\x20>=\x20goal\x20→\x20release;\x20aggregate\x20<\x20goal\x20→\x20refund.'});if(a3==='threshold'){const c0=w['some'](c1=>(c1['host']==='repository'||/repository_write/i['test'](c1['template_id']))&&(c1['policy']?.['id_from']??'')['toLowerCase']()==='signer');!c0&&j['push']({'code':'CROWDFUNDING_AGGREGATE_UNBOUND','detail':'crowdfunding_mode\x20\x27threshold\x27\x20gates\x20release\x20on\x20an\x20aggregate\x20funding\x20total,\x20but\x20no\x20host:\x22repository\x22\x20'+'write\x20policy\x20is\x20writer-bound\x20(id_from\x20signer)\x20—\x20the\x20sum-where\x20(1174)\x20total\x20would\x20be\x20forgeable,\x20so\x20'+'anyone\x20could\x20inflate\x20the\x20aggregate\x20and\x20fake\x20a\x20\x27goal\x20met\x27\x20(INV-E2\x20/\x20R-X1-17:\x20existence-is-not-trust).\x20'+'Bind\x20the\x20contribution\x20Repository\x20write_guard\x20to\x20the\x20contributing\x20backer\x20'+'(pattern.repository_write_authorization,\x20id_from\x20signer,\x20an\x20identity\x20leaf\x20order.owner==Signer).'});}const bR=a['build_notes']??[],bS=/(attest|keeper|aggregate trust|read-?only sum|not a chain-?verified|只读求和|聚合值|独立重算)/i,bT=/(not investment|non-?investment|不构成投资|收益承诺|no (?:investment )?return|never promise)/i,bU=/(kyc|aml|securities|money-?transmission|regulatory|跨境|合规)/i,bV=/(no-?refund|non-?refundable|keep-?it-?all|不退|不提供退款|不设达标)/i,bW=bR['some'](c1=>bT['test'](c1)),bX=bR['some'](c1=>bU['test'](c1)),bY=a3==='threshold'?bR['some'](c1=>bS['test'](c1)):!![],bZ=a3==='flexible'?bR['some'](c1=>bV['test'](c1)):!![];if(!bY||!bW||!bX||!bZ){const c1=[!bY?'the\x20aggregate-trust\x20boundary\x20(the\x20funding\x20total\x20is\x20a\x20keeper-attested\x20Repository\x20sum,\x20NOT\x20a\x20chain-verified\x20money\x20oracle)':null,!bW?'the\x20L-01\x20non-investment\x20statement\x20(never\x20promise\x20returns\x20/\x20promote\x20coin\x20price;\x20不构成投资建议或收益承诺)':null,!bX?'the\x20L-05\x20KYC/AML\x20+\x20cross-border\x20regulatory\x20caution\x20(HIGH\x20intensity)':null,!bZ?'the\x20flexible\x20keep-it-all\x20NO-REFUND\x20posture\x20(contributions\x20non-refundable\x20once\x20the\x20deadline\x20passes;\x20不提供退款)':null]['filter'](Boolean);j['push']({'code':'CROWDFUNDING_DISCLOSURE_MISSING','detail':'crowdfunding_mode\x20\x27'+a3+'\x27\x20declares\x20a\x20campaign\x20but\x20no\x20build_note\x20carries:\x20'+c1['join'](';\x20')+'\x20'+'(INV-E3\x20/\x20L-04\x20/\x20L-01\x20/\x20L-05).\x20Add\x20these\x20as\x20honest\x20build_notes\x20—\x20never\x20present\x20an\x20attested\x20aggregate\x20as\x20a\x20'+'chain-verified\x20custody\x20proof,\x20never\x20imply\x20investment\x20returns,\x20and\x20flag\x20the\x20compliance\x20surface.'});}}if(L!=='none'){const c2=s['some'](c8=>/review/i['test'](c8['name']));L==='review'&&!c2&&j['push']({'code':'REVIEW_NODE_MISSING','detail':'review_mode\x20\x27'+L+'\x27\x20declares\x20the\x20buyer\x20review\x20reputation\x20rail,\x20but\x20machine_shape\x20has\x20no\x20'+'\x27reviewed\x27\x20node.\x20Add\x20a\x20buyer-advanced\x20review\x20node\x20(operator\x20order_payer)\x20with\x20an\x20EXIT\x20edge\x20back\x20to\x20the\x20'+'settlement\x20rail\x20(R-DEAD-END:\x20a\x20zero-exit\x20review\x20node\x20strands\x20the\x20escrow),\x20or\x20anchor\x20the\x20claim\x20on\x20the\x20'+'delivered\x20terminal\x20via\x20a\x20host:\x22reward\x22\x20guard\x20(review_mode\x20\x22review_reward\x22\x20variant).'});const c3=w['find'](c8=>c8['host']==='reward'),c4=s['find'](c8=>/review/i['test'](c8['name']))?.['name'];let c5,c6;if(c4!==undefined){const c8=[];for(const cb of s){for(const cc of cb['from']??[]){const cd=typeof cc==='string'?{'prev':cc,'guard_key':undefined}:cc;c8['push']({'prev':cd['prev'],'guard_key':cd['guard_key'],'target':cb['name']});}}const c9=c8['find'](ce=>ce['target']===c4&&ce['guard_key']!==undefined)?.['guard_key']??c8['find'](ce=>ce['prev']===c4&&ce['guard_key']!==undefined)?.['guard_key'],ca=c9!==undefined?x['get'](c9):undefined;c5=ca?.['step_id'],c6=c9;}c5===undefined&&c3?.['step_id']!==undefined&&(c5=c3['step_id'],c6=c3['key']);const c7=L==='review_reward'&&c3?.['step_id']!==undefined&&c5!==undefined;c7&&k['push']({'op':'create','id':'guard_review_decision','object':'guard','params':P({'description':'Merchant\x20review-decision\x20write\x20credential:\x20only\x20the\x20service\x20provider\x20(permission\x20owner\x20or\x20admin)\x20may\x20write\x20U64\x20decision\x20rows\x20(row\x20id\x20=\x20order\x20address,\x20value\x20=\x20approved\x20payout)\x20under\x20the\x20review\x20repository\x27s\x20\x27review_decision\x27\x20policy.','table':[{'identifier':0x0,'b_submission':!![],'value_type':'Address','name':'order_being_approved'},{'identifier':0x1,'b_submission':![],'value_type':'Address','value':ref('service'),'name':'this_service'},{'identifier':0x2,'b_submission':!![],'value_type':'Address','name':'service_permission'}],'root':{'type':'logic_and','nodes':[{'type':'logic_equal','nodes':[{'type':'query','query':'order.service','object':{'identifier':0x0},'parameters':[]},{'type':'identifier','identifier':0x1}]},{'type':'logic_equal','nodes':[{'type':'query','query':'service.permission','object':{'identifier':0x1},'parameters':[]},{'type':'identifier','identifier':0x2}]},{'type':'logic_or','nodes':[{'type':'logic_equal','nodes':[{'type':'query','query':'permission.owner','object':{'identifier':0x2},'parameters':[]},{'type':'context','context':'Signer'}]},{'type':'query','query':'permission.admin\x20has','object':{'identifier':0x2},'parameters':[{'type':'context','context':'Signer'}]}]}]}}),'notes':'REVIEW-DECISION\x20write\x20credential\x20(allocator\x20dynamic-permission\x20shape,\x20service\x20pinned\x20by\x20plan\x20ref\x20—\x20survives\x20permission\x20rotation).\x20The\x20decision\x20write\x20itself:\x20repository.data_add\x20'+'{name:\x27review_decision\x27,\x20items:[{write_guard:\x27<this\x20guard>\x27,\x20data:[{id:<order\x20address>,\x20data:<approved\x20payout\x20U64>}]}]}\x20with\x20a\x20passport\x20submission\x20carrying\x20the\x20order\x20and\x20the\x20permission.'});if(c5!==undefined){const ce=b['buyer_review_enabled']===!![];k['push']({'op':'create','id':'repository_review','object':'repository','params':P({'name':h+'_review','description':'Structured\x20buyer\x20reputation\x20rows\x20(AR-1:\x20emitted\x20by\x20the\x20build\x20plan\x20—\x20no\x20manual\x20setup).','policies':[{'name':'review','description':'One\x20row\x20per\x20buyer\x20(id_from=Signer;\x20rewrite\x20=\x20own-record\x20overwrite).\x20Writes\x20require\x20the\x20review\x20credential\x20(guard\x20key\x20\x27'+c6+'\x27).\x20Payload:\x20JSON\x20text\x20{rating,\x20tags?,\x20orderRef?}.','write_guard':[{'guard':ref(c5)}],'id_from':'signer','value_type':'String'},{'name':'rating','description':'Order-keyed\x20numeric\x20rating\x20(F-62):\x20one\x20U64\x20row\x20per\x20ORDER\x20(id_from=None;\x20row\x20id\x20=\x20the\x20order\x20address;\x20value\x20=\x20stars,\x20e.g.\x201..5).\x20Writes\x20require\x20the\x20same\x20review\x20credential\x20as\x20the\x20\x27review\x27\x20text\x20policy\x20—\x20a\x20verified\x20completed-order\x20buyer.\x20This\x20—\x20not\x20the\x20Signer-keyed\x20\x27review\x27\x20String\x20row\x20—\x20is\x20the\x20row\x20a\x20reward\x20good-review\x20leg\x20must\x20query\x20(query\x20repository.data:\x20the\x20policy-name\x20String\x20row\x20+\x20the\x20order-address\x20identifier\x20row,\x20compared\x20against\x20the\x20rating\x20floor).\x20The\x20text\x20row\x20is\x20display;\x20this\x20row\x20is\x20payout\x20authority.','write_guard':[{'guard':ref(c5)}],'id_from':'none','value_type':'U64'},...ce?[{'name':'buyer_review','description':'Merchant-side\x20structured\x20feedback\x20on\x20the\x20order/buyer\x20(D-R7\x20bidirectional\x20reputation,\x20opt-in).\x20One\x20row\x20per\x20writer\x20(id_from=Signer;\x20rewrite\x20=\x20own-record\x20overwrite).\x20NO\x20write\x20guard\x20by\x20design:\x20merchant\x20authority\x20is\x20verified\x20at\x20READ\x20time\x20(the\x20writer\x20must\x20control\x20the\x20order\x27s\x20service\x20—\x20graph\x20ControlIndex).\x20Payload:\x20JSON\x20text\x20{rating,\x20tags?,\x20orderRef?}.','id_from':'signer','value_type':'String'}]:[],...c7?[{'name':'review_decision','description':'Merchant\x20approval\x20ledger\x20for\x20the\x20review\x20bounty\x20(professional\x20form):\x20one\x20U64\x20row\x20per\x20order\x20(id_from=None;\x20row\x20id\x20=\x20the\x20order\x20address;\x20value\x20=\x20approved\x20payout\x20in\x20smallest\x20units).\x20A\x20row\x20whose\x20value\x20>=\x20the\x20promised\x20payout\x20IS\x20the\x20approval\x20the\x20claim\x20guard\x27s\x20decision\x20leg\x20reads\x20(tpl_repository_review_decision_gate).\x20Writes\x20REQUIRE\x20the\x20merchant\x20decision\x20credential\x20(guard\x20step\x20\x27guard_review_decision\x27);\x20buyers\x20hold\x20no\x20write\x20path.','write_guard':[{'guard':ref('guard_review_decision')}],'id_from':'none','value_type':'U64'}]:[]]}),'notes':'REVIEW-COMPONENT\x20AR-1:\x20the\x20review\x20TEXT\x20still\x20rides\x20the\x20forward\x20message\x20(D-R1\x20dual\x20carrier);\x20this\x20repository\x20carries\x20ONLY\x20the\x20structured\x20row.\x20The\x20buyer\x20writes\x20BOTH\x20rows\x20at\x20review\x20time:\x20\x27review\x27\x20(text\x20JSON,\x20id\x20=\x20own\x20address)\x20AND\x20\x27rating\x27\x20(U64\x20stars,\x20id\x20=\x20the\x20ORDER\x20address\x20—\x20repository.data_add\x20{name:\x27rating\x27,\x20items:[{data:[{id:<order\x20address>,\x20data:<stars>}]}]},\x20same\x20passport\x20as\x20the\x20forward).\x20The\x20\x27rating\x27\x20row\x20is\x20what\x20a\x20reward\x20good-review\x20leg\x20reads\x20(F-62):\x20a\x20good-review\x20bounty\x20claim\x20guard\x20must\x20query\x20this\x20order-keyed\x20U64\x20row,\x20never\x20the\x20Signer-keyed\x20text\x20row.\x20Buyers\x20resolve\x20this\x20object\x20by\x20name\x20(workspace/onchain_objects)\x20—\x20never\x20guess\x20an\x20address.'+(c7?'\x20[review_decision\x20policy\x20frozen\x20AFTER\x20its\x20write\x20credential\x20—\x20the\x20guard\x20exists\x20before\x20this\x20create\x20(HOST-GRAPH-01\x20discipline).]':'')}),k['push']({'op':'configure','id':'service_review_repository','target':ref('service'),'method':'repositories','params':P({'op':'add','objects':[ref('repository_review')]}),'requires':['service','repository_review']});}if(L==='review_reward'){const cf=c3;if(cf===undefined||cf['step_id']===undefined)j['push']({'code':'REVIEW_REWARD_GUARD_MISSING','detail':'review_mode\x20\x27review_reward\x27\x20promises\x20a\x20claim\x20reward,\x20but\x20no\x20RESOLVED\x20host:\x22reward\x22\x20guard\x20spec\x20'+'exists\x20to\x20gate\x20the\x20claim.\x20Mount\x20a\x20reward\x20claim\x20guard\x20(e.g.\x20pattern.progress_state_check\x20anchored\x20'+'on\x20the\x20review\x20node\x20or\x20the\x20delivered\x20terminal\x20+\x20review\x20evidence\x20hash)\x20and\x20keep\x20it\x20resolvable\x20—\x20'+'an\x20unguarded\x20incentive\x20promise\x20must\x20not\x20publish\x20(INV-4).\x20The\x20root\x20must\x20also\x20carry\x20the\x20BKN-P2\x20'+'positive-amount\x20leg\x20(order.amount\x20>=\x201)\x20so\x20zero-total\x20orders\x20can\x20never\x20claim.'});else{const cg=b['reward_funding'],ch=y['get'](cf['key']);ch!==undefined&&!rootHasRewardRecordGate(ch['root'])&&j['push']({'code':'REVIEW_REWARD_UNARMED','detail':'review_reward\x20claim\x20guard\x20\x27'+cf['key']+'\x27\x20carries\x20no\x20record-gate:\x20Reward.claim\x20has\x20no\x20order\x20binding\x20of\x20its\x20own\x20'+'(OFN-C1),\x20so\x20a\x20funded\x20pool\x20behind\x20this\x20guard\x20is\x20a\x20replay-drain\x20target.\x20'+SV2_UNARMED_PRESCRIPTION+'\x20—\x20wrapped\x20in\x20'+'logic_and\x20with\x20the\x20identity\x20leg\x20(Signer\x20==\x20order.owner),\x20the\x20BKN-P2\x20positive-amount\x20'+'leg\x20(order.amount\x20>=\x201\x20—\x20zero-total\x20orders\x20must\x20never\x20claim)\x20and\x20the\x20existing\x20checks\x20'+'(see\x20tpl_reward_one_time_claim\x20v55\x20notes;\x20guard-risk\x20R-X1-14\x20audits\x20the\x20built\x20guard).\x20'+'Professional\x20approval\x20form:\x20this\x20plan\x20already\x20emits\x20the\x20decision\x20channel\x20(guard\x20step\x20'+'\x27guard_review_decision\x27\x20+\x20the\x20repository\x27s\x20\x27review_decision\x27\x20policy)\x20—\x20compose\x20the\x20'+'decision\x20leg\x20from\x20tpl_repository_review_decision_gate\x20into\x20the\x20root\x20'+'(find_where\x20over\x20\x27review_decision\x27\x20with\x20vec_contains_address\x20pinning\x20the\x20submitted\x20'+'order)\x20so\x20the\x20bounty\x20pays\x20only\x20merchant-approved\x20orders.\x20'+'Until\x20armed,\x20do\x20not\x20fund\x20the\x20pool.'});let ci;if(ch!==undefined&&rootHasRewardRecordGate(ch['root']))for(const cj of ch['table']){const ck=cj;if(ck['b_submission']===!![]&&String(ck['value_type']??'')['toLowerCase']()==='address'&&(String(ck['object_type']??'')==='Order'||/order/i['test'](String(ck['name']??'')))){ci=ck['identifier'];break;}}k['push']({'op':'configure','id':'reward_review_guard_add','target':ref('reward_review'),'method':'guard_add','params':P({'guard':ref(cf['step_id']),'recipient':{'Signer':'signer'},...ci!==undefined?{'store_from_id':ci}:{}}),'requires':['reward_review'],'notes':'RECIPIENT\x20(crs-mn-261015\x20F-12):\x20recipient\x20is\x20pinned\x20to\x20{Signer:\x27signer\x27}\x20—\x20the\x20claim\x20entry\x20'+'requires\x20recipient\x20==\x20the\x20transaction\x20sender\x20(E_CLAIM_RECIPIENT_NOT_SIGNER\x20otherwise);\x20a\x20GuardIdentifier\x20recipient\x20'+'resolves\x20to\x20the\x20submitted\x20Order\x20and\x20can\x20never\x20be\x20paid.\x20Fill\x20amount\x20=\x20the\x20per-claim\x20bounty\x20'+'(smallest\x20units)\x20when\x20executing.'+(ci!==undefined?'\x20SV-2\x20entry\x20stamp:\x20store_from_id\x20pins\x20the\x20per-order\x20stamp\x20slot\x20(the\x20submitted\x20Order\x20'+'address)\x20so\x20claim\x20records\x20key\x20per\x20order\x20—\x20once\x20per\x20buyer\x20per\x20order\x20(azx7-mn-261014\x20T8).':'')}),k['push']({'op':'configure','id':'service_rewards','target':ref('service'),'method':'rewards','params':P({'op':'add','objects':[ref('reward_review')]}),'requires':['service']}),typeof cg==='string'||typeof cg==='number'?k['push']({'op':'configure','id':'reward_review_coin_add','target':ref('reward_review'),'method':'coin_add','params':{'coin':String(cg)},'requires':['reward_review']}):j['push']({'code':'REVIEW_REWARD_UNFUNDED','detail':'review_mode\x20\x27review_reward\x27\x20without\x20a\x20\x27reward_funding\x27\x20input\x20(INV-4\x20R-REWARD-FUNDED):\x20the\x20incentive\x20'+'is\x20a\x20marketing\x20promise\x20that\x20must\x20be\x20FUNDED\x20when\x20the\x20Service\x20is\x20built\x20(sale-time\x20planning\x20—\x20pool\x20>=\x20'+'expected\x20orders\x20x\x20per-order\x20reward,\x20benchmark\x20fee_param\x20review_reward_pool).\x20Pass\x20reward_funding\x20'+'(smallest-unit\x20string)\x20to\x20fund\x20the\x20Reward\x20object,\x20or\x20drop\x20to\x20review_mode\x20\x22review\x22.'});}}}if(F){k['push']({'op':'create','id':'arbitration','object':'arbitration','params':P({'name':h+'_arbitration','permission':ref('permission_arb'),'type_parameter':a9}),'notes':'Independent\x20venue\x20(R2).\x20New\x20arbitrations\x20default\x20bPaused=true\x20—\x20unpause\x20is\x20a\x20separate\x20operator\x20step.'}),k['push']({'op':'configure','id':'service_arbitrations','target':ref('service'),'method':'arbitrations','params':P({'op':'add','objects':[ref('arbitration')]})});const cl=b['compensation_fund'];(typeof cl==='string'||typeof cl==='number')&&k['push']({'op':'configure','id':'service_compensation','target':ref('service'),'method':'compensation_fund_add','params':{'balance':String(cl)}});}k['push']({'op':'publish','id':'service_publish','target':ref('service'),'preflight':[{'check':'service_publish','status':'pending'},{'check':'FUND-EXIT-01','status':'pending'},{'check':'PLAN-ALLOC-01','status':'pending'},{'check':'TASKBIND-02','status':'pending'}]});const ag=new Set(t['map'](cm=>cm['guard_key'])['filter'](cm=>typeof cm==='string')),ah=/^0x[0-9a-fA-F]{20,64}$/,ai=cm=>{const cn=y['get'](cm);if(cn===undefined)return undefined;for(const co of cn['table']){const cp=co;if(cp['b_submission']===!![]||cp['value_type']!=='Address')continue;const cq=cp['value'];if(typeof cq==='string'&&ah['test'](cq))return String(cp['identifier']??'?');}return undefined;};for(const cm of y['keys']()){if(!B['has'](cm)&&!ag['has'](cm))continue;const cn=ai(cm);cn!==undefined&&j['push']({'code':'GUARD_FOREIGN_SERVICE','detail':'guard\x20\x27'+cm+'\x27\x20pins\x20an\x20on-chain\x20address\x20literal\x20(table\x20slot\x20'+cn+')\x20while\x20bound\x20into\x20this\x20build.\x20'+'The\x20plan\x27s\x20Service\x20is\x20created\x20BY\x20this\x20plan\x20and\x20cannot\x20equal\x20a\x20pre-existing\x20address,\x20so\x20the\x20pin\x20names\x20a\x20foreign\x20or\x20'+'stale\x20object:\x20each\x20object\x20is\x20well-formed\x20alone,\x20but\x20the\x20cross-object\x20identity\x20assert\x20aborts\x20every\x20guarded\x20forward\x20'+'(klook\x20B11\x20class),\x20and\x20Guard\x20+\x20machine\x20are\x20both\x20create/publish-frozen\x20—\x20unrepairable.\x20'+'Bind\x20by\x20plan\x20reference\x20({\x22$ref\x22:\x22service\x22})\x20or\x20by\x20the\x20P16\x20circular\x20service\x20NAME\x20instead.'});}const aj=z['flatMap'](co=>{const cp=ag['has'](co['key'])?'allocator':B['has'](co['key'])?'machine_edge':co['host']==='service'&&co['key']==='buy'?'service_buy':undefined;return cp?[{'key':co['key'],'template_id':co['template_id'],'host':co['host'],'site':cp,'purpose':co['purpose']}]:[];});return{'plan':{'version':0x1,'intent':d['intent']??'compile\x20'+a['id'],'templateId':a['id'],'inputs':b,'steps':k,...aj['length']>0x0?{'pending_guards':aj}:{}},'guardSpecs':w,'unresolved':z,'blockers':j,'omitted':[...v]};}
1
+ import{fillGuardTemplate,getTemplateById}from'../knowledge/guard-templates.js';import{GUARD_DESIGN_PATTERNS}from'../knowledge/guard-design-patterns.js';import{SV2_UNARMED_PRESCRIPTION,TWO_TX_RENEW_RECIPE}from'../knowledge/protocol-facts.js';import{verifyAllocatorRails}from'../knowledge/allocator-rail-verifier.js';import{TASK_BINDING_SLOT}from'../knowledge/onchain-constants.js';import{rootHasRewardRecordGate,afterSalesRailRegex as a11a,afterSalesRailNodeMatches}from'../knowledge/template-scanner.js';import{refsOf}from'./plan.js';const P=a=>a;function offTaskSlotIdentityLegs(a){const b=new Set(['order.owner','order.agent\x20has']),c=new Set(),d=[],e=f=>{if(f===null||typeof f!=='object')return;const g=f;if(g['type']==='logic_equal'&&Array['isArray'](g['nodes'])){const i=g['nodes']['filter'](j=>j!==null&&typeof j==='object'&&j['type']==='identifier'&&typeof j['identifier']==='number');if(i['some'](j=>j['identifier']===TASK_BINDING_SLOT)){for(const j of i)c['add'](j['identifier']);}}const h=g['object'];if(typeof g['query']==='string'&&b['has'](g['query'])&&h!==null&&typeof h==='object'&&typeof h['identifier']==='number'){const l=h['identifier'];if(l!==TASK_BINDING_SLOT)d['push']({'query':g['query'],'identifier':l});}if(Array['isArray'](g['nodes'])){for(const m of g['nodes'])e(m);}if(g['node']!==undefined&&typeof g['node']==='object')e(g['node']);};return e(a),d['filter'](f=>!c['has'](f['identifier']));}function safeId(a){return a['replace'](/[^a-zA-Z0-9_]/g,'_');}function ref(a){return{'$ref':a};}const MODE_MAP={'amount':'Amount','rate':'Rate','surplus':'Surplus'};export function compileTemplate(a,b,d={}){const h=d['nameBase']??a['id']['replace'](/\//g,'_'),i=d['merchantPermissionIndex']??0x3e8,j=[],k=[],l=new Set();for(const am of a['conditional_guards']??[]){const an=b[am['param']]??a['fee_params'][am['param']];if(an!==am['emit_value'])l['add'](am['guard_key']);}const p=new Map();for(const ao of a['conditional_guards']??[]){p['set'](ao['param'],(p['get'](ao['param'])??0x0)+0x1);}const q=new Set((a['conditional_guards']??[])['filter'](ap=>(p['get'](ap['param'])??0x0)>0x1)['map'](ap=>ap['guard_key'])),s=new Set([...l]['filter'](ap=>q['has'](ap))),t=s['size']>0x0?a['machine_shape']['map'](ap=>({...ap,'from':(ap['from']??[])['filter'](aq=>typeof aq==='string'||aq['guard_key']===undefined||!s['has'](aq['guard_key']))})):a['machine_shape'],u=s['size']>0x0?(a['allocator']['rows']??[])['filter'](ap=>ap['guard_key']===undefined||!s['has'](ap['guard_key'])):a['allocator']['rows']??[],v=[];for(const [ap,aq]of Object['entries'](d['guardResolutions']??{})){if(aq?.['kind']==='omit')v['push'](ap);}const w=new Set();if(v['length']>0x0){const ar=new Set(t['flatMap'](at=>(at['from']??[])['map'](au=>typeof au==='string'?undefined:au['guard_key'])['filter'](au=>typeof au==='string'))),as=new Set(u['map'](at=>at['guard_key'])['filter'](at=>typeof at==='string'));for(const at of v){const au=a['guards']['find']((aw,ax)=>(aw['key']??aw['template_id']+'#'+ax)===at);if(au===undefined)continue;const av=[];if(ar['has'](at))av['push']('a\x20machine\x20forward\x20edge\x20(guard_key)');if(as['has'](at))av['push']('an\x20allocator\x20rail\x20row\x20(guard_key)');if(au['policy']!==undefined)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?j['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.'}):w['add'](at);}}const x=a['guards']['map']((aw,ax)=>({'key':aw['key']??aw['template_id']+'#'+ax,'template_id':aw['template_id'],'host':aw['host'],'purpose':aw['purpose'],'policy':aw['policy'],'params':aw['params']}))['filter'](aw=>!l['has'](aw['key'])&&!w['has'](aw['key'])),y=new Map();{const aw=new Set(x['map'](ax=>ax['key']));for(const ax of t){for(const ay of ax['from']??[]){const az=typeof ay==='string'?{'prev':ay}:ay,aA=az['operator']??ax['operator']??(az['prev']===''?'order_payer':'merchant');if(aA!=='order_payer'||az['guard_key']!==undefined)continue;const aB=az['forward']??(az['prev']===''?'enter_'+ax['name']:az['prev']+'_to_'+ax['name']);if(y['has'](aB))continue;let aC='order_holder_'+aB;while(aw['has'](aC))aC=aC+'_x';aw['add'](aC),y['set'](aB,aC),x['push']({'key':aC,'template_id':'tpl_forward_order_holder','host':'machine','purpose':'F05\x20kernel-injected\x20order-holder\x20identity\x20binding\x20for\x20the\x20buyer-exclusive\x20forward\x20'+('\x27'+aB+'\x27\x20(edge\x20\x27'+az['prev']+'\x27->\x27'+ax['name']+'\x27):\x20namedOperator\x20\x22\x22\x20passes\x20for\x20')+'anyone\x20at\x20the\x20permission\x20layer\x20(progress.move:242-256),\x20so\x20without\x20this\x20guard\x20the\x20'+'buyer\x20rail\x20is\x20advanceable\x20by\x20ANY\x20passport\x20holder\x20attached\x20to\x20the\x20order\x20—\x20takeover\x20'+'risk.\x20Declare\x20an\x20explicit\x20order-holder\x20guard_key\x20on\x20the\x20edge\x20to\x20replace\x20this\x20'+'auto\x20key\x20with\x20a\x20named\x20credential.'});}}}const z=new Map(x['map'](aD=>[aD['key'],aD])),A=new Set(['wip_provenance','subscription_with_proof']),B=Array['isArray'](b['adopted_module_ids'])?b['adopted_module_ids']['filter'](aD=>typeof aD==='string'):[],C=x['some'](aD=>aD['host']==='repository'||aD['template_id']==='pattern.repository_data_check'||aD['template_id']==='pattern.repository_write_authorization'||aD['template_id']==='tpl_repository_row_present'||aD['template_id']==='tpl_repository_row_equals_order_field')||B['some'](aD=>A['has'](aD)),D=new Map(),E=[],F=x['map'](aD=>aD['key']);for(const aD of Object['keys'](d['guardResolutions']??{})){if(w['has'](aD))continue;!z['has'](aD)&&j['push']({'code':'GUARD_RESOLUTION_UNKNOWN','detail':'guard_resolutions\x20key\x20\x27'+aD+'\x27\x20matches\x20no\x20guard\x20spec\x20key\x20declared\x20by\x20\x27'+h+'\x27.\x20'+('Legal\x20keys:\x20'+(F['length']>0x0?F['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 aE of x){const aF='guard_'+safeId(aE['key']),aG=d['guardResolutions']?.[aE['key']];let aH=aE['purpose'],aI,aJ;if(aG?.['kind']==='inline')aI=aG['table'],aJ=aG['root'],aH=aG['description']??aE['purpose'];else{const aK=aG?.['kind']==='template'?aG['template_id']:aE['template_id']['startsWith']('tpl_')?aE['template_id']:undefined;if(aK!==undefined){const aL={'service_name':h+'_service',...C?{'repository_name':h+'_evidence'}:{},...a['fee_params'],...b,...aE['params'],...aG?.['kind']==='template'?aG['params']:{}},aM=fillGuardTemplate(aK,aL);!aM['ok']?j['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+aE['key']+'\x27\x20('+aK+'):\x20'+aM['error']}):(aI=aM['table'],aJ=aM['root']);}}aI!==undefined?(D['set'](aE['key'],{'stepId':aF,'description':aH,'table':aI,'root':aJ}),aE['step_id']=aF):(!aE['template_id']['startsWith']('tpl_')&&getTemplateById(aE['template_id'])===undefined&&!GUARD_DESIGN_PATTERNS['some'](aN=>aN['id']===aE['template_id'])&&j['push']({'code':'GUARD_PATTERN_UNKNOWN','detail':'guard\x20\x27'+aE['key']+'\x27\x20of\x20\x27'+h+'\x27\x20references\x20design\x20\x27'+aE['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).'}),E['push'](aE));}const G=new Set(t['flatMap'](aN=>(aN['from']??[])['map'](aO=>typeof aO==='string'?undefined:aO['guard_key'])['filter'](aO=>typeof aO==='string')));for(const aN of u){typeof aN['guard_key']==='string'&&aN['recipient']==='guard_identifier'&&aN['recipient_key']===String(TASK_BINDING_SLOT)&&G['add'](aN['guard_key']);}const H=new Set();for(const aO of x){if(!G['has'](aO['key']))continue;const aP=D['get'](aO['key']);if(aP===undefined)continue;const aQ=aP['table']['some'](aR=>aR['identifier']===TASK_BINDING_SLOT);if(aQ)continue;D['set'](aO['key'],{...aP,'table':[...aP['table'],{'identifier':TASK_BINDING_SLOT,'b_submission':!![],'value_type':'Address','name':'task_binding\x20order\x20anchor\x20(protocol\x20slot\x20254;\x20written\x20by\x20order\x20creation)'}]}),H['add'](aO['key']);}const I=aR=>D['get'](aR)!==undefined&&refsOf({'table':D['get'](aR)['table'],'root':D['get'](aR)['root']})['has']('service'),J=aR=>{const aS=D['get'](aR),aT=z['get'](aR)?.['purpose'];return{'op':'create','id':aS['stepId'],'object':'guard','params':P({'description':aS['description'],'table':aS['table'],'root':aS['root']}),'notes':H['has'](aR)?(aT??'Guard')+'\x20[kernel:\x20protocol\x20slot\x20254\x20(task\x20binding)\x20auto-declared]':aT};};k['push']({'op':'create','id':'permission','object':'permission','params':{'name':h+'_permission'}});const K=a['arbitration_mode']!==undefined&&a['arbitration_mode']!=='none';K&&k['push']({'op':'create','id':'permission_arb','object':'permission','params':{'name':h+'_arb_permission'},'notes':'MUST\x20be\x20created\x20by\x20a\x20different\x20account\x20than\x20the\x20service\x20permission\x20'+'(E_ARBITRATION_PERMISSION_CONFLICT=33):\x20dispute\x20neutrality.'});k['push']({'op':'create','id':'contact','object':'contact','params':{'name':h+'_contact'},'notes':'R8:\x20customer-service\x20channel;\x20mandatory\x20when\x20customer_required\x20is\x20set.'});const L=b['review_mode'],M=L==='review'||L==='review_reward'||L==='none'?L:undefined,N=M??a['review_mode']??'none',O=h+'_review_reward',Q=b['after_sales_mode'],R=Q==='return'||Q==='exchange'||Q==='warranty'||Q==='none'?Q:undefined,S=R??a['after_sales_mode']??'none',T=b['acceptance_mode'],U=T==='milestone'||T==='contest'||T==='bounty'||T==='agent'||T==='none'?T:undefined,V=U??a['acceptance_mode']??'none',W=V==='contest'||V==='bounty'||V==='agent',X=b['installment_mode'],Y=X==='deposit_balance'||X==='milestone_n'||X==='none'?X:undefined,Z=Y??a['installment_mode']??'none',a0=b['affiliate_mode'],a1=a0==='commission'||a0==='none'?a0:undefined,a2=a1??a['affiliate_mode']??'none',a3=b['crowdfunding_mode'],a4=a3==='threshold'||a3==='flexible'||a3==='none'?a3:undefined,a5=a4??a['crowdfunding_mode']??'none',a6=aR=>{const aS=new Set(),aT=aU=>{if(Array['isArray'](aU)){for(const aW of aU)aT(aW);return;}if(typeof aU!=='object'||aU===null)return;const aV=aU;if(typeof aV['type']==='string'&&aV['type']['startsWith']('query_reward_record')){const aX=aV['object'];if(aX!==undefined&&typeof aX['identifier']==='number')aS['add'](aX['identifier']);}for(const aY of Object['values'](aV))aT(aY);};return aT(aR),aS;},a7=N==='review_reward'?x['find'](aR=>aR['host']==='reward'):undefined;if(N==='review_reward'&&a7?.['step_id']!==undefined){const aR=D['get'](a7['key']);if(aR!==undefined){const aS=a6(aR['root']);D['set'](a7['key'],{...aR,'table':aR['table']['map'](aT=>{const aU=aT;if(aU['b_submission']===!![]||!aS['has'](aU['identifier']))return aT;return{...aU,'value':{'$late':{'by':'local_name','mark':O}}};})});}k['push']({'op':'create','id':'reward_review','object':'reward','params':P({'name':O,'description':'Review\x20incentive\x20pool\x20(sale-time\x20planned;\x20terms\x20disclosed\x20at\x20quote/buy):\x20claim\x20gated\x20by\x20guard\x20\x27'+a7['key']+'\x27.'}),'notes':'REVIEW-COMPONENT:\x20the\x20funded\x20reward\x20must\x20be\x20perceivable\x20by\x20the\x20buyer\x20BEFORE\x20ordering\x20—\x20the\x20full\x20terms\x20ride\x20the\x20quote/buy\x20surface\x20(REVIEW-COMPONENT-PLAN\x20§四).\x20'+'[ZR-08:\x20created\x20BEFORE\x20its\x20claim\x20guard\x20—\x20the\x20guard\x27s\x20Reward-address\x20row\x20freezes\x20at\x20creation\x20and\x20binds\x20this\x20pool\x20by\x20local\x20name]'});}const a8=[];for(const [aT]of D){I(aT)?a8['push'](aT):k['push'](J(aT));}if(C){const aU=Array['isArray'](b['repository_policies'])?b['repository_policies']['filter'](aX=>typeof aX==='object'&&aX!==null):[],aV=[...aU],aW=new Set(aU['map'](aX=>aX['name']));for(const aX of x){if(aX['host']!=='repository'||aX['step_id']===undefined)continue;const aY='host:\x22repository\x22\x20guard\x20\x27'+aX['key']+'\x27\x20(step\x20\x27'+aX['step_id']+'\x27)';if(aX['policy']===undefined){j['push']({'code':'REPO_GUARD_POLICY_MISSING','detail':aY+'\x20declares\x20no\x20policy\x20on\x20the\x20guards[]\x20entry.\x20Its\x20Repository\x20policy\x20'+'(name\x20/\x20id_from\x20/\x20value_type)\x20is\x20business\x20data\x20the\x20kernel\x20must\x20not\x20fabricate,\x20'+'and\x20an\x20unbound\x20repository\x20guard\x20is\x20an\x20orphan\x20create\x20that\x20leaves\x20the\x20Repository\x20'+'open\x20to\x20any\x20writer.\x20Add\x20policy:{name,\x20id_from,\x20value_type}\x20to\x20the\x20spec,\x20or\x20bind\x20'+'the\x20guard\x20through\x20repository_policies\x20inputs\x20with\x20this\x20guard\x27s\x20own\x20write_guard\x20shape.'});continue;}if(I(aX['key'])){j['push']({'code':'REPO_GUARD_POLICY_MISSING','detail':aY+'\x20refs\x20the\x20service,\x20so\x20it\x20is\x20created\x20AFTER\x20the\x20service\x20draft\x20—\x20but\x20the\x20'+'Repository\x20freezes\x20its\x20policies\x20at\x20creation,\x20which\x20happens\x20before.\x20Resolve\x20this\x20'+'guard\x20without\x20a\x20service\x20reference\x20(the\x20writers\x20are\x20asserted\x20by\x20identity,\x20not\x20by\x20'+'service\x20pin),\x20or\x20bind\x20the\x20policy\x20manually\x20via\x20repository_policies\x20inputs.'});continue;}const aZ=aX['policy']['name']??aX['key'],b0=(aX['policy']['id_from']??'signer')['toLowerCase'](),b1=aX['policy']['id_from_submission'],b2=aX['policy']['data_from_submission'];b1!==undefined&&(b0==='signer'||b0==='clock')&&j['push']({'code':'REPO_GUARD_SUBMISSION_ID_FORBIDDEN','detail':aY+'\x20declares\x20id_from_submission\x20'+b1+'\x20while\x20its\x20policy\x20id_from\x20is\x20'+('\x27'+b0+'\x27\x20—\x20the\x20row\x20id\x20is\x20AUTO-generated\x20from\x20the\x20'+b0+'\x20there,\x20and\x20a\x20')+'submission-derived\x20id\x20conflicts\x20with\x20that\x20routing\x20(the\x20chain\x20aborts\x20policy\x20creation\x20'+'with\x20E_POLICY_ID_FROM_SUBMISSION_FORBIDDEN\x20=\x2023;\x20policies\x20freeze\x20at\x20Repository\x20'+'creation,\x20so\x20this\x20must\x20be\x20fixed\x20before\x20publish,\x20BK15-F13).\x20Drop\x20id_from_submission\x20'+'(keep\x20data_from_submission\x20—\x20the\x20value\x20leg\x20is\x20legal\x20under\x20signer\x20routing),\x20or\x20switch\x20'+'the\x20policy\x20to\x20id_from\x20\x22none\x22\x20(caller-supplied\x20row\x20key,\x20guarded\x20by\x20this\x20write_guard).'});{const b3=D['get'](aX['key']),b4=[['id_from_submission',b1],['data_from_submission',b2]];for(const [b5,b6]of b4){if(b6===undefined)continue;const b7=b3?.['table']['find'](b8=>b8['identifier']===b6);(b3===undefined||b7===undefined||b7['b_submission']!==!![])&&j['push']({'code':'REPO_GUARD_SUBMISSION_SLOT_UNKNOWN','detail':aY+'\x20declares\x20'+b5+'\x20'+b6+',\x20but\x20the\x20resolved\x20guard\x20table\x20has\x20'+'NO\x20b_submission=true\x20row\x20at\x20that\x20identifier\x20—\x20the\x20passport\x20builder\x20DROPS\x20'+'undeclared\x20slots,\x20so\x20this\x20pairing\x20leg\x20would\x20silently\x20derive\x20nothing\x20at\x20write\x20'+'time\x20(the\x20write\x20aborts\x20or\x20writes\x20caller-free\x20values,\x20BK15-F13).\x20Declare\x20a\x20'+('b_submission=true\x20table\x20row\x20at\x20identifier\x20'+b6+'\x20on\x20the\x20guard,\x20or\x20point\x20')+(b5+'\x20at\x20an\x20existing\x20submission\x20slot.')});}}if(aW['has'](aZ))continue;aV['push']({'name':aZ,'description':aX['policy']['description']??aX['purpose'],'write_guard':[{'guard':ref(aX['step_id']),...b1!==undefined?{'id_from_submission':b1}:{},...b2!==undefined?{'data_from_submission':b2}:{}}],'id_from':aX['policy']['id_from']??'signer','value_type':aX['policy']['value_type']??'String','write_once':aX['policy']['write_once']??![]});}k['push']({'op':'create','id':'repository','object':'repository','params':P({'name':h+'_evidence',...aV['length']>0x0?{'policies':aV}:{}}),'notes':'Evidence\x20rows\x20(tracking\x20hash,\x20receipts,\x20WTS\x20proofs).\x20[HOST-GRAPH-01:\x20created\x20after\x20wave-A\x20guards;\x20write_guard\x20policies\x20synthesized\x20from\x20resolved\x20host:\x22repository\x22\x20specs]'});}const a9=new Set(t['map'](b8=>b8['name'])),aa=[];for(const b8 of t){if(b8['from']===undefined||b8['from']['length']===0x0){j['push']({'code':'MACHINE_EDGES_MISSING','detail':'machine_shape\x20node\x20\x27'+b8['name']+'\x27\x20declares\x20no\x20\x27from\x27\x20edges.\x20Edges\x20are\x20data\x20'+'(REPORT\x20#10\x20A-2:\x20a\x20missing\x20paid->closed_cancel\x20edge\x20bricks\x20the\x20shop\x20at\x20publish).\x20'+'Annotate\x20the\x20node\x20with\x20from:\x20[...]\x20(use\x20prev:\x20\x22\x22\x20for\x20the\x20entry\x20edge).'});continue;}const b9=[],ba=new Map(),bb=new Map();for(const bd of b8['from']){const be=typeof bd==='string'?{'prev':bd}:bd;if(be['prev']!==''&&!a9['has'](be['prev'])){j['push']({'code':'EDGE_UNKNOWN_PREV','detail':'node\x20\x27'+b8['name']+'\x27\x20edge\x20prev\x20\x27'+be['prev']+'\x27\x20is\x20not\x20a\x20machine_shape\x20node'});continue;}const bf=be['operator']??b8['operator']??(be['prev']===''?'order_payer':'merchant'),bg=be['forward']??(be['prev']===''?'enter_'+b8['name']:be['prev']+'_to_'+b8['name']),bh={'name':bg,'weight':0x1,...bf==='order_payer'?{'namedOperator':''}:{'permissionIndex':be['permission_index']??i}};if(be['guard_key']!==undefined){const bl=z['get'](be['guard_key']);if(bl===undefined)j['push']({'code':'GUARD_KEY_UNKNOWN','detail':'edge\x20\x27'+be['prev']+'\x27->\x27'+b8['name']+'\x27\x20binds\x20unknown\x20guard_key\x20\x27'+be['guard_key']+'\x27'});else{for(const bm of bl['purpose']['matchAll'](/progress\.current\s*==\s*([a-z0-9_]+)/g)){const bn=bm[0x1];a9['has'](bn)&&bn!==be['prev']&&j['push']({'code':'FORWARD_GUARD_PINNED_TO_NON_PREV','detail':'edge\x20\x27'+be['prev']+'\x27->\x27'+b8['name']+'\x27\x20guard\x20\x27'+bl['key']+'\x27\x20pins\x20progress.current\x20==\x20\x27'+bn+'\x27,\x20but\x20a\x20'+('forward\x20guard\x20evaluates\x20BEFORE\x20the\x20advance\x20(progress.current\x20==\x20prev\x20\x27'+be['prev']+'\x27),\x20so\x20the\x20pin\x20')+'can\x20never\x20pass\x20—\x20dead\x20rail\x20(bkng\x20F22).\x20Keep\x20the\x20pin\x20on\x20the\x20allocator\x20row\x20(evaluated\x20at\x20alloc,\x20'+'current\x20=\x20the\x20reached\x20node);\x20put\x20only\x20time/identity\x20legs\x20on\x20the\x20forward.'});}(bl['template_id']==='pattern.identity_check_order_holder'||bl['template_id']==='tpl_forward_order_holder'||bl['template_id']==='tpl_forward_order_holder_or_time'||bl['template_id']==='tpl_time_window_upper_order_holder')&&bf!=='order_payer'&&j['push']({'code':'FORWARD_GUARD_IDENTITY_PERM_CONFLICT','detail':'edge\x20\x27'+be['prev']+'\x27->\x27'+b8['name']+'\x27\x20guard\x20\x27'+bl['key']+'\x27\x20is\x20an\x20order-holder\x20(buyer)\x20identity\x20'+'check\x20but\x20the\x20forward\x20rides\x20a\x20permissionIndex\x20rail\x20(merchant-side\x20slot).\x20The\x20identity\x20layer\x20'+'runs\x20BEFORE\x20the\x20guard,\x20and\x20the\x20two\x20signer\x20sets\x20are\x20disjoint\x20—\x20nobody\x20can\x20pass\x20both\x20(bkng\x20F23).\x20'+'Use\x20operator\x20\x27order_payer\x27\x20(namedOperator\x20\x22\x22\x20—\x20the\x20buyer\x20self-advance)\x20for\x20this\x20edge.'});{const bo=D['get'](bl['key']);if(bo!==undefined){const bp=bo['table']['some'](br=>br['identifier']===TASK_BINDING_SLOT),bq=offTaskSlotIdentityLegs(bo['root'])['filter'](br=>{if(!bp)return![];const bs=bo['table']['find'](bt=>bt['identifier']===br['identifier']);return bs!==undefined&&bs['b_submission']===!![];});for(const br of bq){j['push']({'code':'GUARD_IDENTITY_SLOT_NOT_TASKBOUND','detail':'edge\x20\x27'+be['prev']+'\x27->\x27'+b8['name']+'\x27\x20guard\x20\x27'+bl['key']+'\x27\x20reads\x20'+br['query']+'\x20off\x20free\x20'+('submission\x20slot\x20'+br['identifier']+'\x20—\x20hijackable\x20(rex-mn-261021\x20T10):\x20the\x20caller\x20fills\x20free\x20')+'slots,\x20so\x20an\x20attacker\x20submits\x20their\x20OWN\x20order\x20there\x20(signer\x20==\x20order.owner\x20passes\x20against\x20'+('their\x20own\x20order)\x20and\x20advances\x20the\x20VICTIM\x27s\x20order\x20carried\x20by\x20slot\x20'+TASK_BINDING_SLOT+';\x20with\x20')+'namedOperator\x20\x22\x22\x20the\x20permission\x20layer\x20passes\x20for\x20anyone\x20(progress.move:242-256),\x20so\x20this\x20'+('guard\x20is\x20the\x20only\x20identity\x20leg.\x20Anchor\x20the\x20'+br['query']+'\x20query\x20on\x20identifier\x20')+(TASK_BINDING_SLOT+'\x20(the\x20task-binding\x20order\x20anchor\x20—\x20the\x20order\x20the\x20forward\x20actually\x20mutates).')});}}}bl['step_id']!==undefined&&(I(bl['key'])?j['push']({'code':'GUARD_CYCLE','detail':'edge\x20\x27'+be['prev']+'\x27->\x27'+b8['name']+'\x27\x20binds\x20guard\x20\x27'+bl['key']+'\x27\x20which\x20itself\x20'+'refs\x20the\x20service\x20(created\x20after\x20the\x20machine)\x20—\x20an\x20F-05\x20cycle.\x20Rebind\x20or\x20split\x20the\x20guard.'}):bh['guard']=ref(bl['step_id']));}}else{const bs=y['get'](bg);if(bs!==undefined){const bt=z['get'](bs);bt?.['step_id']!==undefined&&(bh['guard']=ref(bt['step_id']));}}const bi=ba['get'](be['prev']);bi!==undefined?bi['push'](bh):ba['set'](be['prev'],[bh]);const bj=bb['get'](be['prev']),bk=bf==='order_payer'?'namedOperator:':'permissionIndex:'+(be['permission_index']??i);bj!==undefined?bj['add'](bk):bb['set'](be['prev'],new Set([bk]));}const bc=b8['threshold']??0x0;for(const [bu,bv]of ba){bc>bv['length']&&j['push']({'code':'PAIR_THRESHOLD_UNREACHABLE','detail':'node\x20\x27'+b8['name']+'\x27\x20pair\x20from\x20\x27'+(bu===''?'(entry)':bu)+'\x27\x20declares\x20threshold\x20'+bc+'\x20'+('but\x20the\x20pair\x20merges\x20only\x20'+bv['length']+'\x20forward(s)\x20at\x20weight\x201\x20each\x20—\x20the\x20pair\x20can\x20never\x20')+'migrate\x20and\x20the\x20publish\x20aborts.\x20Add\x20one\x20distinct-operator\x20forward\x20per\x20required\x20signature,\x20or\x20'+'lower\x20the\x20threshold\x20to\x20the\x20forward\x20count.'});if(bc>=0x2){const bw=bb['get'](bu)?.['size']??0x0;bw<0x2&&j['push']({'code':'PAIR_THRESHOLD_SINGLE_OPERATOR','detail':'node\x20\x27'+b8['name']+'\x27\x20pair\x20from\x20\x27'+(bu===''?'(entry)':bu)+'\x27\x20declares\x20threshold\x20'+bc+'\x20'+'but\x20every\x20forward\x20rides\x20the\x20SAME\x20operator\x20rail\x20—\x20one\x20party\x20can\x20tap\x20all\x20of\x20them\x20and\x20the\x20'+'declared\x20dual\x20confirmation\x20silently\x20dissolves\x20(each\x20forward\x20locks\x20to\x20its\x20first\x20operator).\x20'+'Give\x20each\x20required\x20signature\x20its\x20own\x20rail\x20(e.g.\x20permission_index\x201001\x20+\x20operator\x20\x27order_payer\x27).'});}b9['push']({'prev_node':bu,'threshold':bc,'forwards':bv});}aa['push']({'name':b8['name'],...b8['semantic_role']!==undefined?{'role':b8['semantic_role']}:{},...b8['optional']===!![]?{'optional':!![]}:{},'pairs':b9});}k['push']({'op':'create','id':'machine','object':'machine','params':P({'name':h+'_machine','nodes':aa})}),k['push']({'op':'publish','id':'machine_publish','target':ref('machine'),'preflight':[{'check':'machine_publish','status':'pending'},{'check':'TASKBIND-01','status':'pending'}]});const ab=typeof b['currency']==='string'?b['currency']:'0x2::wow::WOW',ac=x['find'](bx=>bx['host']==='service'&&bx['key']==='buy');k['push']({'op':'create','id':'service','object':'service','params':P({'name':h+'_service','type_parameter':ab,'permission':ref('permission'),'machine':ref('machine'),'um':ref('contact'),'description':a['id']+'\x20—\x20compiled\x20by\x20composition/compile',...C?{'repositories':[ref('repository')]}:{},...ac?.['step_id']!==undefined?{'buy_guard':ref(ac['step_id'])}:{},...Array['isArray'](b['customer_required'])?{'customer_required':b['customer_required']}:{}}),'notes':'Draft\x20only:\x20machine/order_allocators\x20are\x20L1-frozen\x20at\x20publish;\x20allocators\x20attach\x20in\x20the\x20configure\x20step.'});for(const bx of a8)k['push'](J(bx));const ad=u['length']>0x0?u:[{'track':'settlement','recipient':a['allocator']['recipient']==='fixed'?'entity':a['allocator']['recipient'],'recipient_key':a['allocator']['recipient_key'],'mode':a['allocator']['mode'],'value':a['allocator']['mode']==='rate'?0x2710:a['allocator']['mode']==='surplus'?'0':undefined}],ae=[],af=new Map();for(const by of ad){if(by['guard_key']!==undefined){let bz=af['get'](by['guard_key']);bz===undefined&&(bz={'key':by['guard_key'],'rows':[]},af['set'](by['guard_key'],bz),ae['push'](bz)),bz['rows']['push'](by);}else ae['push']({'rows':[by]});}const ag=[];for(const bA of ae){const bB=[];let bC;for(const bE of bA['rows']){let bF=bE['value'];bF===undefined&&bE['value_from']!==undefined&&(bF=b[bE['value_from']]??a['fee_params'][bE['value_from']]);if(bF===undefined&&bE['mode']!=='surplus'){j['push']({'code':'ALLOCATOR_VALUE_MISSING','detail':'allocator\x20row\x20('+bE['track']+'/'+bE['recipient']+')\x20has\x20neither\x20value\x20nor\x20a\x20resolvable\x20value_from'});continue;}(bE['fix']!==undefined||bE['fix_from']!==undefined)&&j['push']({'code':'ALLOCATOR_FIX_UNSUPPORTED','detail':'allocator\x20row\x20('+bE['track']+'/'+bE['recipient']+')\x20declares\x20fix/fix_from\x20—\x20the\x20chain\x20has\x20no\x20holdback\x20'+'parameter:\x20fix\x20is\x20computed\x20on-chain\x20as\x20the\x20sum\x20of\x20the\x20Amount\x20legs\x20and\x20those\x20legs\x20are\x20PAID\x20'+'(allocation.move:399,540),\x20and\x20the\x20allocator-registration\x20call\x20surface\x20(guard,\x20sharing,\x20max)\x20has\x20no\x20fix\x20'+'argument,\x20so\x20this\x20value\x20never\x20reaches\x20the\x20chain.\x20To\x20keep\x20funds\x20in\x20the\x20pool,\x20do\x20not\x20distribute\x20them\x20'+'(a\x20separate\x20Allocation\x20object,\x20or\x20a\x20later\x20guard-gated\x20allocator);\x20to\x20combine\x20fixed\x20fees\x20with\x20a\x20'+'proportional\x20split,\x20use\x20explicit\x20Amount\x20legs\x20plus\x20Rate\x20legs\x20summing\x2010000.'});bC??=bE['note'];let bG;if(bE['recipient']==='entity')bG={'Entity':{'$late':{'by':'local_name','mark':bE['recipient_key']??'merchant'}}};else{if(bE['recipient']==='guard_identifier'){const bH=Number(bE['recipient_key']??0x0);bG={'GuardIdentifier':bH};const bI=bA['key']!==undefined?D['get'](bA['key']):undefined;if(bI!==undefined){const bJ=bI['table']['find'](bK=>bK['identifier']===bH);(bJ===undefined||bJ['b_submission']!==!![]||bJ['value_type']!=='Address')&&j['push']({'code':'GUARD_SLOT_UNKNOWN','detail':'allocator\x20leg\x20{GuardIdentifier:\x20'+bH+'}\x20on\x20guard\x20\x27'+bA['key']+'\x27\x20of\x20\x27'+h+'\x27:\x20the\x20bound\x20'+('Guard\x20table\x20has\x20no\x20slot\x20'+bH+'\x20Address\x20submission\x20row\x20(b_submission:\x20true).\x20On\x20chain\x20the\x20leg\x20')+('reads\x20slot\x20'+bH+'\x20as\x20its\x20payee\x20and\x20asserts\x20it\x20equals\x20the\x20paying\x20order\x20')+'(payment_info.for_object)\x20—\x20an\x20undeclared\x20or\x20STATIC\x20slot\x20aborts\x20at\x20alloc\x20time\x20with\x20code\x2015\x20'+'(ERECIPIENT_NOT_FOR_OBJECT,\x20allocation.move:500-520)\x20and\x20the\x20leg\x27s\x20funds\x20stranded\x20'+'(az3/abnb7\x20mainnet\x20261013:\x20static\x20GuardIdentifier\x20legs\x20bricked\x20every\x20refund\x20rail).\x20'+'Guard/allocators/forwards\x20are\x20all\x20publish-frozen.\x20Declare\x20'+('{identifier:\x20'+bH+',\x20b_submission:\x20true,\x20value_type:\x20\x22Address\x22}\x20in\x20the\x20Guard\x20table\x20')+'(templates\x20anchor\x20refund\x20rails\x20on\x20user\x20slot\x200\x20and\x20submit\x20the\x20Order\x20address\x20there).\x20Protocol\x20'+'slot\x20254\x20is\x20the\x20task-binding/once\x20slot:\x20naming\x20it\x20as\x20the\x20payee\x20arms\x20once-per-order,\x20so\x20a\x20'+'second\x20fire\x20aborts\x20E_ONCE_TRIGGERED\x20(16).'});}}else bG='Signer';}bB['push']({'who':bG,'sharing':String(bF??'0'),'mode':MODE_MAP[bE['mode']]});}if(bB['length']===0x0)continue;const bD=bA['key']!==undefined?z['get'](bA['key'])?.['step_id']:undefined;bA['key']!==undefined&&!z['has'](bA['key'])&&j['push']({'code':'GUARD_KEY_UNKNOWN','detail':'allocator\x20row\x20('+bA['rows'][0x0]['track']+')\x20binds\x20unknown\x20guard_key\x20\x27'+bA['key']+'\x27'}),ag['push']({...bD!==undefined?{'guard':ref(bD)}:{},...bA['key']!==undefined?{'guard_key':bA['key']}:{},'track':bA['rows'][0x0]['track'],'sharing':bB,...bC!==undefined?{'note':bC}:{}});}const ah=ae['map'](bK=>{if(bK['key']===undefined)return undefined;const bL=D['get'](bK['key']);return{'key':bK['key'],'track':bK['rows'][0x0]['track'],'table':bL?.['table']??[],'root':bL?.['root']};})['filter'](bK=>bK!==undefined);if(ah['length']>0x0){const bK=verifyAllocatorRails(ah,t['map'](bN=>({'name':bN['name'],'semanticRole':bN['semantic_role']}))),bL=ae['map'](bN=>bN['key'])['filter'](bN=>bN!==undefined&&!D['has'](bN)),bM=bL['length']>0x0?'\x20UNRESOLVED\x20ALLOCATOR\x20GUARD\x20REFS\x20(likely\x20the\x20real\x20cause\x20—\x20these\x20guard_keys\x20match\x20no\x20resolved\x20guard,\x20e.g.\x20a\x20name\x20typo):\x20'+bL['join'](',\x20')+'.':'';for(const bN of bK){j['push']({'code':bN['code'],'detail':bN['detail']+bM});}}k['push']({'op':'configure','id':'service_allocators','target':ref('service'),'method':'order_allocators','params':P({'description':a['allocator']['description'],'threshold':Number(a['fee_params']['threshold']??a['fee_params']['monthly_rent_amount']??0x0)||0x0,'allocators':ag}),'requires':['machine_publish']});Array['isArray'](b['sales'])&&b['sales']['length']>0x0&&k['push']({'op':'configure','id':'service_sales','target':ref('service'),'method':'sales','params':{'op':'add','sales':b['sales']}});if(S!=='none'){const bO=a11a(S),bP=t['some'](bQ=>afterSalesRailNodeMatches(S,bQ['name']));!bP&&j['push']({'code':'AFTER_SALES_RAIL_MISSING','detail':'after_sales_mode\x20\x27'+S+'\x27\x20declares\x20a\x20buyer\x20after-sales\x20remedy,\x20but\x20machine_shape\x20has\x20no\x20'+('backing\x20rail\x20(no\x20node\x20matching\x20'+bO+').\x20Add\x20the\x20'+S+'\x20node\x20family\x20')+'(e.g.\x20return_requested\x20->\x20returned\x20for\x20\x27return\x27)\x20with\x20its\x20claimed_by\x20polarity\x20pair\x20—\x20refund\x20leg\x20'+'some==false,\x20merchant-recovery\x20leg\x20some==true\x20(INV-C1)\x20—\x20anchored\x20on\x20the\x20delivered\x20ENTRY\x20time\x20'+'(INV-C2,\x20TIME-ANCHOR-01),\x20and\x20de-conflicted\x20against\x20the\x20settlement\x20rail\x20so\x20the\x20two\x20never\x20both\x20pay\x20'+'(INV-C3,\x20DUAL-RAIL-01).\x20Or\x20set\x20after_sales_mode\x20\x27none\x27\x20if\x20this\x20shop\x20ships\x20no\x20such\x20remedy.'});}if(V!=='none'){W&&a['arbitration_mode']!=='third_party'&&j['push']({'code':'ACCEPTANCE_JUDGE_NOT_INDEPENDENT','detail':'acceptance_mode\x20\x27'+V+'\x27\x20is\x20a\x20judge-decided\x20acceptance\x20(a\x20third\x20party\x20rules\x20on\x20'+('release),\x20but\x20arbitration_mode\x20is\x20\x27'+(a['arbitration_mode']??'none')+'\x27,\x20not\x20\x27third_party\x27.\x20')+'The\x20party\x20owing\x20the\x20payout\x20must\x20not\x20also\x20decide\x20whether\x20it\x20is\x20owed\x20(merchant\x20self-adjudication,\x20'+'INV-A3).\x20Set\x20arbitration_mode\x20\x27third_party\x27\x20so\x20an\x20independent\x20venue/judge\x20Permission\x20rules\x20'+'(R2;\x20enforced\x20at\x20publish\x20by\x20controller-disjointness),\x20or\x20use\x20acceptance_mode\x20\x27milestone\x27\x20if\x20the\x20'+'buyer\x20genuinely\x20self-adjudicates.'});const bQ=a['fee_params']['revision_rounds_max'],bR=typeof bQ==='number'||typeof bQ==='string'&&bQ['trim']()!==''&&/^\d+$/['test'](bQ['trim']());if(bR){const bS=x['some'](bT=>bT['host']==='repository'||/repository/i['test'](bT['template_id']));!bS&&j['push']({'code':'ACCEPTANCE_REVISION_UNBOUNDED','detail':'acceptance_mode\x20\x27'+V+'\x27\x20declares\x20a\x20bounded\x20revision\x20loop\x20'+('(fee_params.revision_rounds_max\x20=\x20'+String(bQ)+'),\x20but\x20no\x20counter-backed\x20Repository\x20')+'guard\x20exists.\x20progress.move\x20caps\x20EDGE\x20count\x20(MAX_FORWARD\x20/\x20MAX_NODE_PAIR),\x20never\x20VISIT\x20count,\x20'+'so\x20a\x20finite\x20cap\x20in\x20fee_params\x20alone\x20is\x20a\x20promise\x20the\x20chain\x20cannot\x20keep\x20(INV-A1).\x20Either\x20declare\x20'+'revision_rounds_max\x20\x27unlimited\x27\x20(the\x20honest\x20form\x20—\x20the\x20revision\x20loop\x20is\x20then\x20genuinely\x20'+'unbounded)\x20or\x20mount\x20a\x20counter-backed\x20Repository\x20guard\x20(pattern.repository_data_check\x20reading\x20a\x20'+'per-order\x20revision\x20tally\x20written\x20via\x20pattern.repository_write_authorization)\x20that\x20gates\x20the\x20'+'redelivery\x20forward\x20once\x20the\x20tally\x20reaches\x20the\x20cap.'});}}if(Z!=='none'){const bT=/(due|owed|owing|unpaid|awaiting|pending)/i,bU=/(paid|captured|funded|settled)/i,bV=/(deposit|down_?pay|balance_due|balance_owed|awaiting|installment|milestone)/i,bW=/(refund|cancel|exit|forfeit|kill|void|abandon|release|expire|lapse)/i,bX=[];for(const c0 of t){const c1=c0['name'];for(const c2 of c0['from']??[]){typeof c2==='string'?bX['push']({'prev':c2,'target':c1}):bX['push']({'prev':c2['prev'],'target':c1,'guardKey':c2['guard_key']});}}const bY=bX['filter'](c3=>bT['test'](c3['prev'])&&bU['test'](c3['target'])&&(c3['guardKey']===undefined||c3['guardKey']['trim']()===''));bY['length']>0x0&&j['push']({'code':'INSTALLMENT_FUNDING_UNGATED','detail':'installment_mode\x20\x27'+Z+'\x27\x20captures\x20a\x20later\x20payment,\x20but\x20the\x20funding\x20forward(s)\x20'+bY['map'](c3=>'\x27'+c3['prev']+'\x27\x20→\x20\x27'+c3['target']+'\x27')['join'](',\x20')+'\x20carry\x20NO\x20guard_key.\x20A\x20bare\x20advance\x20records\x20the\x20balance\x20as\x20paid\x20WITHOUT\x20the\x20capture\x20landing\x20in\x20the\x20'+'Allocation\x20—\x20a\x20zero-value\x20advance\x20(INV-B1,\x20H4).\x20Bind\x20a\x20fund-gate\x20Guard\x20on\x20each\x20capture\x20forward\x20'+'(constant\x20=\x20order\x20address,\x20convert_witness\x20OrderAllocation(109),\x20allocation.balance\x20query\x201051\x20>=\x20the\x20'+'capture\x20amount).\x20PRE-STATE\x20CONSTRAINT\x20(esound-mn-261021\x20B-1,\x20mainnet-verified):\x20guards\x20read\x20the\x20'+'COMMITTED\x20pre-transaction\x20balance\x20—\x20funding\x20that\x20lands\x20in\x20the\x20SAME\x20PTB\x20(the\x20one-PTB\x20order_renew\x20'+'payment\x20half)\x20is\x20INVISIBLE\x20to\x20the\x20forward\x27s\x20guard,\x20so\x20a\x20balance-gated\x20capture\x20advanced\x20by\x20'+('order_renew\x20ALWAYS\x20aborts.\x20'+TWO_TX_RENEW_RECIPE+'\x20Pair\x20the\x20balance\x20gate\x20with\x20the\x20once\x20slot\x20')+'(H5\x20—\x20the\x20fund\x20gate\x20is\x20a\x20STATE\x20READ,\x20not\x20a\x20once)\x20so\x20a\x20replay\x20cannot\x20re-capture.'});const bZ=[];for(const c3 of t){if(!bV['test'](c3['name']))continue;const c4=bX['filter'](c6=>c6['prev']===c3['name']),c5=c4['some'](c6=>bW['test'](c6['target']));if(!c5)bZ['push'](c3['name']);}bZ['length']>0x0&&j['push']({'code':'INSTALLMENT_DEPOSIT_STRANDED','detail':'installment_mode\x20\x27'+Z+'\x27\x20holds\x20a\x20buyer\x20payment\x20at\x20state(s)\x20'+bZ['map'](c6=>'\x27'+c6+'\x27')['join'](',\x20')+'\x20with\x20NO\x20deposit-exit\x20rail\x20(no\x20outgoing\x20refund\x20/\x20cancel\x20/\x20forfeit\x20/\x20expire\x20edge).\x20There\x20is\x20no\x20on-chain\x20'+'obligation\x20to\x20pay\x20the\x20balance\x20(INV-B2,\x20H1),\x20so\x20a\x20buyer\x20who\x20walks\x20away\x20strands\x20the\x20already-paid\x20portion\x20'+'at\x20that\x20node\x20permanently\x20(Machine\x20+\x20Allocator\x20immutable,\x20IMMUT-001).\x20Add\x20a\x20deposit-exit\x20rail\x20from\x20each\x20'+'held\x20state\x20—\x20a\x20refund/cancel\x20forward\x20into\x20an\x20exit\x20node\x20whose\x20allocator\x20returns\x20the\x20held\x20funds\x20to\x20the\x20'+'order\x20payer\x20(GuardIdentifier(0))\x20or\x20applies\x20the\x20declared\x20deposit_exit_policy\x20(full\x20refund\x20vs\x20a\x20kill\x20fee\x20'+'compensating\x20the\x20merchant\x20for\x20the\x20reserved\x20capacity).'});}if(a2!=='none'){const c6=/(commission|affiliate|referr|attribut|partner_?payout)/i,c7=t['some'](cb=>c6['test'](cb['name'])),c8=ad['some'](cb=>c6['test'](cb['value_from']??'')||c6['test'](cb['recipient_key']??''));!c7&&!c8&&j['push']({'code':'AFFILIATE_RAIL_MISSING','detail':'affiliate_mode\x20\x27'+a2+'\x27\x20declares\x20a\x20referral/affiliate\x20commission\x20overlay,\x20but\x20machine_shape\x20has\x20no\x20'+'commission-family\x20node\x20and\x20the\x20allocator\x20has\x20no\x20commission\x20row\x20—\x20a\x20declared\x20partner\x20payout\x20with\x20no\x20rail\x20to\x20'+'walk\x20it\x20is\x20a\x20false\x20promise\x20at\x20quote\x20time\x20(INV-D3).\x20Add\x20an\x20INDEPENDENT\x20commission\x20leg:\x20a\x20Rate\x20row\x20off\x20a\x20'+'dedicated\x20commission\x20pool\x20(never\x20a\x20Surplus/Rate\x20drain\x20of\x20the\x20buyer\x27s\x20goods\x20escrow\x20—\x20防抢池)\x20to\x20an\x20explicit\x20'+'non-empty\x20partner\x20Entity,\x20gated\x20by\x20a\x20window-anchored\x20claim\x20guard\x20(INV-D1\x20rides\x20TIME-ANCHOR-01)\x20so\x20the\x20'+'commission\x20is\x20claimable\x20only\x20after\x20the\x20attribution/refund\x20window\x20closes.'});const c9=/(post-?lock|锁后|clawback|不可追偿|不可撤销|unrecoverable|irrevocab|no\s*(?:revers|recov|clawback)|cannot be reversed|once released|released commission)/i,ca=(a['build_notes']??[])['some'](cb=>c9['test'](cb));!ca&&j['push']({'code':'AFFILIATE_CLAWBACK_UNDISCLOSED','detail':'affiliate_mode\x20\x27'+a2+'\x27\x20declares\x20a\x20commission\x20but\x20no\x20build_note\x20discloses\x20the\x20post-lock\x20no-clawback\x20'+'truth\x20(INV-D2).\x20SOLE\x20TRUTH:\x20Allocation\x20distribute\x20is\x20a\x20ONE-WAY\x20outflow\x20(no\x20debit/clawback\x20primitive,\x20§11.0\x20G2),\x20'+'so\x20once\x20a\x20commission\x20is\x20RELEASED\x20it\x20CANNOT\x20be\x20reversed\x20on\x20chain\x20—\x20a\x20refund/chargeback\x20after\x20release\x20leaves\x20the\x20'+'affiliate\x20commission\x20unrecoverable.\x20Add\x20a\x20build_note\x20stating\x20this\x20honestly\x20(e.g.\x20\x22post-lock:\x20a\x20released\x20'+'affiliate\x20commission\x20is\x20unrecoverable\x20/\x20不可追偿\x20—\x20refunds\x20after\x20the\x20attribution\x20window\x20do\x20NOT\x20claw\x20back\x20the\x20'+'partner\x20payout\x22).\x20L-04/D-5:\x20never\x20imply\x20a\x20recovery\x20capability\x20the\x20chain\x20does\x20not\x20have.'});}if(a5!=='none'){const cb=/(releas|settle|funded|disburs|project)/i,cc=/(refund|missed|unmet|return|reimburse)/i,cd=t['some'](cq=>cb['test'](cq['name'])),ce=ad['some'](cq=>cq['track']==='settlement'&&(cb['test'](cq['guard_key']??'')||cb['test'](cq['recipient_key']??''))),cf=t['some'](cq=>cc['test'](cq['name'])),cg=ad['some'](cq=>cq['track']==='refund'||cc['test'](cq['guard_key']??''));!cd&&!ce&&j['push']({'code':'CROWDFUNDING_THRESHOLD_GATE_MISSING','detail':'crowdfunding_mode\x20\x27'+a5+'\x27\x20declares\x20a\x20campaign\x20but\x20machine_shape\x20has\x20no\x20release/settlement\x20'+'node\x20and\x20the\x20allocator\x20has\x20no\x20settlement\x20row\x20to\x20the\x20project\x20Entity\x20—\x20the\x20escrowed\x20contributions\x20would\x20'+'strand\x20at\x20the\x20deadline\x20with\x20no\x20exit\x20rail\x20(INV-E1).\x20Add\x20a\x20release\x20leg\x20(Rate\x2010000\x20to\x20a\x20NON-EMPTY\x20project\x20'+'Entity,\x20gated\x20at\x20the\x20campaign-deadline\x20settlement\x20terminal)\x20and,\x20for\x20a\x20threshold\x20campaign,\x20its\x20D-BUG-2\x20'+'refund\x20twin.'});a5==='threshold'&&!cf&&!cg&&j['push']({'code':'CROWDFUNDING_THRESHOLD_GATE_MISSING','detail':'crowdfunding_mode\x20\x27threshold\x27\x20declares\x20an\x20all-or-nothing\x20campaign\x20but\x20there\x20is\x20NO\x20refund-family\x20node/row\x20—\x20'+'a\x20missed\x20goal\x20would\x20strand\x20every\x20contribution\x20instead\x20of\x20returning\x20it\x20(INV-E1\x20/\x20D-BUG-2).\x20Add\x20the\x20refund\x20'+'leg\x20(per-contributor,\x20order-anchored\x20user\x20slot\x200\x20—\x20the\x20submitted\x20Order,\x20never\x20slot\x20254,\x20claimed_by\x20some==false)\x20as\x20the\x20mutually-exclusive\x20twin\x20of\x20the\x20'+'release\x20leg:\x20aggregate\x20>=\x20goal\x20→\x20release;\x20aggregate\x20<\x20goal\x20→\x20refund.'});if(a5==='threshold'){const cq=x['some'](cr=>(cr['host']==='repository'||/repository_write/i['test'](cr['template_id']))&&(cr['policy']?.['id_from']??'')['toLowerCase']()==='signer');!cq&&j['push']({'code':'CROWDFUNDING_AGGREGATE_UNBOUND','detail':'crowdfunding_mode\x20\x27threshold\x27\x20gates\x20release\x20on\x20an\x20aggregate\x20funding\x20total,\x20but\x20no\x20host:\x22repository\x22\x20'+'write\x20policy\x20is\x20writer-bound\x20(id_from\x20signer)\x20—\x20the\x20sum-where\x20(1174)\x20total\x20would\x20be\x20forgeable,\x20so\x20'+'anyone\x20could\x20inflate\x20the\x20aggregate\x20and\x20fake\x20a\x20\x27goal\x20met\x27\x20(INV-E2\x20/\x20R-X1-17:\x20existence-is-not-trust).\x20'+'Bind\x20the\x20contribution\x20Repository\x20write_guard\x20to\x20the\x20contributing\x20backer\x20'+'(pattern.repository_write_authorization,\x20id_from\x20signer,\x20an\x20identity\x20leaf\x20order.owner==Signer).'});}const ch=a['build_notes']??[],ci=/(attest|keeper|aggregate trust|read-?only sum|not a chain-?verified|只读求和|聚合值|独立重算)/i,cj=/(not investment|non-?investment|不构成投资|收益承诺|no (?:investment )?return|never promise)/i,ck=/(kyc|aml|securities|money-?transmission|regulatory|跨境|合规)/i,cl=/(no-?refund|non-?refundable|keep-?it-?all|不退|不提供退款|不设达标)/i,cm=ch['some'](cr=>cj['test'](cr)),cn=ch['some'](cr=>ck['test'](cr)),co=a5==='threshold'?ch['some'](cr=>ci['test'](cr)):!![],cp=a5==='flexible'?ch['some'](cr=>cl['test'](cr)):!![];if(!co||!cm||!cn||!cp){const cr=[!co?'the\x20aggregate-trust\x20boundary\x20(the\x20funding\x20total\x20is\x20a\x20keeper-attested\x20Repository\x20sum,\x20NOT\x20a\x20chain-verified\x20money\x20oracle)':null,!cm?'the\x20L-01\x20non-investment\x20statement\x20(never\x20promise\x20returns\x20/\x20promote\x20coin\x20price;\x20不构成投资建议或收益承诺)':null,!cn?'the\x20L-05\x20KYC/AML\x20+\x20cross-border\x20regulatory\x20caution\x20(HIGH\x20intensity)':null,!cp?'the\x20flexible\x20keep-it-all\x20NO-REFUND\x20posture\x20(contributions\x20non-refundable\x20once\x20the\x20deadline\x20passes;\x20不提供退款)':null]['filter'](Boolean);j['push']({'code':'CROWDFUNDING_DISCLOSURE_MISSING','detail':'crowdfunding_mode\x20\x27'+a5+'\x27\x20declares\x20a\x20campaign\x20but\x20no\x20build_note\x20carries:\x20'+cr['join'](';\x20')+'\x20'+'(INV-E3\x20/\x20L-04\x20/\x20L-01\x20/\x20L-05).\x20Add\x20these\x20as\x20honest\x20build_notes\x20—\x20never\x20present\x20an\x20attested\x20aggregate\x20as\x20a\x20'+'chain-verified\x20custody\x20proof,\x20never\x20imply\x20investment\x20returns,\x20and\x20flag\x20the\x20compliance\x20surface.'});}}if(N!=='none'){const cs=t['some'](cy=>/review/i['test'](cy['name']));N==='review'&&!cs&&j['push']({'code':'REVIEW_NODE_MISSING','detail':'review_mode\x20\x27'+N+'\x27\x20declares\x20the\x20buyer\x20review\x20reputation\x20rail,\x20but\x20machine_shape\x20has\x20no\x20'+'\x27reviewed\x27\x20node.\x20Add\x20a\x20buyer-advanced\x20review\x20node\x20(operator\x20order_payer)\x20with\x20an\x20EXIT\x20edge\x20back\x20to\x20the\x20'+'settlement\x20rail\x20(R-DEAD-END:\x20a\x20zero-exit\x20review\x20node\x20strands\x20the\x20escrow),\x20or\x20anchor\x20the\x20claim\x20on\x20the\x20'+'delivered\x20terminal\x20via\x20a\x20host:\x22reward\x22\x20guard\x20(review_mode\x20\x22review_reward\x22\x20variant).'});const ct=x['find'](cy=>cy['host']==='reward'),cu=t['find'](cy=>/review/i['test'](cy['name']))?.['name'];let cv,cw;if(cu!==undefined){const cy=[];for(const cB of t){for(const cC of cB['from']??[]){const cD=typeof cC==='string'?{'prev':cC,'guard_key':undefined}:cC;cy['push']({'prev':cD['prev'],'guard_key':cD['guard_key'],'target':cB['name']});}}const cz=cy['find'](cE=>cE['target']===cu&&cE['guard_key']!==undefined)?.['guard_key']??cy['find'](cE=>cE['prev']===cu&&cE['guard_key']!==undefined)?.['guard_key'],cA=cz!==undefined?z['get'](cz):undefined;cv=cA?.['step_id'],cw=cz;}cv===undefined&&ct?.['step_id']!==undefined&&(cv=ct['step_id'],cw=ct['key']);const cx=b['review_decision_enabled']===!![]&&N==='review_reward'&&ct?.['step_id']!==undefined&&cv!==undefined;cx&&k['push']({'op':'create','id':'guard_review_decision','object':'guard','params':P({'description':'Merchant\x20review-decision\x20write\x20credential:\x20only\x20the\x20service\x20provider\x20(permission\x20owner\x20or\x20admin)\x20may\x20write\x20U64\x20decision\x20rows\x20(row\x20id\x20=\x20order\x20address,\x20value\x20=\x20approved\x20payout)\x20under\x20the\x20review\x20repository\x27s\x20\x27review_decision\x27\x20policy.','table':[{'identifier':0x0,'b_submission':!![],'value_type':'Address','name':'order_being_approved'},{'identifier':0x1,'b_submission':![],'value_type':'Address','value':ref('service'),'name':'this_service'},{'identifier':0x2,'b_submission':!![],'value_type':'Address','name':'service_permission'}],'root':{'type':'logic_and','nodes':[{'type':'logic_equal','nodes':[{'type':'query','query':'order.service','object':{'identifier':0x0},'parameters':[]},{'type':'identifier','identifier':0x1}]},{'type':'logic_equal','nodes':[{'type':'query','query':'service.permission','object':{'identifier':0x1},'parameters':[]},{'type':'identifier','identifier':0x2}]},{'type':'logic_or','nodes':[{'type':'logic_equal','nodes':[{'type':'query','query':'permission.owner','object':{'identifier':0x2},'parameters':[]},{'type':'context','context':'Signer'}]},{'type':'query','query':'permission.admin\x20has','object':{'identifier':0x2},'parameters':[{'type':'context','context':'Signer'}]}]}]}}),'notes':'REVIEW-DECISION\x20write\x20credential\x20(allocator\x20dynamic-permission\x20shape,\x20service\x20pinned\x20by\x20plan\x20ref\x20—\x20survives\x20permission\x20rotation).\x20The\x20decision\x20write\x20itself:\x20repository.data_add\x20'+'{name:\x27review_decision\x27,\x20items:[{write_guard:\x27<this\x20guard>\x27,\x20data:[{id:<order\x20address>,\x20data:<approved\x20payout\x20U64>}]}]}\x20with\x20a\x20passport\x20submission\x20carrying\x20the\x20order\x20and\x20the\x20permission.'});if(cv!==undefined){const cE=b['buyer_review_enabled']===!![];k['push']({'op':'create','id':'repository_review','object':'repository','params':P({'name':h+'_review','description':'Structured\x20buyer\x20reputation\x20rows\x20(AR-1:\x20emitted\x20by\x20the\x20build\x20plan\x20—\x20no\x20manual\x20setup).','policies':[{'name':'review','description':'One\x20immutable\x20row\x20per\x20ORDER\x20(id_from=None;\x20row\x20id\x20=\x20the\x20order\x20address\x20—\x20F09\x20yfd-ln-261024:\x20a\x20repeat\x20buyer\x20must\x20be\x20able\x20to\x20review\x20every\x20order;\x20the\x20old\x20Signer-keyed\x20row\x20made\x20order\x20#2\x20unwritable).\x20Write-once\x20—\x20a\x20rewrite\x20attempt\x20aborts\x20on-chain,\x20K3(a).\x20Writes\x20require\x20the\x20review\x20credential\x20(guard\x20key\x20\x27'+cw+'\x27).\x20Payload:\x20JSON\x20text\x20{rating,\x20tags?,\x20orderRef?}.','write_guard':[{'guard':ref(cv)}],'id_from':'none','value_type':'String','write_once':!![]},{'name':'rating','description':'Order-keyed\x20numeric\x20rating\x20(F-62):\x20one\x20U64\x20row\x20per\x20ORDER\x20(id_from=None;\x20row\x20id\x20=\x20the\x20order\x20address;\x20value\x20=\x20stars,\x20e.g.\x201..5;\x20write-once\x20—\x20a\x20rewrite\x20attempt\x20aborts\x20on-chain,\x20K3(a)).\x20Writes\x20require\x20the\x20same\x20review\x20credential\x20as\x20the\x20\x27review\x27\x20text\x20policy\x20—\x20a\x20verified\x20completed-order\x20buyer.\x20This\x20—\x20not\x20the\x20\x27review\x27\x20text\x20row\x20(same\x20order\x20key,\x20String\x20payload)\x20—\x20is\x20the\x20row\x20a\x20reward\x20good-review\x20leg\x20must\x20query\x20(query\x20repository.data:\x20the\x20policy-name\x20row\x20+\x20the\x20order-address\x20identifier\x20row,\x20compared\x20against\x20the\x20rating\x20floor).\x20The\x20text\x20row\x20is\x20display;\x20this\x20row\x20is\x20payout\x20authority.','write_guard':[{'guard':ref(cv)}],'id_from':'none','value_type':'U64','write_once':!![]},...cE?[{'name':'buyer_review','description':'Merchant-side\x20structured\x20feedback\x20on\x20the\x20order/buyer\x20(D-R7\x20bidirectional\x20reputation,\x20opt-in).\x20One\x20immutable\x20row\x20per\x20writer\x20(id_from=Signer;\x20write-once\x20—\x20a\x20rewrite\x20attempt\x20aborts\x20on-chain,\x20K3(a)).\x20NO\x20write\x20guard\x20by\x20design:\x20merchant\x20authority\x20is\x20verified\x20at\x20READ\x20time\x20(the\x20writer\x20must\x20control\x20the\x20order\x27s\x20service\x20—\x20graph\x20ControlIndex).\x20Payload:\x20JSON\x20text\x20{rating,\x20tags?,\x20orderRef?}.','id_from':'signer','value_type':'String','write_once':!![]}]:[],...cx?[{'name':'review_decision','description':'Merchant\x20approval\x20ledger\x20for\x20the\x20review\x20bounty\x20(professional\x20form):\x20one\x20U64\x20row\x20per\x20order\x20(id_from=None;\x20row\x20id\x20=\x20the\x20order\x20address;\x20value\x20=\x20approved\x20payout\x20in\x20smallest\x20units).\x20A\x20row\x20whose\x20value\x20>=\x20the\x20promised\x20payout\x20IS\x20the\x20approval\x20the\x20claim\x20guard\x27s\x20decision\x20leg\x20reads\x20(tpl_repository_review_decision_gate).\x20Writes\x20REQUIRE\x20the\x20merchant\x20decision\x20credential\x20(guard\x20step\x20\x27guard_review_decision\x27);\x20buyers\x20hold\x20no\x20write\x20path.','write_guard':[{'guard':ref('guard_review_decision')}],'id_from':'none','value_type':'U64'}]:[]]}),'notes':'REVIEW-COMPONENT\x20AR-1:\x20the\x20review\x20TEXT\x20still\x20rides\x20the\x20forward\x20message\x20(D-R1\x20dual\x20carrier);\x20this\x20repository\x20carries\x20ONLY\x20the\x20structured\x20row.\x20The\x20buyer\x20writes\x20BOTH\x20rows\x20at\x20review\x20time,\x20both\x20ORDER-KEYED\x20(F09):\x20\x27review\x27\x20(text\x20JSON,\x20id\x20=\x20the\x20ORDER\x20address)\x20AND\x20\x27rating\x27\x20(U64\x20stars,\x20id\x20=\x20the\x20ORDER\x20address\x20—\x20repository.data_add\x20{name:\x27rating\x27,\x20items:[{data:[{id:<order\x20address>,\x20data:<stars>}]}]},\x20same\x20passport\x20as\x20the\x20forward).\x20The\x20\x27rating\x27\x20row\x20is\x20what\x20a\x20reward\x20good-review\x20leg\x20reads\x20(F-62):\x20a\x20good-review\x20bounty\x20claim\x20guard\x20must\x20query\x20this\x20order-keyed\x20U64\x20row,\x20never\x20the\x20text\x20row.\x20Buyers\x20resolve\x20this\x20object\x20by\x20name\x20(workspace/onchain_objects)\x20—\x20never\x20guess\x20an\x20address.'+(cx?'\x20[review_decision\x20policy\x20frozen\x20AFTER\x20its\x20write\x20credential\x20—\x20the\x20guard\x20exists\x20before\x20this\x20create\x20(HOST-GRAPH-01\x20discipline).]':'')}),k['push']({'op':'configure','id':'service_review_repository','target':ref('service'),'method':'repositories','params':P({'op':'add','objects':[ref('repository_review')]}),'requires':['service','repository_review']});}if(N==='review_reward'){const cF=ct;if(cF===undefined||cF['step_id']===undefined)j['push']({'code':'REVIEW_REWARD_GUARD_MISSING','detail':'review_mode\x20\x27review_reward\x27\x20promises\x20a\x20claim\x20reward,\x20but\x20no\x20RESOLVED\x20host:\x22reward\x22\x20guard\x20spec\x20'+'exists\x20to\x20gate\x20the\x20claim.\x20Mount\x20a\x20reward\x20claim\x20guard\x20(e.g.\x20pattern.progress_state_check\x20anchored\x20'+'on\x20the\x20review\x20node\x20or\x20the\x20delivered\x20terminal\x20+\x20review\x20evidence\x20hash)\x20and\x20keep\x20it\x20resolvable\x20—\x20'+'an\x20unguarded\x20incentive\x20promise\x20must\x20not\x20publish\x20(INV-4).\x20The\x20root\x20must\x20also\x20carry\x20the\x20BKN-P2\x20'+'positive-amount\x20leg\x20(order.amount\x20>=\x201)\x20so\x20zero-total\x20orders\x20can\x20never\x20claim.'});else{const cG=b['reward_funding'],cH=D['get'](cF['key']);cH!==undefined&&!rootHasRewardRecordGate(cH['root'])&&j['push']({'code':'REVIEW_REWARD_UNARMED','detail':'review_reward\x20claim\x20guard\x20\x27'+cF['key']+'\x27\x20carries\x20no\x20record-gate:\x20Reward.claim\x20has\x20no\x20order\x20binding\x20of\x20its\x20own\x20'+'(OFN-C1),\x20so\x20a\x20funded\x20pool\x20behind\x20this\x20guard\x20is\x20a\x20replay-drain\x20target.\x20'+SV2_UNARMED_PRESCRIPTION+'\x20—\x20wrapped\x20in\x20'+'logic_and\x20with\x20the\x20identity\x20leg\x20(Signer\x20==\x20order.owner),\x20the\x20BKN-P2\x20positive-amount\x20'+'leg\x20(order.amount\x20>=\x201\x20—\x20zero-total\x20orders\x20must\x20never\x20claim)\x20and\x20the\x20existing\x20checks\x20'+'(see\x20tpl_reward_one_time_claim\x20v55\x20notes;\x20guard-risk\x20R-X1-14\x20audits\x20the\x20built\x20guard).\x20'+'Professional\x20approval\x20form\x20(F10\x20opt-in):\x20set\x20review_decision_enabled=true\x20to\x20have\x20this\x20'+'plan\x20emit\x20the\x20decision\x20channel\x20(guard\x20step\x20\x27guard_review_decision\x27\x20+\x20the\x20repository\x27s\x20'+'\x27review_decision\x27\x20policy),\x20then\x20compose\x20the\x20decision\x20leg\x20from\x20'+'tpl_repository_review_decision_gate\x20into\x20the\x20root\x20(find_where\x20over\x20\x27review_decision\x27\x20'+'with\x20vec_contains_address\x20pinning\x20the\x20submitted\x20order)\x20so\x20the\x20bounty\x20pays\x20only\x20'+'merchant-approved\x20orders.\x20'+'Until\x20armed,\x20do\x20not\x20fund\x20the\x20pool.'});let cI;if(cH!==undefined&&rootHasRewardRecordGate(cH['root']))for(const cJ of cH['table']){const cK=cJ;if(cK['b_submission']===!![]&&String(cK['value_type']??'')['toLowerCase']()==='address'&&(String(cK['object_type']??'')==='Order'||/order/i['test'](String(cK['name']??'')))){cI=cK['identifier'];break;}}k['push']({'op':'configure','id':'reward_review_guard_add','target':ref('reward_review'),'method':'guard_add','params':P({'guard':ref(cF['step_id']),'recipient':{'Signer':'signer'},...cI!==undefined?{'store_from_id':cI}:{}}),'requires':['reward_review'],'notes':'RECIPIENT\x20(crs-mn-261015\x20F-12):\x20recipient\x20is\x20pinned\x20to\x20{Signer:\x27signer\x27}\x20—\x20the\x20claim\x20entry\x20'+'requires\x20recipient\x20==\x20the\x20transaction\x20sender\x20(E_CLAIM_RECIPIENT_NOT_SIGNER\x20otherwise);\x20a\x20GuardIdentifier\x20recipient\x20'+'resolves\x20to\x20the\x20submitted\x20Order\x20and\x20can\x20never\x20be\x20paid.\x20Fill\x20amount\x20=\x20the\x20per-claim\x20bounty\x20'+'(smallest\x20units)\x20when\x20executing.'+(cI!==undefined?'\x20SV-2\x20entry\x20stamp:\x20store_from_id\x20pins\x20the\x20per-order\x20stamp\x20slot\x20(the\x20submitted\x20Order\x20'+'address)\x20so\x20claim\x20records\x20key\x20per\x20order\x20—\x20once\x20per\x20buyer\x20per\x20order\x20(azx7-mn-261014\x20T8).':'')}),k['push']({'op':'configure','id':'service_rewards','target':ref('service'),'method':'rewards','params':P({'op':'add','objects':[ref('reward_review')]}),'requires':['service']}),typeof cG==='string'||typeof cG==='number'?k['push']({'op':'configure','id':'reward_review_coin_add','target':ref('reward_review'),'method':'coin_add','params':{'coin':String(cG)},'requires':['reward_review']}):j['push']({'code':'REVIEW_REWARD_UNFUNDED','detail':'review_mode\x20\x27review_reward\x27\x20without\x20a\x20\x27reward_funding\x27\x20input\x20(INV-4\x20R-REWARD-FUNDED):\x20the\x20incentive\x20'+'is\x20a\x20marketing\x20promise\x20that\x20must\x20be\x20FUNDED\x20when\x20the\x20Service\x20is\x20built\x20(sale-time\x20planning\x20—\x20pool\x20>=\x20'+'expected\x20orders\x20x\x20per-order\x20reward,\x20benchmark\x20fee_param\x20review_reward_pool).\x20Pass\x20reward_funding\x20'+'(smallest-unit\x20string)\x20to\x20fund\x20the\x20Reward\x20object,\x20or\x20drop\x20to\x20review_mode\x20\x22review\x22.'});}}}if(K){k['push']({'op':'create','id':'arbitration','object':'arbitration','params':P({'name':h+'_arbitration','permission':ref('permission_arb'),'type_parameter':ab}),'notes':'Independent\x20venue\x20(R2).\x20New\x20arbitrations\x20default\x20bPaused=true\x20—\x20unpause\x20is\x20a\x20separate\x20operator\x20step.'}),k['push']({'op':'configure','id':'service_arbitrations','target':ref('service'),'method':'arbitrations','params':P({'op':'add','objects':[ref('arbitration')]})});const cL=b['compensation_fund'];(typeof cL==='string'||typeof cL==='number')&&k['push']({'op':'configure','id':'service_compensation','target':ref('service'),'method':'compensation_fund_add','params':{'balance':String(cL)}});}k['push']({'op':'publish','id':'service_publish','target':ref('service'),'preflight':[{'check':'service_publish','status':'pending'},{'check':'FUND-EXIT-01','status':'pending'},{'check':'PLAN-ALLOC-01','status':'pending'},{'check':'TASKBIND-02','status':'pending'}]});const ai=new Set(u['map'](cM=>cM['guard_key'])['filter'](cM=>typeof cM==='string')),aj=/^0x[0-9a-fA-F]{20,64}$/,ak=cM=>{const cN=D['get'](cM);if(cN===undefined)return undefined;for(const cO of cN['table']){const cP=cO;if(cP['b_submission']===!![]||cP['value_type']!=='Address')continue;const cQ=cP['value'];if(typeof cQ==='string'&&aj['test'](cQ))return String(cP['identifier']??'?');}return undefined;};for(const cM of D['keys']()){if(!G['has'](cM)&&!ai['has'](cM))continue;const cN=ak(cM);cN!==undefined&&j['push']({'code':'GUARD_FOREIGN_SERVICE','detail':'guard\x20\x27'+cM+'\x27\x20pins\x20an\x20on-chain\x20address\x20literal\x20(table\x20slot\x20'+cN+')\x20while\x20bound\x20into\x20this\x20build.\x20'+'The\x20plan\x27s\x20Service\x20is\x20created\x20BY\x20this\x20plan\x20and\x20cannot\x20equal\x20a\x20pre-existing\x20address,\x20so\x20the\x20pin\x20names\x20a\x20foreign\x20or\x20'+'stale\x20object:\x20each\x20object\x20is\x20well-formed\x20alone,\x20but\x20the\x20cross-object\x20identity\x20assert\x20aborts\x20every\x20guarded\x20forward\x20'+'(klook\x20B11\x20class),\x20and\x20Guard\x20+\x20machine\x20are\x20both\x20create/publish-frozen\x20—\x20unrepairable.\x20'+'Bind\x20by\x20plan\x20reference\x20({\x22$ref\x22:\x22service\x22})\x20or\x20by\x20the\x20P16\x20circular\x20service\x20NAME\x20instead.'});}const al=E['flatMap'](cO=>{const cP=ai['has'](cO['key'])?'allocator':G['has'](cO['key'])?'machine_edge':cO['host']==='service'&&cO['key']==='buy'?'service_buy':undefined;return cP?[{'key':cO['key'],'template_id':cO['template_id'],'host':cO['host'],'site':cP,'purpose':cO['purpose']}]:[];});return{'plan':{'version':0x1,'intent':d['intent']??'compile\x20'+a['id'],'templateId':a['id'],'inputs':b,'steps':k,...al['length']>0x0?{'pending_guards':al}:{}},'guardSpecs':x,'unresolved':E,'blockers':j,'omitted':[...w]};}
@@ -14,12 +14,35 @@ export declare function beginInFlight(op: string, data: unknown, env?: {
14
14
  account?: string;
15
15
  network?: string;
16
16
  dry_run?: boolean;
17
- }, submission?: unknown): string;
17
+ }, submission?: unknown, startedAtMs?: number): string;
18
+ export declare function parkUnknownOutcomeMarker(op: string, data: unknown, env?: {
19
+ account?: string;
20
+ dry_run?: boolean;
21
+ }, submission?: unknown): void;
22
+ export declare function markerOpFor(op: string, data: unknown): string;
18
23
  export declare function recordInFlightOutcome(markerId: string, result: unknown): void;
19
- export declare function inFlightParamsHash(data: unknown, submission?: unknown): string;
24
+ interface LandedTombstone {
25
+ op: string;
26
+ digest: string;
27
+ at: number;
28
+ }
29
+ export declare function recentLandedTombstone(): LandedTombstone | undefined;
30
+ export declare function clearInFlightMarkers(): number;
31
+ interface ReturnedDigest {
32
+ digest: string;
33
+ op: string;
34
+ at: number;
35
+ }
36
+ export declare function noteReturnedDigest(digest: string, op: string): void;
37
+ export declare function priorReturnOfDigest(digest: string | undefined): ReturnedDigest | undefined;
38
+ export declare function attachInFlightDigest(op: string, paramsHash: string | undefined, digest: string): void;
39
+ export declare function inFlightParamsHash(data: unknown, submission?: unknown, account?: unknown): string;
20
40
  export declare function describeLastInFlight(op: string, paramsHash?: string): string | undefined;
21
41
  export declare function lastInFlightMarker(op: string, paramsHash?: string): InFlightRecord | undefined;
22
- export declare function pendingInFlightResend(op: string, data: unknown, submission?: unknown): string | undefined;
42
+ export declare function pendingInFlightResend(op: string, data: unknown, submission?: unknown, env?: {
43
+ account?: string;
44
+ dry_run?: boolean;
45
+ }): string | undefined;
23
46
  export interface OrderLandedEvent {
24
47
  order?: string;
25
48
  progress?: string | null;
@@ -29,3 +52,4 @@ export interface OrderLandedEvent {
29
52
  digest?: string;
30
53
  }
31
54
  export declare function matchOrderLandedEvent(marker: InFlightRecord, ev: OrderLandedEvent): string | undefined;
55
+ export {};
@@ -1 +1 @@
1
- const MAX_RECORDS=0x32,MAX_AGE_MS=0x2*0x3c*0x3c*0x3e8,records=new Map();let seq=0x0;function hash(a){let b=0x1505;for(let c=0x0;c<a['length'];c++)b=(b<<0x5)+b+a['charCodeAt'](c)>>>0x0;return b['toString'](0x10);}function prune(){const a=Date['now']();for(const [b,c]of records){if(a-c['started_at']>MAX_AGE_MS)records['delete'](b);}while(records['size']>MAX_RECORDS){const d=records['keys']()['next']()['value'];if(d===undefined)break;records['delete'](d);}}function addr(a){return typeof a==='string'&&a['startsWith']('0x')?a:undefined;}export function beginInFlight(a,b,c,d){if(c?.['dry_run']===!![])return'';const e=b,f=e?.['order_new']?.['buy'],g=e?.['alloc_by_guard']!=null,h={'marker_id':'ifl_'+Date['now']()['toString'](0x10)+'_'+(seq++)['toString'](0x10),'op':a,'service':g?undefined:addr(e?.['object'])??addr(f?.['service']),'allocation':g?addr(e?.['object']):undefined,'buyer':addr(c?.['account']),'items_count':Array['isArray'](f?.['items'])?f['items']['length']:undefined,'params_hash':inFlightParamsHash(b,d),'started_at':Date['now'](),'digests':[],'status':'in_flight'};return records['set'](h['marker_id'],h),prune(),h['marker_id'];}export function recordInFlightOutcome(a,b){const c=records['get'](a);if(!c)return;const d=b?.['digest'];typeof d==='string'&&d&&records['delete'](a);}export function inFlightParamsHash(a,b){return hash(JSON['stringify'](a??{})+'\x00'+JSON['stringify'](b??null));}export function describeLastInFlight(a,b){let c;for(const e of records['values']()){if(e['op']!==a)continue;if(b!==undefined&&e['params_hash']!==b)continue;c=e;}if(!c)return undefined;const d=[c['service']?'service='+c['service']:undefined,c['allocation']?'allocation='+c['allocation']:undefined,c['buyer']?'buyer='+c['buyer']:undefined,c['items_count']!==undefined?'items='+c['items_count']:undefined]['filter'](Boolean)['join']('\x20');return'IN-FLIGHT\x20MARKER\x20'+c['marker_id']+':\x20op='+c['op']+'\x20'+d+'\x20started\x20'+new Date(c['started_at'])['toISOString']()+'\x20'+'—\x20this\x20operation\x20is\x20observability-non-atomic:\x20a\x20transport\x20drop\x20after\x20submit\x20leaves\x20the\x20commit\x20state\x20'+'open.\x20Before\x20resubmitting,\x20first\x20verify\x20whether\x20an\x20order\x20with\x20this\x20exact\x20signature\x20already\x20landed\x20'+'(query\x20the\x20sender\x27s\x20recent\x20on-chain\x20objects\x20or\x20onchain_events\x20for\x20this\x20service);\x20adopt\x20it\x20if\x20present,\x20'+'resubmit\x20only\x20if\x20confirmed\x20absent.';}export function lastInFlightMarker(a,b){let c;for(const d of records['values']()){if(d['op']!==a)continue;if(b!==undefined&&d['params_hash']!==b)continue;c=d;}return c;}const RESEND_INTERCEPT_WINDOW_MS=0x78*0x3e8;export function pendingInFlightResend(a,b,c){const d=lastInFlightMarker(a,inFlightParamsHash(b,c));if(!d)return undefined;if(Date['now']()-d['started_at']>=RESEND_INTERCEPT_WINDOW_MS)return undefined;const e=d['allocation']??d['service']??'the\x20object\x20referenced\x20by\x20this\x20call',f=new Date(d['started_at']+RESEND_INTERCEPT_WINDOW_MS)['toISOString']();return'THIS\x20EXACT\x20CALL\x20WAS\x20SUBMITTED\x20MOMENTS\x20AGO\x20AND\x20ITS\x20OUTCOME\x20WAS\x20NEVER\x20OBSERVED\x20'+('(in-flight\x20marker\x20'+d['marker_id']+',\x20started\x20'+new Date(d['started_at'])['toISOString']()+',\x20')+('op='+d['op']+',\x20'+e+').\x20The\x20call\x20is\x20observability-non-atomic:\x20a\x20transport\x20drop\x20after\x20submit\x20')+'leaves\x20the\x20commit\x20state\x20open,\x20and\x20resubmitting\x20the\x20same\x20payload\x20without\x20checking\x20may\x20move\x20the\x20funds\x20'+'a\x20second\x20time.\x20Before\x20doing\x20anything\x20else,\x20verify\x20whether\x20the\x20previous\x20submission\x20already\x20landed:\x20'+'query\x20the\x20Allocation\x20object\x20and\x20the\x20Payment\x20object(s)\x20it\x20produced\x20(onchain_objects\x20/\x20'+'onchain_events\x20for\x20this\x20allocation)\x20—\x20if\x20a\x20distribution\x20already\x20landed,\x20adopt\x20it\x20and\x20stop;\x20'+'only\x20resubmit\x20once\x20you\x20have\x20confirmed\x20on-chain\x20that\x20nothing\x20landed.\x20'+'Scope\x20of\x20this\x20check:\x20it\x20holds\x20ONLY\x20this\x20exact\x20payload\x20(data\x20+\x20submission\x20envelope\x20together),\x20and\x20'+('only\x20until\x20'+f+'\x20('+Math['round'](RESEND_INTERCEPT_WINDOW_MS/0x3e8)+'s\x20from\x20the\x20marker\x20start)\x20—\x20')+'past\x20that\x20moment\x20the\x20identical\x20call\x20goes\x20through\x20unchanged.\x20A\x20changed\x20payload\x20(different\x20rails,\x20'+'amounts,\x20recipients,\x20or\x20a\x20corrected\x20submission\x20envelope)\x20is\x20never\x20affected:\x20fixing\x20the\x20envelope\x20and\x20'+'retrying\x20right\x20away\x20is\x20always\x20allowed.';}export function matchOrderLandedEvent(a,b){const c=a['started_at']-0xf*0x3e8,d=Number(b?.['time']);if(Number['isFinite'](d)&&d<c)return undefined;const e=!!(a['service']&&b?.['service']&&b['service']===a['service']),f=!!(a['buyer']&&b?.['sender']&&b['sender']['toLowerCase']()===a['buyer']['toLowerCase']());if(!e&&!f)return undefined;if(a['buyer']&&b?.['sender']&&!f)return undefined;const g=b?.['digest']??'unknown';return'AUTO-VERIFIED\x20ON-CHAIN:\x20this\x20order\x20DID\x20land\x20despite\x20the\x20error\x20above\x20—\x20order='+(b?.['order']??'?')+((b?.['progress']?'\x20progress='+b['progress']:'')+'\x20digest='+g+'.\x20ADOPT\x20this\x20order\x20object;\x20')+'resubmitting\x20the\x20same\x20call\x20would\x20escrow\x20a\x20SECOND\x20time.';}
1
+ const MAX_RECORDS=0x32,MAX_AGE_MS=0x2*0x3c*0x3c*0x3e8,records=new Map();let seq=0x0;function hash(a){let b=0x1505;for(let c=0x0;c<a['length'];c++)b=(b<<0x5)+b+a['charCodeAt'](c)>>>0x0;return b['toString'](0x10);}function prune(){const a=Date['now']();for(const [b,c]of records){if(a-c['started_at']>MAX_AGE_MS)records['delete'](b);}while(records['size']>MAX_RECORDS){const d=records['keys']()['next']()['value'];if(d===undefined)break;records['delete'](d);}}function addr(a){return typeof a==='string'&&a['startsWith']('0x')?a:undefined;}export function beginInFlight(a,b,c,d,e){if(c?.['dry_run']===!![])return'';const f=b,g=f?.['order_new']?.['buy'],h=f?.['alloc_by_guard']!=null,i={'marker_id':'ifl_'+Date['now']()['toString'](0x10)+'_'+(seq++)['toString'](0x10),'op':a,'service':h?undefined:addr(f?.['object'])??addr(g?.['service']),'allocation':h?addr(f?.['object']):undefined,'buyer':addr(c?.['account']),'items_count':Array['isArray'](g?.['items'])?g['items']['length']:undefined,'params_hash':inFlightParamsHash(b,d,c?.['account']),'started_at':e??Date['now'](),'digests':[],'status':'in_flight'};return records['set'](i['marker_id'],i),prune(),i['marker_id'];}const UNKNOWN_OUTCOME_BACKDATE_MS=0x3c*0x3e8;export function parkUnknownOutcomeMarker(a,b,c,d){if(c?.['dry_run']===!![])return;if(lastInFlightMarker(a,inFlightParamsHash(b,d,c?.['account'])))return;beginInFlight(a,b,c,d,Date['now']()-UNKNOWN_OUTCOME_BACKDATE_MS);}export function markerOpFor(a,b){const c=b;if(c?.['order_new']!=null)return'order_new';if(c?.['alloc_by_guard']!=null)return'alloc_by_guard';return a;}export function recordInFlightOutcome(a,b){const c=records['get'](a);if(!c)return;const d=b?.['digest'];typeof d==='string'&&d&&(recordLandedTombstone(c['op'],d),records['delete'](a));}const MAX_TOMBSTONES=0xa,TOMBSTONE_MAX_AGE_MS=0xa*0x3c*0x3e8,tombstones=[];function recordLandedTombstone(a,b){tombstones['push']({'op':a,'digest':b,'at':Date['now']()});while(tombstones['length']>MAX_TOMBSTONES)tombstones['shift']();}export function recentLandedTombstone(){const a=Date['now']();while(tombstones['length']>0x0&&a-tombstones[0x0]['at']>TOMBSTONE_MAX_AGE_MS)tombstones['shift']();return tombstones['length']>0x0?tombstones[tombstones['length']-0x1]:undefined;}export function clearInFlightMarkers(){const a=records['size']+tombstones['length'];return records['clear'](),tombstones['length']=0x0,a;}const MAX_RETURNED_DIGESTS=0x200,returnedDigests=[];export function noteReturnedDigest(a,b){if(!a||a['startsWith']('dry_run:'))return;if(returnedDigests['some'](c=>c['digest']===a))return;returnedDigests['push']({'digest':a,'op':b,'at':Date['now']()});while(returnedDigests['length']>MAX_RETURNED_DIGESTS)returnedDigests['shift']();}export function priorReturnOfDigest(a){if(!a)return undefined;for(let b=returnedDigests['length']-0x1;b>=0x0;b--){if(returnedDigests[b]['digest']===a)return returnedDigests[b];}return undefined;}export function attachInFlightDigest(a,b,c){const d=lastInFlightMarker(a,b);if(!d)return;if(!d['digests']['includes'](c))d['digests']['push'](c);}export function inFlightParamsHash(a,b,c){const d=typeof c==='string'?c['trim']()['toLowerCase']():'';return hash(JSON['stringify'](a??{})+'\x00'+JSON['stringify'](b??null)+'\x00'+d);}export function describeLastInFlight(a,b){let c;for(const f of records['values']()){if(f['op']!==a)continue;if(b!==undefined&&f['params_hash']!==b)continue;c=f;}if(!c)return undefined;const d=[c['service']?'service='+c['service']:undefined,c['allocation']?'allocation='+c['allocation']:undefined,c['buyer']?'buyer='+c['buyer']:undefined,c['items_count']!==undefined?'items='+c['items_count']:undefined]['filter'](Boolean)['join']('\x20'),e=c['digests']['length']>0x0?'\x0aReported\x20submission\x20digest(s):\x20'+c['digests']['join'](',\x20')+'\x20—\x20verify\x20THE\x20DIGEST\x20FIRST\x20'+'(onchain_transaction\x20by\x20digest):\x20an\x20executed\x20status\x20means\x20the\x20operation\x20LANDED\x20—\x20adopt\x20the\x20'+'created\x20object(s)\x20and\x20stop;\x20a\x20failure\x20status\x20is\x20FINAL\x20(its\x20bytes\x20are\x20consumed\x20—\x20fix\x20the\x20cause\x20'+'and\x20build\x20a\x20fresh\x20transaction);\x20a\x20digest\x20that\x20does\x20not\x20resolve\x20means\x20nothing\x20landed\x20and\x20a\x20'+'resubmit\x20is\x20safe.':'';return'IN-FLIGHT\x20MARKER\x20'+c['marker_id']+':\x20op='+c['op']+'\x20'+d+'\x20started\x20'+new Date(c['started_at'])['toISOString']()+'\x20'+'—\x20this\x20operation\x20is\x20observability-non-atomic:\x20a\x20transport\x20drop\x20after\x20submit\x20leaves\x20the\x20commit\x20state\x20'+'open.\x20Before\x20resubmitting,\x20first\x20verify\x20whether\x20an\x20order\x20with\x20this\x20exact\x20signature\x20already\x20landed\x20'+'(query\x20the\x20sender\x27s\x20recent\x20on-chain\x20objects\x20or\x20onchain_events\x20for\x20this\x20service);\x20adopt\x20it\x20if\x20present,\x20'+'resubmit\x20only\x20if\x20confirmed\x20absent.'+e;}export function lastInFlightMarker(a,b){let c;for(const d of records['values']()){if(d['op']!==a)continue;if(b!==undefined&&d['params_hash']!==b)continue;c=d;}return c;}const RESEND_INTERCEPT_WINDOW_MS=0x78*0x3e8;export function pendingInFlightResend(a,b,c,d){if(d?.['dry_run']===!![])return undefined;const e=lastInFlightMarker(a,inFlightParamsHash(b,c,d?.['account']));if(!e)return undefined;if(Date['now']()-e['started_at']>=RESEND_INTERCEPT_WINDOW_MS)return undefined;const f=e['allocation']??e['service']??'the\x20object\x20referenced\x20by\x20this\x20call',g=new Date(e['started_at']+RESEND_INTERCEPT_WINDOW_MS)['toISOString'](),h=e['allocation']?'query\x20the\x20Allocation\x20object\x20and\x20the\x20Payment\x20object(s)\x20it\x20produced\x20'+'(onchain_objects\x20/\x20onchain_events\x20for\x20this\x20allocation)':'query\x20the\x20object(s)\x20this\x20exact\x20call\x20creates\x20or\x20mutates,\x20and\x20the\x20signing\x20'+'account\x27s\x20recent\x20events\x20(query_toolkit\x20onchain_objects\x20/\x20onchain_events\x20for\x20the\x20sender)';return'THIS\x20EXACT\x20CALL\x20WAS\x20SUBMITTED\x20MOMENTS\x20AGO\x20AND\x20ITS\x20OUTCOME\x20WAS\x20NEVER\x20OBSERVED\x20'+('(in-flight\x20marker\x20'+e['marker_id']+',\x20started\x20'+new Date(e['started_at'])['toISOString']()+',\x20')+('op='+e['op']+',\x20'+f+').\x20The\x20call\x20is\x20observability-non-atomic:\x20a\x20transport\x20drop\x20after\x20submit\x20')+'leaves\x20the\x20commit\x20state\x20open,\x20and\x20resubmitting\x20the\x20same\x20payload\x20without\x20checking\x20may\x20move\x20the\x20funds\x20'+'a\x20second\x20time.\x20Before\x20doing\x20anything\x20else,\x20verify\x20whether\x20the\x20previous\x20submission\x20already\x20landed:\x20'+(h+'\x20—\x20if\x20a\x20result\x20already\x20landed,\x20adopt\x20it\x20and\x20stop;\x20')+'only\x20resubmit\x20once\x20you\x20have\x20confirmed\x20on-chain\x20that\x20nothing\x20landed.\x20'+'Scope\x20of\x20this\x20check:\x20it\x20holds\x20ONLY\x20this\x20exact\x20payload\x20(data\x20+\x20submission\x20envelope\x20together),\x20and\x20'+('only\x20until\x20'+g+'\x20('+Math['round'](RESEND_INTERCEPT_WINDOW_MS/0x3e8)+'s\x20from\x20the\x20marker\x20start)\x20—\x20')+'past\x20that\x20moment\x20the\x20identical\x20call\x20goes\x20through\x20unchanged.\x20A\x20changed\x20payload\x20(different\x20amounts,\x20'+'recipients,\x20targets,\x20or\x20a\x20corrected\x20submission\x20envelope)\x20is\x20never\x20affected:\x20fixing\x20the\x20envelope\x20and\x20'+'retrying\x20right\x20away\x20is\x20always\x20allowed.';}export function matchOrderLandedEvent(a,b){const c=a['started_at']-0xf*0x3e8,d=Number(b?.['time']);if(Number['isFinite'](d)&&d<c)return undefined;if(priorReturnOfDigest(b?.['digest']))return undefined;const e=!!(a['service']&&b?.['service']&&b['service']===a['service']),f=!!(a['buyer']&&b?.['sender']&&b['sender']['toLowerCase']()===a['buyer']['toLowerCase']());if(!e&&!f)return undefined;if(a['buyer']&&b?.['sender']&&!f)return undefined;const g=b?.['digest']??'unknown';return'AUTO-VERIFIED\x20ON-CHAIN:\x20this\x20order\x20DID\x20land\x20despite\x20the\x20error\x20above\x20—\x20order='+(b?.['order']??'?')+((b?.['progress']?'\x20progress='+b['progress']:'')+'\x20digest='+g+'.\x20ADOPT\x20this\x20order\x20object;\x20')+'resubmitting\x20the\x20same\x20call\x20would\x20escrow\x20a\x20SECOND\x20time.';}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { type RuleDomainPack } from "./rule-engine.js";
3
3
  export declare const EXPECTED_JUDGMENT_VERSION = 1;
4
- export declare const JUDGMENT_SECTION_NAMES: readonly ["evaluation", "game", "match", "monitor", "mode", "scorecard", "rules"];
4
+ export declare const JUDGMENT_SECTION_NAMES: readonly ["evaluation", "game", "match", "monitor", "mode", "scorecard", "rules", "role_intent"];
5
5
  export type JudgmentSectionName = (typeof JUDGMENT_SECTION_NAMES)[number];
6
6
  export declare const DimensionStandardSchema: z.ZodObject<{
7
7
  label: z.ZodString;
@@ -369,6 +369,50 @@ export declare const ScorecardSectionInputSchema: z.ZodObject<{
369
369
  }, z.core.$strict>>>;
370
370
  shop_evidence_metrics: z.ZodOptional<z.ZodArray<z.ZodString>>;
371
371
  }, z.core.$strict>;
372
+ export declare const RoleIntentSectionSchema: z.ZodObject<{
373
+ comment: z.ZodOptional<z.ZodString>;
374
+ roles: z.ZodRecord<z.ZodString, z.ZodObject<{
375
+ comment: z.ZodOptional<z.ZodString>;
376
+ intents: z.ZodArray<z.ZodObject<{
377
+ id: z.ZodString;
378
+ weight: z.ZodNumber;
379
+ }, z.core.$strict>>;
380
+ horizon: z.ZodOptional<z.ZodNumber>;
381
+ risk_appetite: z.ZodOptional<z.ZodEnum<{
382
+ conservative: "conservative";
383
+ balanced: "balanced";
384
+ aggressive: "aggressive";
385
+ }>>;
386
+ red_lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
387
+ strategy_leaning: z.ZodOptional<z.ZodEnum<{
388
+ cooperative: "cooperative";
389
+ opportunistic: "opportunistic";
390
+ confrontational: "confrontational";
391
+ }>>;
392
+ }, z.core.$strict>>;
393
+ }, z.core.$strict>;
394
+ export declare const RoleIntentSectionInputSchema: z.ZodObject<{
395
+ comment: z.ZodOptional<z.ZodString>;
396
+ roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
397
+ comment: z.ZodOptional<z.ZodOptional<z.ZodString>>;
398
+ intents: z.ZodOptional<z.ZodArray<z.ZodObject<{
399
+ id: z.ZodString;
400
+ weight: z.ZodNumber;
401
+ }, z.core.$strict>>>;
402
+ horizon: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
403
+ risk_appetite: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
404
+ conservative: "conservative";
405
+ balanced: "balanced";
406
+ aggressive: "aggressive";
407
+ }>>>;
408
+ red_lines: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
409
+ strategy_leaning: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
410
+ cooperative: "cooperative";
411
+ opportunistic: "opportunistic";
412
+ confrontational: "confrontational";
413
+ }>>>;
414
+ }, z.core.$strict>>>;
415
+ }, z.core.$strict>;
372
416
  export declare const RulesSectionSchema: z.ZodObject<{
373
417
  comment: z.ZodOptional<z.ZodString>;
374
418
  domains: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -717,6 +761,28 @@ export declare const JudgmentDocSchema: z.ZodObject<{
717
761
  }>>>;
718
762
  }, z.core.$strict>>;
719
763
  }, z.core.$strict>;
764
+ role_intent: z.ZodObject<{
765
+ comment: z.ZodOptional<z.ZodString>;
766
+ roles: z.ZodRecord<z.ZodString, z.ZodObject<{
767
+ comment: z.ZodOptional<z.ZodString>;
768
+ intents: z.ZodArray<z.ZodObject<{
769
+ id: z.ZodString;
770
+ weight: z.ZodNumber;
771
+ }, z.core.$strict>>;
772
+ horizon: z.ZodOptional<z.ZodNumber>;
773
+ risk_appetite: z.ZodOptional<z.ZodEnum<{
774
+ conservative: "conservative";
775
+ balanced: "balanced";
776
+ aggressive: "aggressive";
777
+ }>>;
778
+ red_lines: z.ZodOptional<z.ZodArray<z.ZodString>>;
779
+ strategy_leaning: z.ZodOptional<z.ZodEnum<{
780
+ cooperative: "cooperative";
781
+ opportunistic: "opportunistic";
782
+ confrontational: "confrontational";
783
+ }>>;
784
+ }, z.core.$strict>>;
785
+ }, z.core.$strict>;
720
786
  }, z.core.$strict>;
721
787
  export declare const JudgmentDocInputSchema: z.ZodObject<{
722
788
  version: z.ZodNumber;
@@ -936,6 +1002,28 @@ export declare const JudgmentDocInputSchema: z.ZodObject<{
936
1002
  }>>>;
937
1003
  }, z.core.$strict>>>;
938
1004
  }, z.core.$strict>>;
1005
+ role_intent: z.ZodOptional<z.ZodObject<{
1006
+ comment: z.ZodOptional<z.ZodString>;
1007
+ roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1008
+ comment: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1009
+ intents: z.ZodOptional<z.ZodArray<z.ZodObject<{
1010
+ id: z.ZodString;
1011
+ weight: z.ZodNumber;
1012
+ }, z.core.$strict>>>;
1013
+ horizon: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1014
+ risk_appetite: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
1015
+ conservative: "conservative";
1016
+ balanced: "balanced";
1017
+ aggressive: "aggressive";
1018
+ }>>>;
1019
+ red_lines: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
1020
+ strategy_leaning: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
1021
+ cooperative: "cooperative";
1022
+ opportunistic: "opportunistic";
1023
+ confrontational: "confrontational";
1024
+ }>>>;
1025
+ }, z.core.$strict>>>;
1026
+ }, z.core.$strict>>;
939
1027
  }, z.core.$strict>;
940
1028
  export type EvaluationSection = z.infer<typeof EvaluationSectionSchema>;
941
1029
  export type DimensionStandard = z.infer<typeof DimensionStandardSchema>;
@@ -1164,6 +1252,28 @@ export declare const JudgmentFragmentSchema: z.ZodObject<{
1164
1252
  }, z.core.$strict>>>;
1165
1253
  shop_evidence_metrics: z.ZodOptional<z.ZodArray<z.ZodString>>;
1166
1254
  }, z.core.$strict>>;
1255
+ role_intent: z.ZodOptional<z.ZodObject<{
1256
+ comment: z.ZodOptional<z.ZodString>;
1257
+ roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1258
+ comment: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1259
+ intents: z.ZodOptional<z.ZodArray<z.ZodObject<{
1260
+ id: z.ZodString;
1261
+ weight: z.ZodNumber;
1262
+ }, z.core.$strict>>>;
1263
+ horizon: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1264
+ risk_appetite: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
1265
+ conservative: "conservative";
1266
+ balanced: "balanced";
1267
+ aggressive: "aggressive";
1268
+ }>>>;
1269
+ red_lines: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
1270
+ strategy_leaning: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
1271
+ cooperative: "cooperative";
1272
+ opportunistic: "opportunistic";
1273
+ confrontational: "confrontational";
1274
+ }>>>;
1275
+ }, z.core.$strict>>>;
1276
+ }, z.core.$strict>>;
1167
1277
  version: z.ZodOptional<z.ZodNumber>;
1168
1278
  }, z.core.$strict>;
1169
1279
  export type JudgmentLayerFragment = z.infer<typeof JudgmentFragmentSchema>;