@wowok/agent-mcp 3.4.2 → 3.4.3

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 (308) hide show
  1. package/dist/.build-stamp.json +5 -0
  2. package/dist/chain-semantics/composition-truth.js +1 -1
  3. package/dist/chain-semantics/eval-order.js +1 -1
  4. package/dist/chain-semantics/field-capability.js +1 -1
  5. package/dist/chain-semantics/freeze-map.js +1 -1
  6. package/dist/chain-semantics/fund-flow.js +1 -1
  7. package/dist/chain-semantics/guard-verbs.js +1 -1
  8. package/dist/chain-semantics/object-graph.js +1 -1
  9. package/dist/composition/audit.js +1 -1
  10. package/dist/composition/compile.d.ts +10 -3
  11. package/dist/composition/compile.js +1 -1
  12. package/dist/composition/emit-phases.d.ts +30 -2
  13. package/dist/composition/emit-phases.js +1 -1
  14. package/dist/composition/guard-fill.d.ts +8 -0
  15. package/dist/composition/guard-fill.js +1 -1
  16. package/dist/composition/inflight.js +1 -1
  17. package/dist/composition/input-normalize.js +1 -1
  18. package/dist/composition/materialize.d.ts +2 -0
  19. package/dist/composition/materialize.js +1 -1
  20. package/dist/composition/mode-gates.js +1 -1
  21. package/dist/composition/param-disclosure.js +1 -1
  22. package/dist/composition/plan-retry-ledger.d.ts +16 -0
  23. package/dist/composition/plan-retry-ledger.js +1 -1
  24. package/dist/composition/plan.d.ts +15 -1
  25. package/dist/composition/plan.js +1 -1
  26. package/dist/config/config-audit.spec.js +1 -1
  27. package/dist/config/judgment.d.ts +5 -0
  28. package/dist/config/judgment.js +1 -1
  29. package/dist/evaluation/builtins/arbitration-score.d.ts +1 -0
  30. package/dist/evaluation/builtins/arbitration-score.js +1 -1
  31. package/dist/evaluation/builtins/demand-match.js +1 -1
  32. package/dist/evaluation/builtins/graph-service.d.ts +8 -0
  33. package/dist/evaluation/builtins/graph-service.js +1 -1
  34. package/dist/evaluation/capability.d.ts +9 -0
  35. package/dist/evaluation/engine.js +1 -1
  36. package/dist/evaluation/extract.d.ts +9 -1
  37. package/dist/evaluation/extract.js +1 -1
  38. package/dist/evaluation/match-operation.js +1 -1
  39. package/dist/evaluation/match-policy.d.ts +5 -3
  40. package/dist/evaluation/match-policy.js +1 -1
  41. package/dist/evaluation/standards.d.ts +1 -0
  42. package/dist/evaluation/standards.js +1 -1
  43. package/dist/evaluation/structured-lines.js +1 -1
  44. package/dist/evaluation/types.d.ts +1 -0
  45. package/dist/extensions/capability.js +1 -1
  46. package/dist/harness/recover.js +1 -1
  47. package/dist/index.js +1 -1
  48. package/dist/intent/types.d.ts +1 -1
  49. package/dist/intent/types.js +1 -1
  50. package/dist/knowledge/allocation-ledger.js +1 -1
  51. package/dist/knowledge/allocator-rail-verifier.d.ts +17 -1
  52. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  53. package/dist/knowledge/arb-fund-facts.d.ts +7 -0
  54. package/dist/knowledge/arb-fund-facts.js +1 -1
  55. package/dist/knowledge/arbitration-rail-verifier.d.ts +35 -0
  56. package/dist/knowledge/arbitration-rail-verifier.js +1 -0
  57. package/dist/knowledge/audit-rules.d.ts +11 -0
  58. package/dist/knowledge/audit-rules.js +1 -1
  59. package/dist/knowledge/baselines/judgment-baselines.json +1 -0
  60. package/dist/knowledge/baselines/rules/guard.json +7 -6
  61. package/dist/knowledge/baselines/rules/progress.json +4 -4
  62. package/dist/knowledge/baselines/rules/reward.json +118 -3
  63. package/dist/knowledge/builtin-templates.d.ts +3 -2
  64. package/dist/knowledge/builtin-templates.js +1 -1
  65. package/dist/knowledge/chain-query-registry.d.ts +14 -0
  66. package/dist/knowledge/chain-query-registry.js +1 -0
  67. package/dist/knowledge/event-semantics.js +1 -1
  68. package/dist/knowledge/fee-param-bindings.d.ts +2 -0
  69. package/dist/knowledge/fee-param-bindings.js +1 -1
  70. package/dist/knowledge/getting-started.js +1 -1
  71. package/dist/knowledge/guard-binding-table.js +1 -1
  72. package/dist/knowledge/guard-binding-verifier.d.ts +7 -0
  73. package/dist/knowledge/guard-binding-verifier.js +1 -1
  74. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  75. package/dist/knowledge/guard-design-patterns.js +1 -1
  76. package/dist/knowledge/guard-host-context.js +1 -1
  77. package/dist/knowledge/guard-lint.js +1 -1
  78. package/dist/knowledge/guard-node-gates.d.ts +3 -1
  79. package/dist/knowledge/guard-node-gates.js +1 -1
  80. package/dist/knowledge/guard-puzzle.js +1 -1
  81. package/dist/knowledge/guard-render.js +1 -1
  82. package/dist/knowledge/guard-risk.js +1 -1
  83. package/dist/knowledge/guard-templates.d.ts +2 -1
  84. package/dist/knowledge/guard-templates.js +1 -1
  85. package/dist/knowledge/guard-translation.js +1 -1
  86. package/dist/knowledge/index.d.ts +2 -0
  87. package/dist/knowledge/index.js +1 -1
  88. package/dist/knowledge/industry-registry.js +1 -1
  89. package/dist/knowledge/jsonrpc-enum.js +1 -1
  90. package/dist/knowledge/knob-docs.js +1 -1
  91. package/dist/knowledge/param-schema.d.ts +1 -1
  92. package/dist/knowledge/param-schema.js +1 -1
  93. package/dist/knowledge/param-tiers.d.ts +2 -0
  94. package/dist/knowledge/param-tiers.js +1 -1
  95. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -1
  96. package/dist/knowledge/pattern-resolutions.d.ts +2 -0
  97. package/dist/knowledge/pattern-resolutions.js +1 -1
  98. package/dist/knowledge/product-detail-source.d.ts +37 -0
  99. package/dist/knowledge/product-detail-source.js +1 -0
  100. package/dist/knowledge/product-doc-b5.d.ts +16 -0
  101. package/dist/knowledge/product-doc-b5.js +1 -0
  102. package/dist/knowledge/progress-ledger.js +1 -1
  103. package/dist/knowledge/projection.spec.js +1 -1
  104. package/dist/knowledge/publish-gate.d.ts +20 -0
  105. package/dist/knowledge/publish-gate.js +1 -0
  106. package/dist/knowledge/publish-readiness.d.ts +25 -0
  107. package/dist/knowledge/publish-readiness.js +1 -0
  108. package/dist/knowledge/publish-surface-contract.d.ts +16 -0
  109. package/dist/knowledge/publish-surface-contract.js +1 -0
  110. package/dist/knowledge/rail-exit-satisfiability.d.ts +25 -0
  111. package/dist/knowledge/rail-exit-satisfiability.js +1 -0
  112. package/dist/knowledge/reward-ledger.d.ts +1 -1
  113. package/dist/knowledge/reward-ledger.js +1 -1
  114. package/dist/knowledge/reward-risk.d.ts +1 -1
  115. package/dist/knowledge/reward-risk.js +1 -1
  116. package/dist/knowledge/service-ledger.d.ts +3 -1
  117. package/dist/knowledge/service-ledger.js +1 -1
  118. package/dist/knowledge/template-loader.d.ts +41 -2
  119. package/dist/knowledge/template-loader.js +1 -1
  120. package/dist/knowledge/template-registry.js +1 -1
  121. package/dist/knowledge/template-scanner.d.ts +17 -0
  122. package/dist/knowledge/template-scanner.js +1 -1
  123. package/dist/knowledge/workflow-guidance.d.ts +4 -0
  124. package/dist/knowledge/workflow-guidance.js +1 -1
  125. package/dist/monitor/MonitorLoop.js +1 -1
  126. package/dist/monitor/normalize.d.ts +1 -1
  127. package/dist/monitor/normalize.js +1 -1
  128. package/dist/monitor/types.js +1 -1
  129. package/dist/participation/game-context.js +1 -1
  130. package/dist/participation/radar-core.js +1 -1
  131. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  132. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  133. package/dist/playbooks/service-build/merchant-guide.d.ts +28 -3
  134. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  135. package/dist/playbooks/service-build/object-panorama.d.ts +4 -0
  136. package/dist/playbooks/service-build/object-panorama.js +1 -1
  137. package/dist/playbooks/service-build/participation-radar.js +1 -1
  138. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  139. package/dist/playbooks/service-build/service-panorama.js +1 -1
  140. package/dist/playbooks/service-build/service-quote.js +1 -1
  141. package/dist/review/index.js +1 -1
  142. package/dist/review/order.js +1 -1
  143. package/dist/safety/confirm-gate.js +1 -1
  144. package/dist/schema/benchmark-migration/index.d.ts +24 -0
  145. package/dist/schema/benchmark-migration/index.js +1 -1
  146. package/dist/schema/call/allocation.d.ts +11 -7
  147. package/dist/schema/call/allocation.js +1 -1
  148. package/dist/schema/call/arbitration.d.ts +4 -0
  149. package/dist/schema/call/arbitration.js +1 -1
  150. package/dist/schema/call/base.d.ts +28 -0
  151. package/dist/schema/call/base.js +1 -1
  152. package/dist/schema/call/bridge.d.ts +21 -0
  153. package/dist/schema/call/contact.d.ts +4 -0
  154. package/dist/schema/call/demand.d.ts +4 -0
  155. package/dist/schema/call/guard.d.ts +12 -0
  156. package/dist/schema/call/handler.d.ts +1 -0
  157. package/dist/schema/call/handler.js +1 -1
  158. package/dist/schema/call/machine.d.ts +16 -8
  159. package/dist/schema/call/normalize-error.d.ts +1 -0
  160. package/dist/schema/call/normalize-error.js +1 -0
  161. package/dist/schema/call/order.d.ts +7 -3
  162. package/dist/schema/call/order.js +1 -1
  163. package/dist/schema/call/payment.d.ts +7 -3
  164. package/dist/schema/call/permission.d.ts +4 -0
  165. package/dist/schema/call/personal.d.ts +4 -0
  166. package/dist/schema/call/progress.d.ts +4 -0
  167. package/dist/schema/call/progress.js +1 -1
  168. package/dist/schema/call/proof.d.ts +8 -0
  169. package/dist/schema/call/receipt.js +1 -1
  170. package/dist/schema/call/repository.d.ts +4 -0
  171. package/dist/schema/call/reward.d.ts +6 -2
  172. package/dist/schema/call/reward.js +1 -1
  173. package/dist/schema/call/semantic.d.ts +2 -2
  174. package/dist/schema/call/semantic.js +1 -1
  175. package/dist/schema/call/service.d.ts +6 -2
  176. package/dist/schema/call/treasury.d.ts +10 -6
  177. package/dist/schema/common/index.js +1 -1
  178. package/dist/schema/envelope-unify.d.ts +1 -0
  179. package/dist/schema/envelope-unify.js +1 -1
  180. package/dist/schema/evaluation/index.d.ts +43 -0
  181. package/dist/schema/evaluation/index.js +1 -1
  182. package/dist/schema/goal/index.d.ts +14 -2
  183. package/dist/schema/goal/planning.d.ts +18 -0
  184. package/dist/schema/goal/planning.js +1 -1
  185. package/dist/schema/intent-radar/index.d.ts +12 -0
  186. package/dist/schema/intent-radar/index.js +1 -1
  187. package/dist/schema/keeper/index.d.ts +1 -0
  188. package/dist/schema/local/index.d.ts +10 -0
  189. package/dist/schema/local/index.js +1 -1
  190. package/dist/schema/local/wip.js +1 -1
  191. package/dist/schema/messenger/index.d.ts +1 -0
  192. package/dist/schema/messenger/index.js +1 -1
  193. package/dist/schema/operations.d.ts +95 -12
  194. package/dist/schema/operations.js +1 -1
  195. package/dist/schema/persona/index.d.ts +22 -0
  196. package/dist/schema/query/bi.d.ts +28 -2
  197. package/dist/schema/query/bi.js +1 -1
  198. package/dist/schema/query/index.d.ts +67 -61
  199. package/dist/schema/query/index.js +1 -1
  200. package/dist/schema/schema-version.js +1 -1
  201. package/dist/schema/workflow/index.js +1 -1
  202. package/dist/schema-query-impl/index.d.ts +1 -0
  203. package/dist/schema-query-impl/index.js +1 -1
  204. package/dist/schemas/account_operation.output.json +2 -1
  205. package/dist/schemas/benchmark_migration_operation.output.json +74 -0
  206. package/dist/schemas/benchmark_migration_operation.schema.json +32 -0
  207. package/dist/schemas/bridge_operation.output.json +2 -1
  208. package/dist/schemas/bridge_operation.schema.json +40 -0
  209. package/dist/schemas/evaluation_operation.output.json +96 -0
  210. package/dist/schemas/evaluation_operation.schema.json +39 -0
  211. package/dist/schemas/goal_operation.schema.json +32 -0
  212. package/dist/schemas/guard2file.schema.json +8 -0
  213. package/dist/schemas/index.json +1 -1
  214. package/dist/schemas/intent_radar.output.json +10 -2
  215. package/dist/schemas/intent_radar.schema.json +5 -1
  216. package/dist/schemas/keeper_operation.output.json +2 -1
  217. package/dist/schemas/local_cache_operation.output.json +2 -1
  218. package/dist/schemas/local_history_operation.output.json +2 -1
  219. package/dist/schemas/local_info_operation.output.json +2 -1
  220. package/dist/schemas/local_mark_operation.output.json +2 -1
  221. package/dist/schemas/local_mark_operation.schema.json +10 -1
  222. package/dist/schemas/machineNode2file.schema.json +8 -0
  223. package/dist/schemas/messenger_operation.output.json +2 -1
  224. package/dist/schemas/messenger_operation.schema.json +2 -1
  225. package/dist/schemas/monitor_events.output.json +2 -1
  226. package/dist/schemas/monitor_subscription.output.json +2 -1
  227. package/dist/schemas/onchain_events.output.json +206 -13
  228. package/dist/schemas/onchain_events.schema.json +16 -0
  229. package/dist/schemas/onchain_operations.output.json +22 -3
  230. package/dist/schemas/onchain_operations.schema.json +971 -326
  231. package/dist/schemas/onchain_operations_allocation.schema.json +19 -12
  232. package/dist/schemas/onchain_operations_arbitration.schema.json +9 -1
  233. package/dist/schemas/onchain_operations_contact.schema.json +8 -0
  234. package/dist/schemas/onchain_operations_demand.schema.json +8 -0
  235. package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -0
  236. package/dist/schemas/onchain_operations_gen_proof.schema.json +8 -0
  237. package/dist/schemas/onchain_operations_guard.schema.json +654 -114
  238. package/dist/schemas/onchain_operations_machine.schema.json +11 -3
  239. package/dist/schemas/onchain_operations_order.schema.json +14 -11
  240. package/dist/schemas/onchain_operations_payment.schema.json +12 -9
  241. package/dist/schemas/onchain_operations_permission.schema.json +8 -0
  242. package/dist/schemas/onchain_operations_personal.schema.json +8 -0
  243. package/dist/schemas/onchain_operations_progress.schema.json +9 -1
  244. package/dist/schemas/onchain_operations_proof.schema.json +8 -0
  245. package/dist/schemas/onchain_operations_repository.schema.json +8 -0
  246. package/dist/schemas/onchain_operations_reward.schema.json +14 -11
  247. package/dist/schemas/onchain_operations_service.schema.json +13 -10
  248. package/dist/schemas/onchain_operations_treasury.schema.json +17 -19
  249. package/dist/schemas/onchain_table_data.output.json +52 -10
  250. package/dist/schemas/persona_operation.output.json +57 -0
  251. package/dist/schemas/persona_operation.schema.json +9 -0
  252. package/dist/schemas/query_toolkit.output.json +325 -22
  253. package/dist/schemas/query_toolkit.schema.json +18 -5
  254. package/dist/schemas/wip_file.output.json +2 -2
  255. package/dist/schemas/wip_file.schema.json +2 -2
  256. package/dist/schemas/workflow_operation.schema.json +1 -1
  257. package/dist/tools/error-catalog.d.ts +17 -0
  258. package/dist/tools/error-catalog.js +1 -0
  259. package/dist/tools/handlers/benchmark-migration.d.ts +20 -8
  260. package/dist/tools/handlers/benchmark-migration.js +1 -1
  261. package/dist/tools/handlers/config.js +1 -1
  262. package/dist/tools/handlers/entry-edge-recipe.d.ts +101 -0
  263. package/dist/tools/handlers/entry-edge-recipe.js +1 -0
  264. package/dist/tools/handlers/escrow-deficit.d.ts +10 -0
  265. package/dist/tools/handlers/escrow-deficit.js +1 -0
  266. package/dist/tools/handlers/evaluation.js +1 -1
  267. package/dist/tools/handlers/fund-rail-recipe.d.ts +10 -0
  268. package/dist/tools/handlers/fund-rail-recipe.js +1 -0
  269. package/dist/tools/handlers/intent-radar.js +1 -1
  270. package/dist/tools/handlers/local.js +1 -1
  271. package/dist/tools/handlers/mark-namespace.d.ts +30 -0
  272. package/dist/tools/handlers/mark-namespace.js +1 -0
  273. package/dist/tools/handlers/messenger.js +1 -1
  274. package/dist/tools/handlers/onchain-name-registration.d.ts +1 -0
  275. package/dist/tools/handlers/onchain-name-registration.js +1 -1
  276. package/dist/tools/handlers/onchain-name-registration.spec.js +1 -1
  277. package/dist/tools/handlers/onchain.d.ts +30 -1
  278. package/dist/tools/handlers/onchain.js +1 -1
  279. package/dist/tools/handlers/publish-binding-echo.d.ts +22 -0
  280. package/dist/tools/handlers/publish-binding-echo.js +1 -0
  281. package/dist/tools/handlers/query.d.ts +1 -1
  282. package/dist/tools/handlers/query.js +1 -1
  283. package/dist/tools/handlers/review-chain.d.ts +1 -0
  284. package/dist/tools/handlers/review-chain.js +1 -1
  285. package/dist/tools/handlers/schema-query.js +1 -1
  286. package/dist/tools/handlers/stale-build-check.d.ts +9 -0
  287. package/dist/tools/handlers/stale-build-check.js +1 -0
  288. package/dist/tools/handlers/submission-assembly.d.ts +55 -0
  289. package/dist/tools/handlers/submission-assembly.js +1 -0
  290. package/dist/tools/handlers/wip.js +1 -1
  291. package/dist/tools/index.d.ts +1 -0
  292. package/dist/tools/index.js +1 -1
  293. package/dist/tools/move-fn-index.gen.js +1 -1
  294. package/dist/tools/publish-gate-state.d.ts +5 -0
  295. package/dist/tools/publish-gate-state.js +1 -0
  296. package/dist/tools/registry/business.js +1 -1
  297. package/dist/tools/registry/onchain.js +1 -1
  298. package/dist/tools/registry/query.js +1 -1
  299. package/dist/tools/retry.js +1 -1
  300. package/dist/tools/runtime-health.js +1 -1
  301. package/dist/tools/shared.js +1 -1
  302. package/dist/tools/upgrade-check.d.ts +1 -0
  303. package/dist/tools/upgrade-check.js +1 -1
  304. package/dist/tools/wip-verify-ledger.d.ts +2 -0
  305. package/dist/tools/wip-verify-ledger.js +1 -1
  306. package/dist/tools/wrap.d.ts +15 -1
  307. package/dist/tools/wrap.js +1 -1
  308. package/package.json +5 -3
@@ -1 +1 @@
1
- import{Config,LocalMark,query_objects,query_serviceContext,queryTableItem_RepositoryData}from'@wowok/wowok';import{resolveAddress as a433a}from'../../tools/handlers/name-resolution.js';import{parseGuardTimeBounds}from'../../knowledge/guard-anchor-reach.js';import{lineBuyability,skuNameGateNote}from'../../knowledge/sku-name-gate.js';import{formatMoneyAnnotation}from'./facet-money.js';const balanceStr=a=>a===null||a===undefined?'0':typeof a==='bigint'?a['toString']():String(a);async function displayOf(a,b,c){try{return(await formatMoneyAnnotation(a,b,c))['display'];}catch{return a;}}function describeRecipient(a){if(typeof a==='string')return a;if(a&&typeof a==='object'){const b=a;if('GuardIdentifier'in b)return'submission\x20slot\x20'+String(b['GuardIdentifier']);if('Entity'in b){const c=b['Entity'],d=c&&typeof c==='object'?c['name_or_address']:c;return d===''?'Entity(\x22\x22)\x20—\x20MCP\x20default\x20local\x20account':'Entity:'+String(d);}return JSON['stringify'](a);}return'unknown';}const PER_ORDER_REPLAY_NOTE='A\x20per-order\x20replay\x20on\x20the\x20reward\x20PULL\x20rail\x20needs\x20BOTH\x20a\x20guard_add\x20store_from_id\x20stamp\x20on\x20the\x20'+'submitted-Order\x20slot\x20(0\x20by\x20convention)\x20AND\x20an\x20order-scoped\x20where:{storeFromId:{identifier:<same\x20slot>}}\x20'+'record\x20gate\x20in\x20the\x20claim\x20guard\x20(SV-2).\x20For\x20a\x20per-order\x20once\x20the\x20CHAIN\x20enforces\x20regardless\x20of\x20guard-tree\x20'+'mistakes,\x20route\x20the\x20incentive\x20through\x20an\x20Allocation\x20leg\x20declaring\x20protocol\x20slot\x20254\x20(the\x20once\x20key\x20derives\x20'+'on-chain\x20from\x20bcs(payment_info.for_object);\x20a\x20second\x20alloc\x20aborts\x2016,\x20E_ONCE_TRIGGERED).',quoteOwnerAddr=a=>{if(typeof a==='string')return a;const b=a;if(b&&typeof b==='object'){if(typeof b['AddressOwner']==='string')return b['AddressOwner'];if(typeof b['ObjectOwner']==='string')return b['ObjectOwner'];const c=Object['values'](b)['find'](d=>typeof d==='string'&&d['length']>0x14);if(typeof c==='string')return c;}return null;};export async function handleServiceQuote(a){const b=a['context_network']??undefined??await Config['Instance']()['network_get'](),d=await a433a(a['object_address']??a['service_address']??'','object_address\x20(or\x20service_address)'),f=await query_serviceContext({'service':d,'network':b}),h=f['service'];if(!h)throw new Error('Service\x20\x27'+a['service_address']+'\x27\x20not\x20found\x20on\x20network\x20'+b+'.');const i=h?.['type_raw']??h?.['type']??'',j=i['match'](/<(.+)>$/),k=j?j[0x1]:null,l=Array['isArray'](h['sales'])?h['sales']:[],m=new Map();for(const a2 of l){if(!a2||typeof a2['name']!=='string')continue;const a3=a2['stock']?.['balance']??a2['stock'];m['set'](a2['name'],{'price':balanceStr(a2['price']?.['balance']??a2['price']??0x0),'suspended':a2['suspension']===!![],'stock':a3==null?null:balanceStr(a3),'wip':typeof a2['wip']==='string'&&a2['wip']!==''?a2['wip']:null});}let n=0x0n;for(const a4 of m['values']()){const a5=/^\d+$/['test'](a4['price'])?BigInt(a4['price']):0x0n;a5>0x0n&&(n===0x0n||a5<n)&&(n=a5);}const q=h['paused']===!![]||h['bPaused']===!![],t=async()=>{try{const a6=h['buy_guard'];if(typeof a6!=='string'||!/^0x[0-9a-fA-F]{40,64}$/['test'](a6))return null;const a7=await query_objects({'objects':[a6],'network':b}),a8=Array['isArray'](a7?.['objects'])?a7['objects'][0x0]:null,a9=(ao,ap=0x0)=>{if(!ao||typeof ao!=='object'||ap>0x4)return null;if(ao['root']&&Array['isArray'](ao['table']))return ao;for(const aq of Object['values'](ao)){if(aq&&typeof aq==='object'){const ar=a9(aq,ap+0x1);if(ar)return ar;}}return null;},aa=a9(a8);if(!aa)return null;const ab=ao=>Array['isArray'](aa['table'])?aa['table']['find'](ap=>ap?.['identifier']===ao&&ap?.['b_submission']===![])??null:null,ac=(ao,ap=0x0)=>{if(!ao||typeof ao!=='object'||ap>0xc)return null;if(ao['type']==='logic_as_u256_lesser_or_equal'&&Array['isArray'](ao['nodes'])&&ao['nodes']['some'](aq=>aq?.['type']==='context'&&aq?.['context']==='Clock')){const aq=ao['nodes']['find'](ar=>ar?.['type']==='query'&&ar?.['query']==='repository.data');if(aq)return aq;}for(const ar of Object['values'](ao)){if(ar&&typeof ar==='object'){const as=ac(ar,ap+0x1);if(as)return as;}}return null;},ad=ac(aa['root']);if(!ad)return null;const ae=ab(ad['parameters']?.[0x0]?.['identifier']);if(!ae||ae['value']!=='next_cycle_deadline')return null;const af=ab(ad['object']?.['identifier']),ag=ab(ad['parameters']?.[0x1]?.['identifier']);if(!af||!ag)return null;const ah=typeof af['value']==='string'?af['value']:String(af['value']??'');if(!ah)return null;const ai=ag['value'],aj=typeof ai==='number'&&Number['isFinite'](ai)?BigInt(Math['trunc'](ai)):typeof ai==='string'&&/^\d+$/['test'](ai)?BigInt(ai):typeof ai==='string'&&ai!==''?ai:null;if(aj===null)return null;const ak=await queryTableItem_RepositoryData({'parent':ah,'name':'next_cycle_deadline','entity':aj,'network':b});if(ak===undefined)return{'closed':!![],'deadlineMs':null,'note':'the\x20campaign\x20window\x20row\x20(next_cycle_deadline)\x20is\x20NOT\x20seeded\x20—\x20the\x20mounted\x20buy\x20window\x20'+'reads\x200\x20and\x20Clock\x20<=\x200\x20is\x20false,\x20so\x20the\x20chain\x20refuses\x20EVERY\x20order\x20until\x20the\x20merchant\x20'+'seeds\x20the\x20row\x20(fail-closed,\x20W5-22)'};const al=ao=>{const ap=ao?.['data']?.['value']??ao?.['value'];try{if(typeof ap==='bigint')return ap;if(typeof ap==='number'&&Number['isFinite'](ap))return BigInt(Math['trunc'](ap));if(typeof ap==='string'&&/^\d+$/['test'](ap['trim']()))return BigInt(ap['trim']());if(ap instanceof Uint8Array&&(ap['length']===0x8||ap['length']===0x20)){let aq=0x0n;for(let ar=ap['length']-0x1;ar>=0x0;ar--)aq=aq<<0x8n|BigInt(ap[ar]);return aq;}}catch{}return null;},am=al(ak);if(am===null||am<=0x0n)return null;const an=Date['now']()>am;return{'closed':an,'deadlineMs':am['toString'](),'note':an?'the\x20campaign\x20window\x20closed\x20at\x20epoch-ms\x20'+am+'\x20('+new Date(Number(am))['toISOString']()+')\x20—\x20'+'order_new\x20aborts\x20at\x20the\x20buy\x20guard;\x20the\x20merchant\x20re-opens\x20by\x20rolling\x20the\x20'+'next_cycle_deadline\x20row\x20forward\x20(tpl_buy_guard_campaign_window)':'the\x20campaign\x20window\x20is\x20OPEN\x20until\x20epoch-ms\x20'+am+'\x20('+new Date(Number(am))['toISOString']()+')'};}catch{return null;}},u=await t(),w=a['items']??[...m['keys']()]['map'](a6=>({'name':a6,'quantity':0x1})),x=w['filter'](a6=>!m['has'](a6['name']));if(x['length']>0x0)throw new Error('Sale(s)\x20not\x20found\x20on\x20this\x20Service:\x20'+x['map'](a6=>'\x27'+a6['name']+'\x27')['join'](',\x20')+'.\x20'+('Available\x20sales:\x20'+([...m['keys']()]['map'](a6=>'\x27'+a6+'\x27')['join'](',\x20')||'<none>')+'.'));if(w['length']===0x0)throw new Error('This\x20Service\x20has\x20NO\x20configured\x20sales\x20—\x20nothing\x20to\x20quote.');const y=[];let z=0x0n;for(const a6 of w){const a7=m['get'](a6['name']),a8=BigInt(a7['price']||'0'),a9=a8*BigInt(a6['quantity']);z+=a9;const aa=a7['stock']!=null&&/^\d+$/['test'](a7['stock'])?BigInt(a7['stock']):null,ab=lineBuyability(a6['name'],[...a7['suspended']?['sale\x20is\x20suspended\x20(merchant\x20sale_suspension)']:[],...aa!=null&&aa<BigInt(a6['quantity'])?['stock\x20'+a7['stock']+'\x20<\x20requested\x20quantity\x20'+a6['quantity']]:[],...u?.['closed']?['CAMPAIGN_CLOSED\x20—\x20the\x20storefront\x20deadline\x20window\x20has\x20closed\x20(or\x20is\x20unseeded)']:[]],aa!=null);y['push']({'name':a6['name'],'quantity':a6['quantity'],'unit_price':a7['price'],'unit_price_display':await displayOf(a7['price'],k,b),'line_total':a9['toString'](),'suspended':a7['suspended'],'stock':a7['stock'],'stock_ok':aa==null?null:aa>=BigInt(a6['quantity']),'buyable':ab['buyable'],'buyable_blockers':ab['blockers'],'wip':a7['wip']});}let A=z,B=null;if(typeof a['discount']==='string'&&a['discount']['trim']()!==''){const ac=await a433a(a['discount'],'discount');let ad=null;try{const aq=await query_objects({'objects':[ac],'network':b});ad=aq?.['objects']?.[0x0]??null;}catch{ad=null;}if(!ad)throw new Error('E_DISCOUNT_NOT_FOUND:\x20coupon\x20\x27'+ac+'\x27\x20not\x20found\x20—\x20it\x20was\x20already\x20burned\x20on\x20a\x20'+'previous\x20buy\x20(a\x20burned\x20coupon\x20is\x20destroyed\x20on\x20chain\x20and\x20cannot\x20be\x20quoted\x20again)\x20'+'or\x20the\x20address\x20is\x20wrong.\x20Re-quote\x20without\x20the\x20coupon.');const ae=String(ad['service']??'');if(ae['toLowerCase']()!==d['toLowerCase']())throw new Error('E_SERVICE_DISCOUNT_NOT_MATCH:\x20coupon\x20\x27'+ac+'\x27\x20is\x20bound\x20to\x20service\x20'+((ae||'<unparseable>')+',\x20not\x20to\x20'+d+'.\x20A\x20buy\x20with\x20this\x20coupon\x20aborts.'));const af=ar=>{const as=balanceStr(ar)['trim']();return/^\d+$/['test'](as)?BigInt(as):0x0n;},ag=BigInt(Date['now']()),ah=af(ad['time_start']),ai=af(ad['time_end']);if(ag<ah||ag>ai)throw new Error('E_DISCOUNT_TIME_INVALID:\x20coupon\x20\x27'+ac+'\x27\x20is\x20valid\x20'+(ah+'–'+ai+'\x20(ms\x20epoch),\x20now\x20is\x20'+ag+'.\x20A\x20buy\x20with\x20this\x20coupon\x20aborts.'));const aj=Number(ad['discount_type'])===0x0,ak=af(ad['off']),al=quoteOwnerAddr(ad['owner']),am=al?'Coupon\x20is\x20owned\x20by\x20'+al+';\x20only\x20the\x20holder\x20can\x20redeem\x20it\x20—\x20a\x20coupon\x20held\x20by\x20another\x20address\x20cannot\x20be\x20applied\x20to\x20your\x20order,\x20have\x20the\x20owner\x20transfer\x20it\x20first\x20(call\x20service\x20discount_send).\x20Refunds\x20settle\x20the\x20post-coupon\x20amount\x20only.':'Coupon\x20holder\x20could\x20not\x20be\x20read\x20from\x20the\x20chain\x20—\x20VERIFY\x20the\x20holder\x20before\x20checkout:\x20only\x20the\x20holder\x20can\x20redeem,\x20a\x20coupon\x20held\x20by\x20another\x20address\x20cannot\x20be\x20applied\x20to\x20your\x20order\x20(have\x20the\x20owner\x20transfer\x20it\x20first\x20via\x20call\x20service\x20discount_send),\x20and\x20refunds\x20settle\x20the\x20post-coupon\x20amount\x20only.',an=ad['benchmark']===null||ad['benchmark']===undefined?null:af(ad['benchmark']),ao=an===null?!![]:z>=an;let ap=![];ao&&(ap=!![],A=aj?z-z*ak/0x2710n:z>ak?z-ak:0x0n),B={'coupon':ac,'name':typeof ad['name']==='string'?ad['name']:null,'owned_by':al,'ownership_note':am,'type':aj?'rates':'minus','off':ak['toString'](),'benchmark':an===null?null:an['toString'](),'benchmark_met':ao,'applied':ap,'list_total':z['toString'](),'final_total':A['toString'](),'final_total_display':await displayOf(A['toString'](),k,b),'note':ap?A===0x0n?'DEAD\x20BASKET\x20(F-BS-75):\x20the\x20coupon\x20covers\x20the\x20entire\x20basket,\x20but\x20the\x20chain\x20REFUSES\x20zero-total\x20'+'buys\x20—\x20the\x20client\x20gate\x20(order_new_zero_total_dead_order)\x20and\x20the\x20on-chain\x20zero-total\x20gate\x20'+'(abort\x2042)\x20both\x20reject\x20this\x20buy;\x20NOTHING\x20is\x20purchasable\x20at\x20total\x200,\x20free\x20product\x20or\x20not.\x20'+'Lower\x20the\x20coupon\x20value\x20so\x20the\x20final\x20total\x20stays\x20>=\x201\x20smallest\x20unit\x20(or\x20price\x20a\x20deliberate\x20'+'free\x20tier\x20at\x201\x20smallest\x20unit,\x20or\x20deliver\x20it\x20outside\x20the\x20sales\x20rails).\x20allow_zero_total\x20does\x20'+'NOT\x20unlock\x20this\x20buy\x20and\x20no\x20longer\x20waives\x20the\x20issuance\x20gate\x20either\x20(BSX-F07).':'Discounted\x20total\x20shown\x20—\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20this\x20final_total\x20(bs29\x20R-17:\x20total_pay\x20is\x20a\x20FLOOR;\x20the\x20order\x20escrows\x20exactly\x20this\x20amount,\x20an\x20over-funded\x20total\x20is\x20never\x20escrowed).\x20Pass\x20exactly\x20this\x20value;\x20the\x20coupon\x20is\x20consumed\x20at\x20buy.\x20'+'BURN-ON-USE\x20(F-ETS-03):\x20attaching\x20this\x20coupon\x20to\x20a\x20buy\x20DESTROYS\x20it\x20on\x20chain\x20—\x20the\x20coupon\x20'+'object\x20is\x20gone\x20once\x20the\x20order\x20is\x20created\x20(a\x20later\x20quote\x20hits\x20E_DISCOUNT_NOT_FOUND).\x20'+'CANCELLATION\x20REFUNDS\x20THE\x20DISCOUNTED\x20AMOUNT\x20ONLY:\x20refund\x20rails\x20pay\x20the\x20order\x27s\x20escrowed\x20'+'amount\x20(this\x20final_total),\x20so\x20a\x20cancelled\x20order\x20does\x20NOT\x20restore\x20the\x20coupon\x27s\x20face\x20value\x20—\x20'+'the\x20difference\x20is\x20forfeited\x20even\x20on\x20a\x20no-fault\x20cancel.\x20Disclose\x20this\x20to\x20the\x20buyer\x20before\x20checkout.':'⚠\x20Benchmark\x20NOT\x20met\x20(list\x20total\x20'+z+'\x20<\x20'+an+'):\x20the\x20chain\x20REJECTS\x20this\x20buy\x20when\x20the\x20coupon\x20is\x20attached\x20(error\x2038\x20—\x20full\x20rollback,\x20nothing\x20paid,\x20coupon\x20preserved).\x20Raise\x20the\x20basket\x20to\x20>=\x20'+an+',\x20or\x20order\x20without\x20the\x20coupon\x20and\x20keep\x20it.'};}const C=balanceStr(h['compensation_fund']??0x0),D=/^\d+$/['test'](C['trim']())?BigInt(C['trim']()):0x0n,E=0x3n*A,F=E>D?E-D:0x0n,G=D/0x3n,H=await displayOf(G['toString'](),k,b),I={'fund_balance':D['toString'](),'fund_balance_display':await displayOf(D['toString'](),k,b),'max_coverable_order':G['toString'](),'max_coverable_order_display':H,'required_for_this_basket':E['toString'](),'required_display':await displayOf(E['toString'](),k,b),'shortfall':F['toString'](),'shortfall_display':await displayOf(F['toString'](),k,b),'covered':D>=E,'note':D===0x0n?'This\x20Service\x20runs\x20WITHOUT\x20a\x20compensation\x20fund\x20—\x20a\x20legitimate\x20merchant\x20choice,\x20never\x20blocked\x20at\x20buy.\x20An\x20arbitration\x20award\x20beyond\x20the\x20pool\x20aborts\x20the\x20buyer\x27s\x20payout\x20(code\x2027,\x20claim\x20NOT\x20consumed)\x20and\x20waits\x20on\x20the\x20merchant\x20wallet.':D>=E?'The\x20fund\x20covers\x203x\x20this\x20basket\x27s\x20amount\x20—\x20a\x20single\x20ruling\x20at\x20the\x20maximum\x20award\x20multiple\x20is\x20payable\x20from\x20the\x20pool.\x20Storefront\x20ceiling:\x20orders\x20above\x20'+H+'\x20(fund/3)\x20are\x20NOT\x20fully\x20covered\x20(they\x20proceed\x20with\x20a\x20buy-time\x20warning)\x20—\x20quote\x20a\x20bigger\x20basket\x20against\x20the\x20ceiling,\x20not\x20just\x20this\x20one.':'BELOW\x20the\x20per-order\x20payout\x20requirement\x20(compensation_fund_below_order_ceiling):\x20the\x20buy\x20still\x20PROCEEDS\x20with\x20a\x20warning\x20—\x20coverage\x20is\x20no\x20longer\x20enforced\x20pre-buy\x20(拍板⑤\x20dm-mtw-261027).\x20Risk\x20to\x20disclose\x20to\x20the\x20buyer\x20BEFORE\x20checkout:\x20if\x20a\x20ruling\x20awards\x20at\x20the\x20cap,\x20settlement\x20is\x20ALL-OR-NOTHING\x20—\x20the\x20claim\x20aborts\x20(code\x2027),\x20nothing\x20is\x20paid,\x20and\x20it\x20waits\x20on\x20the\x20merchant\x20topping\x20up\x20via\x20service.compensation_fund_add\x20by\x20'+await displayOf(F['toString'](),k,b)+'\x20(to\x20>=\x203x\x20this\x20basket).\x20Standing\x20ceiling:\x20orders\x20above\x20'+H+'\x20(fund/3)\x20are\x20not\x20fully\x20covered,\x20so\x20this\x20basket\x20is\x20only\x20the\x20latest\x20casualty\x20—\x20every\x20bigger\x20SKU\x20is\x20under-covered\x20too.'},J=await displayOf(A['toString'](),k,b),K=h['order_allocators'],L=Array['isArray'](K?.['allocators'])?K['allocators']:[],M=L['length']>0x0?L[0x0]:undefined,N=M?{'allocator_index':0x0,'note':'Sharing\x20rows\x20of\x20the\x20FIRST\x20order_allocator\x20(index\x200\x20—\x20NOT\x20necessarily\x20the\x20normal\x20'+'payout\x20path:\x20services\x20that\x20ship\x20refund-first\x20rails\x20put\x20the\x20refund\x20track\x20at\x20index\x200,\x20'+'klk15\x20C-06).\x20Guards\x20select\x20per-case\x20allocators\x20(refund\x20/\x20damage\x20/\x20late-cancel),\x20so\x20'+'the\x20LIVE\x20split\x20depends\x20on\x20which\x20guard\x20passes\x20—\x20identify\x20the\x20settlement\x20allocator\x20'+'via\x20service_panorama\x20before\x20ordering.','sharing':(Array['isArray'](M['sharing'])?M['sharing']:[])['map'](ar=>({'recipient':describeRecipient(ar?.['who']),'mode':typeof ar?.['mode']==='string'?ar['mode']:null,'value':balanceStr(ar?.['sharing']?.['balance']??ar?.['sharing']??0x0)}))}:null,O=Array['isArray'](h['rewards'])?h['rewards']['filter'](ar=>typeof ar==='string'&&ar!==''):[];let P=null;if(O['length']>0x0){const ar=[],as=[];let at=[];try{const au=await query_objects({'objects':O,'network':b});at=Array['isArray'](au?.['objects'])?au['objects']:[];}catch(av){ar['push']('Reward\x20lookup\x20failed\x20('+(av instanceof Error?av['message']:String(av))+')\x20—\x20reward\x20terms\x20NOT\x20verified;\x20do\x20not\x20rely\x20on\x20them.');}for(const aw of O){const ax=at['find'](b2=>typeof b2?.['object']==='string'&&b2['object']['toLowerCase']()===aw['toLowerCase']());if(!ax){ar['push']('Reward\x20\x27'+aw+'\x27\x20could\x20not\x20be\x20read\x20—\x20its\x20terms\x20are\x20unknown;\x20do\x20not\x20rely\x20on\x20it.');continue;}const ay=balanceStr(ax['balance']??0x0),az=/^\d+$/['test'](ay)?BigInt(ay):0x0n,aA=[];let aB=0x0n,aC=![];for(const b2 of Array['isArray'](ax['guards'])?ax['guards']:[]){const b3=b2?.['amount'],b4=b3!=null&&(b3['type']===0x1||b3['type']==='Fixed'),b5=b2?.['expiration_time'],b6=b5==null?null:Number(b5),b7=b6!=null&&Number['isFinite'](b6)?b6:null;if(b4){const b8=balanceStr(b3['value']??0x0),b9=/^\d+$/['test'](b8)?BigInt(b8):0x0n;if(b9>aB)aB=b9;aA['push']({'guard':String(b2?.['guard']??''),'amount_type':'fixed','amount':b8,'amount_display':await displayOf(b8,k,b),'expiration_time':b7,'expiration_display':b7!=null?new Date(b7)['toISOString']():null,'expired':b7!=null?Date['now']()>b7:null,'min_rating':null,'min_rows':null,'unreadable_legs':null,'claim_window':null,'claim_state':'unknown','claim_state_note':'Not\x20decoded\x20yet.'});}else aC=!![],aA['push']({'guard':String(b2?.['guard']??''),'amount_type':'guard_submission','amount':'submission\x20identifier\x20'+String(b3?.['value']??'?'),'amount_display':null,'expiration_time':b7,'expiration_display':b7!=null?new Date(b7)['toISOString']():null,'expired':b7!=null?Date['now']()>b7:null,'min_rating':null,'min_rows':null,'unreadable_legs':null,'claim_window':null,'claim_state':'unknown','claim_state_note':'Not\x20decoded\x20yet.'});}const aD=Array['from'](new Set(aA['map'](ba=>ba['guard'])['filter'](ba=>ba!==''))),aE=new Map();if(aD['length']>0x0)try{const ba=await query_objects({'objects':aD,'network':b});for(const bb of Array['isArray'](ba?.['objects'])?ba['objects']:[]){if(typeof bb?.['object']==='string')aE['set'](bb['object']['toLowerCase'](),bb);}}catch{ar['push']('Claim\x20guard\x20lookup\x20failed\x20—\x20rating\x20conditions\x20on\x20'+aD['length']+'\x20claim\x20guard(s)\x20NOT\x20verified;\x20do\x20not\x20promise\x20the\x20incentive.');}const aF=(bc,bd=0x0)=>{if(!bc||typeof bc!=='object'||bd>0x4)return null;if(bc['root']&&Array['isArray'](bc['table']))return bc;for(const be of Object['values'](bc)){if(be&&typeof be==='object'){const bf=aF(be,bd+0x1);if(bf)return bf;}}return null;},aG=bc=>{if(bc>=0x15180&&bc%0x15180===0x0)return bc/0x15180+'\x20day(s)';if(bc>=0xe10&&bc%0xe10===0x0)return bc/0xe10+'\x20hour(s)';return bc+'\x20seconds';},aH=(bc,bd)=>{const be=bc['table']['find'](bg=>bg?.['identifier']===bd&&bg?.['b_submission']===![]);if(!be)return null;const bf=typeof be['value']==='number'?be['value']:Number(String(be['value']??''));return Number['isFinite'](bf)?bf:null;},aI=/^query_repository_data_(count|find|sum)(?:_bound)?_where$/,aJ=bc=>{if(!bc||typeof bc!=='object')return null;const bd=be=>{const bf=typeof be==='number'?be:Number(String(be??''));return Number['isFinite'](bf)?bf:null;};switch(bc['kind']){case'gte':{const be=bd(bc['value']);return be!=null?'>=\x20'+be:null;}case'gt':{const bf=bd(bc['value']);return bf!=null?'>\x20'+bf:null;}case'numEq':{const bg=bd(bc['value']);return bg!=null?'==\x20'+bg:null;}case'range':{const bh=bd(bc['valueMin']);if(bh!=null)return bc['minInclusive']===![]?'>\x20'+bh:'>=\x20'+bh;const bi=bd(bc['valueMax']);if(bi!=null)return bc['maxInclusive']===![]?'<\x20'+bi:'<=\x20'+bi;return null;}default:return null;}},aK=bc=>{const bd=[],be=(bf,bg)=>{if(!bf||typeof bf!=='object'||bg>0x18)return;const bh=typeof bf['type']==='string'?bf['type']:'';if(bh['startsWith']('vec_contains')){const bi=JSON['stringify'](bf),bj=bi['includes']('find_where')||bi['includes']('1176');bd['push'](bj?bh+'[repository\x20find_where\x20membership\x20read]\x20—\x20set-membership\x20gate\x20over\x20found\x20rows;\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time':bh+'\x20membership\x20gate\x20—\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time');return;}else bh==='query'&&typeof bf['query']==='string'&&bf['query']['includes']('find_where')&&bd['push']('query\x20'+bf['query']+'\x20—\x20repository\x20find_where\x20read\x20feeding\x20a\x20comparison;\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time');for(const bk of Object['values'](bf)){if(Array['isArray'](bk)){for(const bl of bk)be(bl,bg+0x1);}else bk&&typeof bk==='object'&&be(bk,bg+0x1);}};return be(bc,0x0),bd;},aL=(bc,bd)=>{const be=new Set();for(const bj of bd['table']??[]){if(bj?.['b_submission']===![]&&typeof bj?.['value']==='string'&&/rating/i['test'](bj['value']))be['add'](Number(bj['identifier']));}const bf=bk=>{if(!bk)return null;if(bk['type']==='identifier')return aH(bd,Number(bk['identifier']));if(typeof bk['value']==='number')return bk['value'];const bl=Number(String(bk['value']??''));return Number['isFinite'](bl)?bl:null;};let bg=null;const bh=bk=>{if(!bg||bk['ratingKeyed']&&!bg['ratingKeyed'])bg=bk;},bi=(bk,bl)=>{if(!bk||typeof bk!=='object'||bl>0x18)return;const bm=typeof bk['type']==='string'?bk['type']:'';if(bm==='logic_as_u256_greater_or_equal'||bm==='logic_as_u256_greater'||bm==='logic_as_u256_equal'){const bn=Array['isArray'](bk['nodes'])?bk['nodes']:[],bo=bn[0x0],bp=JSON['stringify'](bo??{});if(bn['length']>=0x2&&bo&&(bp['includes']('repository.data')||bp['includes']('repository_data'))){let bq=null;const br=(bt,bu)=>{if(!bt||typeof bt!=='object'||bu>0x8||bq)return;if(bt['type']==='query'&&bt['where']&&(typeof bt['query']==='string'&&aI['test'](bt['query'])||typeof bt['query']==='number')){bq=bt;return;}for(const bv of Object['values'](bt))if(bv&&typeof bv==='object')br(bv,bu+0x1);};br(bo,0x0);const bs=bf(bn[bn['length']-0x1]);if(bq){const bt=bq['key']?.['identifier']!=null?Number(bq['key']['identifier']):null;bh({'floor':aJ(bq['where']),'min_rows':bs,'aggregate':!![],'ratingKeyed':bt!=null&&be['has'](bt)});}else{const bu=bf(bn[bn['length']-0x1]);if(bu!=null){const bv=bm==='logic_as_u256_greater_or_equal'?'>=':bm==='logic_as_u256_greater'?'>':'==';bh({'floor':bv+'\x20'+bu,'min_rows':null,'aggregate':![],'ratingKeyed':![]});}}}}for(const bw of Object['values'](bk)){if(Array['isArray'](bw)){for(const bx of bw)bi(bx,bl+0x1);}else bw&&typeof bw==='object'&&bi(bw,bl+0x1);}};return bi(bc,0x0),bg??{'floor':null,'min_rows':null,'aggregate':![],'ratingKeyed':![]};};for(const bc of aA){bc['min_rating']=null;const bd=aE['get'](bc['guard']['toLowerCase']());if(!bd)continue;{const bi=aF(bd),bj=bi?parseGuardTimeBounds(bi['root'],bi['table']):null;bj&&(bc['claim_window']={'opens_after_s':bj['lowerOffsetMs']!=null?bj['lowerOffsetMs']/0x3e8:null,'closes_after_s':bj['upperWindowMs']!=null?bj['upperWindowMs']/0x3e8:null,'anchor':bj['anchor']});}{const bk=bc['claim_window'],bl=bk?.['opens_after_s']??null,bm=bk?.['closes_after_s']??null;if(bc['expiration_time']!=null&&bc['expired']===!![])bc['claim_state']='expired',bc['claim_state_note']='The\x20pool-level\x20entry\x20expired\x20at\x20'+bc['expiration_display']+'\x20—\x20claims\x20abort\x20E_GUARD_EXPIRED.';else{if(!bk)bc['claim_state']='unknown',bc['claim_state_note']='The\x20claim\x20guard\x27s\x20window\x20could\x20not\x20be\x20decoded\x20(unreadable\x20payload\x20or\x20no\x20Clock\x20comparison)\x20—\x20check\x20the\x20guard\x20before\x20promising\x20a\x20timing\x20to\x20the\x20buyer.';else{if(bl!=null&&bl>0x0&&bm==null)bc['claim_state']='delayed_open_ended',bc['claim_state_note']='NOT\x20claimable\x20at\x20the\x20anchor\x20event\x20—\x20opens\x20'+aG(bl)+'\x20after\x20it\x20('+bk['anchor']+'),\x20and\x20the\x20window\x20NEVER\x20closes:\x20any\x20\x22N\x20days\x20to\x20claim\x22\x20wording\x20is\x20fictional\x20(bsw4\x20F-11).';else{if(bl!=null&&bl>0x0){bc['claim_state']='delayed_window';const bn=bm-bl;bc['claim_state_note']='Opens\x20'+aG(bl)+'\x20after\x20the\x20anchor\x20event\x20('+bk['anchor']+'),\x20stays\x20claimable\x20for\x20a\x20further\x20'+aG(bn)+'\x20—\x20hard\x20deadline\x20'+aG(bm)+'\x20after\x20the\x20anchor.';}else bm!=null?(bc['claim_state']='open_window',bc['claim_state_note']='Claimable\x20at\x20the\x20anchor\x20event\x20('+bk['anchor']+'),\x20until\x20'+aG(bm)+'\x20after\x20it.'):(bc['claim_state']='open_ended',bc['claim_state_note']='Claimable\x20at\x20the\x20anchor\x20event\x20('+bk['anchor']+')\x20and\x20never\x20closes\x20—\x20an\x20open-ended\x20bounty\x20(a\x20deliberate\x20design;\x20disclose\x20it\x20explicitly).');}}}}let be;try{be=JSON['stringify'](bd,(bo,bp)=>bp instanceof Uint8Array?Buffer['from'](bp)['toString']('base64'):bp);}catch{continue;}const bf=be['includes']('\x22rating\x22')||be['includes']('114,97,116,105,110,103')||be['toLowerCase']()['includes']('726174696e67')||be['includes']('cmF0aW5n');if(!bf)continue;const bg=aF(bd),bh=bg?aL(bg['root'],bg):null;if(bh?.['floor'])bc['min_rating']=bh['floor'],bc['min_rows']=bh['min_rows'];else{const bo=be['toLowerCase']();if(bo['includes']('\x22like\x22'))bc['min_rating']='like';else{if(bo['includes']('\x22dislike\x22'))bc['min_rating']='dislike';else bc['min_rating']='unknown';}if(bh?.['min_rows']!=null)bc['min_rows']=bh['min_rows'];const bp=bg?aK(bg['root']):[];if(bp['length']>0x0)bc['unreadable_legs']=bp;}}let aM='';if(aB>0x0n&&n>0x0n){const bq=Number(aB)/Number(n);Number['isFinite'](bq)&&(aM='\x20Bounty/cheapest-SKU\x20price\x20ratio:\x20'+bq['toFixed'](0x2)+'x\x20'+('('+await displayOf(aB['toString'](),k,b)+'\x20vs\x20')+(await displayOf(n['toString'](),k,b)+').')+(bq>0.5?'\x20⚠\x20SCALE\x20(T-02):\x20each\x20claimed\x20order\x20pays\x20out\x20MORE\x20than\x20the\x20cheapest\x20sale\x20earns\x20—\x20a\x20bounty-farm\x20shape;\x20a\x20sybil\x20can\x20mint\x20cheap\x20orders\x20and\x20drain\x20this\x20pool.\x20Rebalance\x20the\x20bounty\x20or\x20the\x20catalog\x20before\x20funding.':''));}const aN=az===0x0n?'Pool\x20is\x20EMPTY\x20—\x20any\x20claim\x20aborts\x20on-chain\x20on\x20the\x20reward\x20module\x27s\x20E_INSUFFICIENT_BALANCE\x20(not\x20the\x20allocation\x20module\x27s\x20same-named\x20constant);\x20do\x20not\x20budget\x20on\x20this\x20reward.':aC||aB===0x0n?null:'Pool\x20covers\x20~'+(az/aB)['toString']()+'\x20further\x20claim(s)\x20at\x20the\x20largest\x20configured\x20per-claim\x20amount.'+aM,aO=Array['isArray'](ax['guards'])?ax['guards']:[],aP=aO['filter'](br=>br?.['store_from_id']!=null)['map'](br=>Number(br['store_from_id'])),aQ=((()=>{if(aO['length']===0x0)return{'scope':'unknown','detail':'No\x20mounted\x20guard\x20entry\x20was\x20readable,\x20so\x20the\x20claim\x20scope\x20could\x20not\x20be\x20determined\x20—\x20do\x20not\x20assume\x20a\x20per-order\x20bounty.','per_order_note':PER_ORDER_REPLAY_NOTE};if(aP['length']===aO['length']&&aP['every'](br=>br===0x0))return{'scope':'once_per_order','detail':'Every\x20claim\x20entry\x20stamps\x20store_from_id=0\x20(the\x20conventional\x20submitted-Order\x20slot):\x20the\x20once\x20key\x20is\x20(guard,\x20order)\x20with\x20the\x20recipient\x20pinned\x20to\x20the\x20@0x0\x20sentinel\x20—\x20the\x20FIRST\x20claim\x20consumes\x20the\x20slot\x20for\x20EVERY\x20signer\x20on\x20that\x20order\x20(a\x20second\x20claim\x20aborts\x2013,\x20E_CLAIM_ALREADY_MADE:\x20this\x20(guard,\x20order)\x20was\x20already\x20claimed\x20by\x20any\x20signer);\x20the\x20same\x20buyer\x20can\x20still\x20claim\x20again\x20on\x20a\x20NEW\x20order\x20(fresh\x20slot).','per_order_note':PER_ORDER_REPLAY_NOTE};if(aP['length']===aO['length'])return{'scope':'once_per_stamp','detail':'Every\x20claim\x20entry\x20carries\x20a\x20store_from_id\x20stamp,\x20but\x20not\x20the\x20conventional\x20Order\x20slot\x200\x20(slots:\x20'+aP['join'](',\x20')+'):\x20claims\x20are\x20keyed\x20per\x20(guard,\x20stamped\x20value)\x20with\x20the\x20recipient\x20pinned\x20to\x20the\x20@0x0\x20sentinel\x20—\x20the\x20first\x20claim\x20consumes\x20the\x20slot\x20for\x20every\x20signer;\x20per-ORDER\x20only\x20when\x20that\x20slot\x20is\x20the\x20submitted\x20Order.','per_order_note':PER_ORDER_REPLAY_NOTE};if(aP['length']===0x0)return{'scope':'once_per_recipient_guard','detail':'Every\x20claim\x20entry\x20has\x20an\x20EMPTY\x20store_from\x20slot:\x20ONE\x20claim\x20per\x20(recipient,\x20guard)\x20for\x20LIFE\x20—\x20the\x20same\x20buyer\x27s\x20second\x20order\x20claims\x20nothing\x20(abort\x2013,\x20E_CLAIM_ALREADY_MADE),\x20even\x20when\x20the\x20bounty\x20is\x20described\x20as\x20per-order.','per_order_note':PER_ORDER_REPLAY_NOTE};return{'scope':'mixed','detail':aP['length']+'\x20of\x20'+aO['length']+'\x20claim\x20entries\x20carry\x20a\x20store_from_id\x20stamp\x20—\x20those\x20are\x20per-stamp\x20scoped;\x20the\x20remaining\x20entries\x20are\x20once\x20per\x20(recipient,\x20guard)\x20for\x20life.\x20Read\x20each\x20claims[]\x20row.','per_order_note':PER_ORDER_REPLAY_NOTE};})()),aR=aA['filter'](br=>br['min_rating']==='unknown')['length'];aR>0x0&&ar['push'](aR+'\x20claim(s)\x20gate\x20on\x20a\x20rating\x20condition\x20whose\x20polarity\x20could\x20not\x20be\x20parsed\x20'+'(min_rating=unknown)\x20—\x20read\x20the\x20claim\x20guard\x20before\x20promising\x20this\x20incentive\x20to\x20the\x20buyer');const aS=aA['find'](br=>br['claim_window']!=null),aT=aS?.['claim_window']?.['opens_after_s']??null,aU=aS?.['claim_window']?.['closes_after_s']??null,aV=br=>br!=null&&br>0x0&&br%0x15180===0x0?br/0x15180:null,aW=aV(aT),aX=aU!=null?aU-(aT??0x0):null,aY=aV(aX),aZ=aA['find'](br=>typeof br['min_rating']==='string'&&/\d/['test'](br['min_rating'])),b0=typeof aZ?.['min_rating']==='string'?aZ['min_rating']['match'](/\d+/):null,b1=aQ['scope']==='once_per_order'?0x1:null;as['push']({'reward':aw,'description':typeof ax['description']==='string'?ax['description']:null,'pool_balance':az['toString'](),'pool_balance_display':await displayOf(az['toString'](),k,b),'record_count':Number['isFinite'](Number(ax['record_count']))?Number(ax['record_count']):0x0,'rating_floor':b0?Number(b0[0x0]):null,'opens_after_days':aW,'closes_after_days':aY,'per_order_limit':b1,'claims':aA,'replay_scope':aQ,'coverage':aN});}P={'note':'Pre-order\x20reward\x20terms\x20for\x20every\x20Reward\x20hung\x20on\x20this\x20Service\x20(bound\x20at\x20build\x20time):\x20pool\x20balance,\x20'+'per-claim\x20amount\x20and\x20claim\x20windows.\x20A\x20claim\x20aborts\x20after\x20its\x20window\x20(E_GUARD_EXPIRED)\x20or\x20'+'against\x20an\x20empty\x20pool\x20(E_INSUFFICIENT_BALANCE)\x20—\x20never\x20budget\x20on\x20an\x20expired\x20or\x20empty\x20'+'reward.\x20Claiming\x20requires\x20passing\x20the\x20claim\x20guard\x27s\x20conditions.','rewards':as,'data_gaps':ar};}const Q=Array['isArray'](h['arbitrations'])?h['arbitrations']['filter'](br=>typeof br==='string'&&br!=='')['length']:0x0,R=Q>0x0?'⚠\x20DISPUTE\x20FILING\x20BOUNDARY\x20(ddmc2\x20F-02):\x20advancing\x20a\x20dispute\x20on\x20this\x20Service\x20validates\x20only\x20the\x20filing\x20'+'edge\x27s\x20guard\x20—\x20the\x20chain\x20does\x20NOT\x20require\x20an\x20arbitration\x20case\x20to\x20exist\x20(protocol-level\x20gap,\x20fix\x20'+'registered).\x20Any\x20account\x20passing\x20that\x20edge\x27s\x20guard\x20can\x20advance\x20an\x20order\x20into\x20its\x20dispute\x20node\x20'+'(append-only,\x20no\x20clearing\x20primitive),\x20wedging\x20settlement\x20until\x20the\x20buyer\x20withdraws\x20or\x20a\x20real\x20case\x20'+'resolves.\x20File\x20disputes\x20through\x20the\x20bound\x20arbitration\x20service\x20(Arbitration.dispute\x20creates\x20a\x20REAL\x20'+'case)\x20and\x20have\x20the\x20filing\x20edge\x27s\x20identity\x20legs\x20checked\x20(service_panorama)\x20before\x20large\x20orders.\x20':'';let S=null;try{const br=await LocalMark['Instance']()['list']({'address':d});S=br?.[0x0]?.['name']??null;}catch{S=null;}const T=l['filter'](bs=>typeof bs?.['wip']==='string'&&bs['wip']['includes']('wip.store.wowok.net'))['map'](bs=>String(bs['name'])),U=T['length']>0x0?'⚠\x20WIP\x20FREE-STORE\x20HOSTING\x20(ks7\x20F-24):\x20item\x20detail(s)\x20'+T['map'](bs=>'\x27'+bs+'\x27')['join'](',\x20')+'\x20are\x20hosted\x20on\x20the\x20official\x20free\x20WIP\x20store\x20(wip.store.wowok.net)\x20—\x20a\x20free,\x20best-effort\x20service\x20'+'(10\x20files/account,\x20~6-month\x20retention,\x20no\x20availability\x20guarantee).\x20The\x20item\x27s\x20on-chain\x20wip_hash\x20'+'stays\x20verifiable\x20only\x20while\x20that\x20file\x20remains\x20reachable,\x20which\x20can\x20be\x20SHORTER\x20than\x20this\x20order\x27s\x20'+'after-sales\x20window.\x20Ask\x20the\x20merchant\x20about\x20self-hosted\x20(storage=\x27custom\x27)\x20WIP\x20hosting\x20for\x20'+'long-lived\x20verifiability.\x20':'',V=y['filter'](bs=>bs['stock_ok']===![]),W=V['length']>0x0?'⚠\x20STOCK\x20SHORT\x20(F-20):\x20the\x20chain\x20refuses\x20a\x20buy\x20whose\x20quantity\x20exceeds\x20the\x20sale\x27s\x20remaining\x20'+'stock\x20(service:16\x20E_STOCK_NOT_ENOUGH)\x20—\x20this\x20basket\x20CANNOT\x20be\x20purchased\x20as\x20quoted.\x20Short\x20line(s):\x20'+V['map'](bs=>bs['name']+'\x20(asked\x20'+bs['quantity']+',\x20stock\x20'+(bs['stock']??'?')+')')['join'](';\x20')+'.\x20Reduce\x20the\x20quantity\x20to\x20the\x20stock\x20shown,\x20pick\x20another\x20item,\x20or\x20ask\x20the\x20merchant\x20to\x20restock\x20'+'(service\x20sales\x20stock_add)\x20and\x20re-quote.\x20':'',X=y['filter'](bs=>bs['buyable']===![]),Y=y['filter'](bs=>bs['buyable']===null),Z=X['map'](bs=>bs['name'])['find'](bs=>skuNameGateNote(bs)!==''),a0={'purchasable':X['length']>0x0||q||A===0x0n||u?.['closed']===!![]?![]:Y['length']>0x0?null:!![],'blocked_items':X['map'](bs=>bs['name']),'note':u?.['closed']===!![]?'⚠\x20CAMPAIGN_CLOSED\x20(W5-22):\x20'+u['note']+'.':Z!==undefined?'⚠\x20UNBUYABLE\x20SKU\x20NAME\x20(F-RQ-01):\x20'+skuNameGateNote(Z):X['length']>0x0?'Blocked\x20line(s):\x20'+X['map'](bs=>bs['name']+'\x20—\x20'+bs['buyable_blockers']['join'](';\x20'))['join']('\x20|\x20')+'.':Y['length']>0x0?'No\x20known\x20blocker,\x20but\x20at\x20least\x20one\x20line\x27s\x20stock\x20could\x20not\x20be\x20read\x20from\x20the\x20chain\x20—\x20verify\x20before\x20checkout.':'Every\x20line\x20passes\x20the\x20known\x20buy\x20gates\x20(name\x20≤\x2064\x20bytes,\x20not\x20suspended,\x20stock\x20sufficient).'},a1=a0['purchasable']===![]?'⚠\x20UNBUYABLE\x20BASKET\x20(F-RQ-01):\x20this\x20quote\x20is\x20PRICED\x20but\x20the\x20chain\x20will\x20refuse\x20every\x20order\x20—\x20read\x20the\x20buyable\x20block\x20before\x20attempting\x20order_new.\x20':'';return{'action':'service_quote','network':String(b),'service':{'address':d,'name':S},'paused':q,'payment_token':{'coin_type':k,'display_note':k?'Prices\x20and\x20the\x20order\x20total\x20are\x20denominated\x20in\x20this\x20token\x27s\x20smallest\x20units;\x20displays\x20convert\x20with\x20the\x20token\x27s\x20on-chain\x20precision.':'Payment\x20token\x20could\x20not\x20be\x20parsed\x20from\x20the\x20Service\x20type\x20—\x20raw\x20smallest\x20units\x20only,\x20precision\x20NOT\x20guessed.'},'items':y,'buyable':a0,'total_pay':{'balance':A['toString'](),'display':J,'note':a1+W+R+U+(u?'⚠\x20CAMPAIGN\x20WINDOW\x20('+(u['closed']?'CLOSED':'OPEN')+')\x20(W5-22):\x20'+u['note']+'\x20':'')+(q?'⚠\x20SERVICE\x20PAUSED\x20(bs29\x20R-16):\x20this\x20Service\x20is\x20currently\x20paused\x20—\x20every\x20buy\x20is\x20refused\x20'+'(client\x20pre-buy\x20gate,\x20then\x20the\x20on-chain\x20E_PAUSED\x20assert)\x20while\x20the\x20pause\x20'+'stands,\x20and\x20there\x20is\x20NO\x20on-chain\x20scheduled\x20resume:\x20the\x20merchant\x20must\x20submit\x20pause:false.\x20'+'The\x20prices\x20below\x20are\x20reference\x20only.\x20':'')+(A===0x0n?'DEAD\x20BASKET\x20(F-BS-75):\x20this\x20quote\x20totals\x20ZERO\x20—\x20the\x20chain\x20REFUSES\x20zero-total\x20buys\x20(client\x20'+'order_new_zero_total_dead_order,\x20on-chain\x20abort\x2042),\x20so\x20this\x20basket\x20cannot\x20be\x20purchased\x20at\x20'+'all.\x20Either\x20the\x20basket\x20contains\x20a\x20zero-priced\x20SKU\x20(permanently\x20unbuyable\x20—\x20F-BS-76;\x20the\x20'+'merchant\x20must\x20reprice\x20it\x20to\x20>=\x201\x20smallest\x20unit)\x20or\x20a\x20coupon\x20zeroes\x20it\x20(lower\x20the\x20coupon\x20'+'value).\x20Do\x20NOT\x20attempt\x20the\x20buy.\x20allow_zero_total\x20waives\x20nothing\x20(BSX-F07).':B?.['applied']?'FLOOR\x20semantics\x20(bs29\x20R-17,\x20the\x20published\x20buy\x20contract):\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20'+'this\x20discounted\x20total\x20—\x20an\x20under-funded\x20total\x20aborts\x20(E_COIN_NOT_ENOUGH);\x20an\x20over-funded\x20one\x20'+'succeeds\x20but\x20the\x20ORDER\x20still\x20escrows\x20exactly\x20this\x20amount\x20(the\x20excess\x20is\x20split\x20back,\x20never\x20'+'escrowed).\x20Pass\x20exactly\x20this\x20value.\x20The\x20on-chain\x20buy\x20aborts\x20only\x20on\x20an\x20UNDER-funded\x20total;\x20'+'the\x20coupon\x20is\x20consumed\x20at\x20buy.':'FLOOR\x20semantics\x20(bs29\x20R-17,\x20the\x20published\x20buy\x20contract):\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20'+'this\x20total\x20—\x20an\x20under-funded\x20total\x20aborts\x20(E_COIN_NOT_ENOUGH);\x20an\x20over-funded\x20one\x20'+'succeeds\x20but\x20the\x20ORDER\x20still\x20escrows\x20exactly\x20Σ(unit_price\x20×\x20quantity)\x20—\x20the\x20excess\x20is\x20split\x20'+'back\x20to\x20the\x20payer\x20and\x20never\x20enters\x20the\x20escrow.\x20WITHOUT\x20a\x20discount\x20you\x20may\x20also\x20omit\x20'+'total_pay\x20entirely:\x20the\x20buy\x20auto-derives\x20this\x20exact\x20total\x20(M-K17).')},'discount':B,'allocation_preview':N,'compensation_fund_coverage':I,'reward_terms':P};}
1
+ import{Config,LocalMark,query_objects,query_serviceContext,queryTableItem_RepositoryData}from'@wowok/wowok';import{resolveAddress as a441a}from'../../tools/handlers/name-resolution.js';import{parseGuardTimeBounds}from'../../knowledge/guard-anchor-reach.js';import{lineBuyability,skuNameGateNote}from'../../knowledge/sku-name-gate.js';import{formatMoneyAnnotation}from'./facet-money.js';const balanceStr=a=>a===null||a===undefined?'0':typeof a==='bigint'?a['toString']():String(a);async function displayOf(a,b,c){try{return(await formatMoneyAnnotation(a,b,c))['display'];}catch{return a;}}function describeRecipient(a){if(typeof a==='string')return a;if(a&&typeof a==='object'){const b=a;if('GuardIdentifier'in b)return'submission\x20slot\x20'+String(b['GuardIdentifier']);if('Entity'in b){const c=b['Entity'],d=c&&typeof c==='object'?c['name_or_address']:c;return d===''?'Entity(\x22\x22)\x20—\x20MCP\x20default\x20local\x20account':'Entity:'+String(d);}return JSON['stringify'](a);}return'unknown';}const PER_ORDER_REPLAY_NOTE='A\x20per-order\x20replay\x20on\x20the\x20reward\x20PULL\x20rail\x20needs\x20BOTH\x20a\x20guard_add\x20store_from_id\x20stamp\x20on\x20the\x20'+'submitted-Order\x20slot\x20(0\x20by\x20convention)\x20AND\x20an\x20order-scoped\x20where:{storeFromId:{identifier:<same\x20slot>}}\x20'+'record\x20gate\x20in\x20the\x20claim\x20guard\x20(SV-2).\x20For\x20a\x20per-order\x20once\x20the\x20CHAIN\x20enforces\x20regardless\x20of\x20guard-tree\x20'+'mistakes,\x20route\x20the\x20incentive\x20through\x20an\x20Allocation\x20leg\x20declaring\x20protocol\x20slot\x20254\x20(the\x20once\x20key\x20derives\x20'+'on-chain\x20from\x20bcs(payment_info.for_object);\x20a\x20second\x20alloc\x20aborts\x2016,\x20E_ONCE_TRIGGERED).',quoteOwnerAddr=a=>{if(typeof a==='string')return a;const b=a;if(b&&typeof b==='object'){if(typeof b['AddressOwner']==='string')return b['AddressOwner'];if(typeof b['ObjectOwner']==='string')return b['ObjectOwner'];const c=Object['values'](b)['find'](d=>typeof d==='string'&&d['length']>0x14);if(typeof c==='string')return c;}return null;};export async function handleServiceQuote(a){const b=a['context_network']??undefined??await Config['Instance']()['network_get'](),d=await a441a(a['object_address']??a['service_address']??'','object_address\x20(or\x20service_address)'),f=a['no_cache']!==![],h=await query_serviceContext({'service':d,'network':b,...f?{'no_cache':!![]}:{}}),i=h['service'];if(!i)throw new Error('Service\x20\x27'+a['service_address']+'\x27\x20not\x20found\x20on\x20network\x20'+b+'.');const j=i?.['type_raw']??i?.['type']??'',k=j['match'](/<(.+)>$/),l=k?k[0x1]:null,m=Array['isArray'](i['sales'])?i['sales']:[],n=new Map();for(const a7 of m){if(!a7||typeof a7['name']!=='string')continue;const a8=a7['stock']?.['balance']??a7['stock'];n['set'](a7['name'],{'price':balanceStr(a7['price']?.['balance']??a7['price']??0x0),'suspended':a7['suspension']===!![],'stock':a8==null?null:balanceStr(a8),'wip':typeof a7['wip']==='string'&&a7['wip']!==''?a7['wip']:null});}let q=0x0n;for(const a9 of n['values']()){const aa=/^\d+$/['test'](a9['price'])?BigInt(a9['price']):0x0n;aa>0x0n&&(q===0x0n||aa<q)&&(q=aa);}const t=i['paused']===!![]||i['bPaused']===!![],u=async()=>{try{const ab=i['buy_guard'];if(typeof ab!=='string'||!/^0x[0-9a-fA-F]{40,64}$/['test'](ab))return null;const ac=await query_objects({'objects':[ab],'network':b}),ad=Array['isArray'](ac?.['objects'])?ac['objects'][0x0]:null,ae=(at,au=0x0)=>{if(!at||typeof at!=='object'||au>0x4)return null;if(at['root']&&Array['isArray'](at['table']))return at;for(const av of Object['values'](at)){if(av&&typeof av==='object'){const aw=ae(av,au+0x1);if(aw)return aw;}}return null;},af=ae(ad);if(!af)return null;const ag=at=>Array['isArray'](af['table'])?af['table']['find'](au=>au?.['identifier']===at&&au?.['b_submission']===![])??null:null,ah=(at,au=0x0)=>{if(!at||typeof at!=='object'||au>0xc)return null;if(at['type']==='logic_as_u256_lesser_or_equal'&&Array['isArray'](at['nodes'])&&at['nodes']['some'](av=>av?.['type']==='context'&&av?.['context']==='Clock')){const av=at['nodes']['find'](aw=>aw?.['type']==='query'&&aw?.['query']==='repository.data');if(av)return av;}for(const aw of Object['values'](at)){if(aw&&typeof aw==='object'){const ax=ah(aw,au+0x1);if(ax)return ax;}}return null;},ai=ah(af['root']);if(!ai)return null;const aj=ag(ai['parameters']?.[0x0]?.['identifier']);if(!aj||aj['value']!=='next_cycle_deadline')return null;const ak=ag(ai['object']?.['identifier']),al=ag(ai['parameters']?.[0x1]?.['identifier']);if(!ak||!al)return null;const am=typeof ak['value']==='string'?ak['value']:String(ak['value']??'');if(!am)return null;const an=al['value'],ao=typeof an==='number'&&Number['isFinite'](an)?BigInt(Math['trunc'](an)):typeof an==='string'&&/^\d+$/['test'](an)?BigInt(an):typeof an==='string'&&an!==''?an:null;if(ao===null)return null;const ap=await queryTableItem_RepositoryData({'parent':am,'name':'next_cycle_deadline','entity':ao,'network':b});if(ap===undefined)return{'closed':!![],'deadlineMs':null,'note':'the\x20campaign\x20window\x20row\x20(next_cycle_deadline)\x20is\x20NOT\x20seeded\x20—\x20the\x20mounted\x20buy\x20window\x20'+'reads\x200\x20and\x20Clock\x20<=\x200\x20is\x20false,\x20so\x20the\x20chain\x20refuses\x20EVERY\x20order\x20until\x20the\x20merchant\x20'+'seeds\x20the\x20row\x20(fail-closed,\x20W5-22)'};const aq=at=>{const au=at?.['data']?.['value']??at?.['value'];try{if(typeof au==='bigint')return au;if(typeof au==='number'&&Number['isFinite'](au))return BigInt(Math['trunc'](au));if(typeof au==='string'&&/^\d+$/['test'](au['trim']()))return BigInt(au['trim']());if(au instanceof Uint8Array&&(au['length']===0x8||au['length']===0x20)){let av=0x0n;for(let aw=au['length']-0x1;aw>=0x0;aw--)av=av<<0x8n|BigInt(au[aw]);return av;}}catch{}return null;},ar=aq(ap);if(ar===null||ar<=0x0n)return null;const as=Date['now']()>ar;return{'closed':as,'deadlineMs':ar['toString'](),'note':as?'the\x20campaign\x20window\x20closed\x20at\x20epoch-ms\x20'+ar+'\x20('+new Date(Number(ar))['toISOString']()+')\x20—\x20'+'order_new\x20aborts\x20at\x20the\x20buy\x20guard;\x20the\x20merchant\x20re-opens\x20by\x20rolling\x20the\x20'+'next_cycle_deadline\x20row\x20forward\x20(tpl_buy_guard_campaign_window)':'the\x20campaign\x20window\x20is\x20OPEN\x20until\x20epoch-ms\x20'+ar+'\x20('+new Date(Number(ar))['toISOString']()+')'};}catch{return null;}},w=await u(),x=Array['isArray'](i['sales'])?i['sales']:[],y=ab=>{if(typeof ab['name']==='string'&&ab['name']!=='')return ab['name'];if(typeof ab['sale_id']==='number'){const ac=x[ab['sale_id']];return ac&&typeof ac['name']==='string'&&ac['name']!==''?ac['name']:null;}return null;},z=a['items']??[...n['keys']()]['map'](ab=>({'name':ab,'quantity':0x1})),A=z['map'](ab=>({'name':y(ab),'quantity':ab['quantity']})),B=z['filter'](ab=>y(ab)===null);if(B['length']>0x0)throw new Error('Sale(s)\x20not\x20resolvable\x20on\x20this\x20Service:\x20'+B['map'](ab=>'sale_id'in ab&&typeof ab['sale_id']==='number'?'sale_id\x20'+ab['sale_id']:'\x27'+(ab['name']??'<empty>')+'\x27')['join'](',\x20')+'.\x20'+('Available\x20sales\x20(index:\x20name):\x20'+(x['map']((ab,ac)=>ac+':\x20\x27'+(ab?.['name']??'?')+'\x27')['join'](',\x20')||'<none>')+'.'));const C=A['filter'](ab=>!n['has'](ab['name']));if(C['length']>0x0)throw new Error('Sale(s)\x20not\x20found\x20on\x20this\x20Service:\x20'+C['map'](ab=>'\x27'+ab['name']+'\x27')['join'](',\x20')+'.\x20'+('Available\x20sales:\x20'+([...n['keys']()]['map'](ab=>'\x27'+ab+'\x27')['join'](',\x20')||'<none>')+'.'));if(A['length']===0x0)throw new Error('This\x20Service\x20has\x20NO\x20configured\x20sales\x20—\x20nothing\x20to\x20quote.');const D=[];let E=0x0n;for(const ab of A){const ac=ab['name'],ad=n['get'](ac),ae=BigInt(ad['price']||'0'),af=ae*BigInt(ab['quantity']);E+=af;const ag=ad['stock']!=null&&/^\d+$/['test'](ad['stock'])?BigInt(ad['stock']):null,ah=lineBuyability(ac,[...ad['suspended']?['sale\x20is\x20suspended\x20(merchant\x20sale_suspension)']:[],...ag!=null&&ag<BigInt(ab['quantity'])?['stock\x20'+ad['stock']+'\x20<\x20requested\x20quantity\x20'+ab['quantity']]:[],...w?.['closed']?['CAMPAIGN_CLOSED\x20—\x20the\x20storefront\x20deadline\x20window\x20has\x20closed\x20(or\x20is\x20unseeded)']:[]],ag!=null);D['push']({'name':ac,'quantity':ab['quantity'],'unit_price':ad['price'],'unit_price_display':await displayOf(ad['price'],l,b),'line_total':af['toString'](),'suspended':ad['suspended'],'stock':ad['stock'],'stock_ok':ag==null?null:ag>=BigInt(ab['quantity']),'buyable':ah['buyable'],'buyable_blockers':ah['blockers'],'wip':ad['wip']});}let F=E,G=null;if(typeof a['discount']==='string'&&a['discount']['trim']()!==''){const ai=await a441a(a['discount'],'discount');let aj=null;try{const aw=await query_objects({'objects':[ai],'network':b});aj=aw?.['objects']?.[0x0]??null;}catch{aj=null;}if(!aj)throw new Error('E_DISCOUNT_NOT_FOUND:\x20coupon\x20\x27'+ai+'\x27\x20not\x20found\x20—\x20it\x20was\x20already\x20burned\x20on\x20a\x20'+'previous\x20buy\x20(a\x20burned\x20coupon\x20is\x20destroyed\x20on\x20chain\x20and\x20cannot\x20be\x20quoted\x20again)\x20'+'or\x20the\x20address\x20is\x20wrong.\x20Re-quote\x20without\x20the\x20coupon.');const ak=String(aj['service']??'');if(ak['toLowerCase']()!==d['toLowerCase']())throw new Error('E_SERVICE_DISCOUNT_NOT_MATCH:\x20coupon\x20\x27'+ai+'\x27\x20is\x20bound\x20to\x20service\x20'+((ak||'<unparseable>')+',\x20not\x20to\x20'+d+'.\x20A\x20buy\x20with\x20this\x20coupon\x20aborts.'));const al=ax=>{const ay=balanceStr(ax)['trim']();return/^\d+$/['test'](ay)?BigInt(ay):0x0n;},am=BigInt(Date['now']()),an=al(aj['time_start']),ao=al(aj['time_end']);if(am<an||am>ao)throw new Error('E_DISCOUNT_TIME_INVALID:\x20coupon\x20\x27'+ai+'\x27\x20is\x20valid\x20'+(an+'–'+ao+'\x20(ms\x20epoch),\x20now\x20is\x20'+am+'.\x20A\x20buy\x20with\x20this\x20coupon\x20aborts.'));const ap=Number(aj['discount_type'])===0x0,aq=al(aj['off']),ar=quoteOwnerAddr(aj['owner']),as=ar?'Coupon\x20is\x20owned\x20by\x20'+ar+';\x20only\x20the\x20holder\x20can\x20redeem\x20it\x20—\x20a\x20coupon\x20held\x20by\x20another\x20address\x20cannot\x20be\x20applied\x20to\x20your\x20order,\x20have\x20the\x20owner\x20transfer\x20it\x20first\x20(call\x20service\x20discount_send).\x20Refunds\x20settle\x20the\x20post-coupon\x20amount\x20only.':'Coupon\x20holder\x20could\x20not\x20be\x20read\x20from\x20the\x20chain\x20—\x20VERIFY\x20the\x20holder\x20before\x20checkout:\x20only\x20the\x20holder\x20can\x20redeem,\x20a\x20coupon\x20held\x20by\x20another\x20address\x20cannot\x20be\x20applied\x20to\x20your\x20order\x20(have\x20the\x20owner\x20transfer\x20it\x20first\x20via\x20call\x20service\x20discount_send),\x20and\x20refunds\x20settle\x20the\x20post-coupon\x20amount\x20only.',at=aj['benchmark']===null||aj['benchmark']===undefined?null:al(aj['benchmark']),au=at===null?!![]:E>=at;let av=![];au&&(av=!![],F=ap?E-E*aq/0x2710n:E>aq?E-aq:0x0n),G={'coupon':ai,'name':typeof aj['name']==='string'?aj['name']:null,'owned_by':ar,'ownership_note':as,'type':ap?'rates':'minus','off':aq['toString'](),'benchmark':at===null?null:at['toString'](),'benchmark_met':au,'applied':av,'list_total':E['toString'](),'final_total':F['toString'](),'final_total_display':await displayOf(F['toString'](),l,b),'note':av?F===0x0n?'DEAD\x20BASKET\x20(F-BS-75):\x20the\x20coupon\x20covers\x20the\x20entire\x20basket,\x20but\x20the\x20chain\x20REFUSES\x20zero-total\x20'+'buys\x20—\x20the\x20client\x20gate\x20(order_new_zero_total_dead_order)\x20and\x20the\x20on-chain\x20zero-total\x20gate\x20'+'(abort\x2042)\x20both\x20reject\x20this\x20buy;\x20NOTHING\x20is\x20purchasable\x20at\x20total\x200,\x20free\x20product\x20or\x20not.\x20'+'Lower\x20the\x20coupon\x20value\x20so\x20the\x20final\x20total\x20stays\x20>=\x201\x20smallest\x20unit\x20(or\x20price\x20a\x20deliberate\x20'+'free\x20tier\x20at\x201\x20smallest\x20unit,\x20or\x20deliver\x20it\x20outside\x20the\x20sales\x20rails).\x20allow_zero_total\x20does\x20'+'NOT\x20unlock\x20this\x20buy\x20and\x20no\x20longer\x20waives\x20the\x20issuance\x20gate\x20either\x20(BSX-F07).':'Discounted\x20total\x20shown\x20—\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20this\x20final_total\x20(bs29\x20R-17:\x20total_pay\x20is\x20a\x20FLOOR;\x20the\x20order\x20escrows\x20exactly\x20this\x20amount,\x20an\x20over-funded\x20total\x20is\x20never\x20escrowed).\x20Pass\x20exactly\x20this\x20value;\x20the\x20coupon\x20is\x20consumed\x20at\x20buy.\x20'+'BURN-ON-USE\x20(F-ETS-03):\x20attaching\x20this\x20coupon\x20to\x20a\x20buy\x20DESTROYS\x20it\x20on\x20chain\x20—\x20the\x20coupon\x20'+'object\x20is\x20gone\x20once\x20the\x20order\x20is\x20created\x20(a\x20later\x20quote\x20hits\x20E_DISCOUNT_NOT_FOUND).\x20'+'CANCELLATION\x20REFUNDS\x20THE\x20DISCOUNTED\x20AMOUNT\x20ONLY:\x20refund\x20rails\x20pay\x20the\x20order\x27s\x20escrowed\x20'+'amount\x20(this\x20final_total),\x20so\x20a\x20cancelled\x20order\x20does\x20NOT\x20restore\x20the\x20coupon\x27s\x20face\x20value\x20—\x20'+'the\x20difference\x20is\x20forfeited\x20even\x20on\x20a\x20no-fault\x20cancel.\x20Disclose\x20this\x20to\x20the\x20buyer\x20before\x20checkout.':'⚠\x20Benchmark\x20NOT\x20met\x20(list\x20total\x20'+E+'\x20<\x20'+at+'):\x20the\x20chain\x20REJECTS\x20this\x20buy\x20when\x20the\x20coupon\x20is\x20attached\x20(error\x2038\x20—\x20full\x20rollback,\x20nothing\x20paid,\x20coupon\x20preserved).\x20Raise\x20the\x20basket\x20to\x20>=\x20'+at+',\x20or\x20order\x20without\x20the\x20coupon\x20and\x20keep\x20it.'};}const H=balanceStr(i['compensation_fund']??0x0),I=/^\d+$/['test'](H['trim']())?BigInt(H['trim']()):0x0n,J=0x3n*F,K=J>I?J-I:0x0n,L=I/0x3n,M=await displayOf(L['toString'](),l,b),N={'fund_balance':I['toString'](),'fund_balance_display':await displayOf(I['toString'](),l,b),'max_coverable_order':L['toString'](),'max_coverable_order_display':M,'required_for_this_basket':J['toString'](),'required_display':await displayOf(J['toString'](),l,b),'shortfall':K['toString'](),'shortfall_display':await displayOf(K['toString'](),l,b),'covered':I>=J,'note':I===0x0n?'This\x20Service\x20runs\x20WITHOUT\x20a\x20compensation\x20fund\x20—\x20a\x20legitimate\x20merchant\x20choice,\x20never\x20blocked\x20at\x20buy.\x20An\x20arbitration\x20award\x20beyond\x20the\x20pool\x20aborts\x20the\x20buyer\x27s\x20payout\x20(code\x2027,\x20claim\x20NOT\x20consumed)\x20and\x20waits\x20on\x20the\x20merchant\x20wallet.':I>=J?'The\x20fund\x20covers\x203x\x20this\x20basket\x27s\x20amount\x20—\x20a\x20single\x20ruling\x20at\x20the\x20maximum\x20award\x20multiple\x20is\x20payable\x20from\x20the\x20pool.\x20Storefront\x20ceiling:\x20orders\x20above\x20'+M+'\x20(fund/3)\x20are\x20NOT\x20fully\x20covered\x20(they\x20proceed\x20with\x20a\x20buy-time\x20warning)\x20—\x20quote\x20a\x20bigger\x20basket\x20against\x20the\x20ceiling,\x20not\x20just\x20this\x20one.':'BELOW\x20the\x20per-order\x20payout\x20requirement\x20(compensation_fund_below_order_ceiling):\x20the\x20buy\x20still\x20PROCEEDS\x20with\x20a\x20warning\x20—\x20coverage\x20is\x20no\x20longer\x20enforced\x20pre-buy\x20(拍板⑤\x20dm-mtw-261027).\x20Risk\x20to\x20disclose\x20to\x20the\x20buyer\x20BEFORE\x20checkout:\x20if\x20a\x20ruling\x20awards\x20at\x20the\x20cap,\x20settlement\x20is\x20ALL-OR-NOTHING\x20—\x20the\x20claim\x20aborts\x20(code\x2027),\x20nothing\x20is\x20paid,\x20and\x20it\x20waits\x20on\x20the\x20merchant\x20topping\x20up\x20via\x20service.compensation_fund_add\x20by\x20'+await displayOf(K['toString'](),l,b)+'\x20(to\x20>=\x203x\x20this\x20basket).\x20Standing\x20ceiling:\x20orders\x20above\x20'+M+'\x20(fund/3)\x20are\x20not\x20fully\x20covered,\x20so\x20this\x20basket\x20is\x20only\x20the\x20latest\x20casualty\x20—\x20every\x20bigger\x20SKU\x20is\x20under-covered\x20too.'},O=await displayOf(F['toString'](),l,b),P=i['order_allocators'],Q=Array['isArray'](P?.['allocators'])?P['allocators']:[],R=Q['length']>0x0?Q[0x0]:undefined,S=R?{'allocator_index':0x0,'note':'Sharing\x20rows\x20of\x20the\x20FIRST\x20order_allocator\x20(index\x200\x20—\x20NOT\x20necessarily\x20the\x20normal\x20'+'payout\x20path:\x20services\x20that\x20ship\x20refund-first\x20rails\x20put\x20the\x20refund\x20track\x20at\x20index\x200,\x20'+'klk15\x20C-06).\x20Guards\x20select\x20per-case\x20allocators\x20(refund\x20/\x20damage\x20/\x20late-cancel),\x20so\x20'+'the\x20LIVE\x20split\x20depends\x20on\x20which\x20guard\x20passes\x20—\x20identify\x20the\x20settlement\x20allocator\x20'+'via\x20service_panorama\x20before\x20ordering.','sharing':(Array['isArray'](R['sharing'])?R['sharing']:[])['map'](ax=>({'recipient':describeRecipient(ax?.['who']),'mode':typeof ax?.['mode']==='string'?ax['mode']:null,'value':balanceStr(ax?.['sharing']?.['balance']??ax?.['sharing']??0x0)}))}:null,T=Array['isArray'](i['rewards'])?i['rewards']['filter'](ax=>typeof ax==='string'&&ax!==''):[];let U=null;if(T['length']>0x0){const ax=[],ay=[];let az=[];try{const aA=await query_objects({'objects':T,'network':b});az=Array['isArray'](aA?.['objects'])?aA['objects']:[];}catch(aB){ax['push']('Reward\x20lookup\x20failed\x20('+(aB instanceof Error?aB['message']:String(aB))+')\x20—\x20reward\x20terms\x20NOT\x20verified;\x20do\x20not\x20rely\x20on\x20them.');}for(const aC of T){const aD=az['find'](b8=>typeof b8?.['object']==='string'&&b8['object']['toLowerCase']()===aC['toLowerCase']());if(!aD){ax['push']('Reward\x20\x27'+aC+'\x27\x20could\x20not\x20be\x20read\x20—\x20its\x20terms\x20are\x20unknown;\x20do\x20not\x20rely\x20on\x20it.');continue;}const aE=balanceStr(aD['balance']??0x0),aF=/^\d+$/['test'](aE)?BigInt(aE):0x0n,aG=[];let aH=0x0n,aI=![];for(const b8 of Array['isArray'](aD['guards'])?aD['guards']:[]){const b9=b8?.['amount'],ba=b9!=null&&(b9['type']===0x1||b9['type']==='Fixed'),bb=b8?.['expiration_time'],bc=bb==null?null:Number(bb),bd=bc!=null&&Number['isFinite'](bc)?bc:null;if(ba){const be=balanceStr(b9['value']??0x0),bf=/^\d+$/['test'](be)?BigInt(be):0x0n;if(bf>aH)aH=bf;aG['push']({'guard':String(b8?.['guard']??''),'amount_type':'fixed','amount':be,'amount_display':await displayOf(be,l,b),'expiration_time':bd,'expiration_display':bd!=null?new Date(bd)['toISOString']():null,'expired':bd!=null?Date['now']()>bd:null,'min_rating':null,'min_rows':null,'unreadable_legs':null,'claim_window':null,'claim_state':'unknown','claim_state_note':'Not\x20decoded\x20yet.'});}else aI=!![],aG['push']({'guard':String(b8?.['guard']??''),'amount_type':'guard_submission','amount':'submission\x20identifier\x20'+String(b9?.['value']??'?'),'amount_display':null,'expiration_time':bd,'expiration_display':bd!=null?new Date(bd)['toISOString']():null,'expired':bd!=null?Date['now']()>bd:null,'min_rating':null,'min_rows':null,'unreadable_legs':null,'claim_window':null,'claim_state':'unknown','claim_state_note':'Not\x20decoded\x20yet.'});}const aJ=Array['from'](new Set(aG['map'](bg=>bg['guard'])['filter'](bg=>bg!==''))),aK=new Map();if(aJ['length']>0x0)try{const bg=await query_objects({'objects':aJ,'network':b});for(const bh of Array['isArray'](bg?.['objects'])?bg['objects']:[]){if(typeof bh?.['object']==='string')aK['set'](bh['object']['toLowerCase'](),bh);}}catch{ax['push']('Claim\x20guard\x20lookup\x20failed\x20—\x20rating\x20conditions\x20on\x20'+aJ['length']+'\x20claim\x20guard(s)\x20NOT\x20verified;\x20do\x20not\x20promise\x20the\x20incentive.');}const aL=(bi,bj=0x0)=>{if(!bi||typeof bi!=='object'||bj>0x4)return null;if(bi['root']&&Array['isArray'](bi['table']))return bi;for(const bk of Object['values'](bi)){if(bk&&typeof bk==='object'){const bl=aL(bk,bj+0x1);if(bl)return bl;}}return null;},aM=bi=>{if(bi>=0x15180&&bi%0x15180===0x0)return bi/0x15180+'\x20day(s)';if(bi>=0xe10&&bi%0xe10===0x0)return bi/0xe10+'\x20hour(s)';return bi+'\x20seconds';},aN=(bi,bj)=>{const bk=bi['table']['find'](bm=>bm?.['identifier']===bj&&bm?.['b_submission']===![]);if(!bk)return null;const bl=typeof bk['value']==='number'?bk['value']:Number(String(bk['value']??''));return Number['isFinite'](bl)?bl:null;},aO=/^query_repository_data_(count|find|sum)(?:_bound)?_where$/,aP=bi=>{if(!bi||typeof bi!=='object')return null;const bj=bk=>{const bl=typeof bk==='number'?bk:Number(String(bk??''));return Number['isFinite'](bl)?bl:null;};switch(bi['kind']){case'gte':{const bk=bj(bi['value']);return bk!=null?'>=\x20'+bk:null;}case'gt':{const bl=bj(bi['value']);return bl!=null?'>\x20'+bl:null;}case'numEq':{const bm=bj(bi['value']);return bm!=null?'==\x20'+bm:null;}case'range':{const bn=bj(bi['valueMin']);if(bn!=null)return bi['minInclusive']===![]?'>\x20'+bn:'>=\x20'+bn;const bo=bj(bi['valueMax']);if(bo!=null)return bi['maxInclusive']===![]?'<\x20'+bo:'<=\x20'+bo;return null;}default:return null;}},aQ=bi=>{const bj=[],bk=(bl,bm)=>{if(!bl||typeof bl!=='object'||bm>0x18)return;const bn=typeof bl['type']==='string'?bl['type']:'';if(bn['startsWith']('vec_contains')){const bo=JSON['stringify'](bl),bp=bo['includes']('find_where')||bo['includes']('1176');bj['push'](bp?bn+'[repository\x20find_where\x20membership\x20read]\x20—\x20set-membership\x20gate\x20over\x20found\x20rows;\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time':bn+'\x20membership\x20gate\x20—\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time');return;}else bn==='query'&&typeof bl['query']==='string'&&bl['query']['includes']('find_where')&&bj['push']('query\x20'+bl['query']+'\x20—\x20repository\x20find_where\x20read\x20feeding\x20a\x20comparison;\x20not\x20statically\x20decodable,\x20evaluated\x20only\x20on\x20chain\x20at\x20claim\x20time');for(const bq of Object['values'](bl)){if(Array['isArray'](bq)){for(const br of bq)bk(br,bm+0x1);}else bq&&typeof bq==='object'&&bk(bq,bm+0x1);}};return bk(bi,0x0),bj;},aR=(bi,bj)=>{const bk=new Set();for(const bp of bj['table']??[]){if(bp?.['b_submission']===![]&&typeof bp?.['value']==='string'&&/rating/i['test'](bp['value']))bk['add'](Number(bp['identifier']));}const bl=bq=>{if(!bq)return null;if(bq['type']==='identifier')return aN(bj,Number(bq['identifier']));if(typeof bq['value']==='number')return bq['value'];const br=Number(String(bq['value']??''));return Number['isFinite'](br)?br:null;};let bm=null;const bn=bq=>{if(!bm||bq['ratingKeyed']&&!bm['ratingKeyed'])bm=bq;},bo=(bq,br)=>{if(!bq||typeof bq!=='object'||br>0x18)return;const bs=typeof bq['type']==='string'?bq['type']:'';if(bs==='logic_as_u256_greater_or_equal'||bs==='logic_as_u256_greater'||bs==='logic_as_u256_equal'){const bt=Array['isArray'](bq['nodes'])?bq['nodes']:[],bu=bt[0x0],bv=JSON['stringify'](bu??{});if(bt['length']>=0x2&&bu&&(bv['includes']('repository.data')||bv['includes']('repository_data'))){let bw=null;const bx=(bz,bA)=>{if(!bz||typeof bz!=='object'||bA>0x8||bw)return;if(bz['type']==='query'&&bz['where']&&(typeof bz['query']==='string'&&aO['test'](bz['query'])||typeof bz['query']==='number')){bw=bz;return;}for(const bB of Object['values'](bz))if(bB&&typeof bB==='object')bx(bB,bA+0x1);};bx(bu,0x0);const by=bl(bt[bt['length']-0x1]);if(bw){const bz=bw['key']?.['identifier']!=null?Number(bw['key']['identifier']):null;bn({'floor':aP(bw['where']),'min_rows':by,'aggregate':!![],'ratingKeyed':bz!=null&&bk['has'](bz)});}else{const bA=bl(bt[bt['length']-0x1]);if(bA!=null){const bB=bs==='logic_as_u256_greater_or_equal'?'>=':bs==='logic_as_u256_greater'?'>':'==';bn({'floor':bB+'\x20'+bA,'min_rows':null,'aggregate':![],'ratingKeyed':![]});}}}}for(const bC of Object['values'](bq)){if(Array['isArray'](bC)){for(const bD of bC)bo(bD,br+0x1);}else bC&&typeof bC==='object'&&bo(bC,br+0x1);}};return bo(bi,0x0),bm??{'floor':null,'min_rows':null,'aggregate':![],'ratingKeyed':![]};};for(const bi of aG){bi['min_rating']=null;const bj=aK['get'](bi['guard']['toLowerCase']());if(!bj)continue;{const bo=aL(bj),bp=bo?parseGuardTimeBounds(bo['root'],bo['table']):null;bp&&(bi['claim_window']={'opens_after_s':bp['lowerOffsetMs']!=null?bp['lowerOffsetMs']/0x3e8:null,'closes_after_s':bp['upperWindowMs']!=null?bp['upperWindowMs']/0x3e8:null,'anchor':bp['anchor']});}{const bq=bi['claim_window'],br=bq?.['opens_after_s']??null,bs=bq?.['closes_after_s']??null;if(bi['expiration_time']!=null&&bi['expired']===!![])bi['claim_state']='expired',bi['claim_state_note']='The\x20pool-level\x20entry\x20expired\x20at\x20'+bi['expiration_display']+'\x20—\x20claims\x20abort\x20E_GUARD_EXPIRED.';else{if(!bq)bi['claim_state']='unknown',bi['claim_state_note']='The\x20claim\x20guard\x27s\x20window\x20could\x20not\x20be\x20decoded\x20(unreadable\x20payload\x20or\x20no\x20Clock\x20comparison)\x20—\x20check\x20the\x20guard\x20before\x20promising\x20a\x20timing\x20to\x20the\x20buyer.';else{if(br!=null&&br>0x0&&bs==null)bi['claim_state']='delayed_open_ended',bi['claim_state_note']='NOT\x20claimable\x20at\x20the\x20anchor\x20event\x20—\x20opens\x20'+aM(br)+'\x20after\x20it\x20('+bq['anchor']+'),\x20and\x20the\x20window\x20NEVER\x20closes:\x20any\x20\x22N\x20days\x20to\x20claim\x22\x20wording\x20is\x20fictional\x20(bsw4\x20F-11).';else{if(br!=null&&br>0x0){bi['claim_state']='delayed_window';const bt=bs-br;bi['claim_state_note']='Opens\x20'+aM(br)+'\x20after\x20the\x20anchor\x20event\x20('+bq['anchor']+'),\x20stays\x20claimable\x20for\x20a\x20further\x20'+aM(bt)+'\x20—\x20hard\x20deadline\x20'+aM(bs)+'\x20after\x20the\x20anchor.';}else bs!=null?(bi['claim_state']='open_window',bi['claim_state_note']='Claimable\x20at\x20the\x20anchor\x20event\x20('+bq['anchor']+'),\x20until\x20'+aM(bs)+'\x20after\x20it.'):(bi['claim_state']='open_ended',bi['claim_state_note']='Claimable\x20at\x20the\x20anchor\x20event\x20('+bq['anchor']+')\x20and\x20never\x20closes\x20—\x20an\x20open-ended\x20bounty\x20(a\x20deliberate\x20design;\x20disclose\x20it\x20explicitly).');}}}}let bk;try{bk=JSON['stringify'](bj,(bu,bv)=>bv instanceof Uint8Array?Buffer['from'](bv)['toString']('base64'):bv);}catch{continue;}const bl=bk['includes']('\x22rating\x22')||bk['includes']('114,97,116,105,110,103')||bk['toLowerCase']()['includes']('726174696e67')||bk['includes']('cmF0aW5n');if(!bl)continue;const bm=aL(bj),bn=bm?aR(bm['root'],bm):null;if(bn?.['floor'])bi['min_rating']=bn['floor'],bi['min_rows']=bn['min_rows'];else{const bu=bk['toLowerCase']();if(bu['includes']('\x22like\x22'))bi['min_rating']='like';else{if(bu['includes']('\x22dislike\x22'))bi['min_rating']='dislike';else bi['min_rating']='unknown';}if(bn?.['min_rows']!=null)bi['min_rows']=bn['min_rows'];const bv=bm?aQ(bm['root']):[];if(bv['length']>0x0)bi['unreadable_legs']=bv;}}let aS='';if(aH>0x0n&&q>0x0n){const bw=Number(aH)/Number(q);Number['isFinite'](bw)&&(aS='\x20Bounty/cheapest-SKU\x20price\x20ratio:\x20'+bw['toFixed'](0x2)+'x\x20'+('('+await displayOf(aH['toString'](),l,b)+'\x20vs\x20')+(await displayOf(q['toString'](),l,b)+').')+(bw>0.5?'\x20⚠\x20SCALE\x20(T-02):\x20each\x20claimed\x20order\x20pays\x20out\x20MORE\x20than\x20the\x20cheapest\x20sale\x20earns\x20—\x20a\x20bounty-farm\x20shape;\x20a\x20sybil\x20can\x20mint\x20cheap\x20orders\x20and\x20drain\x20this\x20pool.\x20Rebalance\x20the\x20bounty\x20or\x20the\x20catalog\x20before\x20funding.':''));}const aT=aF===0x0n?'Pool\x20is\x20EMPTY\x20—\x20any\x20claim\x20aborts\x20on-chain\x20on\x20the\x20reward\x20module\x27s\x20E_INSUFFICIENT_BALANCE\x20(not\x20the\x20allocation\x20module\x27s\x20same-named\x20constant);\x20do\x20not\x20budget\x20on\x20this\x20reward.':aI||aH===0x0n?null:'Pool\x20covers\x20~'+(aF/aH)['toString']()+'\x20further\x20claim(s)\x20at\x20the\x20largest\x20configured\x20per-claim\x20amount.'+aS,aU=Array['isArray'](aD['guards'])?aD['guards']:[],aV=aU['filter'](bx=>bx?.['store_from_id']!=null)['map'](bx=>Number(bx['store_from_id'])),aW=((()=>{if(aU['length']===0x0)return{'scope':'unknown','detail':'No\x20mounted\x20guard\x20entry\x20was\x20readable,\x20so\x20the\x20claim\x20scope\x20could\x20not\x20be\x20determined\x20—\x20do\x20not\x20assume\x20a\x20per-order\x20bounty.','per_order_note':PER_ORDER_REPLAY_NOTE};if(aV['length']===aU['length']&&aV['every'](bx=>bx===0x0))return{'scope':'once_per_order','detail':'Every\x20claim\x20entry\x20stamps\x20store_from_id=0\x20(the\x20conventional\x20submitted-Order\x20slot):\x20the\x20once\x20key\x20is\x20(guard,\x20order)\x20with\x20the\x20recipient\x20pinned\x20to\x20the\x20@0x0\x20sentinel\x20—\x20the\x20FIRST\x20claim\x20consumes\x20the\x20slot\x20for\x20EVERY\x20signer\x20on\x20that\x20order\x20(a\x20second\x20claim\x20aborts\x2013,\x20E_CLAIM_ALREADY_MADE:\x20this\x20(guard,\x20order)\x20was\x20already\x20claimed\x20by\x20any\x20signer);\x20the\x20same\x20buyer\x20can\x20still\x20claim\x20again\x20on\x20a\x20NEW\x20order\x20(fresh\x20slot).','per_order_note':PER_ORDER_REPLAY_NOTE};if(aV['length']===aU['length'])return{'scope':'once_per_stamp','detail':'Every\x20claim\x20entry\x20carries\x20a\x20store_from_id\x20stamp,\x20but\x20not\x20the\x20conventional\x20Order\x20slot\x200\x20(slots:\x20'+aV['join'](',\x20')+'):\x20claims\x20are\x20keyed\x20per\x20(guard,\x20stamped\x20value)\x20with\x20the\x20recipient\x20pinned\x20to\x20the\x20@0x0\x20sentinel\x20—\x20the\x20first\x20claim\x20consumes\x20the\x20slot\x20for\x20every\x20signer;\x20per-ORDER\x20only\x20when\x20that\x20slot\x20is\x20the\x20submitted\x20Order.','per_order_note':PER_ORDER_REPLAY_NOTE};if(aV['length']===0x0)return{'scope':'once_per_recipient_guard','detail':'Every\x20claim\x20entry\x20has\x20an\x20EMPTY\x20store_from\x20slot:\x20ONE\x20claim\x20per\x20(recipient,\x20guard)\x20for\x20LIFE\x20—\x20the\x20same\x20buyer\x27s\x20second\x20order\x20claims\x20nothing\x20(abort\x2013,\x20E_CLAIM_ALREADY_MADE),\x20even\x20when\x20the\x20bounty\x20is\x20described\x20as\x20per-order.','per_order_note':PER_ORDER_REPLAY_NOTE};return{'scope':'mixed','detail':aV['length']+'\x20of\x20'+aU['length']+'\x20claim\x20entries\x20carry\x20a\x20store_from_id\x20stamp\x20—\x20those\x20are\x20per-stamp\x20scoped;\x20the\x20remaining\x20entries\x20are\x20once\x20per\x20(recipient,\x20guard)\x20for\x20life.\x20Read\x20each\x20claims[]\x20row.','per_order_note':PER_ORDER_REPLAY_NOTE};})()),aX=aG['filter'](bx=>bx['min_rating']==='unknown')['length'];aX>0x0&&ax['push'](aX+'\x20claim(s)\x20gate\x20on\x20a\x20rating\x20condition\x20whose\x20polarity\x20could\x20not\x20be\x20parsed\x20'+'(min_rating=unknown)\x20—\x20read\x20the\x20claim\x20guard\x20before\x20promising\x20this\x20incentive\x20to\x20the\x20buyer');const aY=aG['find'](bx=>bx['claim_window']!=null),aZ=aY?.['claim_window']?.['opens_after_s']??null,b0=aY?.['claim_window']?.['closes_after_s']??null,b1=bx=>bx!=null&&bx>0x0&&bx%0x15180===0x0?bx/0x15180:null,b2=b1(aZ),b3=b0!=null?b0-(aZ??0x0):null,b4=b1(b3),b5=aG['find'](bx=>typeof bx['min_rating']==='string'&&/\d/['test'](bx['min_rating'])),b6=typeof b5?.['min_rating']==='string'?b5['min_rating']['match'](/\d+/):null,b7=aW['scope']==='once_per_order'?0x1:null;ay['push']({'reward':aC,'description':typeof aD['description']==='string'?aD['description']:null,'pool_balance':aF['toString'](),'pool_balance_display':await displayOf(aF['toString'](),l,b),'record_count':Number['isFinite'](Number(aD['record_count']))?Number(aD['record_count']):0x0,'rating_floor':b6?Number(b6[0x0]):null,'opens_after_days':b2,'closes_after_days':b4,'per_order_limit':b7,'claims':aG,'replay_scope':aW,'coverage':aT});}U={'note':'Pre-order\x20reward\x20terms\x20for\x20every\x20Reward\x20hung\x20on\x20this\x20Service\x20(bound\x20at\x20build\x20time):\x20pool\x20balance,\x20'+'per-claim\x20amount\x20and\x20claim\x20windows.\x20A\x20claim\x20aborts\x20after\x20its\x20window\x20(E_GUARD_EXPIRED)\x20or\x20'+'against\x20an\x20empty\x20pool\x20(E_INSUFFICIENT_BALANCE)\x20—\x20never\x20budget\x20on\x20an\x20expired\x20or\x20empty\x20'+'reward.\x20Claiming\x20requires\x20passing\x20the\x20claim\x20guard\x27s\x20conditions.','rewards':ay,'data_gaps':ax};}const V=Array['isArray'](i['arbitrations'])?i['arbitrations']['filter'](bx=>typeof bx==='string'&&bx!=='')['length']:0x0,W=V>0x0?'⚠\x20DISPUTE\x20FILING\x20BOUNDARY\x20(ddmc2\x20F-02):\x20advancing\x20a\x20dispute\x20on\x20this\x20Service\x20validates\x20only\x20the\x20filing\x20'+'edge\x27s\x20guard\x20—\x20the\x20chain\x20does\x20NOT\x20require\x20an\x20arbitration\x20case\x20to\x20exist\x20(protocol-level\x20gap,\x20fix\x20'+'registered).\x20Any\x20account\x20passing\x20that\x20edge\x27s\x20guard\x20can\x20advance\x20an\x20order\x20into\x20its\x20dispute\x20node\x20'+'(append-only,\x20no\x20clearing\x20primitive),\x20wedging\x20settlement\x20until\x20the\x20buyer\x20withdraws\x20or\x20a\x20real\x20case\x20'+'resolves.\x20File\x20disputes\x20through\x20the\x20bound\x20arbitration\x20service\x20(Arbitration.dispute\x20creates\x20a\x20REAL\x20'+'case)\x20and\x20have\x20the\x20filing\x20edge\x27s\x20identity\x20legs\x20checked\x20(service_panorama)\x20before\x20large\x20orders.\x20':'';let X=null;try{const bx=await LocalMark['Instance']()['list']({'address':d});X=bx?.[0x0]?.['name']??null;}catch{X=null;}const Y=m['filter'](by=>typeof by?.['wip']==='string'&&by['wip']['includes']('wip.store.wowok.net'))['map'](by=>String(by['name'])),Z=Y['length']>0x0?'⚠\x20WIP\x20FREE-STORE\x20HOSTING\x20(ks7\x20F-24):\x20item\x20detail(s)\x20'+Y['map'](by=>'\x27'+by+'\x27')['join'](',\x20')+'\x20are\x20hosted\x20on\x20the\x20official\x20free\x20WIP\x20store\x20(wip.store.wowok.net)\x20—\x20a\x20free,\x20best-effort\x20service\x20'+'(10\x20files/account,\x20~6-month\x20retention,\x20no\x20availability\x20guarantee).\x20The\x20item\x27s\x20on-chain\x20wip_hash\x20'+'stays\x20verifiable\x20only\x20while\x20that\x20file\x20remains\x20reachable,\x20which\x20can\x20be\x20SHORTER\x20than\x20this\x20order\x27s\x20'+'after-sales\x20window.\x20Ask\x20the\x20merchant\x20about\x20self-hosted\x20(storage=\x27custom\x27)\x20WIP\x20hosting\x20for\x20'+'long-lived\x20verifiability.\x20':'',a0=D['filter'](by=>by['stock_ok']===![]),a1=a0['length']>0x0?'⚠\x20STOCK\x20SHORT\x20(F-20):\x20the\x20chain\x20refuses\x20a\x20buy\x20whose\x20quantity\x20exceeds\x20the\x20sale\x27s\x20remaining\x20'+'stock\x20(service:16\x20E_STOCK_NOT_ENOUGH)\x20—\x20this\x20basket\x20CANNOT\x20be\x20purchased\x20as\x20quoted.\x20Short\x20line(s):\x20'+a0['map'](by=>by['name']+'\x20(asked\x20'+by['quantity']+',\x20stock\x20'+(by['stock']??'?')+')')['join'](';\x20')+'.\x20Reduce\x20the\x20quantity\x20to\x20the\x20stock\x20shown,\x20pick\x20another\x20item,\x20or\x20ask\x20the\x20merchant\x20to\x20restock\x20'+'(service\x20sales\x20stock_add)\x20and\x20re-quote.\x20':'',a2=D['filter'](by=>by['buyable']===![]),a3=D['filter'](by=>by['buyable']===null),a4=a2['map'](by=>by['name'])['find'](by=>skuNameGateNote(by)!==''),a5={'purchasable':a2['length']>0x0||t||F===0x0n||w?.['closed']===!![]?![]:a3['length']>0x0?null:!![],'blocked_items':a2['map'](by=>by['name']),'note':w?.['closed']===!![]?'⚠\x20CAMPAIGN_CLOSED\x20(W5-22):\x20'+w['note']+'.':a4!==undefined?'⚠\x20UNBUYABLE\x20SKU\x20NAME\x20(F-RQ-01):\x20'+skuNameGateNote(a4):a2['length']>0x0?'Blocked\x20line(s):\x20'+a2['map'](by=>by['name']+'\x20—\x20'+by['buyable_blockers']['join'](';\x20'))['join']('\x20|\x20')+'.':a3['length']>0x0?'No\x20known\x20blocker,\x20but\x20at\x20least\x20one\x20line\x27s\x20stock\x20could\x20not\x20be\x20read\x20from\x20the\x20chain\x20—\x20verify\x20before\x20checkout.':'Every\x20line\x20passes\x20the\x20known\x20buy\x20gates\x20(name\x20≤\x2064\x20bytes,\x20not\x20suspended,\x20stock\x20sufficient).'},a6=a5['purchasable']===![]?'⚠\x20UNBUYABLE\x20BASKET\x20(F-RQ-01):\x20this\x20quote\x20is\x20PRICED\x20but\x20the\x20chain\x20will\x20refuse\x20every\x20order\x20—\x20read\x20the\x20buyable\x20block\x20before\x20attempting\x20order_new.\x20':'';return{'action':'service_quote','network':String(b),'service':{'address':d,'name':X},'paused':t,'payment_token':{'coin_type':l,'display_note':l?'Prices\x20and\x20the\x20order\x20total\x20are\x20denominated\x20in\x20this\x20token\x27s\x20smallest\x20units;\x20displays\x20convert\x20with\x20the\x20token\x27s\x20on-chain\x20precision.':'Payment\x20token\x20could\x20not\x20be\x20parsed\x20from\x20the\x20Service\x20type\x20—\x20raw\x20smallest\x20units\x20only,\x20precision\x20NOT\x20guessed.'},'items':D,'buyable':a5,'total_pay':{'balance':F['toString'](),'display':O,'note':a6+a1+W+Z+(w?'⚠\x20CAMPAIGN\x20WINDOW\x20('+(w['closed']?'CLOSED':'OPEN')+')\x20(W5-22):\x20'+w['note']+'\x20':'')+(t?'⚠\x20SERVICE\x20PAUSED\x20(bs29\x20R-16):\x20this\x20Service\x20is\x20currently\x20paused\x20—\x20every\x20buy\x20is\x20refused\x20'+'(client\x20pre-buy\x20gate,\x20then\x20the\x20on-chain\x20E_PAUSED\x20assert)\x20while\x20the\x20pause\x20'+'stands,\x20and\x20there\x20is\x20NO\x20on-chain\x20scheduled\x20resume:\x20the\x20merchant\x20must\x20submit\x20pause:false.\x20'+'The\x20prices\x20below\x20are\x20reference\x20only.\x20':'')+(F===0x0n?'DEAD\x20BASKET\x20(F-BS-75):\x20this\x20quote\x20totals\x20ZERO\x20—\x20the\x20chain\x20REFUSES\x20zero-total\x20buys\x20(client\x20'+'order_new_zero_total_dead_order,\x20on-chain\x20abort\x2042),\x20so\x20this\x20basket\x20cannot\x20be\x20purchased\x20at\x20'+'all.\x20Either\x20the\x20basket\x20contains\x20a\x20zero-priced\x20SKU\x20(permanently\x20unbuyable\x20—\x20F-BS-76;\x20the\x20'+'merchant\x20must\x20reprice\x20it\x20to\x20>=\x201\x20smallest\x20unit)\x20or\x20a\x20coupon\x20zeroes\x20it\x20(lower\x20the\x20coupon\x20'+'value).\x20Do\x20NOT\x20attempt\x20the\x20buy.\x20allow_zero_total\x20waives\x20nothing\x20(BSX-F07).':G?.['applied']?'FLOOR\x20semantics\x20(bs29\x20R-17,\x20the\x20published\x20buy\x20contract):\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20'+'this\x20discounted\x20total\x20—\x20an\x20under-funded\x20total\x20aborts\x20(E_COIN_NOT_ENOUGH);\x20an\x20over-funded\x20one\x20'+'succeeds\x20but\x20the\x20ORDER\x20still\x20escrows\x20exactly\x20this\x20amount\x20(the\x20excess\x20is\x20split\x20back,\x20never\x20'+'escrowed).\x20Pass\x20exactly\x20this\x20value.\x20The\x20on-chain\x20buy\x20aborts\x20only\x20on\x20an\x20UNDER-funded\x20total;\x20'+'the\x20coupon\x20is\x20consumed\x20at\x20buy.':'FLOOR\x20semantics\x20(bs29\x20R-17,\x20the\x20published\x20buy\x20contract):\x20order_new.buy.total_pay.balance\x20must\x20be\x20>=\x20'+'this\x20total\x20—\x20an\x20under-funded\x20total\x20aborts\x20(E_COIN_NOT_ENOUGH);\x20an\x20over-funded\x20one\x20'+'succeeds\x20but\x20the\x20ORDER\x20still\x20escrows\x20exactly\x20Σ(unit_price\x20×\x20quantity)\x20—\x20the\x20excess\x20is\x20split\x20'+'back\x20to\x20the\x20payer\x20and\x20never\x20enters\x20the\x20escrow.\x20WITHOUT\x20a\x20discount\x20you\x20may\x20also\x20omit\x20'+'total_pay\x20entirely:\x20the\x20buy\x20auto-derives\x20this\x20exact\x20total\x20(M-K17).')},'discount':G,'allocation_preview':S,'compensation_fund_coverage':N,'reward_terms':U};}
@@ -1 +1 @@
1
- import{objectTypeFromAddress,ObjectType}from'@wowok/wowok';import{resolveAddress as a446a}from'../tools/handlers/name-resolution.js';import{handleObjectPanorama}from'../playbooks/service-build/object-panorama.js';import{handleServicePanorama}from'../playbooks/service-build/service-panorama.js';import{handleMachinePanorama}from'../playbooks/service-build/machine-panorama.js';import{assembleOrderReview}from'./order.js';import{assembleServiceReview}from'./service.js';import{assembleMachineReview}from'./machine.js';import{assembleArbReview}from'./arb.js';import{assembleDemandReview}from'./demand.js';import{assembleRepositoryReview}from'./repository.js';import{assembleProgressReview}from'./progress.js';export const REVIEW_PACK_TYPES=['Order','Service','Arb','Demand','Repository','Progress','Machine'];export async function handleReviewPack(a){const b=a['object_address'];if(!b)throw new Error('\x27object_address\x27\x20is\x20required\x20for\x20review_pack');const c=await a446a(b,'object_address'),d=objectTypeFromAddress(c);if(d===ObjectType['Order']){const g=await handleObjectPanorama(a);if(g['object_type']!=='Order')throw new Error('review_pack:\x20expected\x20an\x20Order,\x20resolved\x20to\x20'+g['object_type']);return assembleOrderReview(g);}if(d===ObjectType['Service']){const h=await handleServicePanorama({...a,'service_address':c});return assembleServiceReview(h);}if(d===ObjectType['Machine']){const i=await handleMachinePanorama({...a,'object_address':c});if(i['machineAddress']?.['toLowerCase']()!==c['toLowerCase']())throw new Error('review_pack:\x20expected\x20a\x20Machine,\x20resolved\x20to\x20'+i['machineAddress']);return assembleMachineReview(i);}const e={[ObjectType['Arb']]:assembleArbReview,[ObjectType['Demand']]:assembleDemandReview,[ObjectType['Repository']]:assembleRepositoryReview,[ObjectType['Progress']]:assembleProgressReview},f=d?e[d]:undefined;if(f){const j=await handleObjectPanorama(a);if(j['object_type']!==d)throw new Error('review_pack:\x20expected\x20a\x20'+d+',\x20resolved\x20to\x20'+j['object_type']);return f(j);}throw new Error('review_pack:\x20unsupported\x20object\x20type\x20\x27'+(d??'unknown')+'\x27\x20—\x20supported:\x20'+REVIEW_PACK_TYPES['join'](',\x20')+'.\x20Other\x20types\x20keep\x20object_panorama\x20/\x20machine_panorama\x20/\x20service_panorama.');}
1
+ import{objectTypeFromAddress,ObjectType}from'@wowok/wowok';import{resolveAddress as a454a}from'../tools/handlers/name-resolution.js';import{handleObjectPanorama}from'../playbooks/service-build/object-panorama.js';import{handleServicePanorama}from'../playbooks/service-build/service-panorama.js';import{handleMachinePanorama}from'../playbooks/service-build/machine-panorama.js';import{assembleOrderReview}from'./order.js';import{assembleServiceReview}from'./service.js';import{assembleMachineReview}from'./machine.js';import{assembleArbReview}from'./arb.js';import{assembleDemandReview}from'./demand.js';import{assembleRepositoryReview}from'./repository.js';import{assembleProgressReview}from'./progress.js';export const REVIEW_PACK_TYPES=['Order','Service','Arb','Demand','Repository','Progress','Machine'];export async function handleReviewPack(a){const b=a['object_address'];if(!b)throw new Error('\x27object_address\x27\x20is\x20required\x20for\x20review_pack');const c=await a454a(b,'object_address'),d=objectTypeFromAddress(c);if(d===ObjectType['Order']){const g=await handleObjectPanorama(a);if(g['object_type']!=='Order')throw new Error('review_pack:\x20expected\x20an\x20Order,\x20resolved\x20to\x20'+g['object_type']);return assembleOrderReview(g);}if(d===ObjectType['Service']){const h=await handleServicePanorama({...a,'service_address':c});return assembleServiceReview(h);}if(d===ObjectType['Machine']){const i=await handleMachinePanorama({...a,'object_address':c});if(i['machineAddress']?.['toLowerCase']()!==c['toLowerCase']())throw new Error('review_pack:\x20expected\x20a\x20Machine,\x20resolved\x20to\x20'+i['machineAddress']);return assembleMachineReview(i);}const e={[ObjectType['Arb']]:assembleArbReview,[ObjectType['Demand']]:assembleDemandReview,[ObjectType['Repository']]:assembleRepositoryReview,[ObjectType['Progress']]:assembleProgressReview},f=d?e[d]:undefined;if(f){const j=await handleObjectPanorama(a);if(j['object_type']!==d)throw new Error('review_pack:\x20expected\x20a\x20'+d+',\x20resolved\x20to\x20'+j['object_type']);return f(j);}throw new Error('review_pack:\x20unsupported\x20object\x20type\x20\x27'+(d??'unknown')+'\x27\x20—\x20supported:\x20'+REVIEW_PACK_TYPES['join'](',\x20')+'.\x20Other\x20types\x20keep\x20object_panorama\x20/\x20machine_panorama\x20/\x20service_panorama.');}
@@ -1 +1 @@
1
- export function groupRelated(a){const b=new Map();for(const c of a){const d=c['object_type']||'Unknown',e=b['get'](d);if(e)e['push']({'address':c['address'],'time':c['time']});else b['set'](d,[{'address':c['address'],'time':c['time']}]);}return[...b['entries']()]['map'](([f,g])=>({'label':f,'items':g}))['sort']((f,g)=>(g['items'][0x0]?.['time']??0x0)-(f['items'][0x0]?.['time']??0x0));}export function assembleOrderReview(a){const b=a['fields'],c=b['amount_display']||null,d=[{'label':'Required\x20info','tip':'Buyer-submitted\x20private\x20info\x20(order.required_info,\x20buyer-updatable):\x20the\x20buyer\x27s\x20messenger\x20Contact\x20object\x20or\x20a\x20WTS\x20proof\x20id,\x20shared\x20with\x20the\x20merchant\x20to\x20satisfy\x20the\x20Service\x27s\x20customer\x20requirements.','value':b['required_info']?{'t':'addr','v':b['required_info']}:null},{'label':'Owner','tip':'The\x20account\x20that\x20created\x20(bought)\x20this\x20order\x20(order.owner)','value':b['owner']?{'t':'addr','v':b['owner']}:null},{'label':'Created\x20at','tip':'When\x20the\x20buyer\x20created\x20this\x20order\x20(order.time).\x20The\x20top-right\x20stamp\x20is\x20the\x20UPDATED\x20time\x20(last\x20on-chain\x20tx)\x20—\x20two\x20distinct\x20clocks.','value':b['time']!=null?{'t':'time','v':b['time']}:null}],e=[{'label':'Progress','value':{'t':'progress','v':b['progress']??'','node':a['progress_next'],'since':a['progress_since'],'machine':b['machine']??null}},{'label':'Disputes','tip':'Arbitration\x20objects\x20that\x20opened\x20a\x20dispute\x20on\x20this\x20order\x20(order.dispute,\x20max\x2010)','value':{'t':'count','n':a['disputes']['length'],'panel_title':'Disputes','addrs':a['disputes']}},...b['claimed_by']?[{'label':'Claimed\x20by','tip':'Compensation\x20claimant\x20—\x20the\x20Arbitration\x20object\x20that\x20claimed\x20the\x20order\x27s\x20compensation\x20(order.compensate).\x20Once\x20set,\x20the\x20order\x20can\x20no\x20longer\x20be\x20claimed\x20or\x20disputed.','value':{'t':'addr','v':b['claimed_by']}}]:[]],g={'kind':'items','title':'Bought\x20('+a['items']['length']+')','empty':'No\x20purchased\x20items\x20on\x20this\x20order\x20yet.','items':a['items']['map'](k=>({'name':k['name']??'--','meta':[{'label':'price','value':k['price_display']||k['price']||'--'},{'label':'qty','value':k['quantity']??'--'}],'hash':k['wip_hash']??null}))},h={'kind':'fields','columns':0x2,'fields':[{'label':'Service','tip':'The\x20Service\x20this\x20order\x20was\x20placed\x20against.','value':b['service']?{'t':'addr','v':b['service'],'obj_type':'Service'}:null},{'label':'Machine','tip':'The\x20Machine\x20workflow\x20template\x20this\x20order\x20runs\x20through.\x20Empty\x20for\x20machine-less\x20orders.','value':b['machine']?{'t':'addr','v':b['machine'],'obj_type':'Machine'}:null},{'label':'Discount','tip':'The\x20Discount\x20object\x20applied\x20to\x20this\x20order\x20at\x20purchase\x20time.','value':b['discount']?{'t':'addr','v':b['discount'],'obj_type':'Discount'}:null},{'label':'Agents','tip':'Operator\x20accounts\x20besides\x20the\x20owner\x20that\x20can\x20act\x20on\x20this\x20order.','value':{'t':'count','n':a['agents']['length'],'panel_title':'Agents','addrs':a['agents']}},{'label':'Allocation','tip':'The\x20fund-splitting\x20object\x20bound\x20to\x20this\x20order\x20(order.allocation).\x20Green\x20\x27allocated\x27\x20=\x20balance\x20==\x200,\x20fully\x20split\x20to\x20recipients\x20(allocation.alloc);\x20amber\x20\x27pending\x27\x20=\x20balance\x20>\x200.','value':b['allocation']?{'t':'addr','v':b['allocation'],'obj_type':'Allocation','badge':a['allocation_state']==='allocated'?{'v':'allocated','tone':'green'}:a['allocation_state']==='pending'?{'v':'pending','tone':'amber'}:undefined}:null},{'label':'Progress','tip':'The\x20Progress\x20object\x20tracking\x20this\x20order\x20through\x20the\x20machine\x20workflow\x20(order.progress);\x20its\x20latest\x20node\x20and\x20elapsed\x20time\x20show\x20on\x20the\x20header\x20card.','value':b['progress']?{'t':'addr','v':b['progress'],'obj_type':'Progress'}:null}]},i=a['related']?.['items']??[],j={'kind':'related','title':'Related\x20objects'+(a['related']?.['count']?'\x20('+a['related']['count']+')':''),'empty':'No\x20other\x20on-chain\x20objects\x20reference\x20or\x20use\x20this\x20Order\x20yet.','groups':groupRelated(i),'count':a['related']?.['count']??i['length']};return{'action':'review_pack','object_type':'Order','head':{'address':a['object'],'network':a['network'],'name':a['head']['name'],'description':a['head']['description'],'tags':a['head']['tags'],'last_active_ms':a['updated_ms'],'badges':[],...c?{'amount':{'text':c,'tip':b['amount_tip']||'Order\x20total\x20in\x20the\x20shop\x27s\x20payment\x20token\x20(Service<T>\x20generic).'}}:{},'info_rows':[d,e]},'sections':[g,h,j],'data_gaps':a['data_gaps']};}
1
+ export function groupRelated(a){const b=new Map();for(const c of a){const d=c['object_type']||'Unknown',e=b['get'](d);if(e)e['push']({'address':c['address'],'time':c['time']});else b['set'](d,[{'address':c['address'],'time':c['time']}]);}return[...b['entries']()]['map'](([f,g])=>({'label':f,'items':g}))['sort']((f,g)=>(g['items'][0x0]?.['time']??0x0)-(f['items'][0x0]?.['time']??0x0));}export function assembleOrderReview(a){const b=a['fields'],c=b['amount_display']||null,d=[{'label':'Required\x20info','tip':'Buyer-submitted\x20private\x20info\x20(order.required_info,\x20buyer-updatable):\x20the\x20buyer\x27s\x20messenger\x20Contact\x20object\x20or\x20a\x20WTS\x20proof\x20id,\x20shared\x20with\x20the\x20merchant\x20to\x20satisfy\x20the\x20Service\x27s\x20customer\x20requirements.','value':b['required_info']?{'t':'addr','v':b['required_info']}:null},{'label':'Owner','tip':'The\x20account\x20that\x20created\x20(bought)\x20this\x20order\x20(order.owner)','value':b['owner']?{'t':'addr','v':b['owner']}:null},{'label':'Created\x20at','tip':'When\x20the\x20buyer\x20created\x20this\x20order\x20(order.time).\x20The\x20top-right\x20stamp\x20is\x20the\x20UPDATED\x20time\x20(last\x20on-chain\x20tx)\x20—\x20two\x20distinct\x20clocks.','value':b['time']!=null?{'t':'time','v':b['time']}:null}],e=[{'label':'Progress','value':{'t':'progress','v':b['progress']??'','node':a['progress_current']??a['progress_next'],'since':a['progress_since'],'machine':b['machine']??null}},{'label':'Disputes','tip':'Arbitration\x20objects\x20that\x20opened\x20a\x20dispute\x20on\x20this\x20order\x20(order.dispute,\x20max\x2010)','value':{'t':'count','n':a['disputes']['length'],'panel_title':'Disputes','addrs':a['disputes']}},...b['claimed_by']?[{'label':'Claimed\x20by','tip':'Compensation\x20claimant\x20—\x20the\x20Arbitration\x20object\x20that\x20claimed\x20the\x20order\x27s\x20compensation\x20(order.compensate).\x20Once\x20set,\x20the\x20order\x20can\x20no\x20longer\x20be\x20claimed\x20or\x20disputed.','value':{'t':'addr','v':b['claimed_by']}}]:[]],g={'kind':'items','title':'Bought\x20('+a['items']['length']+')','empty':'No\x20purchased\x20items\x20on\x20this\x20order\x20yet.','items':a['items']['map'](k=>({'name':k['name']??'--','meta':[{'label':'price','value':k['price_display']||k['price']||'--'},{'label':'qty','value':k['quantity']??'--'}],'hash':k['wip_hash']??null}))},h={'kind':'fields','columns':0x2,'fields':[{'label':'Service','tip':'The\x20Service\x20this\x20order\x20was\x20placed\x20against.','value':b['service']?{'t':'addr','v':b['service'],'obj_type':'Service'}:null},{'label':'Machine','tip':'The\x20Machine\x20workflow\x20template\x20this\x20order\x20runs\x20through.\x20Empty\x20for\x20machine-less\x20orders.','value':b['machine']?{'t':'addr','v':b['machine'],'obj_type':'Machine'}:null},{'label':'Discount','tip':'The\x20Discount\x20object\x20applied\x20to\x20this\x20order\x20at\x20purchase\x20time.','value':b['discount']?{'t':'addr','v':b['discount'],'obj_type':'Discount'}:null},{'label':'Agents','tip':'Operator\x20accounts\x20besides\x20the\x20owner\x20that\x20can\x20act\x20on\x20this\x20order.','value':{'t':'count','n':a['agents']['length'],'panel_title':'Agents','addrs':a['agents']}},{'label':'Allocation','tip':'The\x20fund-splitting\x20object\x20bound\x20to\x20this\x20order\x20(order.allocation).\x20Green\x20\x27allocated\x27\x20=\x20balance\x20==\x200\x20—\x20the\x20pool\x20is\x20ALREADY\x20DRAINED:\x20fully\x20split\x20to\x20recipients\x20(allocation.alloc),\x20the\x20money\x20has\x20left\x20the\x20pool\x20(it\x20is\x20not\x20sitting\x20there).\x20Amber\x20\x27pending\x27\x20=\x20balance\x20>\x200\x20(still\x20funding\x20the\x20split).','value':b['allocation']?{'t':'addr','v':b['allocation'],'obj_type':'Allocation','badge':a['allocation_state']==='allocated'?{'v':'allocated','tone':'green'}:a['allocation_state']==='pending'?{'v':'pending','tone':'amber'}:undefined}:null},{'label':'Progress','tip':'The\x20Progress\x20object\x20tracking\x20this\x20order\x20through\x20the\x20machine\x20workflow\x20(order.progress);\x20its\x20latest\x20node\x20and\x20elapsed\x20time\x20show\x20on\x20the\x20header\x20card.','value':b['progress']?{'t':'addr','v':b['progress'],'obj_type':'Progress'}:null}]},i=a['related']?.['items']??[],j={'kind':'related','title':'Related\x20objects'+(a['related']?.['count']?'\x20('+a['related']['count']+')':''),'empty':'No\x20other\x20on-chain\x20objects\x20reference\x20or\x20use\x20this\x20Order\x20yet.','groups':groupRelated(i),'count':a['related']?.['count']??i['length']};return{'action':'review_pack','object_type':'Order','head':{'address':a['object'],'network':a['network'],'name':a['head']['name'],'description':a['head']['description'],'tags':a['head']['tags'],'last_active_ms':a['updated_ms'],'badges':[],...c?{'amount':{'text':c,'tip':b['amount_tip']||'Order\x20total\x20in\x20the\x20shop\x27s\x20payment\x20token\x20(Service<T>\x20generic).'}}:{},'info_rows':[d,e]},'sections':[g,h,j],'data_gaps':a['data_gaps']};}
@@ -1 +1 @@
1
- import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as a462a}from'../config/index.js';import{isPlanPreapproved}from'../goal/plan-approval.js';export function isConfirmGateEnabled(){return a462a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+(b instanceof Error?b['message']:String(b)));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(a,b,c){const d=b instanceof Error?b['message']:b!==undefined?String(b):undefined;return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':a,'irreversible':!![],'warnings':[...c?['ConfirmGate\x20rule\x20\x27'+c+'\x27\x20matched\x20but\x20its\x20preview\x20could\x20not\x20be\x20generated.']:['An\x20error\x20occurred\x20while\x20matching\x20confirmation\x20rules.'],...d!==undefined?['Reason:\x20'+d]:[],'The\x20operation\x20was\x20NOT\x20executed.\x20Review\x20the\x20parameters\x20for\x20malformed\x20values\x20(e.g.\x20decimal\x20amounts\x20instead\x20of\x20smallest-unit\x20integers)\x20before\x20confirming.']},'rule_id':'internal_error'};}function emitGuardQuietNotice(a,b,c,d,f){try{const g=f['preview'](a,b,c),h=['[ConfirmGate]\x20guard\x20CREATE\x20proceeded\x20WITHOUT\x20interactive\x20confirmation\x20(confirm_mode:\x20'+d+').','\x20\x20Object:\x20'+String(g['object']??'(unnamed)')+'\x20\x20Network:\x20'+String(g['network']??'?'),...(g['warnings']??[])['map'](i=>'\x20\x20-\x20'+i),'\x20\x20Immutable\x20after\x20creation\x20—\x20changes\x20require\x20a\x20NEW\x20guard\x20+\x20rebind.\x20Verify\x20with\x20analyze_guard_semantics\x20after\x20creation.'];console['warn'](h['join']('\x0a'));}catch(i){console['warn']('[ConfirmGate]\x20guard\x20CREATE\x20proceeded\x20in\x20'+d+'\x20mode\x20(manifest\x20unavailable:\x20'+(i instanceof Error?i['message']:String(i))+')');}}export function confirmGate(a,b,c,d,f,g){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};if(c?.['dry_run']===!![])return{'pass':!![]};let h,i=null;try{h=CONFIRMATION_RULES['find'](n=>{try{return n['when'](a,b,c);}catch(o){logInternalError('rule_when:'+n['id'],o);if(getFailMode(n['level'])==='closed')throw o;return![];}});}catch(n){i=n;}if(i)return logInternalError('rule_search',i),buildInternalErrorResult(a,i);if(!h)return{'pass':!![]};if(getFailMode(h['level'])==='open'&&isPlanPreapproved(c))return{'pass':!![]};const j=resolveOverrideId(h['id'],a),k=j?f?.[j]:undefined;if(k==='auto')return{'pass':!![]};const l=c?.['confirm_mode']==='quiet'||c?.['confirm_mode']==='streamlined'?c['confirm_mode']:'full';if(l!=='full'&&k!=='block'&&getFailMode(h['level'])==='open')return{'pass':!![]};if(h['id']==='guard_create_immutable'&&l!=='full'&&k!=='block')return emitGuardQuietNotice(a,b,c,l,h),{'pass':!![]};if(k!=='block'&&g?.['intent_bypass']!==![]&&h['bypass_on_explicit_intent']&&d&&d['length']>0x0){const o=d['map'](q=>q['toLowerCase']()),p=h['bypass_on_explicit_intent']['some'](q=>o['some'](r=>r['includes'](q['toLowerCase']())));if(p)return{'pass':!![]};}let m;try{m=h['preview'](a,b,c);}catch(q){logInternalError('rule_preview:'+h['id'],q);if(getFailMode(h['level'])==='closed')return buildInternalErrorResult(a,q,h['id']);return{'pass':!![]};}return{'pass':![],'level':h['level'],'preview':m,'rule_id':h['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}
1
+ import{normalizeErrorMessage}from'../schema/call/normalize-error.js';import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as a470a}from'../config/index.js';import{isPlanPreapproved}from'../goal/plan-approval.js';export function isConfirmGateEnabled(){return a470a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+normalizeErrorMessage(b));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(a,b,c){const d=b!==undefined?normalizeErrorMessage(b):undefined;return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':a,'irreversible':!![],'warnings':[...c?['ConfirmGate\x20rule\x20\x27'+c+'\x27\x20matched\x20but\x20its\x20preview\x20could\x20not\x20be\x20generated.']:['An\x20error\x20occurred\x20while\x20matching\x20confirmation\x20rules.'],...d!==undefined?['Reason:\x20'+d]:[],'The\x20operation\x20was\x20NOT\x20executed.\x20Review\x20the\x20parameters\x20for\x20malformed\x20values\x20(e.g.\x20decimal\x20amounts\x20instead\x20of\x20smallest-unit\x20integers)\x20before\x20confirming.']},'rule_id':'internal_error'};}function emitGuardQuietNotice(a,b,c,d,f){try{const g=f['preview'](a,b,c),h=['[ConfirmGate]\x20guard\x20CREATE\x20proceeded\x20WITHOUT\x20interactive\x20confirmation\x20(confirm_mode:\x20'+d+').','\x20\x20Object:\x20'+String(g['object']??'(unnamed)')+'\x20\x20Network:\x20'+String(g['network']??'?'),...(g['warnings']??[])['map'](i=>'\x20\x20-\x20'+i),'\x20\x20Immutable\x20after\x20creation\x20—\x20changes\x20require\x20a\x20NEW\x20guard\x20+\x20rebind.\x20Verify\x20with\x20analyze_guard_semantics\x20after\x20creation.'];console['warn'](h['join']('\x0a'));}catch(i){console['warn']('[ConfirmGate]\x20guard\x20CREATE\x20proceeded\x20in\x20'+d+'\x20mode\x20(manifest\x20unavailable:\x20'+(i instanceof Error?i['message']:String(i))+')');}}export function confirmGate(a,b,c,d,f,g){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};if(c?.['dry_run']===!![])return{'pass':!![]};let h,i=null;try{h=CONFIRMATION_RULES['find'](n=>{try{return n['when'](a,b,c);}catch(o){logInternalError('rule_when:'+n['id'],o);if(getFailMode(n['level'])==='closed')throw o;return![];}});}catch(n){i=n;}if(i)return logInternalError('rule_search',i),buildInternalErrorResult(a,i);if(!h)return{'pass':!![]};if(getFailMode(h['level'])==='open'&&isPlanPreapproved(c))return{'pass':!![]};const j=resolveOverrideId(h['id'],a),k=j?f?.[j]:undefined;if(k==='auto')return{'pass':!![]};const l=c?.['confirm_mode']==='quiet'||c?.['confirm_mode']==='streamlined'?c['confirm_mode']:'full';if(l!=='full'&&k!=='block'&&getFailMode(h['level'])==='open')return{'pass':!![]};if(h['id']==='guard_create_immutable'&&l!=='full'&&k!=='block')return emitGuardQuietNotice(a,b,c,l,h),{'pass':!![]};if(k!=='block'&&g?.['intent_bypass']!==![]&&h['bypass_on_explicit_intent']&&d&&d['length']>0x0){const o=d['map'](q=>q['toLowerCase']()),p=h['bypass_on_explicit_intent']['some'](q=>o['some'](r=>r['includes'](q['toLowerCase']())));if(p)return{'pass':!![]};}let m;try{m=h['preview'](a,b,c);}catch(q){logInternalError('rule_preview:'+h['id'],q);if(getFailMode(h['level'])==='closed')return buildInternalErrorResult(a,q,h['id']);return{'pass':!![]};}return{'pass':![],'level':h['level'],'preview':m,'rule_id':h['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}
@@ -85,6 +85,12 @@ export declare const BenchmarkMigrationSchema: z.ZodObject<{
85
85
  }>>;
86
86
  reward_funding: z.ZodOptional<z.ZodString>;
87
87
  reward_claim_amount: z.ZodOptional<z.ZodString>;
88
+ experience_compensation_mode: z.ZodOptional<z.ZodEnum<{
89
+ reward: "reward";
90
+ none: "none";
91
+ }>>;
92
+ experience_pool_funding: z.ZodOptional<z.ZodString>;
93
+ compensation_fund: z.ZodOptional<z.ZodString>;
88
94
  after_sales_mode: z.ZodOptional<z.ZodEnum<{
89
95
  none: "none";
90
96
  return: "return";
@@ -127,6 +133,7 @@ export declare const BenchmarkMigrationSchema: z.ZodObject<{
127
133
  claim_window: z.ZodString;
128
134
  }, z.core.$strict>>;
129
135
  }, z.core.$loose>>>;
136
+ allow_unpinned_wip: z.ZodOptional<z.ZodBoolean>;
130
137
  log: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
131
138
  network: z.ZodOptional<z.ZodEnum<{
132
139
  testnet: "testnet";
@@ -141,6 +148,11 @@ export declare const BenchmarkMigrationSchema: z.ZodObject<{
141
148
  step_id: z.ZodString;
142
149
  note: z.ZodString;
143
150
  }, z.core.$strip>>;
151
+ override_stale_build: z.ZodOptional<z.ZodBoolean>;
152
+ arbitration_vote_policy: z.ZodOptional<z.ZodEnum<{
153
+ open: "open";
154
+ party_panel: "party_panel";
155
+ }>>;
144
156
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
145
157
  accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
146
158
  timeout_ms: z.ZodOptional<z.ZodNumber>;
@@ -525,6 +537,18 @@ export declare const BenchmarkMigrationOutputSchema: z.ZodObject<{
525
537
  step_id: z.ZodString;
526
538
  note: z.ZodString;
527
539
  }, z.core.$strip>>;
540
+ digest_check: z.ZodOptional<z.ZodObject<{
541
+ plan_catalog_version: z.ZodNullable<z.ZodNumber>;
542
+ current_catalog_version: z.ZodNumber;
543
+ plan_template_digest: z.ZodNullable<z.ZodString>;
544
+ current_template_digest: z.ZodNullable<z.ZodString>;
545
+ template_digest_match: z.ZodOptional<z.ZodBoolean>;
546
+ }, z.core.$strip>>;
547
+ verdict_override: z.ZodOptional<z.ZodObject<{
548
+ parameter: z.ZodString;
549
+ reason: z.ZodString;
550
+ stale_build: z.ZodRecord<z.ZodString, z.ZodUnknown>;
551
+ }, z.core.$strip>>;
528
552
  next_action: z.ZodString;
529
553
  }, z.core.$strip>], "action">;
530
554
  }, z.core.$strict>;