@wowok/agent-mcp 3.3.9 → 3.4.0

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 (252) hide show
  1. package/dist/chain-semantics/field-capability.js +1 -1
  2. package/dist/chain-semantics/freeze-map.js +1 -1
  3. package/dist/chain-semantics/fund-flow.js +1 -1
  4. package/dist/chain-semantics/guard-verbs.js +1 -1
  5. package/dist/chain-semantics/object-graph.js +1 -1
  6. package/dist/composition/audit.js +1 -1
  7. package/dist/composition/compile.d.ts +3 -2
  8. package/dist/composition/compile.js +1 -1
  9. package/dist/composition/inflight.d.ts +6 -0
  10. package/dist/composition/inflight.js +1 -1
  11. package/dist/composition/materialize.d.ts +4 -0
  12. package/dist/composition/materialize.js +1 -1
  13. package/dist/composition/param-disclosure.d.ts +61 -0
  14. package/dist/composition/param-disclosure.js +1 -0
  15. package/dist/composition/plan.d.ts +11 -1
  16. package/dist/composition/plan.js +1 -1
  17. package/dist/customer/account-events.js +1 -1
  18. package/dist/data/api/api.spec.js +1 -1
  19. package/dist/data/api/cli.js +1 -1
  20. package/dist/data/api/server.d.ts +1 -0
  21. package/dist/data/api/server.js +1 -1
  22. package/dist/data/projection/store.d.ts +2 -1
  23. package/dist/data/projection/store.js +1 -1
  24. package/dist/data/projection/types.d.ts +10 -0
  25. package/dist/data/sync/cdc.js +1 -1
  26. package/dist/data/sync/cdc.spec.js +1 -1
  27. package/dist/data/sync/store.d.ts +5 -0
  28. package/dist/data/sync/store.js +1 -1
  29. package/dist/data/sync/types.d.ts +2 -0
  30. package/dist/evaluation/builtins/graph-service.spec.js +1 -1
  31. package/dist/evaluation/engine.js +1 -1
  32. package/dist/evaluation/guard-scan.js +1 -1
  33. package/dist/experience/realtime-feedback.js +1 -1
  34. package/dist/extensions/business-modules.js +1 -1
  35. package/dist/extensions/industry-pack.js +1 -1
  36. package/dist/extensions/modes.js +1 -1
  37. package/dist/graph/onchain/expand.js +1 -1
  38. package/dist/graph/onchain/exposure.js +1 -1
  39. package/dist/harness/recover.js +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/knowledge/allocation-risk.js +1 -1
  42. package/dist/knowledge/allocation-templates.js +1 -1
  43. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  44. package/dist/knowledge/arb-fund-facts.d.ts +1 -0
  45. package/dist/knowledge/arb-fund-facts.js +1 -1
  46. package/dist/knowledge/arbitration-ledger.js +1 -1
  47. package/dist/knowledge/arbitration-risk.d.ts +1 -0
  48. package/dist/knowledge/arbitration-risk.js +1 -1
  49. package/dist/knowledge/audit-rules.js +1 -1
  50. package/dist/knowledge/baselines/rules/allocation.json +6 -6
  51. package/dist/knowledge/baselines/rules/arb.json +2 -2
  52. package/dist/knowledge/baselines/rules/guard.json +11 -11
  53. package/dist/knowledge/baselines/rules/order.json +1 -1
  54. package/dist/knowledge/baselines/rules/plan.json +1 -1
  55. package/dist/knowledge/baselines/semantic-facts.js +1 -1
  56. package/dist/knowledge/builtin-templates.d.ts +14 -1
  57. package/dist/knowledge/builtin-templates.js +1 -1
  58. package/dist/knowledge/catalog-facts.d.ts +4 -0
  59. package/dist/knowledge/catalog-facts.js +1 -0
  60. package/dist/knowledge/commission-landing.js +1 -1
  61. package/dist/knowledge/component-schema.d.ts +64 -0
  62. package/dist/knowledge/component-schema.js +1 -0
  63. package/dist/knowledge/entity-recipient-guard.js +1 -1
  64. package/dist/knowledge/event-semantics.js +1 -1
  65. package/dist/knowledge/fee-param-bindings.d.ts +26 -0
  66. package/dist/knowledge/fee-param-bindings.js +1 -0
  67. package/dist/knowledge/fund-layer.js +1 -1
  68. package/dist/knowledge/getting-started.d.ts +2 -2
  69. package/dist/knowledge/getting-started.js +1 -1
  70. package/dist/knowledge/guard-anchor-reach.js +1 -1
  71. package/dist/knowledge/guard-design-patterns.js +1 -1
  72. package/dist/knowledge/guard-ledger.js +1 -1
  73. package/dist/knowledge/guard-lint.d.ts +1 -0
  74. package/dist/knowledge/guard-lint.js +1 -1
  75. package/dist/knowledge/guard-puzzle.js +1 -1
  76. package/dist/knowledge/guard-risk.js +1 -1
  77. package/dist/knowledge/guard-templates.d.ts +1 -1
  78. package/dist/knowledge/guard-templates.js +1 -1
  79. package/dist/knowledge/guard-translation.js +1 -1
  80. package/dist/knowledge/index.js +1 -1
  81. package/dist/knowledge/industry-registry.js +1 -1
  82. package/dist/knowledge/industry-strategy.js +1 -1
  83. package/dist/knowledge/jsonrpc-enum.d.ts +14 -3
  84. package/dist/knowledge/jsonrpc-enum.js +1 -1
  85. package/dist/knowledge/knob-docs.d.ts +5 -0
  86. package/dist/knowledge/knob-docs.js +1 -0
  87. package/dist/knowledge/machine-templates.js +1 -1
  88. package/dist/knowledge/machine-topology.js +1 -1
  89. package/dist/knowledge/machine-translation.js +1 -1
  90. package/dist/knowledge/onchain-constants.d.ts +2 -0
  91. package/dist/knowledge/onchain-constants.js +1 -1
  92. package/dist/knowledge/order-ledger.js +1 -1
  93. package/dist/knowledge/param-schema.d.ts +70 -0
  94. package/dist/knowledge/param-schema.js +1 -0
  95. package/dist/knowledge/param-tiers.d.ts +25 -0
  96. package/dist/knowledge/param-tiers.js +1 -0
  97. package/dist/knowledge/passport-ledger.d.ts +1 -1
  98. package/dist/knowledge/passport-ledger.js +1 -1
  99. package/dist/knowledge/pattern-resolutions.d.ts +106 -0
  100. package/dist/knowledge/pattern-resolutions.js +1 -0
  101. package/dist/knowledge/projection.spec.js +1 -1
  102. package/dist/knowledge/safety-rules.js +1 -1
  103. package/dist/knowledge/scenario-modes.d.ts +1 -0
  104. package/dist/knowledge/scenario-modes.js +1 -1
  105. package/dist/knowledge/scenario-topology.js +1 -1
  106. package/dist/knowledge/service-allocation-semantics.js +1 -1
  107. package/dist/knowledge/service-ledger.js +1 -1
  108. package/dist/knowledge/service-templates.js +1 -1
  109. package/dist/knowledge/strategy-manuals.d.ts +1 -1
  110. package/dist/knowledge/strategy-manuals.js +1 -1
  111. package/dist/knowledge/template-loader.d.ts +101 -1
  112. package/dist/knowledge/template-loader.js +1 -1
  113. package/dist/knowledge/template-nav.d.ts +7 -0
  114. package/dist/knowledge/template-nav.js +1 -0
  115. package/dist/knowledge/template-registry.js +1 -1
  116. package/dist/knowledge/template-scanner.d.ts +33 -0
  117. package/dist/knowledge/template-scanner.js +1 -1
  118. package/dist/knowledge/template-test-profiles.d.ts +17 -0
  119. package/dist/knowledge/template-test-profiles.js +1 -0
  120. package/dist/knowledge/template-validation.d.ts +1 -0
  121. package/dist/knowledge/template-validation.js +1 -1
  122. package/dist/knowledge/tools-reference.js +1 -1
  123. package/dist/knowledge/treasury-templates.js +1 -1
  124. package/dist/knowledge/workflow-guidance.js +1 -1
  125. package/dist/monitor/MonitorLoop.js +1 -1
  126. package/dist/participation/time-window.d.ts +37 -0
  127. package/dist/participation/time-window.js +1 -0
  128. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  129. package/dist/playbooks/service-build/machine-panorama.d.ts +1 -0
  130. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  131. package/dist/playbooks/service-build/merchant-guide.d.ts +4 -1
  132. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  133. package/dist/playbooks/service-build/migration-planner.js +1 -1
  134. package/dist/playbooks/service-build/object-panorama.js +1 -1
  135. package/dist/playbooks/service-build/participation-radar.d.ts +1 -0
  136. package/dist/playbooks/service-build/participation-radar.js +1 -1
  137. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  138. package/dist/playbooks/service-build/service-panorama.d.ts +1 -0
  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/playbooks/service-build/service-quote.spec.js +1 -1
  142. package/dist/playbooks/service-build/workflow-design-assessment.js +1 -1
  143. package/dist/relationship/registry.js +1 -1
  144. package/dist/review/index.js +1 -1
  145. package/dist/runtime/instance-registry.d.ts +7 -1
  146. package/dist/runtime/instance-registry.js +1 -1
  147. package/dist/safety/confirm-gate.js +1 -1
  148. package/dist/schema/benchmark-migration/index.d.ts +2 -0
  149. package/dist/schema/benchmark-migration/index.js +1 -1
  150. package/dist/schema/call/allocation.js +1 -1
  151. package/dist/schema/call/arbitration.js +1 -1
  152. package/dist/schema/call/base.d.ts +8 -0
  153. package/dist/schema/call/base.js +1 -1
  154. package/dist/schema/call/bridge.d.ts +2 -0
  155. package/dist/schema/call/error-codes.d.ts +1 -1
  156. package/dist/schema/call/error-codes.js +1 -1
  157. package/dist/schema/call/guard.js +1 -1
  158. package/dist/schema/call/handler.js +1 -1
  159. package/dist/schema/call/machine.js +1 -1
  160. package/dist/schema/call/semantic.js +1 -1
  161. package/dist/schema/call/service.d.ts +3 -3
  162. package/dist/schema/call/service.js +1 -1
  163. package/dist/schema/common/index.js +1 -1
  164. package/dist/schema/evaluation/index.d.ts +8 -0
  165. package/dist/schema/evaluation/index.js +1 -1
  166. package/dist/schema/goal/planning.d.ts +1 -0
  167. package/dist/schema/goal/planning.js +1 -1
  168. package/dist/schema/industry-pack/index.d.ts +29 -0
  169. package/dist/schema/industry-pack/index.js +1 -1
  170. package/dist/schema/local/index.d.ts +20 -0
  171. package/dist/schema/local/index.js +1 -1
  172. package/dist/schema/messenger/index.d.ts +2 -0
  173. package/dist/schema/messenger/index.js +1 -1
  174. package/dist/schema/operations.d.ts +1 -1
  175. package/dist/schema/operations.js +1 -1
  176. package/dist/schema/query/bi.d.ts +106 -0
  177. package/dist/schema/query/bi.js +1 -1
  178. package/dist/schema/query/index.d.ts +5 -5
  179. package/dist/schema/query/index.js +1 -1
  180. package/dist/schema/schema-version.js +1 -1
  181. package/dist/schema/watch/index.js +1 -1
  182. package/dist/schema-query-impl/index.js +1 -1
  183. package/dist/schemas/account_operation.output.json +4 -2
  184. package/dist/schemas/benchmark_migration_operation.output.json +3 -3
  185. package/dist/schemas/benchmark_migration_operation.schema.json +16 -2
  186. package/dist/schemas/bridge_operation.output.json +4 -2
  187. package/dist/schemas/bridge_operation.schema.json +5 -5
  188. package/dist/schemas/evaluation_operation.output.json +16 -0
  189. package/dist/schemas/guard2file.schema.json +1 -1
  190. package/dist/schemas/index.json +1 -1
  191. package/dist/schemas/industry_pack_operation.output.json +150 -1
  192. package/dist/schemas/industry_pack_operation.schema.json +9 -3
  193. package/dist/schemas/keeper_operation.output.json +2 -2
  194. package/dist/schemas/local_cache_operation.output.json +4 -2
  195. package/dist/schemas/local_history_operation.output.json +4 -2
  196. package/dist/schemas/local_info_operation.output.json +4 -2
  197. package/dist/schemas/local_mark_operation.output.json +4 -2
  198. package/dist/schemas/machineNode2file.schema.json +1 -1
  199. package/dist/schemas/messenger_operation.output.json +13 -2
  200. package/dist/schemas/messenger_operation.schema.json +41 -34
  201. package/dist/schemas/monitor_events.output.json +2 -2
  202. package/dist/schemas/monitor_subscription.output.json +2 -2
  203. package/dist/schemas/onchain_events.output.json +14 -14
  204. package/dist/schemas/onchain_operations.output.json +13 -10
  205. package/dist/schemas/onchain_operations.schema.json +124 -99
  206. package/dist/schemas/onchain_operations_allocation.schema.json +7 -6
  207. package/dist/schemas/onchain_operations_arbitration.schema.json +7 -6
  208. package/dist/schemas/onchain_operations_contact.schema.json +4 -3
  209. package/dist/schemas/onchain_operations_demand.schema.json +4 -3
  210. package/dist/schemas/onchain_operations_gen_passport.schema.json +4 -3
  211. package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -1
  212. package/dist/schemas/onchain_operations_guard.schema.json +7 -6
  213. package/dist/schemas/onchain_operations_machine.schema.json +9 -7
  214. package/dist/schemas/onchain_operations_order.schema.json +6 -4
  215. package/dist/schemas/onchain_operations_payment.schema.json +2 -2
  216. package/dist/schemas/onchain_operations_permission.schema.json +19 -15
  217. package/dist/schemas/onchain_operations_personal.schema.json +17 -14
  218. package/dist/schemas/onchain_operations_progress.schema.json +6 -4
  219. package/dist/schemas/onchain_operations_proof.schema.json +4 -3
  220. package/dist/schemas/onchain_operations_repository.schema.json +9 -7
  221. package/dist/schemas/onchain_operations_reward.schema.json +5 -4
  222. package/dist/schemas/onchain_operations_service.schema.json +15 -12
  223. package/dist/schemas/onchain_operations_treasury.schema.json +4 -3
  224. package/dist/schemas/onchain_table_data.output.json +18 -13
  225. package/dist/schemas/onchain_table_data.schema.json +13 -13
  226. package/dist/schemas/query_toolkit.output.json +301 -33
  227. package/dist/schemas/query_toolkit.schema.json +6 -6
  228. package/dist/schemas/watch_operation.output.json +3 -3
  229. package/dist/schemas/workflow_operation.schema.json +3 -2
  230. package/dist/schemas/wowok_buildin_info.schema.json +1 -1
  231. package/dist/task/playbook.js +1 -1
  232. package/dist/tools/handlers/benchmark-migration.d.ts +1 -0
  233. package/dist/tools/handlers/benchmark-migration.js +1 -1
  234. package/dist/tools/handlers/config.js +1 -1
  235. package/dist/tools/handlers/evaluation.js +1 -1
  236. package/dist/tools/handlers/evaluation.spec.js +1 -1
  237. package/dist/tools/handlers/industry-pack.js +1 -1
  238. package/dist/tools/handlers/messenger.js +1 -1
  239. package/dist/tools/handlers/onchain.d.ts +4 -0
  240. package/dist/tools/handlers/onchain.js +1 -1
  241. package/dist/tools/index.js +1 -1
  242. package/dist/tools/registry/business.js +1 -1
  243. package/dist/tools/registry/onchain.js +1 -1
  244. package/dist/tools/registry/query.js +1 -1
  245. package/dist/tools/sanitize-output.js +1 -1
  246. package/dist/tools/sanitize-output.spec.js +1 -1
  247. package/dist/tools/types.d.ts +1 -0
  248. package/dist/tools/upgrade-check.d.ts +22 -0
  249. package/dist/tools/upgrade-check.js +1 -1
  250. package/dist/tools/wrap.d.ts +1 -1
  251. package/dist/tools/wrap.js +1 -1
  252. package/package.json +7 -6
@@ -422,7 +422,7 @@
422
422
  }
423
423
  },
424
424
  "additionalProperties": false,
425
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
425
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
426
426
  }
427
427
  ],
428
428
  "description": "Name or address of the object that received payments/items - can be a string (name/address) or full object"
@@ -673,7 +673,7 @@
673
673
  }
674
674
  },
675
675
  "additionalProperties": false,
676
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
676
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
677
677
  }
678
678
  ],
679
679
  "description": "Address (0x...) or account name. Query on-chain activity of this actor. Use to build a user's on-chain activity profile, verify an actor's history, or trace when funds/objects ARRIVED at an address."
@@ -817,7 +817,7 @@
817
817
  }
818
818
  },
819
819
  "additionalProperties": false,
820
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
820
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
821
821
  }
822
822
  ],
823
823
  "description": "Address to profile. Supports string (name/address) or object form. LocalMark names are resolved automatically. Aliases 'name_or_address' and 'account' are accepted and auto-renamed to 'address'."
@@ -872,7 +872,7 @@
872
872
  }
873
873
  },
874
874
  "additionalProperties": false,
875
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
875
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
876
876
  }
877
877
  ],
878
878
  "description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."
@@ -925,7 +925,7 @@
925
925
  }
926
926
  },
927
927
  "additionalProperties": false,
928
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
928
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
929
929
  }
930
930
  ],
931
931
  "description": "Service address whose transparent sub-order purchasing graph to resolve. Supports string (name/address) or object form. LocalMark names are resolved automatically."
@@ -1580,7 +1580,7 @@
1580
1580
  ]
1581
1581
  },
1582
1582
  "facets": {
1583
- "description": "Per-call facet overrides keyed by the ten facet ids (fund_safety/reputation/arbitration/fulfillment/offering_price/workflow/fund_flow/supply_chain/permission/my_stakes). Highest-precedence lens over role/industry/persona defaults; unknown facet ids are ignored.",
1583
+ "description": "Per-call facet overrides keyed by the ten facet ids (fund_safety/reputation/arbitration/fulfillment/offering_price/workflow/fund_flow/supply_chain/permission/my_stakes). Highest-precedence lens over the role, industry and persona defaults; unknown facet ids are ignored.",
1584
1584
  "type": "object",
1585
1585
  "propertyNames": {
1586
1586
  "type": "string"
@@ -66,7 +66,7 @@
66
66
  },
67
67
  "participation_role": {
68
68
  "type": "string",
69
- "description": "Authoritative role for participation/operation — ALWAYS manifest_role."
69
+ "description": "Authoritative role for participation and operation — ALWAYS manifest_role."
70
70
  },
71
71
  "evaluation_role": {
72
72
  "type": "string",
@@ -367,7 +367,7 @@
367
367
  },
368
368
  "participation_role": {
369
369
  "type": "string",
370
- "description": "Authoritative role for participation/operation — ALWAYS manifest_role."
370
+ "description": "Authoritative role for participation and operation — ALWAYS manifest_role."
371
371
  },
372
372
  "evaluation_role": {
373
373
  "type": "string",
@@ -516,7 +516,7 @@
516
516
  },
517
517
  "participation_role": {
518
518
  "type": "string",
519
- "description": "Authoritative role for participation/operation — ALWAYS manifest_role."
519
+ "description": "Authoritative role for participation and operation — ALWAYS manifest_role."
520
520
  },
521
521
  "evaluation_role": {
522
522
  "type": "string",
@@ -460,7 +460,7 @@
460
460
  }
461
461
  },
462
462
  "additionalProperties": false,
463
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
463
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
464
464
  },
465
465
  {
466
466
  "type": "string"
@@ -485,6 +485,7 @@
485
485
  "type": "object",
486
486
  "properties": {
487
487
  "entities": {
488
+ "minItems": 1,
488
489
  "type": "array",
489
490
  "items": {
490
491
  "type": "object",
@@ -499,7 +500,7 @@
499
500
  }
500
501
  },
501
502
  "additionalProperties": false,
502
- "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
503
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
503
504
  }
504
505
  },
505
506
  "check_all_founded": {
@@ -752,7 +752,7 @@
752
752
  "info"
753
753
  ],
754
754
  "additionalProperties": false,
755
- "description": "Build fingerprint - CAPTURE (no compare): returns the current build identity (templates version + git state + src/dist staleness + chain stamp) to record verbatim in a test-report header, one call, no LLM. COMPARE (with compare): diffs a report's recorded fingerprint against the current build - verdict stale or incomparable sets downgrades_findings=true, meaning the report's findings must be marked \"pending retest\" instead of triaged against current code (deployment-skew gate, yfd ruling 2026-10-24). Call CAPTURE at the start of a test round and COMPARE before triaging an AI test report."
755
+ "description": "Build fingerprint - CAPTURE (no compare): returns the current build identity (templates version + git state + source/build staleness + chain stamp) to record verbatim in a test-report header, one call, no LLM. COMPARE (with compare): diffs a report's recorded fingerprint against the current build - verdict stale or incomparable sets downgrades_findings=true, meaning the report's findings must be marked \"pending retest\" instead of triaged against current code (deployment-skew gate, yfd ruling 2026-10-24). Call CAPTURE at the start of a test round and COMPARE before triaging an AI test report."
756
756
  }
757
757
  ]
758
758
  }
@@ -1 +1 @@
1
- const registry=new Map();export function registerPlaybook(a){if(!a['name'])throw new Error('playbook\x20requires\x20a\x20name');if(a['stages']['length']===0x0)throw new Error('playbook\x20\x27'+a['name']+'\x27\x20requires\x20stages');registry['set'](a['name'],{...a,'stages':[...a['stages']]});}export function getPlaybook(a){return registry['get'](a);}export function listPlaybooks(){return[...registry['values']()];}export function hasPlaybook(a){return registry['has'](a);}export const GENERIC_PLAYBOOK='generic';export function playbookForGoalType(a){switch(a){case'publish_service':return registry['get']('service-build');case'fulfill_order':return registry['get']('order-fulfillment');case'capture_demand':return registry['get']('demand-capture');case'publish_demand':return registry['get']('demand-publish');case'purchase_service':return registry['get']('purchase');case'manage_assets':return registry['get']('governance');default:return registry['get'](GENERIC_PLAYBOOK);}}registerPlaybook({'name':GENERIC_PLAYBOOK,'stages':['prepare','execute','verify','close'],'description':'Fallback\x20stage\x20sequence\x20for\x20goals\x20without\x20a\x20dedicated\x20playbook.'}),registerPlaybook({'name':'service-build','stages':['namespace','puzzle','risk','doc','substeps'],'description':'Design\x20&\x20publish\x20a\x20commercial\x20service\x20(content:\x20src/playbooks/service-build/).'}),registerPlaybook({'name':'order-fulfillment','stages':['confirm','deliver','accept','settle'],'description':'Merchant-side\x20order\x20fulfillment.'}),registerPlaybook({'name':'demand-capture','stages':['discover','evaluate','engage','close'],'description':'Discover\x20and\x20capture\x20demand\x20opportunities.'}),registerPlaybook({'name':'demand-publish','stages':['draft','fund','publish','close'],'description':'Publish\x20a\x20funded\x20demand.'}),registerPlaybook({'name':'purchase','stages':['select','order','monitor','review'],'description':'Purchase\x20a\x20service\x20and\x20see\x20it\x20delivered.'}),registerPlaybook({'name':'governance','stages':['inventory','decide','execute','audit'],'description':'On-chain\x20permission/data/financial\x20governance\x20loop\x20(08\x20§7\x20N-4;\x20skill:\x20wowok-governance).'});
1
+ const registry=new Map();export function registerPlaybook(a){if(!a['name'])throw new Error('playbook\x20requires\x20a\x20name');if(a['stages']['length']===0x0)throw new Error('playbook\x20\x27'+a['name']+'\x27\x20requires\x20stages');registry['set'](a['name'],{...a,'stages':[...a['stages']]});}export function getPlaybook(a){return registry['get'](a);}export function listPlaybooks(){return[...registry['values']()];}export function hasPlaybook(a){return registry['has'](a);}export const GENERIC_PLAYBOOK='generic';export function playbookForGoalType(a){switch(a){case'publish_service':return registry['get']('service-build');case'fulfill_order':return registry['get']('order-fulfillment');case'capture_demand':return registry['get']('demand-capture');case'publish_demand':return registry['get']('demand-publish');case'purchase_service':return registry['get']('purchase');case'manage_assets':return registry['get']('governance');default:return registry['get'](GENERIC_PLAYBOOK);}}registerPlaybook({'name':GENERIC_PLAYBOOK,'stages':['prepare','execute','verify','close'],'description':'Fallback\x20stage\x20sequence\x20for\x20goals\x20without\x20a\x20dedicated\x20playbook.'}),registerPlaybook({'name':'service-build','stages':['namespace','puzzle','risk','doc','substeps'],'description':'Design\x20&\x20publish\x20a\x20commercial\x20service\x20(content:\x20the\x20service-build\x20playbook).'}),registerPlaybook({'name':'order-fulfillment','stages':['confirm','deliver','accept','settle'],'description':'Merchant-side\x20order\x20fulfillment.'}),registerPlaybook({'name':'demand-capture','stages':['discover','evaluate','engage','close'],'description':'Discover\x20and\x20capture\x20demand\x20opportunities.'}),registerPlaybook({'name':'demand-publish','stages':['draft','fund','publish','close'],'description':'Publish\x20a\x20funded\x20demand.'}),registerPlaybook({'name':'purchase','stages':['select','order','monitor','review'],'description':'Purchase\x20a\x20service\x20and\x20see\x20it\x20delivered.'}),registerPlaybook({'name':'governance','stages':['inventory','decide','execute','audit'],'description':'On-chain\x20permission/data/financial\x20governance\x20loop\x20(08\x20§7\x20N-4;\x20skill:\x20wowok-governance).'});
@@ -3,6 +3,7 @@ import { type TemplateScanResult } from "../../knowledge/template-scanner.js";
3
3
  import type { DeliverableDefinition } from "../../playbooks/service-build/intent-analyzer.js";
4
4
  import type { IndustryMode } from "../../extensions/index.js";
5
5
  import type { ToolDispatchResult } from "../types.js";
6
+ export declare function platformMarkRefusal(addr: string, network: string): string | undefined;
6
7
  export interface StaleBuildDisclosure {
7
8
  stale: boolean;
8
9
  known: boolean;
@@ -1 +1 @@
1
- import{strictParse}from'../../schema/index.js';import{BenchmarkMigrationSchema}from'../../schema/benchmark-migration/index.js';import{getTemplate,listTemplates,validateAllocatorRows,platformShareBps,builtinTemplateDrift}from'../../knowledge/template-loader.js';import{BUILTIN_TEMPLATES,auditTemplateOnceSlotArms,BUILTIN_TEMPLATES_VERSION,DISCOVERY_PRODUCT_REFS,DISCOVERY_TAG_VOCABULARY,discoveryTagsForTemplate}from'../../knowledge/builtin-templates.js';import{landPlatformCommission}from'../../knowledge/commission-landing.js';import{scanTemplate,buildFeeParamLandingTable}from'../../knowledge/template-scanner.js';import{planMigration}from'../../playbooks/service-build/migration-planner.js';import{handleMerchantGuide}from'../../playbooks/service-build/merchant-guide.js';import{inferArbitration}from'../../playbooks/service-build/intent-analyzer.js';import{getIndustryModeRegistry}from'../../extensions/index.js';import{listIndustries,resolveIndustryName}from'../../knowledge/industry-registry.js';import{claimNumber,discoverySignal,normalizeSemanticIR}from'../../knowledge/semantic-ir.js';import{handleRecommendIndustry}from'../../playbooks/service-build/mode-actions.js';import{handlerExecutor,materializePlan}from'../../composition/materialize.js';import{join,dirname}from'node:path';import{fileURLToPath}from'node:url';import{computeSrcDistStaleness}from'../upgrade-check.js';const __dirname=dirname(fileURLToPath(import.meta.url));export function staleBuildFace(a=join(__dirname,'..','..','..','src'),b=join(__dirname,'..','..','..','dist')){let c=null;try{c=computeSrcDistStaleness(a,b,{'srcExt':'.ts','distExt':'.js'});}catch{c=null;}if(!c)return{'stale':![],'known':![],'lag_minutes':null,'detail':'Stale-build\x20state\x20UNKNOWN\x20—\x20the\x20src/dist\x20trees\x20were\x20not\x20both\x20resolvable\x20(installed\x20dist-only\x20'+'package\x20or\x20a\x20build\x20in\x20progress),\x20so\x20template\x20freshness\x20could\x20not\x20be\x20verified.\x20Treat\x20the\x20'+'scan/plan\x20verdicts\x20as\x20unconfirmed.'};if(!c['stale'])return{'stale':![],'known':!![],'lag_minutes':c['lag_minutes'],'detail':'dist\x20is\x20current\x20with\x20src\x20(newest\x20compiled\x20.js\x20vs\x20newest\x20source\x20.ts\x20mtime\x20lag\x20'+c['lag_minutes']+'\x20'+'minute(s))\x20—\x20the\x20scan/plan\x20verdicts\x20reflect\x20this\x20workspace\x20checkout.'};return{'stale':!![],'known':!![],'lag_minutes':c['lag_minutes'],'detail':'dist\x20is\x20'+c['lag_minutes']+'\x20minute(s)\x20OLDER\x20than\x20src\x20(newest\x20compiled\x20.js\x20vs\x20newest\x20source\x20.ts\x20mtime)\x20'+'—\x20the\x20scan/plan\x20above\x20may\x20describe\x20superseded\x20template\x20knowledge.\x20Rebuild\x20(pnpm\x20build)\x20and\x20re-run\x20'+'before\x20acting\x20on\x20these\x20verdicts.'};}function templateSummary(a){return{'id':a['id'],'industry':a['industry'],'variant':a['variant'],'product_ref':a['product_ref'],'archetype':a['archetype'],'key_risk':a['key_risk'],'node_count':a['machine_shape']['length'],'guard_count':a['guards']['length'],'recommended_role':a['recommended_role'],'tags':discoveryTagsForTemplate(a['id'])};}function templateGetAids(a){const b=a['machine_shape']['some'](c=>c['name']==='reviewed');return{'claim_anchor':b?'review_node+final':'final_only','claim_anchor_note':b?'machine_shape\x20mounts\x20a\x20\x27reviewed\x27\x20node\x20—\x20the\x20buyer\x27s\x20structured\x20review\x20rides\x20that\x20node\x20alongside\x20the\x20final\x20settlement.':'no\x20\x27reviewed\x27\x20node\x20—\x20sanctioned\x20variant:\x20the\x20buyer\x27s\x20voice\x20rides\x20the\x20claim/arbitration\x20rail\x20only\x20(no\x20separate\x20review\x20stop).','allocator_count_note':'allocator.count\x20=\x20'+a['allocator']['count']+'\x20counts\x20SETTLEMENT-track\x20legs\x20only;\x20refund-track\x20legs\x20(rows[]\x20with\x20track:\x22refund\x22)\x20are\x20additional\x20and\x20NOT\x20included\x20in\x20this\x20count.\x20rows[]\x20carries\x20the\x20complete\x20executable\x20split\x20plan.','onchain_field_notes':['passport.impack\x20—\x20the\x20on-chain\x20field\x20is\x20spelled\x20`impack`\x20(passport.move,\x20packed\x20business\x20objects\x20in\x20the\x20passport\x20verification\x20context).\x20It\x20is\x20the\x20contract\x27s\x20own\x20field\x20name,\x20not\x20a\x20typo;\x20echo\x20it\x20verbatim.']};}function requireTemplate(a,b){if(!a)throw new Error('\x27template_id\x27\x20is\x20required\x20for\x20action=\x27'+b+'\x27');const c=getTemplate(a);if(!c)throw new Error('Unknown\x20template\x20id:\x20'+a+'\x20(use\x20action=\x27template_list\x27\x20to\x20see\x20valid\x20ids)');return c;}function driftFace(a){const b=builtinTemplateDrift()['find'](c=>c['template']===a);if(!b){const c=BUILTIN_TEMPLATES['some'](d=>d['id']===a);return c?{'template':a,'state':'current','catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':![],'repairable':![],'detail':'disk\x20body\x20matches\x20the\x20shipped\x20catalog\x20(hash-verified\x20sentinel)'}:{'template':a,'state':'untracked','catalog_version':undefined,'blocked':![],'repairable':![],'detail':'user-authored\x20template\x20—\x20no\x20builtin\x20catalog\x20binding\x20to\x20compare\x20against'};}return{'template':b['template'],'state':b['state'],'catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':!![],'repairable':b['repairable'],'detail':b['detail']};}function withOnceSlotAdvisories(a){try{const b=auditTemplateOnceSlotArms()['find'](c=>c['template_id']===a['template_id']);if(!b)return a;return{...a,'findings':[...a['findings'],{'rule_id':'R-ONCE-SLOT-ARM-254','severity':'medium','title':'Once-slot\x20arming\x20on\x20a\x20periodic\x20rail\x20('+b['kind']+')','detail':b['message'],'suggestion':'Arm\x20the\x20re-enterable\x20settlement/renewal\x20guard\x20with\x20identifier\x20255\x20plus\x20a\x20per-period\x20key\x20(period-<N>\x20from\x20chain\x20state,\x20e.g.\x20progress\x20history\x20count)\x20and\x20have\x20the\x20trigger\x20Passport\x20submit\x20the\x20same\x20value;\x20keep\x20254\x20for\x20one-shot-per-order\x20rails\x20only.\x20Re-run\x20action=\x27template_scan\x27\x20after\x20the\x20fix.'}]};}catch{return a;}}function scanSummary(a,b){a=withOnceSlotAdvisories(a);const c={};for(const d of a['findings'])c[d['severity']]=(c[d['severity']]??0x0)+0x1;return{'template_id':a['template_id'],'risk_level':a['risk_level'],'preflight_scan_passed':a['red_flags']['length']===0x0,'finding_count':a['findings']['length'],'findings_by_severity':c,'red_flags':a['red_flags'],'findings':a['findings'],'drift':b};}function assertScanPassed(a,b){const c=a['red_flags'];if(a['passed']||c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20CRITICAL\x20risk\x20—\x20'+c['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}const GENERATE_HIGH_TOLERATED=new Set([]);function assertGenerateScanPassed(a,b){assertScanPassed(a,b);if(b!=='template_generate')return;const c=generateHighBlockers(a['template_id'],a['findings']);if(c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20'+c['length']+'\x20HIGH\x20finding(s)\x20—\x20'+c['map'](d=>(d['rule_id']??'HIGH')+':\x20'+d['title'])['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}function generateHighBlockers(a,b){return b['filter'](c=>c['severity']==='high'&&!(c['rule_id']&&GENERATE_HIGH_TOLERATED['has'](a+'/'+c['rule_id'])));}export function buildVerdict(a,b,c){const d=[];!a['preflight_scan_passed']&&d['push']('scan:\x20'+(a['findings_by_severity']['critical']??0x0)+'\x20CRITICAL\x20finding(s)\x20(preflight\x20scan\x20failed)');if(c){const j=generateHighBlockers(a['template_id'],a['findings']??[]);j['length']>0x0&&d['push']('scan:\x20'+j['length']+'\x20HIGH\x20finding(s)\x20—\x20template_generate\x20would\x20refuse\x20(N-21):\x20'+j['map'](k=>((k['rule_id']??'HIGH')+':\x20'+(k['title']??''))['trim']())['join'](';\x20'));}const e=b['graph_validation'];if(e&&e['valid']===![]){const k=Array['isArray'](e['hard_violations'])?e['hard_violations']['length']:0x0,l=Array['isArray'](e['hard_violations'])?e['hard_violations']['map'](m=>m['id'])['join'](',\x20'):'';d['push']('graph_validation:\x20'+k+'\x20hard\x20violation(s)'+(l?'\x20('+l+')':''));}const f=b['audit'];if(f&&f['blocking']===!![]){const m=(f['findings']??[])['filter'](n=>n['level']==='critical'||n['level']==='high');d['push'](m['length']===0x0?'audit:\x20guide\x20audit\x20flagged\x20blocking\x20issue(s)\x20(plan.audit)':'audit:\x20'+m['length']+'\x20blocking\x20finding(s)\x20—\x20'+m['slice'](0x0,0x5)['map'](n=>((n['rule_id']??'?')+':\x20'+(n['title']??''))['trim']())['join'](';\x20')+(m['length']>0x5?'\x20(+'+(m['length']-0x5)+'\x20more\x20in\x20plan.audit.findings)':''));}const g=b['harness_check'],h=[...new Set((g?.['blocking_issues']??[])['filter'](n=>n['module']==='template')['flatMap'](n=>n['missing_constraints']??[]))];h['length']>0x0&&d['push']('compile:\x20'+h['length']+'\x20blocker(s)\x20—\x20merchant_guide\x20refuses\x20to\x20materialize\x20this\x20plan:\x20'+h['join'](',\x20'));const i=d['length']===0x0;return{'buildable':i,'blockers':d,'status':i?'READY':'BLOCKED'};}async function templateScanDryRun(a){const b=[{'name':'scan-probe','price':'1000000000','quantity':0x1}],c=a['review_mode']==='review_reward'?{'review_mode':'review_reward','reward_funding':'20000000','reward_claim_amount':'1000000'}:undefined;try{const d=await runGuide(a,undefined,undefined,undefined,c,b),f=buildVerdict(scanSummary(scanTemplate(a)),d,!![]);return{'status':f['buildable']?'ready':'blocked','buildable':f['buildable'],'blockers':f['blockers'],'note':'Compile\x20dry-run\x20on\x20synthetic\x20probe\x20inputs\x20(single\x20probe\x20SKU,\x20benchmark\x20reward\x20funding),\x20mirrored\x20to\x20the\x20template_generate\x20gate\x20(CRITICAL\x20+\x20N-21\x20HIGH\x20+\x20graph\x20+\x20audit).\x20Structural\x20blockers\x20are\x20REAL\x20—\x20the\x20generate\x20face\x20refuses\x20for\x20the\x20same\x20reason.\x20Blockers\x20naming\x20caller\x20inputs\x20(fee_overrides\x20/\x20guard_resolutions\x20/\x20catalog)\x20may\x20clear\x20with\x20real\x20values.'};}catch(g){return{'status':'unavailable','note':'Compile\x20dry-run\x20could\x20not\x20run\x20on\x20synthetic\x20probe\x20inputs\x20('+(g instanceof Error?g['message']:String(g))+').\x20This\x20is\x20a\x20probe\x20limitation,\x20NOT\x20a\x20template\x20verdict\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};}}export function planNextAction(a,b,c){const d=a['next_action'];if(typeof d==='string'&&d['startsWith']('Plan\x20ready.'))return d;if(c?.['buildable']){const f=Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']['length']:0x0;return'Plan\x20is\x20buildable\x20(verdict.buildable=true).\x20Materialize\x20the\x20objects\x20in\x20plan.steps\x20order'+(f>0x0?',\x20resolving\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20before\x20the\x20Machine\x20publish':'')+'.';}const e=Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']['length']:0x0;return'Plan\x20BLOCKED\x20by\x20the\x20guide\x20audit\x20(see\x20plan.audit\x20/\x20plan.next_action).\x20Do\x20NOT\x20materialize,\x20'+'and\x20do\x20NOT\x20hand-build\x20the\x20objects\x20instead:\x20this\x20plan\x20is\x20the\x20wiring\x20authority\x20(Arbitration\x20+\x20'+'compensation-fund,\x20Contact/um,\x20allocator\x20rows)\x20and\x20hand-built\x20replicas\x20silently\x20drop\x20those\x20wirings.\x20'+(e>0x0?'Resolve\x20the\x20'+e+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20':'Adjust\x20fee_overrides,\x20pick\x20another\x20template\x20variant,\x20or\x20fix\x20the\x20template,\x20')+('then\x20re-run\x20action=\x27'+b+'\x27.');}function templateIntent(a,b){if(b&&b['trim']())return b['trim']();return'Adopt\x20the\x20'+a['id']+'\x20industry\x20archetype\x20template\x20('+a['archetype']+')\x20for\x20the\x20'+a['industry']+'\x20industry.\x20'+('Primary\x20risk\x20to\x20mitigate:\x20'+a['key_risk']+'.');}function effectiveFeeParams(a,b){return{...a['fee_params'],...b??{}};}const REWARD_POOL_PATTERNS=[/(?:reward|review|bonus|tip|prize)[\s-]*pools?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:reward|review|bonus|tip|prize)[\s-]*pools?\b/i];export function extractRewardPoolCandidate(a){if(!a)return undefined;for(const b of REWARD_POOL_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function rewardPoolPrefill(a,b,c,d){if(a['fee_params']['review_reward_pool']===undefined)return undefined;if(c?.['review_reward_pool']!==undefined)return undefined;const e=d?claimNumber(d,'reward_pool_amount'):undefined;if(e!==undefined)return{'fee_key':'review_reward_pool','value':e,'claim_source':'semantic_ir'};const f=extractRewardPoolCandidate(b);return f===undefined?undefined:{'fee_key':'review_reward_pool','value':f};}const FUNDING_THRESHOLD_PATTERNS=[/(?:funding|campaign|round)[\s-]*(?:threshold|goal)s?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:funding|campaign|round)[\s-]*(?:threshold|goal)\b/i],MIN_ORDER_PATTERNS=[/(?:min(?:imum)?)\s+order(?:\s+(?:price|value|amount))?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:min(?:imum)?)\s+order\b/i];export function extractFundingThresholdCandidate(a){if(!a)return undefined;for(const b of FUNDING_THRESHOLD_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}export function extractMinOrderCandidate(a){if(!a)return undefined;for(const b of MIN_ORDER_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function numericFeePrefill(a,b,c,d,e,f,g){if(a['fee_params'][b]===undefined)return undefined;if(f?.[b]!==undefined)return undefined;const h=g?claimNumber(g,c):undefined;if(h!==undefined)return{'fee_key':b,'value':h,'claim_source':'semantic_ir'};const i=d(e);return i===undefined?undefined:{'fee_key':b,'value':i};}function validateFeeParams(a,b){const c=[];let d=0x0;for(const [e,f]of Object['entries'](a)){if(typeof f!=='number'||!Number['isFinite'](f))continue;if(e['endsWith']('_bps')){(!Number['isInteger'](f)||f<0x0||f>0x2710)&&c['push'](e+'='+f+'\x20is\x20not\x20an\x20integer\x20rate\x20in\x20[0,\x2010000]\x20bps');if(e['endsWith']('_share_bps'))d+=Math['max'](0x0,f);}else{if(e['endsWith']('_days')){if(f<=0x0||f>0xe42)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x203650]\x20days');}else{if(e['endsWith']('_hours')){if(f<=0x0||f>0x2238)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x208760]\x20hours');}}}}if(d>0x2710)c['push']('*_share_bps\x20sum\x20'+d+'\x20exceeds\x2010000\x20(a\x20pool\x20splits\x20into\x20at\x20most\x20100%)');if(c['length']>0x0)throw new Error('invalid\x20fee\x20parameters\x20for\x20template\x20\x27'+b+'\x27:\x20'+c['join'](';\x20')+'.\x20'+'Correct\x20the\x20template\x27s\x20fee_params\x20or\x20pass\x20valid\x20\x27fee_overrides\x27.');}export{validateAllocatorRows};export function variantPaymentModel(a){if(a['payment_model'])return a['payment_model'];const b=a['allocator']['rows']??[];if(b['some'](d=>d['track']==='refund'))return'escrow';const c=a['machine_shape']['map'](d=>d['name'])['join']('\x20')['toLowerCase']();if(/\b(milestone|revision|revis|draft|deliverable)\b/['test'](c))return'milestone';if(/\b(charge|renew|subscription|cycle|billing|monthly)\b/['test'](c))return'subscription';return'escrow';}function variantRefundPolicy(a){const b=a['allocator']['description']['toLowerCase']();if(/full[ -]?refund|100% refund|refund .*100/['test'](b))return'full';if(/pro-?rata|prorated/['test'](b))return'milestone_prorated';if(/partial/['test'](b))return'partial';return undefined;}export function variantDeliverables(a,b){const c=a['machine_shape']['filter'](g=>g['semantic_role']==='final'),d=c[c['length']-0x1]??[...a['machine_shape']]['reverse']()['find'](g=>!/refund|cancel|dispute|terminat/i['test'](g['name']+'\x20'+g['role']))??a['machine_shape'][a['machine_shape']['length']-0x1],e=b?.['has_logistics']?'physical':b?.['pure_digital']?'digital':'service_session',f=(a['guards']??[])['filter'](h=>/repository_data_check|required_info_evidence_gate|allocator_order_anchor/['test'](h['template_id']));return[{'name':a['variant']+'\x20fulfillment','type':e,'acceptanceCriteria':'Order\x20reaches\x20the\x20terminal\x20workflow\x20node\x20\x27'+d['name']+'\x27\x20('+d['role']+')','proofOfDelivery':f['length']>0x0?'wip_hash':'manual_confirm'}];}function validateConditionalParams(a,b){for(const d of a['conditional_guards']??[]){const e=b[d['param']];if(e===undefined)continue;if(typeof e!=='string'||!d['values']['includes'](e))throw new Error('invalid\x20\x27'+d['param']+'='+String(e)+'\x27\x20for\x20template\x20\x27'+a['id']+'\x27:\x20must\x20be\x20one\x20of\x20'+d['values']['map'](f=>'\x27'+f+'\x27')['join']('\x20|\x20')+('\x20(the\x20guard\x20variant\x20mounts\x20at\x20\x27'+d['emit_value']+'\x27)'));}}async function runGuide(a,b,c,d,e,f,g){const h=effectiveFeeParams(a,c),i=rewardPoolPrefill(a,b,c,g);if(i)h[i['fee_key']]=i['value'];const j=numericFeePrefill(a,'funding_threshold','funding_threshold_amount',extractFundingThresholdCandidate,b,c,g);if(j)h[j['fee_key']]=j['value'];const k=numericFeePrefill(a,'min_order_price','min_order_price_amount',extractMinOrderCandidate,b,c,g);if(k)h[k['fee_key']]=k['value'];validateFeeParams(h,a['id']),validateConditionalParams(a,h);const l=landPlatformCommission(a,h);if(l['error']!==undefined)throw new Error(l['error']);const m=l['rows']?{...a,'allocator':{...a['allocator'],'rows':l['rows'],'count':l['rows']['filter'](y=>y['track']==='settlement')['length']}}:a,n=getIndustryModeRegistry()['getMode'](a['industry']),o=platformShareBps(h),q={'model':variantPaymentModel(a)},r=[],s=(m['allocator']['rows']?.['length']??0x0)>0x0;if(o!==undefined&&o>0x0&&!s&&a['allocator']['mode']==='rate'){const y=Math['round'](o)/0x64;r['push']({'recipient':'merchant','percentage':Math['round']((0x64-y)*0x64)/0x64}),r['push']({'recipient':'platform','percentage':y}),q['allocation']=r;}const u=variantRefundPolicy(a),v={'escrow':!![]};if(u)v['refundPolicy']=u;v['arbitration']=a['arbitration_mode']??v['arbitration']??inferArbitration(templateIntent(a,b));const w=await handleMerchantGuide({'intent':templateIntent(a,b),'guide_confirm':{'industry':a['industry'],'payment':q,'trust':v,'deliverables':variantDeliverables(a,n?.['traits']),...d&&Object['keys'](d)['length']>0x0?{'guard_resolutions':d}:{},...e?.['review_mode']?{'review_mode':e['review_mode']}:{},...e?.['reward_funding']!==undefined?{'reward_funding':e['reward_funding']}:{},...e?.['reward_claim_amount']!==undefined?{'reward_claim_amount':e['reward_claim_amount']}:{},...e?.['after_sales_mode']?{'after_sales_mode':e['after_sales_mode']}:{},...e?.['acceptance_mode']?{'acceptance_mode':e['acceptance_mode']}:{},...e?.['installment_mode']?{'installment_mode':e['installment_mode']}:{},...e?.['affiliate_mode']?{'affiliate_mode':e['affiliate_mode']}:{},...e?.['crowdfunding_mode']?{'crowdfunding_mode':e['crowdfunding_mode']}:{},...e?.['logistics_mode']?{'logistics_mode':e['logistics_mode']}:{},...f?.['length']?{'sales':f}:{}},'template_override':{...m,'fee_params':h},'name_base':a['id']});m['allocator']['rows']?.['length']&&(w['template_allocator_rows']=m['allocator']['rows']['map'](z=>({...z})));if(l['landing']!==undefined)w['commission_landing']=l['landing'];w['template']={'id':a['id'],'archetype':a['archetype'],'recommended_role':a['recommended_role'],'fee_params':h},w['template_fee_param_landings']=buildFeeParamLandingTable(m,h);if(c&&Object['keys'](c)['length']>0x0)w['template_fee_overrides']=c;const x=[];if(i)x['push'](i);if(j)x['push'](j);if(k)x['push'](k);if(x['length']>0x0){w['fee_overrides_prefills']=x;for(const z of x){const A=z['fee_key']==='review_reward_pool'?'Reward\x20pool':z['fee_key']==='funding_threshold'?'Funding\x20threshold':'Minimum\x20order',B=z['claim_source']==='semantic_ir'?'\x20(from\x20the\x20semantic\x20IR\x20claim)':'';w['next_action']=w['next_action']+'\x20'+A+'\x20prefilled\x20from\x20your\x20request:\x20'+z['value']+B+'\x20—\x20adjust\x20via\x20fee_overrides.';}}return w;}export async function handleBenchmarkMigrationOperation(a){const b=strictParse(BenchmarkMigrationSchema,a,'benchmark_migration_operation\x20input'),c=b['industry']?resolveIndustryName(b['industry'])??b['industry']['toLowerCase']():undefined,d=b['semantic_ir']?normalizeSemanticIR(b['semantic_ir'],{'source_text':b['description']}):undefined,e=d?{'semantic_ir_digest':d['digest'],...d['issues']['length']>0x0?{'semantic_ir_issues':d['issues']}:{}}:undefined;let f;switch(b['action']){case'template_list':{const {templates:g,errors:h}=listTemplates(),i=c?g['filter'](k=>k['industry']===c):g,j=new Map(builtinTemplateDrift()['map'](k=>[k['template'],k['state']]));f={'action':'template_list','count':i['length'],'templates':i['map'](k=>({...templateSummary(k),'disk_state':j['get'](k['id'])??(BUILTIN_TEMPLATES['some'](l=>l['id']===k['id'])?'current':'untracked')})),'discovery_vocabulary':{'industries':listIndustries()['map'](k=>k['name'])['sort'](),'tags':[...DISCOVERY_TAG_VOCABULARY],'product_refs':[...DISCOVERY_PRODUCT_REFS]},'load_errors':h};break;}case'template_get':{const k=requireTemplate(b['template_id'],'template_get');f={'action':'template_get','template':{...k,...templateGetAids(k)}};break;}case'template_generate':{const l=requireTemplate(b['template_id'],'template_generate'),m=b['review_mode']??l['review_mode']??'none',n=[];m==='review_reward'&&!b['reward_funding']&&n['push']('reward_funding\x20is\x20required:\x20template\x20\x27'+l['id']+'\x27\x20resolves\x20to\x20review_mode\x20\x27review_reward\x27\x20(input'+(b['review_mode']?'':'\x20via\x20template\x20declaration')+'),\x20which\x20promises\x20buyers\x20a\x20claimable\x20review\x20bounty\x20—\x20an\x20unfunded\x20pool\x20must\x20not\x20ship\x20(INV-4).\x20Pass\x20reward_funding\x20(smallest-unit\x20string;\x20expected\x20orders\x20x\x20per-order\x20reward\x20—\x20fee_param\x20review_reward_pool\x20is\x20the\x20planning\x20benchmark),\x20or\x20drop\x20the\x20mode\x20explicitly\x20(review_mode\x20\x27review\x27\x20keeps\x20the\x20review\x20rail\x20without\x20the\x20bounty;\x20\x27none\x27\x20removes\x20the\x20rail).');(!Array['isArray'](b['sales'])||b['sales']['length']===0x0)&&n['push']('sales\x20is\x20required:\x20a\x20plan\x20without\x20a\x20sellable\x20catalog\x20publishes\x20a\x20Service\x20frozen\x20with\x20sales:\x20[]\x20and\x20every\x20order_new\x20aborts\x20(PLAN-SALES-01,\x20upgraded\x20to\x20an\x20input\x20requirement,\x20amz9\x20A-2).\x20Pass\x20sales:\x20[{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}]\x20—\x20one\x20entry\x20per\x20sellable\x20SKU,\x20price\x20in\x20smallest\x20units\x20(wip_hash\x20from\x20the\x20wip_file\x20tool\x20upload).');if(n['length']>0x0)return{'content':[{'type':'text','text':'template_generate\x20refused\x20—\x20no\x20plan\x20was\x20built.\x20'+n['length']+'\x20input\x20gap(s),\x20ALL\x20listed\x20at\x20once\x20(AR-4\x20T-05):\x20'+n['map']((q,r)=>'('+(r+0x1)+')\x20'+q)['join']('\x20')}],'structuredContent':{'result':{'type':'error','error':'template_generate\x20input\x20preflight\x20failed\x20with\x20'+n['length']+'\x20gap(s)\x20on\x20template\x20\x27'+l['id']+'\x27\x20—\x20all\x20gaps\x20reported\x20in\x20this\x20single\x20response\x20(do\x20not\x20fix\x20one\x20and\x20rediscover\x20the\x20next).','error_code':'input_preflight_failed','retryable':!![],'recovery_hint':n['join']('\x20|\x20'),'gaps':n},'message':'Refused:\x20input\x20preflight\x20failed.\x20Fix\x20ALL\x20listed\x20gaps,\x20then\x20re-send\x20ONCE.\x20See\x20recovery_hint.'}};const o=scanTemplate(l);assertGenerateScanPassed(o,'template_generate');const p=await runGuide(l,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const q=scanSummary(o,driftFace(l['id'])),r=buildVerdict(q,p);return{'action':'template_generate','template_id':l['id'],...e,'stale_build':staleBuildFace(),'scan':q,'plan':p,'verdict':r,'next_action':planNextAction(p,'template_generate',r)};})());break;}case'template_scan':{const q=requireTemplate(b['template_id'],'template_scan'),r=await templateScanDryRun(q);f={'action':'template_scan','stale_build':staleBuildFace(),'scan':{...withOnceSlotAdvisories(scanTemplate(q)),'drift':driftFace(q['id']),'compile_dry_run':r}};break;}case'migration_import':{if(!b['description']||!b['description']['trim']())throw new Error('\x27description\x27\x20is\x20required\x20for\x20action=\x27migration_import\x27');const s=d?handleRecommendIndustry({'intent':b['description'],'semantic_ir':b['semantic_ir']}):undefined,t=planMigration({'url':b['url'],'description':b['description'],'industry':c,'ir_industry':c?undefined:s?.['recommendations'][0x0]?.['industry'],'ir_discovery':d?discoverySignal(d['ir']):undefined,'network':b['network']});if(!t)throw new Error('No\x20industry\x20template\x20matched\x20the\x20description.\x20Refine\x20the\x20description\x20or\x20pass\x20an\x20explicit\x20\x27industry\x27\x20hint'+(d?',\x20or\x20add\x20discovery\x20tags\x20/\x20a\x20product_ref\x20to\x20semantic_ir\x20(tags\x20vocabulary:\x20template_list.discovery_vocabulary).':'\x20(or\x20provide\x20semantic_ir\x20with\x20discovery\x20tags\x20/\x20traits\x20for\x20a\x20non-English\x20description).'));f={'action':'migration_import','log':t,...s?{'inference_source':s['inference_source']}:{},...e,'next_action':'MigrationLog\x20ready.\x20Next:\x20call\x20action=\x27migration_review\x27\x20with\x20this\x20log\x20to\x20surface\x20the\x20mapped/unmapped/manual_review\x20items\x20for\x20user\x20confirmation.'};break;}case'plan_execute':{if(!b['plan']||typeof b['plan']!=='object'||Array['isArray'](b['plan']))throw new Error('\x27plan\x27\x20is\x20required\x20for\x20action=\x27plan_execute\x27\x20—\x20pass\x20the\x20object\x20returned\x20under\x20\x27plan\x27\x20by\x20template_generate\x20verbatim');const u=b['plan'],v=u['plan']!==undefined&&typeof u['plan']==='object'&&!Array['isArray'](u['plan'])&&Array['isArray'](u['plan']['steps'])?u['plan']:u;if(!Array['isArray'](v['steps']))throw new Error('action=\x27plan_execute\x27:\x20the\x20passed\x20plan\x20carries\x20no\x20steps[]\x20—\x20pass\x20the\x20template_generate\x20\x27plan\x27\x20object\x20verbatim');const w=Array['isArray'](b['completed_steps'])&&b['completed_steps']['length']>0x0||b['previous_outputs']?{'completedSteps':b['completed_steps']??[],'outputs':b['previous_outputs']??{}}:undefined,x=await materializePlan(v,{'execute':handlerExecutor(b['env'])},w),y=x['steps']['filter'](A=>A['status']==='blocked')['length'],z=x['steps']['find'](A=>A['status']==='failed');f={'action':'plan_execute','completed':x['completed'],'steps':x['steps'],'outputs':x['outputs'],'preflight':{'issues':x['preflight']['issues'],'findings':x['preflight']['findings']},'readback':x['readback'],'next_action':x['completed']?'Deployed.\x20Verify\x20the\x20store\x20(query_toolkit:\x20service\x20/\x20machine\x20/\x20orders),\x20then\x20discharge\x20any\x20post-deploy\x20module\x20obligations\x20the\x20guide\x20listed\x20under\x20harness_check.module_gaps.':y>0x0?'A\x20publish\x20step\x20was\x20BLOCKED\x20by\x20the\x20freeze\x20gate\x20—\x20the\x20store\x20is\x20NOT\x20live.\x20Fix\x20the\x20listed\x20preflight\x20checks\x20at\x20the\x20SOURCE\x20(re-run\x20template_generate);\x20never\x20patch\x20plan\x20steps\x20by\x20hand.':'Step\x20\x27'+(z?.['stepId']??'?')+'\x27\x20FAILED:\x20'+(z?.['error']??'unknown')+'.\x20RESUME\x20—\x20do\x20NOT\x20re-run\x20from\x20scratch\x20(duplicate\x20objects):\x20send\x20plan_execute\x20again\x20with\x20completed_steps\x20=\x20every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27\x20in\x20this\x20response,\x20and\x20previous_outputs\x20=\x20this\x20response\x27s\x20outputs.'};break;}case'migration_review':{if(!b['log'])throw new Error('\x27log\x27\x20is\x20required\x20for\x20action=\x27migration_review\x27');const A=b['log'],B=Array['isArray'](A['mapped'])?A['mapped']:[],C=Array['isArray'](A['unmapped'])?A['unmapped']:[],D=Array['isArray'](A['manual_review'])?A['manual_review']:[],E=A['risk_check']??{},F=A['source']?.['matched_template']??'',G=C['length']===0x0&&D['length']===0x0&&E['passed']===!![];f={'action':'migration_review','log':A,'review_summary':{'mapped_count':B['length'],'unmapped_count':C['length'],'manual_review_count':D['length'],'risk_passed':E['passed']===!![]},'next_action':G?'Review\x20clean.\x20Proceed:\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+F+'\x27\x20to\x20produce\x20the\x20creation\x20plan\x20(network\x20defaults\x20to\x20testnet;\x20mainnet\x20requires\x20explicit\x20user\x20confirmation).':'Surface\x20the\x20'+C['length']+'\x20unmapped\x20and\x20'+D['length']+'\x20manual_review\x20items'+(E['passed']===!![]?'':'\x20plus\x20the\x20risk_check\x20findings')+'\x20to\x20the\x20user\x20for\x20a\x20decision\x20before\x20action=\x27migration_apply\x27\x20(template_id=\x27'+F+'\x27).'};break;}case'migration_apply':{const H=requireTemplate(b['template_id'],'migration_apply'),I=scanTemplate(H);assertScanPassed(I,'migration_apply');const J=b['network']??'testnet',K=await runGuide(H,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const L=scanSummary(I,driftFace(H['id'])),M=buildVerdict(L,K);return{'action':'migration_apply','template_id':H['id'],'network':J,...e,'scan':L,'plan':K,'verdict':M,'next_action':planNextAction(K,'migration_apply',M)};})());break;}default:throw new Error('Unknown\x20benchmark_migration_operation\x20action:\x20'+String(b['action']));}return{'content':[{'type':'text','text':JSON['stringify']({'result':f})}],'structuredContent':{'result':f}};}
1
+ import{strictParse}from'../../schema/index.js';import{BenchmarkMigrationSchema}from'../../schema/benchmark-migration/index.js';import{getTemplate,listTemplates,validateAllocatorRows,platformShareBps,builtinTemplateDrift}from'../../knowledge/template-loader.js';import{BUILTIN_TEMPLATES,auditTemplateOnceSlotArms,BUILTIN_TEMPLATES_VERSION,DISCOVERY_PRODUCT_REFS,DISCOVERY_TAG_VOCABULARY,discoveryTagsForTemplate}from'../../knowledge/builtin-templates.js';import{landPlatformCommission}from'../../knowledge/commission-landing.js';import{scanTemplate,buildFeeParamLandingTable}from'../../knowledge/template-scanner.js';import{planMigration}from'../../playbooks/service-build/migration-planner.js';import{handleMerchantGuide}from'../../playbooks/service-build/merchant-guide.js';import{inferArbitration}from'../../playbooks/service-build/intent-analyzer.js';import{getIndustryModeRegistry}from'../../extensions/index.js';import{listIndustries,resolveIndustryName}from'../../knowledge/industry-registry.js';import{claimNumber,discoverySignal,normalizeSemanticIR}from'../../knowledge/semantic-ir.js';import{handleRecommendIndustry}from'../../playbooks/service-build/mode-actions.js';import{handlerExecutor,materializePlan}from'../../composition/materialize.js';import{LocalMark}from'@wowok/wowok';import{join,dirname}from'node:path';import{fileURLToPath}from'node:url';import{computeSrcDistStaleness}from'../upgrade-check.js';const __dirname=dirname(fileURLToPath(import.meta.url));function collectLateMarks(a,b=new Set()){if(Array['isArray'](a)){for(const c of a)collectLateMarks(c,b);return b;}if(a&&typeof a==='object'){const d=a,e=d['$late'];if(e&&typeof e==='object'){const f=e;if(f['by']==='local_name'&&typeof f['mark']==='string')b['add'](f['mark']);}for(const g of Object['values'](d))collectLateMarks(g,b);}return b;}export function platformMarkRefusal(a,b){const c=a['toLowerCase']()['replace'](/^0x/,'');if(/^0x[0-9a-fA-F]{1,64}$/['test'](a)&&!/^0+$/['test'](c))return undefined;return'action=\x27plan_execute\x27:\x20the\x20LocalMark\x20\x27platform\x27\x20resolves\x20to\x20\x27'+a+'\x27\x20on\x20'+b+'\x20network\x20—\x20not\x20a\x20usable\x20account\x20address.\x20'+'This\x20plan\x20names\x20\x27platform\x27\x20as\x20a\x20settlement\x20recipient\x20and\x20order_allocators\x20freezes\x20at\x20Service\x20publish,\x20so\x20a\x20wrong\x20payee\x20can\x20only\x20be\x20fixed\x20by\x20re-publishing\x20the\x20Service.\x20'+'An\x20empty\x20name\x20makes\x20the\x20SDK\x20substitute\x20the\x20deploying\x20account\x20(the\x20share\x20lands\x20in\x20whoever\x20runs\x20the\x20deploy);\x20an\x20object-id\x20/\x20zero-address\x20recipient\x20is\x20transferred\x20and\x20cannot\x20be\x20retrieved.\x20'+'Re-point\x20the\x20mark\x20at\x20a\x20real\x20account\x20address\x20—\x20local_mark_operation\x20{add:{op:\x22add\x22,data:[{name:\x22platform\x22,address:\x220x...\x22}]}}\x20—\x20then\x20re-run.\x20Nothing\x20was\x20executed.';}export function staleBuildFace(a=join(__dirname,'..','..','..','src'),b=join(__dirname,'..','..','..','dist')){let c=null;try{c=computeSrcDistStaleness(a,b,{'srcExt':'.ts','distExt':'.js'});}catch{c=null;}if(!c)return{'stale':![],'known':![],'lag_minutes':null,'detail':'Stale-build\x20state\x20UNKNOWN\x20—\x20the\x20source\x20and\x20build-output\x20trees\x20were\x20not\x20both\x20resolvable\x20(installed\x20dist-only\x20'+'package\x20or\x20a\x20build\x20in\x20progress),\x20so\x20template\x20freshness\x20could\x20not\x20be\x20verified.\x20Treat\x20the\x20'+'scan/plan\x20verdicts\x20as\x20unconfirmed.'};if(!c['stale'])return{'stale':![],'known':!![],'lag_minutes':c['lag_minutes'],'detail':'dist\x20is\x20current\x20with\x20src\x20(newest\x20compiled\x20.js\x20vs\x20newest\x20source\x20.ts\x20mtime\x20lag\x20'+c['lag_minutes']+'\x20'+'minute(s))\x20—\x20the\x20scan/plan\x20verdicts\x20reflect\x20this\x20workspace\x20checkout.'};return{'stale':!![],'known':!![],'lag_minutes':c['lag_minutes'],'detail':'dist\x20is\x20'+c['lag_minutes']+'\x20minute(s)\x20OLDER\x20than\x20src\x20(newest\x20compiled\x20.js\x20vs\x20newest\x20source\x20.ts\x20mtime)\x20'+'—\x20the\x20scan/plan\x20above\x20may\x20describe\x20superseded\x20template\x20knowledge.\x20Rebuild\x20(pnpm\x20build)\x20and\x20re-run\x20'+'before\x20acting\x20on\x20these\x20verdicts.'};}function templateSummary(a){return{'id':a['id'],'industry':a['industry'],'variant':a['variant'],'product_ref':a['product_ref'],'archetype':a['archetype'],'key_risk':a['key_risk'],'node_count':a['machine_shape']['length'],'guard_count':a['guards']['length'],'recommended_role':a['recommended_role'],'tags':discoveryTagsForTemplate(a['id'])};}function templateGetAids(a){const b=a['machine_shape']['some'](c=>c['name']==='reviewed');return{'claim_anchor':b?'review_node+final':'final_only','claim_anchor_note':b?'machine_shape\x20mounts\x20a\x20\x27reviewed\x27\x20node\x20—\x20the\x20buyer\x27s\x20structured\x20review\x20rides\x20that\x20node\x20alongside\x20the\x20final\x20settlement.':'no\x20\x27reviewed\x27\x20node\x20—\x20sanctioned\x20variant:\x20the\x20buyer\x27s\x20voice\x20rides\x20the\x20claim/arbitration\x20rail\x20only\x20(no\x20separate\x20review\x20stop).','allocator_count_note':'allocator.count\x20=\x20'+a['allocator']['count']+'\x20counts\x20SETTLEMENT-track\x20legs\x20only;\x20refund-track\x20legs\x20(rows[]\x20with\x20track:\x22refund\x22)\x20are\x20additional\x20and\x20NOT\x20included\x20in\x20this\x20count.\x20rows[]\x20carries\x20the\x20complete\x20executable\x20split\x20plan.','onchain_field_notes':['passport.impack\x20—\x20the\x20on-chain\x20field\x20is\x20spelled\x20`impack`\x20(the\x20on-chain\x20passport\x20contract\x27s\x20own\x20field\x20name,\x20packed\x20business\x20objects\x20in\x20the\x20passport\x20verification\x20context).\x20It\x20is\x20the\x20contract\x27s\x20own\x20field\x20name,\x20not\x20a\x20typo;\x20echo\x20it\x20verbatim.']};}function requireTemplate(a,b){if(!a)throw new Error('\x27template_id\x27\x20is\x20required\x20for\x20action=\x27'+b+'\x27');const c=getTemplate(a);if(!c)throw new Error('Unknown\x20template\x20id:\x20'+a+'\x20(use\x20action=\x27template_list\x27\x20to\x20see\x20valid\x20ids)');return c;}function driftFace(a){const b=builtinTemplateDrift()['find'](c=>c['template']===a);if(!b){const c=BUILTIN_TEMPLATES['some'](d=>d['id']===a);return c?{'template':a,'state':'current','catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':![],'repairable':![],'detail':'disk\x20body\x20matches\x20the\x20shipped\x20catalog\x20(hash-verified\x20sentinel)'}:{'template':a,'state':'untracked','catalog_version':undefined,'blocked':![],'repairable':![],'detail':'user-authored\x20template\x20—\x20no\x20builtin\x20catalog\x20binding\x20to\x20compare\x20against'};}return{'template':b['template'],'state':b['state'],'catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':!![],'repairable':b['repairable'],'detail':b['detail']};}function withOnceSlotAdvisories(a){try{const b=auditTemplateOnceSlotArms()['find'](c=>c['template_id']===a['template_id']);if(!b)return a;return{...a,'findings':[...a['findings'],{'rule_id':'R-ONCE-SLOT-ARM-254','severity':'medium','title':'Once-slot\x20arming\x20on\x20a\x20periodic\x20rail\x20('+b['kind']+')','detail':b['message'],'suggestion':'Arm\x20the\x20re-enterable\x20settlement/renewal\x20guard\x20with\x20identifier\x20255\x20plus\x20a\x20per-period\x20key\x20(period-<N>\x20from\x20chain\x20state,\x20e.g.\x20progress\x20history\x20count)\x20and\x20have\x20the\x20trigger\x20Passport\x20submit\x20the\x20same\x20value;\x20keep\x20254\x20for\x20one-shot-per-order\x20rails\x20only.\x20Re-run\x20action=\x27template_scan\x27\x20after\x20the\x20fix.'}]};}catch{return a;}}function scanSummary(a,b){a=withOnceSlotAdvisories(a);const c={};for(const d of a['findings'])c[d['severity']]=(c[d['severity']]??0x0)+0x1;return{'template_id':a['template_id'],'risk_level':a['risk_level'],'preflight_scan_passed':a['red_flags']['length']===0x0,'finding_count':a['findings']['length'],'findings_by_severity':c,'red_flags':a['red_flags'],'findings':a['findings'],'drift':b};}function assertScanPassed(a,b){const c=a['red_flags'];if(a['passed']||c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20CRITICAL\x20risk\x20—\x20'+c['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}const GENERATE_HIGH_TOLERATED=new Set([]);function assertGenerateScanPassed(a,b){assertScanPassed(a,b);if(b!=='template_generate')return;const c=generateHighBlockers(a['template_id'],a['findings']);if(c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20'+c['length']+'\x20HIGH\x20finding(s)\x20—\x20'+c['map'](d=>(d['rule_id']??'HIGH')+':\x20'+d['title'])['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}function generateHighBlockers(a,b){return b['filter'](c=>c['severity']==='high'&&!(c['rule_id']&&GENERATE_HIGH_TOLERATED['has'](a+'/'+c['rule_id'])));}export function buildVerdict(a,b,c){const d=[];!a['preflight_scan_passed']&&d['push']('scan:\x20'+(a['findings_by_severity']['critical']??0x0)+'\x20CRITICAL\x20finding(s)\x20(preflight\x20scan\x20failed)');if(c){const j=generateHighBlockers(a['template_id'],a['findings']??[]);j['length']>0x0&&d['push']('scan:\x20'+j['length']+'\x20HIGH\x20finding(s)\x20—\x20template_generate\x20would\x20refuse\x20(N-21):\x20'+j['map'](k=>((k['rule_id']??'HIGH')+':\x20'+(k['title']??''))['trim']())['join'](';\x20'));}const e=b['graph_validation'];if(e&&e['valid']===![]){const k=Array['isArray'](e['hard_violations'])?e['hard_violations']['length']:0x0,l=Array['isArray'](e['hard_violations'])?e['hard_violations']['map'](m=>m['id'])['join'](',\x20'):'';d['push']('graph_validation:\x20'+k+'\x20hard\x20violation(s)'+(l?'\x20('+l+')':''));}const f=b['audit'];if(f&&f['blocking']===!![]){const m=(f['findings']??[])['filter'](n=>n['level']==='critical'||n['level']==='high');d['push'](m['length']===0x0?'audit:\x20guide\x20audit\x20flagged\x20blocking\x20issue(s)\x20(plan.audit)':'audit:\x20'+m['length']+'\x20blocking\x20finding(s)\x20—\x20'+m['slice'](0x0,0x5)['map'](n=>((n['rule_id']??'?')+':\x20'+(n['title']??''))['trim']())['join'](';\x20')+(m['length']>0x5?'\x20(+'+(m['length']-0x5)+'\x20more\x20in\x20plan.audit.findings)':''));}const g=b['harness_check'],h=[...new Set((g?.['blocking_issues']??[])['filter'](n=>n['module']==='template')['flatMap'](n=>n['missing_constraints']??[]))];h['length']>0x0&&d['push']('compile:\x20'+h['length']+'\x20blocker(s)\x20—\x20merchant_guide\x20refuses\x20to\x20materialize\x20this\x20plan:\x20'+h['join'](',\x20'));const i=d['length']===0x0;return{'buildable':i,'blockers':d,'status':i?'READY':'BLOCKED'};}async function templateScanDryRun(a){const b=[{'name':'scan-probe','price':'1000000000','quantity':0x1}],c=a['review_mode']==='review_reward'?{'review_mode':'review_reward','reward_funding':'20000000','reward_claim_amount':'1000000'}:undefined;try{const d=await runGuide(a,undefined,undefined,undefined,c,b),f=buildVerdict(scanSummary(scanTemplate(a)),d,!![]);return{'status':f['buildable']?'ready':'blocked','buildable':f['buildable'],'blockers':f['blockers'],'note':'Compile\x20dry-run\x20on\x20synthetic\x20probe\x20inputs\x20(single\x20probe\x20SKU,\x20benchmark\x20reward\x20funding),\x20mirrored\x20to\x20the\x20template_generate\x20gate\x20(CRITICAL\x20+\x20N-21\x20HIGH\x20+\x20graph\x20+\x20audit).\x20Structural\x20blockers\x20are\x20REAL\x20—\x20the\x20generate\x20face\x20refuses\x20for\x20the\x20same\x20reason.\x20Blockers\x20naming\x20caller\x20inputs\x20(fee_overrides\x20/\x20guard_resolutions\x20/\x20catalog)\x20may\x20clear\x20with\x20real\x20values.'};}catch(g){return{'status':'unavailable','note':'Compile\x20dry-run\x20could\x20not\x20run\x20on\x20synthetic\x20probe\x20inputs\x20('+(g instanceof Error?g['message']:String(g))+').\x20This\x20is\x20a\x20probe\x20limitation,\x20NOT\x20a\x20template\x20verdict\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};}}export function planNextAction(a,b,c){const d=a['next_action'];if(typeof d==='string'&&d['startsWith']('Plan\x20ready.'))return d;if(c?.['buildable']){const f=Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']['length']:0x0;return'Plan\x20is\x20buildable\x20(verdict.buildable=true).\x20Materialize\x20the\x20objects\x20in\x20plan.steps\x20order'+(f>0x0?',\x20resolving\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20before\x20the\x20Machine\x20publish':'')+'.';}const e=Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']['length']:0x0;return'Plan\x20BLOCKED\x20by\x20the\x20guide\x20audit\x20(see\x20plan.audit\x20/\x20plan.next_action).\x20Do\x20NOT\x20materialize,\x20'+'and\x20do\x20NOT\x20hand-build\x20the\x20objects\x20instead:\x20this\x20plan\x20is\x20the\x20wiring\x20authority\x20(Arbitration\x20+\x20'+'compensation-fund,\x20Contact/um,\x20allocator\x20rows)\x20and\x20hand-built\x20replicas\x20silently\x20drop\x20those\x20wirings.\x20'+(e>0x0?'Resolve\x20the\x20'+e+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20':'Adjust\x20fee_overrides,\x20pick\x20another\x20template\x20variant,\x20or\x20fix\x20the\x20template,\x20')+('then\x20re-run\x20action=\x27'+b+'\x27.');}function templateIntent(a,b){if(b&&b['trim']())return b['trim']();return'Adopt\x20the\x20'+a['id']+'\x20industry\x20archetype\x20template\x20('+a['archetype']+')\x20for\x20the\x20'+a['industry']+'\x20industry.\x20'+('Primary\x20risk\x20to\x20mitigate:\x20'+a['key_risk']+'.');}function effectiveFeeParams(a,b){return{...a['fee_params'],...b??{}};}const REWARD_POOL_PATTERNS=[/(?:reward|review|bonus|tip|prize)[\s-]*pools?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:reward|review|bonus|tip|prize)[\s-]*pools?\b/i];export function extractRewardPoolCandidate(a){if(!a)return undefined;for(const b of REWARD_POOL_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function rewardPoolPrefill(a,b,c,d){if(a['fee_params']['review_reward_pool']===undefined)return undefined;if(c?.['review_reward_pool']!==undefined)return undefined;const e=d?claimNumber(d,'reward_pool_amount'):undefined;if(e!==undefined)return{'fee_key':'review_reward_pool','value':e,'claim_source':'semantic_ir'};const f=extractRewardPoolCandidate(b);return f===undefined?undefined:{'fee_key':'review_reward_pool','value':f};}const FUNDING_THRESHOLD_PATTERNS=[/(?:funding|campaign|round)[\s-]*(?:threshold|goal)s?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:funding|campaign|round)[\s-]*(?:threshold|goal)\b/i],MIN_ORDER_PATTERNS=[/(?:min(?:imum)?)\s+order(?:\s+(?:price|value|amount))?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:min(?:imum)?)\s+order\b/i];export function extractFundingThresholdCandidate(a){if(!a)return undefined;for(const b of FUNDING_THRESHOLD_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}export function extractMinOrderCandidate(a){if(!a)return undefined;for(const b of MIN_ORDER_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function numericFeePrefill(a,b,c,d,e,f,g){if(a['fee_params'][b]===undefined)return undefined;if(f?.[b]!==undefined)return undefined;const h=g?claimNumber(g,c):undefined;if(h!==undefined)return{'fee_key':b,'value':h,'claim_source':'semantic_ir'};const i=d(e);return i===undefined?undefined:{'fee_key':b,'value':i};}function validateFeeParams(a,b){const c=[];let d=0x0;for(const [e,f]of Object['entries'](a)){if(typeof f!=='number'||!Number['isFinite'](f))continue;if(e['endsWith']('_bps')){(!Number['isInteger'](f)||f<0x0||f>0x2710)&&c['push'](e+'='+f+'\x20is\x20not\x20an\x20integer\x20rate\x20in\x20[0,\x2010000]\x20bps');if(e['endsWith']('_share_bps'))d+=Math['max'](0x0,f);}else{if(e['endsWith']('_days')){if(f<=0x0||f>0xe42)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x203650]\x20days');}else{if(e['endsWith']('_hours')){if(f<=0x0||f>0x2238)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x208760]\x20hours');}}}}if(d>0x2710)c['push']('*_share_bps\x20sum\x20'+d+'\x20exceeds\x2010000\x20(a\x20pool\x20splits\x20into\x20at\x20most\x20100%)');if(c['length']>0x0)throw new Error('invalid\x20fee\x20parameters\x20for\x20template\x20\x27'+b+'\x27:\x20'+c['join'](';\x20')+'.\x20'+'Correct\x20the\x20template\x27s\x20fee_params\x20or\x20pass\x20valid\x20\x27fee_overrides\x27.');}export{validateAllocatorRows};export function variantPaymentModel(a){if(a['payment_model'])return a['payment_model'];const b=a['allocator']['rows']??[];if(b['some'](d=>d['track']==='refund'))return'escrow';const c=a['machine_shape']['map'](d=>d['name'])['join']('\x20')['toLowerCase']();if(/\b(milestone|revision|revis|draft|deliverable)\b/['test'](c))return'milestone';if(/\b(charge|renew|subscription|cycle|billing|monthly)\b/['test'](c))return'subscription';return'escrow';}function variantRefundPolicy(a){const b=a['allocator']['description']['toLowerCase']();if(/full[ -]?refund|100% refund|refund .*100/['test'](b))return'full';if(/pro-?rata|prorated/['test'](b))return'milestone_prorated';if(/partial/['test'](b))return'partial';return undefined;}export function variantDeliverables(a,b){const c=a['machine_shape']['filter'](g=>g['semantic_role']==='final'),d=c[c['length']-0x1]??[...a['machine_shape']]['reverse']()['find'](g=>!/refund|cancel|dispute|terminat/i['test'](g['name']+'\x20'+g['role']))??a['machine_shape'][a['machine_shape']['length']-0x1],e=b?.['has_logistics']?'physical':b?.['pure_digital']?'digital':'service_session',f=(a['guards']??[])['filter'](h=>/repository_data_check|required_info_evidence_gate|allocator_order_anchor/['test'](h['template_id']));return[{'name':a['variant']+'\x20fulfillment','type':e,'acceptanceCriteria':'Order\x20reaches\x20the\x20terminal\x20workflow\x20node\x20\x27'+d['name']+'\x27\x20('+d['role']+')','proofOfDelivery':f['length']>0x0?'wip_hash':'manual_confirm'}];}function validateConditionalParams(a,b){for(const d of a['conditional_guards']??[]){const e=b[d['param']];if(e===undefined)continue;if(typeof e!=='string'||!d['values']['includes'](e))throw new Error('invalid\x20\x27'+d['param']+'='+String(e)+'\x27\x20for\x20template\x20\x27'+a['id']+'\x27:\x20must\x20be\x20one\x20of\x20'+d['values']['map'](f=>'\x27'+f+'\x27')['join']('\x20|\x20')+('\x20(the\x20guard\x20variant\x20mounts\x20at\x20\x27'+d['emit_value']+'\x27)'));}}async function runGuide(a,b,c,d,e,f,g){const h=effectiveFeeParams(a,c),i=rewardPoolPrefill(a,b,c,g);if(i)h[i['fee_key']]=i['value'];const j=numericFeePrefill(a,'funding_threshold','funding_threshold_amount',extractFundingThresholdCandidate,b,c,g);if(j)h[j['fee_key']]=j['value'];const k=numericFeePrefill(a,'min_order_price','min_order_price_amount',extractMinOrderCandidate,b,c,g);if(k)h[k['fee_key']]=k['value'];validateFeeParams(h,a['id']),validateConditionalParams(a,h);const l=landPlatformCommission(a,h);if(l['error']!==undefined)throw new Error(l['error']);const m=l['rows']?{...a,'allocator':{...a['allocator'],'rows':l['rows'],'count':l['rows']['filter'](y=>y['track']==='settlement')['length']}}:a,n=getIndustryModeRegistry()['getMode'](a['industry']),o=platformShareBps(h),q={'model':variantPaymentModel(a)},r=[],s=(m['allocator']['rows']?.['length']??0x0)>0x0;if(o!==undefined&&o>0x0&&!s&&a['allocator']['mode']==='rate'){const y=Math['round'](o)/0x64;r['push']({'recipient':'merchant','percentage':Math['round']((0x64-y)*0x64)/0x64}),r['push']({'recipient':'platform','percentage':y}),q['allocation']=r;}const u=variantRefundPolicy(a),v={'escrow':!![]};if(u)v['refundPolicy']=u;v['arbitration']=a['arbitration_mode']??v['arbitration']??inferArbitration(templateIntent(a,b));const w=await handleMerchantGuide({'intent':templateIntent(a,b),'guide_confirm':{'industry':a['industry'],'payment':q,'trust':v,'deliverables':variantDeliverables(a,n?.['traits']),...d&&Object['keys'](d)['length']>0x0?{'guard_resolutions':d}:{},...e?.['review_mode']?{'review_mode':e['review_mode']}:{},...e?.['reward_funding']!==undefined?{'reward_funding':e['reward_funding']}:{},...e?.['reward_claim_amount']!==undefined?{'reward_claim_amount':e['reward_claim_amount']}:{},...e?.['after_sales_mode']?{'after_sales_mode':e['after_sales_mode']}:{},...e?.['acceptance_mode']?{'acceptance_mode':e['acceptance_mode']}:{},...e?.['installment_mode']?{'installment_mode':e['installment_mode']}:{},...e?.['affiliate_mode']?{'affiliate_mode':e['affiliate_mode']}:{},...e?.['crowdfunding_mode']?{'crowdfunding_mode':e['crowdfunding_mode']}:{},...e?.['logistics_mode']?{'logistics_mode':e['logistics_mode']}:{},...f?.['length']?{'sales':f}:{}},'template_override':{...m,'fee_params':h},'name_base':a['id']});m['allocator']['rows']?.['length']&&(w['template_allocator_rows']=m['allocator']['rows']['map'](z=>({...z})));if(l['landing']!==undefined)w['commission_landing']=l['landing'];w['template']={'id':a['id'],'archetype':a['archetype'],'recommended_role':a['recommended_role'],'fee_params':h},w['catalog_version']=BUILTIN_TEMPLATES_VERSION;{const z=[...collectLateMarks(w['plan']??{})]['sort']();z['length']>0x0&&(w['required_local_marks']=z,w['required_local_marks_note']='plan_execute\x20resolves\x20each\x20of\x20these\x20local\x20names\x20against\x20the\x20LocalMark\x20store\x20of\x20the\x20target\x20network\x20and\x20refuses\x20to\x20execute\x20while\x20any\x20is\x20unregistered.\x20'+'Register\x20them\x20BEFORE\x20executing\x20(local_mark_operation\x20add).\x20A\x20name\x20that\x20matches\x20an\x20object\x20this\x20plan\x20itself\x20creates\x20is\x20bound\x20to\x20that\x20object\x20automatically.\x20'+'A\x20recipient\x20mark\x20must\x20point\x20at\x20a\x20real\x20account\x20address:\x20an\x20empty\x20name\x20makes\x20the\x20SDK\x20substitute\x20the\x20deploying\x20account\x20(the\x20share\x20lands\x20in\x20whoever\x20runs\x20the\x20deploy),\x20and\x20an\x20object-id\x20/\x20zero-address\x20recipient\x20is\x20transferred\x20and\x20cannot\x20be\x20retrieved.\x20'+'A\x20Rate-0\x20Entity\x20leg\x20still\x20listed\x20in\x20template_allocator_rows\x20is\x20dropped\x20at\x20compile\x20time\x20and\x20needs\x20no\x20mark\x20(the\x20direct-sales\x20default\x20pays\x20nobody).');}w['template_fee_param_landings']=buildFeeParamLandingTable(m,h);if(c&&Object['keys'](c)['length']>0x0)w['template_fee_overrides']=c;const x=[];if(i)x['push'](i);if(j)x['push'](j);if(k)x['push'](k);if(x['length']>0x0){w['fee_overrides_prefills']=x;for(const A of x){const B=A['fee_key']==='review_reward_pool'?'Reward\x20pool':A['fee_key']==='funding_threshold'?'Funding\x20threshold':'Minimum\x20order',C=A['claim_source']==='semantic_ir'?'\x20(from\x20the\x20semantic\x20IR\x20claim)':'';w['next_action']=w['next_action']+'\x20'+B+'\x20prefilled\x20from\x20your\x20request:\x20'+A['value']+C+'\x20—\x20adjust\x20via\x20fee_overrides.';}}return w;}export async function handleBenchmarkMigrationOperation(a){const b=strictParse(BenchmarkMigrationSchema,a,'benchmark_migration_operation\x20input'),c=b['industry']?resolveIndustryName(b['industry'])??b['industry']['toLowerCase']():undefined,d=b['semantic_ir']?normalizeSemanticIR(b['semantic_ir'],{'source_text':b['description']}):undefined,e=d?{'semantic_ir_digest':d['digest'],...d['issues']['length']>0x0?{'semantic_ir_issues':d['issues']}:{}}:undefined;let f;switch(b['action']){case'template_list':{const {templates:g,errors:h}=listTemplates(),i=c?g['filter'](k=>k['industry']===c):g,j=new Map(builtinTemplateDrift()['map'](k=>[k['template'],k['state']]));f={'action':'template_list','count':i['length'],'templates':i['map'](k=>({...templateSummary(k),'disk_state':j['get'](k['id'])??(BUILTIN_TEMPLATES['some'](l=>l['id']===k['id'])?'current':'untracked')})),'discovery_vocabulary':{'industries':listIndustries()['map'](k=>k['name'])['sort'](),'tags':[...DISCOVERY_TAG_VOCABULARY],'product_refs':[...DISCOVERY_PRODUCT_REFS]},'load_errors':h};break;}case'template_get':{const k=requireTemplate(b['template_id'],'template_get');f={'action':'template_get','template':{...k,...templateGetAids(k)}};break;}case'template_generate':{const l=requireTemplate(b['template_id'],'template_generate'),m=b['review_mode']??l['review_mode']??'none',n=[];m==='review_reward'&&!b['reward_funding']&&n['push']('reward_funding\x20is\x20required:\x20template\x20\x27'+l['id']+'\x27\x20resolves\x20to\x20review_mode\x20\x27review_reward\x27\x20(input'+(b['review_mode']?'':'\x20via\x20template\x20declaration')+'),\x20which\x20promises\x20buyers\x20a\x20claimable\x20review\x20bounty\x20—\x20an\x20unfunded\x20pool\x20must\x20not\x20ship\x20(INV-4).\x20Pass\x20reward_funding\x20(smallest-unit\x20string;\x20expected\x20orders\x20x\x20per-order\x20reward\x20—\x20fee_param\x20review_reward_pool\x20is\x20the\x20planning\x20benchmark),\x20or\x20drop\x20the\x20mode\x20explicitly\x20(review_mode\x20\x27review\x27\x20keeps\x20the\x20review\x20rail\x20without\x20the\x20bounty;\x20\x27none\x27\x20removes\x20the\x20rail).');(!Array['isArray'](b['sales'])||b['sales']['length']===0x0)&&n['push']('sales\x20is\x20required:\x20a\x20plan\x20without\x20a\x20sellable\x20catalog\x20publishes\x20a\x20Service\x20frozen\x20with\x20sales:\x20[]\x20and\x20every\x20order_new\x20aborts\x20(PLAN-SALES-01,\x20upgraded\x20to\x20an\x20input\x20requirement,\x20amz9\x20A-2).\x20Pass\x20sales:\x20[{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}]\x20—\x20one\x20entry\x20per\x20sellable\x20SKU,\x20price\x20in\x20smallest\x20units\x20(wip_hash\x20from\x20the\x20wip_file\x20tool\x20upload).');if(n['length']>0x0)return{'content':[{'type':'text','text':'template_generate\x20refused\x20—\x20no\x20plan\x20was\x20built.\x20'+n['length']+'\x20input\x20gap(s),\x20ALL\x20listed\x20at\x20once\x20(AR-4\x20T-05):\x20'+n['map']((q,r)=>'('+(r+0x1)+')\x20'+q)['join']('\x20')}],'structuredContent':{'result':{'type':'error','error':'template_generate\x20input\x20preflight\x20failed\x20with\x20'+n['length']+'\x20gap(s)\x20on\x20template\x20\x27'+l['id']+'\x27\x20—\x20all\x20gaps\x20reported\x20in\x20this\x20single\x20response\x20(do\x20not\x20fix\x20one\x20and\x20rediscover\x20the\x20next).','error_code':'input_preflight_failed','retryable':!![],'recovery_hint':n['join']('\x20|\x20'),'gaps':n},'message':'Refused:\x20input\x20preflight\x20failed.\x20Fix\x20ALL\x20listed\x20gaps,\x20then\x20re-send\x20ONCE.\x20See\x20recovery_hint.'}};const o=scanTemplate(l);assertGenerateScanPassed(o,'template_generate');const p=await runGuide(l,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const q=scanSummary(o,driftFace(l['id'])),r=buildVerdict(q,p);return{'action':'template_generate','template_id':l['id'],...e,'stale_build':staleBuildFace(),'scan':q,'plan':p,'verdict':r,'next_action':planNextAction(p,'template_generate',r)};})());break;}case'template_scan':{const q=requireTemplate(b['template_id'],'template_scan'),r=await templateScanDryRun(q);f={'action':'template_scan','stale_build':staleBuildFace(),'scan':{...withOnceSlotAdvisories(scanTemplate(q)),'drift':driftFace(q['id']),'compile_dry_run':r},...r['status']==='unavailable'?{}:{'buildable':r['buildable']===!![],'build_blockers':r['blockers']??[]},'next_action':r['status']==='blocked'?'compile_dry_run\x20BLOCKED\x20—\x20the\x20static\x20rule\x20scan\x20passed,\x20but\x20the\x20compile\x20kernel\x20refuses\x20this\x20template\x20(see\x20build_blockers;\x20the\x20same\x20verdict\x20template_generate\x20enforces).\x20Do\x20NOT\x20publish\x20from\x20this\x20scan:\x20run\x20template_generate\x20for\x20the\x20full\x20verdict,\x20or\x20fix\x20the\x20template\x20and\x20re-scan.':r['status']==='ready'?'compile_dry_run\x20READY\x20on\x20probe\x20inputs\x20—\x20proceed\x20with\x20template_generate.':'compile_dry_run\x20unavailable\x20on\x20probe\x20inputs\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};break;}case'migration_import':{if(!b['description']||!b['description']['trim']())throw new Error('\x27description\x27\x20is\x20required\x20for\x20action=\x27migration_import\x27');const s=d?handleRecommendIndustry({'intent':b['description'],'semantic_ir':b['semantic_ir']}):undefined,t=planMigration({'url':b['url'],'description':b['description'],'industry':c,'ir_industry':c?undefined:s?.['recommendations'][0x0]?.['industry'],'ir_discovery':d?discoverySignal(d['ir']):undefined,'network':b['network']});if(!t)throw new Error('No\x20industry\x20template\x20matched\x20the\x20description.\x20Refine\x20the\x20description\x20or\x20pass\x20an\x20explicit\x20\x27industry\x27\x20hint'+(d?',\x20or\x20add\x20discovery\x20tags\x20/\x20a\x20product_ref\x20to\x20semantic_ir\x20(tags\x20vocabulary:\x20template_list.discovery_vocabulary).':'\x20(or\x20provide\x20semantic_ir\x20with\x20discovery\x20tags\x20/\x20traits\x20for\x20a\x20non-English\x20description).'));f={'action':'migration_import','log':t,...s?{'inference_source':s['inference_source']}:{},...e,'next_action':'MigrationLog\x20ready.\x20Next:\x20call\x20action=\x27migration_review\x27\x20with\x20this\x20log\x20to\x20surface\x20the\x20mapped/unmapped/manual_review\x20items\x20for\x20user\x20confirmation.'};break;}case'plan_execute':{if(!b['plan']||typeof b['plan']!=='object'||Array['isArray'](b['plan']))throw new Error('\x27plan\x27\x20is\x20required\x20for\x20action=\x27plan_execute\x27\x20—\x20pass\x20the\x20object\x20returned\x20under\x20\x27plan\x27\x20by\x20template_generate\x20verbatim');const u=b['plan'],v=u['plan']!==undefined&&typeof u['plan']==='object'&&!Array['isArray'](u['plan'])&&Array['isArray'](u['plan']['steps'])?u['plan']:u;if(!Array['isArray'](v['steps']))throw new Error('action=\x27plan_execute\x27:\x20the\x20passed\x20plan\x20carries\x20no\x20steps[]\x20—\x20pass\x20the\x20template_generate\x20\x27plan\x27\x20object\x20verbatim');const w=typeof v['catalog_version']==='number'?v['catalog_version']:undefined;if(w!==undefined&&w!==BUILTIN_TEMPLATES_VERSION)throw new Error('action=\x27plan_execute\x27:\x20STALE\x20PLAN\x20—\x20the\x20plan\x20was\x20generated\x20against\x20catalog\x20v'+w+',\x20'+('but\x20this\x20server\x20runs\x20catalog\x20v'+BUILTIN_TEMPLATES_VERSION+';\x20shapes,\x20guards\x20and\x20emissions\x20may\x20have\x20')+'changed\x20since.\x20Re-run\x20template_generate\x20(or\x20migration_apply)\x20to\x20regenerate\x20the\x20plan\x20against\x20the\x20'+'current\x20catalog,\x20then\x20execute\x20THAT\x20verbatim.\x20Nothing\x20was\x20executed.');const x=Array['isArray'](b['completed_steps'])&&b['completed_steps']['length']>0x0||b['previous_outputs']?{'completedSteps':b['completed_steps']??[],'outputs':b['previous_outputs']??{}}:undefined,y=((()=>{const K=new Map();for(const M of v['steps']??[]){const N=M['params'];M['op']==='create'&&typeof N?.['name']==='string'&&K['set'](N['name'],String(M['id']));}const L=O=>{if(Array['isArray'](O))return O['map'](L);if(O&&typeof O==='object'){const P=O,Q=P['$late'],R=Object['keys'](P);if(Q?.['by']==='local_name'&&typeof Q['mark']==='string'&&R['length']===0x1&&K['has'](Q['mark']))return{'$ref':K['get'](Q['mark'])};return Object['fromEntries'](Object['entries'](P)['map'](([S,T])=>[S,L(T)]));}return O;};return L(v);})()),z=[...collectLateMarks(y)],A=b['env']?.['network'],B=new Map(),C=[];for(const K of z){const L=await LocalMark['Instance']()['get_address'](K,A)['catch'](()=>undefined);if(typeof L==='string'&&L['length']>0x0)B['set'](K,L);else C['push'](K);}if(C['length']>0x0)throw new Error('action=\x27plan_execute\x27:\x20unresolved\x20LocalMark(s)\x20['+C['join'](',\x20')+']\x20on\x20'+(A??'default')+'\x20network.\x20'+'This\x20plan\x20pays\x20an\x20Entity\x20bound\x20by\x20local\x20name.\x20Register\x20the\x20mark\x20first\x20—\x20'+('local_mark_operation\x20{add:{op:\x22add\x22,data:[{name:\x22'+C[0x0]+'\x22,address:\x22<your\x20entity\x20address>\x22}]}}\x20—\x20then\x20re-run.\x20')+'Nothing\x20was\x20executed.');const D=B['get']('platform');if(D!==undefined){const M=platformMarkRefusal(D,A??'default');if(M!==undefined)throw new Error(M);}const E=await materializePlan(y,{'execute':handlerExecutor(b['env']),'envByAccount':b['accounts'],'timeoutMs':b['timeout_ms'],'resolveLate':N=>{if(N['by']==='address')return N['address'];const O=B['get'](N['mark']);if(O===undefined)throw new Error('unresolved\x20late\x20binding:\x20local_name\x20\x27'+N['mark']+'\x27');return O;}},x),F=E['steps']['filter'](N=>N['status']==='blocked')['length'],G=E['steps']['find'](N=>N['status']==='failed'),H=E['steps']['some'](N=>N['status']==='blocked'&&typeof N['error']==='string'&&N['error']['startsWith']('preflight\x20failed:')),I=E['steps']['find'](N=>N['status']==='failed'&&typeof N['digest']==='string'&&N['digest']['length']>0x0),J=E['steps']['find'](N=>N['status']==='blocked'&&typeof N['error']==='string'&&N['error']['startsWith']('time\x20budget'));f={'action':'plan_execute','completed':E['completed'],'steps':E['steps'],'outputs':E['outputs'],'preflight':{'issues':E['preflight']['issues'],'findings':E['preflight']['findings']},'readback':E['readback'],'next_action':E['completed']?'Deployed.\x20Verify\x20the\x20store\x20(query_toolkit:\x20service\x20/\x20machine\x20/\x20orders),\x20then\x20discharge\x20any\x20post-deploy\x20module\x20obligations\x20the\x20guide\x20listed\x20under\x20harness_check.module_gaps.':H?'A\x20publish\x20step\x20was\x20BLOCKED\x20by\x20the\x20freeze\x20gate\x20—\x20the\x20store\x20is\x20NOT\x20live.\x20Fix\x20the\x20listed\x20preflight\x20checks\x20at\x20the\x20SOURCE\x20(re-run\x20template_generate);\x20never\x20patch\x20plan\x20steps\x20by\x20hand.':I!==undefined?'Step\x20\x27'+I['stepId']+'\x27\x20FAILED\x20with\x20digest\x20'+I['digest']+'\x20—\x20the\x20transaction\x20MAY\x20have\x20committed\x20(transport\x20face).\x20VERIFY\x20FIRST:\x20onchain_transaction\x20with\x20that\x20digest.\x20If\x20committed:\x20ADOPT\x20it\x20—\x20add\x20\x27'+I['stepId']+'\x27\x20to\x20completed_steps\x20(and\x20its\x20created\x20object\x20address\x20to\x20previous_outputs)\x20in\x20the\x20resume\x20call.\x20If\x20confirmed\x20absent:\x20re-send\x20with\x20completed_steps/previous_outputs\x20from\x20this\x20response\x20alone.\x20Never\x20blind-resume\x20a\x20digest-bearing\x20failure\x20(ghost\x20duplicates).':E['budgetExhausted']?'Time\x20budget\x20('+String(b['timeout_ms'])+'ms)\x20reached\x20before\x20step\x20\x27'+(J?.['stepId']??'?')+'\x27\x20—\x20the\x20run\x20stopped\x20cleanly\x20mid-plan\x20with\x20NO\x20unknown-state\x20step.\x20RESUME:\x20send\x20plan_execute\x20again\x20with\x20the\x20SAME\x20plan,\x20completed_steps\x20=\x20every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27\x20in\x20this\x20response,\x20previous_outputs\x20=\x20this\x20response\x27s\x20outputs\x20('+F+'\x20step(s)\x20remain;\x20raise\x20or\x20omit\x20timeout_ms\x20to\x20take\x20fewer\x20slices).':'Step\x20\x27'+(G?.['stepId']??'?')+'\x27\x20FAILED:\x20'+(G?.['error']??'unknown')+'.\x20RESUME\x20—\x20do\x20NOT\x20re-run\x20from\x20scratch\x20(duplicate\x20objects):\x20send\x20plan_execute\x20again\x20with\x20completed_steps\x20=\x20every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27\x20in\x20this\x20response,\x20and\x20previous_outputs\x20=\x20this\x20response\x27s\x20outputs.'};break;}case'migration_review':{if(!b['log'])throw new Error('\x27log\x27\x20is\x20required\x20for\x20action=\x27migration_review\x27');const N=b['log'],O=Array['isArray'](N['mapped'])?N['mapped']:[],P=Array['isArray'](N['unmapped'])?N['unmapped']:[],Q=Array['isArray'](N['manual_review'])?N['manual_review']:[],R=N['risk_check']??{},S=N['source']?.['matched_template']??'',T=N['template_match']??{},U=typeof T['source']==='string'?T['source']:'unknown',V=typeof T['confidence']==='number'?T['confidence']:0x0,W=U==='unknown'||U==='industry_leader'||U==='ir_industry_fallback'||V<0.5,X=P['length']===0x0&&Q['length']===0x0&&R['passed']===!![]&&!W;f={'action':'migration_review','log':N,'review_summary':{'mapped_count':O['length'],'unmapped_count':P['length'],'manual_review_count':Q['length'],'risk_passed':R['passed']===!![],'template_match':{'template_id':S,'source':U,'confidence':V,'weak_match':W}},'next_action':X?'Review\x20clean.\x20Proceed:\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+S+'\x27\x20to\x20produce\x20the\x20creation\x20plan\x20(network\x20defaults\x20to\x20testnet;\x20mainnet\x20requires\x20explicit\x20user\x20confirmation).':W?'WEAK\x20TEMPLATE\x20MATCH:\x20\x27'+S+'\x27\x20was\x20chosen\x20by\x20\x27'+U+'\x27\x20at\x20confidence\x20'+V+'\x20—\x20a\x20fallback,\x20not\x20evidence\x20(ssng\x20A-1:\x20a\x20Chinese\x20one-liner\x20silently\x20built\x20the\x20wrong\x20store\x20this\x20way).\x20Play\x20the\x20match\x20back\x20to\x20the\x20user\x20and\x20confirm\x20the\x20business\x20model.\x20To\x20get\x20an\x20EVIDENCE-based\x20match,\x20translate\x20through\x20the\x20caller\x20mechanism\x20(any\x20locale\x20works;\x20translation\x20happens\x20in\x20the\x20caller,\x20never\x20in\x20keyword\x20tables):\x20produce\x20a\x20semantic_ir\x20carrying\x20discovery.english_summary\x20(an\x20English\x20restatement\x20of\x20the\x20intent),\x20discovery.tags\x20(each\x20from\x20template_list.discovery_vocabulary)\x20and\x20discovery.product_ref\x20(a\x20benchmark-product\x20slug),\x20with\x20every\x20evidence\x20quote\x20verbatim\x20in\x20the\x20description\x20—\x20then\x20re-run\x20migration_plan.\x20Only\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+S+'\x27\x20after\x20the\x20user\x20approves\x20THAT\x20template.':'Surface\x20the\x20'+P['length']+'\x20unmapped\x20and\x20'+Q['length']+'\x20manual_review\x20items'+(R['passed']===!![]?'':'\x20plus\x20the\x20risk_check\x20findings')+'\x20to\x20the\x20user\x20for\x20a\x20decision\x20before\x20action=\x27migration_apply\x27\x20(template_id=\x27'+S+'\x27).'};break;}case'migration_apply':{const Y=requireTemplate(b['template_id'],'migration_apply'),Z=scanTemplate(Y);assertScanPassed(Z,'migration_apply');const a0=b['network']??'testnet',a1=await runGuide(Y,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const a2=scanSummary(Z,driftFace(Y['id'])),a3=buildVerdict(a2,a1);return{'action':'migration_apply','template_id':Y['id'],'network':a0,...e,'scan':a2,'plan':a1,'verdict':a3,'next_action':planNextAction(a1,'migration_apply',a3)};})());break;}default:throw new Error('Unknown\x20benchmark_migration_operation\x20action:\x20'+String(b['action']));}return{'content':[{'type':'text','text':JSON['stringify']({'result':f})}],'structuredContent':{'result':f}};}
@@ -1 +1 @@
1
- import{listServices,getServiceInfo,toggle as a503a,setEnabled as a503b,reset as a503c}from'../../config/index.js';import{judgmentStatus,setJudgmentOverride,clearJudgmentOverride,clearJudgmentOverrides,patchUserJudgmentDoc,readUserJudgmentDocView}from'../../config/judgment.js';import{getStoreDualPayoutPolicy,setStoreDualPayoutPreauthorization,clearStoreDualPayoutPreauthorization}from'../../config/store-policy.js';import{strictParse}from'../../schema/index.js';import{ConfigOperationInputSchema}from'../../schema/config/index.js';import{LocalMark}from'@wowok/wowok';async function resolvePolicyAccount(a){const b=a['trim']();if(/^0x[0-9a-fA-F]{64}$/['test'](b))return b['toLowerCase']();try{const c=await LocalMark['Instance']()['get_address'](b)['catch'](()=>undefined)??undefined;if(typeof c==='string'&&/^0x[0-9a-fA-F]{64}$/['test'](c))return c['toLowerCase']();}catch{}return b['toLowerCase']();}export async function handleConfigOperation(a){const b=strictParse(ConfigOperationInputSchema,a,'config_operation\x20input'),{action:c,service:d,path:e,value:f}=b;let g;switch(c){case'list':g={'action':'list','services':listServices()};break;case'toggle':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20toggle');const h=d,i=getServiceInfo(h);if(!i)throw new Error('Unknown\x20service:\x20'+h+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(h==='confirm_gate'&&i['enabled'])throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');const j=a503a(h);g={'action':'toggle','service':h,'enabled':j,'reminder':i['reminder']};break;}case'disable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20disable');const k=d,l=getServiceInfo(k);if(!l)throw new Error('Unknown\x20service:\x20'+k+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(k==='confirm_gate')throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');a503b(k,![]),g={'action':'disable','service':k,'enabled':![],'reminder':l['reminder']};break;}case'enable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20enable');const m=d,n=getServiceInfo(m);if(!n)throw new Error('Unknown\x20service:\x20'+m+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a503b(m,!![]),g={'action':'enable','service':m,'enabled':!![],'reminder':n['reminder']};break;}case'reset':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20reset');const o=d,p=getServiceInfo(o);if(!p)throw new Error('Unknown\x20service:\x20'+o+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a503c(o),g={'action':'reset','service':o,'enabled':getServiceInfo(o)?.['enabled'],'reminder':p['reminder'],'reset':!![]};break;}case'info':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20info');const q=d,r=getServiceInfo(q);if(!r)throw new Error('Unknown\x20service:\x20'+q+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');g={'action':'info',...r};break;}case'judgment_list':g={'action':'judgment_list',...judgmentStatus()};break;case'judgment_set':{if(!e)throw new Error('\x27path\x27\x20param\x20is\x20required\x20for\x20judgment_set\x20(dotted,\x20e.g.\x20\x27evaluation.weights.trust_reviews\x27)');if(!('value'in b))throw new Error('\x27value\x27\x20param\x20is\x20required\x20for\x20judgment_set');const s=setJudgmentOverride(e,f);if(!s['ok'])throw new Error(s['error']);g={'action':'judgment_set','path':e,'value':f,'applied':!![]};break;}case'judgment_reset':{const t=e?clearJudgmentOverride(e)?0x1:0x0:clearJudgmentOverrides();g={'action':'judgment_reset',...e?{'path':e}:{},'cleared':t};break;}case'judgment_doc_read':{g={'action':'judgment_doc_read',...readUserJudgmentDocView()};break;}case'judgment_doc_patch':{if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20judgment_doc_patch\x20(a\x20partial\x20judgment\x20document\x20object,\x20e.g.\x20{\x22evaluation\x22:\x20{\x22weights\x22:\x20{…}}})');g={'action':'judgment_doc_patch',...patchUserJudgmentDoc(b['patch'])};break;}case'store_dual_payout_get':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_get\x20(the\x20store\x27s\x20signing\x20account)');const u=await resolvePolicyAccount(b['account']),v=getStoreDualPayoutPolicy(u);g={'action':'store_dual_payout_get','account':b['account'],'preauthorized':v?.['preauthorized']===!![],...v?.['authorized_at']?{'authorized_at':v['authorized_at']}:{},...v?.['note']?{'note':v['note']}:{},...v?.['network']?{'network':v['network']}:{}};break;}case'store_dual_payout_set':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_set\x20(the\x20store\x27s\x20signing\x20account)');const w=await resolvePolicyAccount(b['account']),x=setStoreDualPayoutPreauthorization(w,{'confirm':b['confirm']===!![],...b['note']?{'note':b['note']}:{}});g={'action':'store_dual_payout_set','account':b['account'],'preauthorized':!![],'authorized_at':x['authorized_at'],...x['note']?{'note':x['note']}:{},'reminder':'Recorded\x20as\x20a\x20HUMAN\x20merchant\x20decision\x20(D-1).\x20The\x20allocation\x20gate\x20now\x20honors\x20acknowledge_dual_payout\x20'+'for\x20this\x20store.\x20Keep\x20the\x20note\x20meaningful\x20—\x20this\x20is\x20the\x20audit\x20trail\x20for\x20a\x20standing\x20commercial\x20netting\x20policy.'};break;}case'store_dual_payout_clear':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_clear\x20(the\x20store\x27s\x20signing\x20account)');const y=await resolvePolicyAccount(b['account']),z=clearStoreDualPayoutPreauthorization(y);g={'action':'store_dual_payout_clear','account':b['account'],'cleared':z};break;}default:throw new Error('Unknown\x20config_operation\x20action:\x20'+String(c));}return{'content':[{'type':'text','text':JSON['stringify']({'result':g})}],'structuredContent':{'result':g}};}
1
+ import{listServices,getServiceInfo,toggle as a514a,setEnabled as a514b,reset as a514c}from'../../config/index.js';import{judgmentStatus,setJudgmentOverride,clearJudgmentOverride,clearJudgmentOverrides,patchUserJudgmentDoc,readUserJudgmentDocView}from'../../config/judgment.js';import{getStoreDualPayoutPolicy,setStoreDualPayoutPreauthorization,clearStoreDualPayoutPreauthorization}from'../../config/store-policy.js';import{strictParse}from'../../schema/index.js';import{ConfigOperationInputSchema}from'../../schema/config/index.js';import{LocalMark}from'@wowok/wowok';async function resolvePolicyAccount(a){const b=a['trim']();if(/^0x[0-9a-fA-F]{64}$/['test'](b))return b['toLowerCase']();try{const c=await LocalMark['Instance']()['get_address'](b)['catch'](()=>undefined)??undefined;if(typeof c==='string'&&/^0x[0-9a-fA-F]{64}$/['test'](c))return c['toLowerCase']();}catch{}return b['toLowerCase']();}export async function handleConfigOperation(a){const b=strictParse(ConfigOperationInputSchema,a,'config_operation\x20input'),{action:c,service:d,path:e,value:f}=b;let g;switch(c){case'list':g={'action':'list','services':listServices()};break;case'toggle':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20toggle');const h=d,i=getServiceInfo(h);if(!i)throw new Error('Unknown\x20service:\x20'+h+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(h==='confirm_gate'&&i['enabled'])throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');const j=a514a(h);g={'action':'toggle','service':h,'enabled':j,'reminder':i['reminder']};break;}case'disable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20disable');const k=d,l=getServiceInfo(k);if(!l)throw new Error('Unknown\x20service:\x20'+k+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(k==='confirm_gate')throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');a514b(k,![]),g={'action':'disable','service':k,'enabled':![],'reminder':l['reminder']};break;}case'enable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20enable');const m=d,n=getServiceInfo(m);if(!n)throw new Error('Unknown\x20service:\x20'+m+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a514b(m,!![]),g={'action':'enable','service':m,'enabled':!![],'reminder':n['reminder']};break;}case'reset':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20reset');const o=d,p=getServiceInfo(o);if(!p)throw new Error('Unknown\x20service:\x20'+o+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a514c(o),g={'action':'reset','service':o,'enabled':getServiceInfo(o)?.['enabled'],'reminder':p['reminder'],'reset':!![]};break;}case'info':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20info');const q=d,r=getServiceInfo(q);if(!r)throw new Error('Unknown\x20service:\x20'+q+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');g={'action':'info',...r};break;}case'judgment_list':g={'action':'judgment_list',...judgmentStatus()};break;case'judgment_set':{if(!e)throw new Error('\x27path\x27\x20param\x20is\x20required\x20for\x20judgment_set\x20(dotted,\x20e.g.\x20\x27evaluation.weights.trust_reviews\x27)');if(!('value'in b))throw new Error('\x27value\x27\x20param\x20is\x20required\x20for\x20judgment_set');const s=setJudgmentOverride(e,f);if(!s['ok'])throw new Error(s['error']);g={'action':'judgment_set','path':e,'value':f,'applied':!![]};break;}case'judgment_reset':{const t=e?clearJudgmentOverride(e)?0x1:0x0:clearJudgmentOverrides();g={'action':'judgment_reset',...e?{'path':e}:{},'cleared':t};break;}case'judgment_doc_read':{g={'action':'judgment_doc_read',...readUserJudgmentDocView()};break;}case'judgment_doc_patch':{if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20judgment_doc_patch\x20(a\x20partial\x20judgment\x20document\x20object,\x20e.g.\x20{\x22evaluation\x22:\x20{\x22weights\x22:\x20{…}}})');g={'action':'judgment_doc_patch',...patchUserJudgmentDoc(b['patch'])};break;}case'store_dual_payout_get':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_get\x20(the\x20store\x27s\x20signing\x20account)');const u=await resolvePolicyAccount(b['account']),v=getStoreDualPayoutPolicy(u);g={'action':'store_dual_payout_get','account':b['account'],'preauthorized':v?.['preauthorized']===!![],...v?.['authorized_at']?{'authorized_at':v['authorized_at']}:{},...v?.['note']?{'note':v['note']}:{},...v?.['network']?{'network':v['network']}:{}};break;}case'store_dual_payout_set':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_set\x20(the\x20store\x27s\x20signing\x20account)');const w=await resolvePolicyAccount(b['account']),x=setStoreDualPayoutPreauthorization(w,{'confirm':b['confirm']===!![],...b['note']?{'note':b['note']}:{}});g={'action':'store_dual_payout_set','account':b['account'],'preauthorized':!![],'authorized_at':x['authorized_at'],...x['note']?{'note':x['note']}:{},'reminder':'Recorded\x20as\x20a\x20HUMAN\x20merchant\x20decision\x20(D-1).\x20The\x20allocation\x20gate\x20now\x20honors\x20acknowledge_dual_payout\x20'+'for\x20this\x20store.\x20Keep\x20the\x20note\x20meaningful\x20—\x20this\x20is\x20the\x20audit\x20trail\x20for\x20a\x20standing\x20commercial\x20netting\x20policy.'};break;}case'store_dual_payout_clear':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_clear\x20(the\x20store\x27s\x20signing\x20account)');const y=await resolvePolicyAccount(b['account']),z=clearStoreDualPayoutPreauthorization(y);g={'action':'store_dual_payout_clear','account':b['account'],'cleared':z};break;}default:throw new Error('Unknown\x20config_operation\x20action:\x20'+String(c));}return{'content':[{'type':'text','text':JSON['stringify']({'result':g})}],'structuredContent':{'result':g}};}
@@ -1 +1 @@
1
- import{strictParse}from'../../schema/index.js';import{EvaluationOperationInputSchema}from'../../schema/evaluation/index.js';import{evaluateArbGame}from'../../evaluation/arbitration-game.js';import{evaluateNodeGame}from'../../evaluation/node-game.js';import{evaluatePathReasoning}from'../../evaluation/path-reasoning.js';import{assessEvidenceReview,reviewEvidenceList}from'../../knowledge/evidence-review.js';import{expandSearchScope,inferSensitivity,rankByLocation}from'../../evaluation/location-match.js';import{query_objects,ArbStatus,createQueryCoverage,discoveryDataSource,remoteIndexUrl}from'@wowok/wowok';import{enumerateServices,enumerateDemands,enumerateArbs,matchServicesViaIndex}from'../../knowledge/jsonrpc-enum.js';import{KNOWN_CAPABILITIES}from'../../data/api/match.js';import{fetchObjectLinkerCore,batchQueryObjectsByIds}from'../../graph/onchain/sdk-batch.js';import{summarizeCapabilityGaps}from'../../evaluation/gap.js';import{resolveNetwork}from'./network.js';import{composeServicesForDemand}from'../../evaluation/composer.js';import{matchDemandToServices,matchServiceToDemands}from'../../evaluation/builtins/demand-match.js';import{nextOperationForServiceMatch,nextOperationForDemandMatch,nextOperationForServiceOrder}from'../../evaluation/match-operation.js';import{extractDemandCapability}from'../../evaluation/extract.js';import{assessArbitration}from'../../evaluation/builtins/arbitration-score.js';import{resolveCategoryMatchRules,toSoftWeightInjection,applyHardConstraints}from'../../evaluation/category-match-rules.js';import{computeMarketMetrics,computeOrderFlow}from'../../knowledge/market-metrics.js';import{workflowSubgraphFromRows}from'../../graph/onchain/index.js';import{assessAntiCheat}from'../../knowledge/anti-cheat.js';import{computeJourneyFunnel,attributeReferrals,buildCustomerRelationships}from'../../knowledge/market-operations.js';import{suggestPricing}from'../../knowledge/dynamic-pricing.js';import{runAccountEventWatchers}from'../../customer/account-events.js';import{registerBuiltinEvaluations}from'../../evaluation/builtins/index.js';import{getEffectivePersona,mergeInjections}from'../../persona/index.js';import{buildUserInjection}from'../../evaluation/injection.js';import{applyDemandPolicyGates,applyPolicyGates,applyPolicyRerank,buildPolicyEffect,policyToInjection,rerankDemandMatches,resolveMatchPolicy}from'../../evaluation/match-policy.js';registerBuiltinEvaluations();function arbCaseFromObject(b){const c=typeof b['time']==='number'?b['time']:Number(b['time']??0x0);return{'status':b['status'],'time':Number['isFinite'](c)?c:undefined,'resolved_time':typeof b['indemnity']?.['time']==='number'?b['indemnity']['time']:b['compensation_time']??undefined,'indemnity_amount':b['indemnity']?.['amount'],'objected':b['status']===ArbStatus['Objectionable']||b['objection']!=null&&b['objection']['length']>0x0};}async function arbCasesWithRoles(a,b){const c=a['map'](arbCaseFromObject),d=Array['from'](new Set(a['map'](j=>j['order'])['filter'](Boolean))),e=new Map(),f=[];if(d['length']>0x0){const j=await batchQueryObjectsByIds(d,b);for(const k of j){const l=k;if(!l?.['object'])continue;e['set'](l['object'],l);if(l['service'])f['push'](l['service']);}}const g=new Map(),h=Array['from'](new Set(f));if(h['length']>0x0){const m=await batchQueryObjectsByIds(h,b);for(const n of m){const p=n;if(p?.['object'])g['set'](p['object'],p);}}for(let q=0x0;q<a['length'];q++){const r=e['get'](a[q]['order']);if(!r)continue;c[q]['customer']=r['builder']||undefined;const t=g['get'](r['service']);if(t)c[q]['merchant']=t['permission']||undefined;}return c;}function capabilityFromInput(a){return{'id':a['id'],'kind':a['kind'],'owner':a['owner']??'','industry':a['industry'],'industry_confidence':a['industry_confidence']??0x0,'region':a['region'],'price_min':a['price_min']!==undefined?BigInt(a['price_min']):undefined,'price_max':a['price_max']!==undefined?BigInt(a['price_max']):undefined,'token_type':a['token_type']??'','ticket_size':a['ticket_size']??'medium','trust_score':a['trust_score']??0x32,'reputation_like_ratio':a['reputation_like_ratio']??0x1,'arbitration_independent':a['arbitration_independent']??![],'merchant_history_count':a['merchant_history_count']??0x0,'capabilities':a['capabilities'],'tags':a['tags']??[],'keywords':a['keywords']??[]};}async function resolveInjection(a,b){return mergeInjections(await buildUserInjection(a),b);}function serviceSummaryToExtract(a){const b=a['json']??{},c=f=>typeof f==='string'?f:undefined,d=f=>typeof f==='string'?f:null,e=Array['isArray'](b['sales'])?b['sales']['map'](f=>{const g=f?.['fields']??f;return{'name':typeof g?.['name']==='string'?g['name']:undefined,'price':typeof g?.['price']==='string'?g['price']:g?.['price']!=null?String(g['price']):'0','wip_hash':typeof g?.['wip_hash']==='string'?g['wip_hash']:undefined};}):[];return{'object':a['object'],'description':c(b['description'])??'','location':a['location']??c(b['location'])??'','sales':e,'arbitrations':Array['isArray'](b['arbitrations'])?b['arbitrations']['map'](String):[],'compensation_fund':c(b['compensation_fund']),'buy_guard':d(b['buy_guard']),'machine':d(b['machine']),'um':d(b['um']),'bPublished':b['bPublished']===!![],'bPaused':b['bPaused']===!![],'owner':c(b['owner'])};}export async function handleEvaluationOperation(a){const b=strictParse(EvaluationOperationInputSchema,a,'evaluation_operation\x20input');let c;switch(b['action']){case'arb_game':{const e=b['account']?await getEffectivePersona(b['account']):null,f=b['appetite']??e?.['layer']['preferences']?.['risk_appetite'],g=b['requirements']??e?.['layer']['requirements'];c={'action':'arb_game',...evaluateArbGame(b['status'],b['perspective'],{'risk_appetite':f,'requirements':g})};break;}case'node_game':{const h=b['account']?await getEffectivePersona(b['account']):null,i=b['appetite']??h?.['layer']['preferences']?.['risk_appetite'],j=b['requirements']??h?.['layer']['requirements'];c={'action':'node_game',...evaluateNodeGame({'current_node':b['current_node'],'perspective':b['perspective'],'appetite':i,'requirements':j,'threshold':b['threshold'],'allocation':b['allocation'],'order_amount':b['order_amount'],'compensation_fund':b['compensation_fund'],'operable':b['operable'],'waiting_on':b['waiting_on']??[]})};break;}case'capability_gap':{c={'action':'capability_gap','report':summarizeCapabilityGaps(capabilityFromInput(b['demand']),capabilityFromInput(b['service']))};break;}case'compose_service':{c={'action':'compose_service','plan':composeServicesForDemand(capabilityFromInput(b['demand']),b['services']['map'](capabilityFromInput))};break;}case'demand_match':{const k=await matchDemandToServices(capabilityFromInput(b['demand_cap']),b['services'],await resolveInjection(b['account'],b['injection']),0x5,b['presenter_history']);c={'action':'demand_match','matches':k['map'](l=>({'service':l['service'],'result':l['result'],'next':nextOperationForDemandMatch(l['service']),'order':nextOperationForServiceOrder(l['service'])}))};break;}case'service_match':{const l=await matchServiceToDemands(capabilityFromInput(b['service_cap']),b['demands'],await resolveInjection(b['account'],b['injection']),0x5,b['presenter_history']);c={'action':'service_match','matches':l['map'](n=>({'demand':n['demand'],'result':n['result'],'next':nextOperationForServiceMatch(n['demand'],null)}))};break;}case'path_reasoning':{const m=b['account']?await getEffectivePersona(b['account']):null,n=b['appetite']??m?.['layer']['preferences']?.['risk_appetite'],o=b['requirements']??m?.['layer']['requirements'];c={'action':'path_reasoning',...evaluatePathReasoning({'current_node':b['current_node'],'perspective':b['perspective'],'workflow':workflowSubgraphFromRows(b['machine_nodes']),'node_annotations':b['node_annotations'],'appetite':n,'requirements':o,'order_amount':b['order_amount'],'max_depth':b['max_depth']})};break;}case'evidence_review':{b['items']&&b['items']['length']>0x0?c={'action':'evidence_review','list':reviewEvidenceList(b['items'])}:c={'action':'evidence_review','review':assessEvidenceReview({'kind':b['kind'],'hash_committed':b['hash_committed'],'digital_check_passed':b['digital_check_passed'],'contradiction':b['contradiction']})};break;}case'discover_services':{const p=!b['sensitivity']?inferSensitivity(b['description']??''):null,q=b['sensitivity']??p['sensitivity'],r=p?.['signals']??[],s=await resolveNetwork(b['context_network']),t={'raw':b['location'],...b['region']??{}},u=expandSearchScope(q,t),v=await enumerateServices(s,{'max_objects':b['max_objects'],'no_cache':b['no_cache'],'location_any':u['search_terms'],'coin_type':b['coin_type'],'name_contains':b['name_contains']}),w=rankByLocation(q,t,v['services']['map'](x=>({'id':x['object'],'name':x['name'],'location':x['location']})));c={'action':'discover_services','sensitivity':q,'inference_signals':r,'services':w['map'](x=>{const y=v['services']['find'](z=>z['object']===x['id']);return{'object':x['id'],'name':y?.['name'],'location':y?.['location'],'relation':x['relation'],'satisfied':x['satisfied'],'score':x['score'],'reason':x['reason']};}),'total_enumerated':v['total_enumerated'],'has_more':v['has_more'],'coverage':v['coverage'],'scope_advice':{'search_terms':u['search_terms'],'ai_enrichment_note':u['ai_enrichment_note']}};break;}case'discover_demands':{const x=await resolveNetwork(b['context_network']),y=resolveMatchPolicy(b['match_policy'],'supply_to_demand'),z=await enumerateDemands(x,{'max_objects':b['max_objects'],'no_cache':b['no_cache']}),A=b['location']?.['toLowerCase'](),B=z['demands']['filter'](E=>!A||(E['location']??'')['toLowerCase']()['includes'](A))['map'](E=>({'object':E['object'],'description':E['description']??'','location':E['location']??'','presenters_count':E['presenters_count']??0x0,'permission':E['permission']??''}));let C=B,D;if(y){const E=z['demands']['filter'](J=>!A||(J['location']??'')['toLowerCase']()['includes'](A))['map'](J=>({'object':J['object'],'description':J['description']??'','location':J['location']??'','rewards':J['rewards'],'um':J['um']??null,'owner':typeof J['owner']==='string'?J['owner']:undefined,'guards':J['guards'],'presenters_count':J['presenters_count']})),F=applyDemandPolicyGates(y,E),G=new Set(F['passed']['map'](J=>J['object']));C=B['filter'](J=>G['has'](J['object']));const H=y['output']?.['top_n'];if(H!==undefined)C=C['slice'](0x0,H);const I=[];Object['keys'](y['weights']??{})['length']>0x0&&I['push']('weights\x20not\x20applicable\x20in\x20discover_demands\x20(no\x20private\x20scoring\x20at\x20this\x20stage;\x20use\x20demand_present)'),y['rerank']!==undefined&&I['push']('rerank\x20not\x20applicable\x20in\x20discover_demands\x20(no\x20private\x20scoring\x20at\x20this\x20stage;\x20use\x20demand_present)'),D=buildPolicyEffect(y,F,{'applied':{},'ignored':[]},{'order':'enumeration\x20order\x20(discover_demands\x20performs\x20no\x20private\x20scoring)','diversity_applied':![],'deferred':0x0,'ignored':[]},I);}c={'action':'discover_demands','demands':C,'total_enumerated':z['total_enumerated'],'has_more':z['has_more'],'coverage':z['coverage'],...D?{'policy_effect':D}:{}};break;}case'demand_present':{const J=await resolveNetwork(b['context_network']),K=resolveMatchPolicy(b['match_policy'],'supply_to_demand'),L=await enumerateDemands(J,{'max_objects':b['max_objects'],'no_cache':b['no_cache']}),M=b['location']?.['toLowerCase'](),N=L['demands']['filter'](X=>!M||(X['location']??'')['toLowerCase']()['includes'](M)),O=new Map(N['map'](X=>[X['object'],(X['guards']?.['length']??0x0)>0x0])),P=N['map'](X=>({'object':X['object'],'description':X['description']??'','location':X['location']??'','rewards':X['rewards']??[],'um':X['um']??null,'owner':typeof X['owner']==='string'?X['owner']:undefined})),Q=N['map'](X=>({'object':X['object'],'description':X['description']??'','location':X['location']??'','rewards':X['rewards'],'um':X['um']??null,'owner':typeof X['owner']==='string'?X['owner']:undefined,'guards':X['guards'],'presenters_count':X['presenters_count']}));let R=await resolveInjection(b['account'],b['injection']),S=P,T,U;if(K){const X=applyDemandPolicyGates(K,Q),Y=new Set(X['passed']['map'](a0=>a0['object']));S=P['filter'](a0=>Y['has'](a0['object']));const Z=policyToInjection(K);R=mergeInjections(R,Z['injection']),U={'gateOutcome':X,'weights':Z};}const V=await matchServiceToDemands(capabilityFromInput(b['service_cap']),S,R,K?S['length']:b['limit']??0x5);let W=V['map'](a0=>{const a1=O['get'](a0['demand']['object'])??![];return{'demand':a0['demand'],'result':a0['result'],'next':nextOperationForServiceMatch(a0['demand'],a1)};});if(K&&U){const a0=rerankDemandMatches(W,K);W=a0['matches'],T=buildPolicyEffect(K,U['gateOutcome'],U['weights'],a0);}c={'action':'demand_present','matches':W,'total_enumerated':L['total_enumerated'],'has_more':L['has_more'],'coverage':L['coverage'],...T?{'policy_effect':T}:{}};break;}case'market_metrics':{const a1=await resolveNetwork(b['context_network']),a2=await computeMarketMetrics(a1,b['no_cache']),a3=await computeOrderFlow(a1,{'noCache':b['no_cache'],'maxPages':b['limit']?Math['max'](0x1,Math['ceil'](b['limit']/0x32)):undefined});c={'action':'market_metrics',...a2,'order_flow':a3};break;}case'anti_cheat':{const a4=assessAntiCheat({'service':{'object':b['service']['object'],'arbitrations':b['service']['arbitrations'],'compensation_fund':b['service']['compensation_fund'],'machine':b['service']['machine'],'bPublished':b['service']['bPublished']},'orders':b['orders'],'reviews':b['reviews']});c={'action':'anti_cheat','signals':a4};break;}case'market_operations':{if(b['op']==='journey_funnel')c={'action':'market_operations','result':computeJourneyFunnel({'due_diligence':b['due_diligence']??0x0,'orders':b['orders']??0x0,'completed':b['completed']??0x0,'reviews':b['reviews']??0x0})};else{if(b['op']==='referral_attribution')c={'action':'market_operations','result':attributeReferrals(b['referral_orders']??[])};else{if(b['op']==='dynamic_pricing'){const a5=b['market_signals'];if(!a5)throw new Error('dynamic_pricing\x20op\x20requires\x20market_signals');c={'action':'market_operations','result':suggestPricing({'supplyCount':a5['supplyCount'],'demandCount':a5['demandCount'],'avgPrice':a5['avgPrice'],'myPrice':a5['myPrice'],'competitorPrices':a5['competitorPrices'],'recentOrderCount':a5['recentOrderCount'],'repeatCustomerRate':a5['repeatCustomerRate']})};}else c={'action':'market_operations','result':buildCustomerRelationships(b['customer_orders']??[])};}}break;}case'match_discover':{const a6=!b['sensitivity']?inferSensitivity(b['description']??''):null,a7=b['sensitivity']??a6['sensitivity'],a8=a6?.['signals']??[],a9=await resolveNetwork(b['context_network']),aa={'raw':b['location'],...b['region']??{}},ab=expandSearchScope(a7,aa),ac=resolveMatchPolicy(b['match_policy'],'demand_to_supply'),ad=(b['required_capabilities']??[])['filter'](az=>KNOWN_CAPABILITIES['includes'](az)),ae=!b['coin_type']&&!b['name_contains'],af=discoveryDataSource();let ag,ah=new Map(),ai='legacy_enumeration';const aj=()=>enumerateServices(a9,{'max_objects':b['max_objects'],'no_cache':b['no_cache'],'location_any':ab['search_terms'],'coin_type':b['coin_type'],'name_contains':b['name_contains']});if(ae&&af!=='legacy'&&remoteIndexUrl())try{const az=await matchServicesViaIndex(a9,{'q':b['description'],'location':b['location'],'budgetWei':b['budget'],'capabilities':ad['length']>0x0?ad:undefined,'limit':Math['min'](0x64,b['max_objects']??0x64),'recallLimit':Math['min'](0x3e8,Math['max'](0xc8,b['max_objects']??0xc8))});ag={'services':az['candidates']['map'](aA=>({'object':aA['objectId'],'location':aA['publicFeatures']['location']??'','json':aA['payloadJson']??null})),'total_enumerated':az['recall']['liveSet']??az['recall']['gated'],'has_more':az['truncated'],'coverage':az['coverage']},ah=new Map(az['candidates']['map'](aA=>[aA['objectId'],aA])),ai='remote_index';}catch(aA){if(af==='remote')throw aA;ag=await aj();const aB=aA?.['code'],aC=typeof aB==='string'&&/^INDEX_[A-Z_]+$/['test'](aB)?aB:'INDEX_UNAVAILABLE';ag['coverage']=createQueryCoverage({'mode':ag['coverage']['mode'],'totalEnumerated':ag['coverage']['total_enumerated'],'truncated':ag['coverage']['truncated'],'chainId':ag['coverage']['chain_id'],'degradedReasons':[...ag['coverage']['degraded_reasons'],'MATCH_INDEX_FALLBACK',aC]});}else ag=await aj();const ak=new Set(b['required_capabilities']??[]),al=extractDemandCapability({'object':'intent','description':b['description'],'location':b['location'],'owner':b['account']},{'price_max':b['budget']!==undefined?BigInt(b['budget']):undefined,'capabilities':{'has_arbitration':ak['has']('has_arbitration'),'has_refund_path':ak['has']('has_refund_path'),'has_milestone_nodes':ak['has']('has_milestone_nodes'),'has_compensation_fund':ak['has']('has_compensation_fund'),'has_wip_verification':ak['has']('has_wip_verification'),'has_messenger':ak['has']('has_messenger'),'has_buy_guard':ak['has']('has_buy_guard'),'has_dynamic_pricing':ak['has']('has_dynamic_pricing'),'is_published':!![],'is_paused':![]}}),am=rankByLocation(a7,aa,ag['services']['map'](aD=>({'id':aD['object'],'name':aD['name'],'location':aD['location']}))),an=am['filter'](aD=>aD['satisfied']),ao=ag['services']['filter'](aD=>an['some'](aE=>aE['id']===aD['object']))['map'](serviceSummaryToExtract),ap=resolveCategoryMatchRules(b['category']);let aq=ao;const ar=[];if(ap){const aD=applyHardConstraints(ap,ao);aq=aD['passed'];for(const aE of aD['dropped']){ar['push']({'object':aE['candidate']['object'],'reason':aE['constraint']['description']});}}let as=await resolveInjection(b['account'],b['injection']);ap&&(as=mergeInjections(as,toSoftWeightInjection(ap)));let at,au;if(ac){const aF=applyPolicyGates(ac,aq,{'budgetWei':b['budget']!==undefined?BigInt(b['budget']):undefined});aq=aF['passed'];const aG=policyToInjection(ac);as=mergeInjections(as,aG['injection']),au={'gateOutcome':aF,'weights':aG};}const av=await matchDemandToServices(al,aq,as,aq['length'],b['presenter_history']),aw=new Map(av['map'](aH=>[aH['service']['object'],aH['result']])),ax=new Set(aq['map'](aH=>aH['object']));let ay=an['filter'](aH=>ax['has'](aH['id']))['map'](aH=>{const aI=ag['services']['find'](aK=>aK['object']===aH['id']),aJ=ah['get'](aH['id']);return{'service':serviceSummaryToExtract(aI),'location':{'relation':aH['relation'],'satisfied':aH['satisfied'],'score':aH['score'],'reason':aH['reason']},'result':aw['get'](aH['id']),...aJ?{'server_match':{'policy_version':aJ['serverEvaluation']['policyVersion'],'total':aJ['serverEvaluation']['total'],'breakdown':aJ['serverEvaluation']['breakdown'],'unknown_rules':aJ['serverEvaluation']['unknownRules'],'red_flags':aJ['serverEvaluation']['redFlags'],'channels':aJ['channels'],'rrf':aJ['rrf']}}:{}};});if(ac&&au){const aH=applyPolicyRerank(ay,ac);ay=aH['matches'],at=buildPolicyEffect(ac,au['gateOutcome'],au['weights'],aH);}c={'action':'match_discover','sensitivity':a7,'inference_signals':a8,'match_route':ai,'matches':ay,'total_enumerated':ag['total_enumerated'],'has_more':ag['has_more'],'coverage':ag['coverage'],'scope_advice':{'search_terms':ab['search_terms'],'ai_enrichment_note':ab['ai_enrichment_note']},...at?{'policy_effect':at}:{}};break;}case'arbitration_score':{let aI=b['history'];const aJ=b['context_network']??'testnet';if((!aI||aI['length']===0x0)&&b['arbitration']['object'])try{const aL=await enumerateArbs(aJ,{'arbitration':b['arbitration']['object']});aI=await arbCasesWithRoles(aL['arbs'],aJ);}catch{aI=b['history'];}if((!aI||aI['length']===0x0)&&b['arbitration']['object'])try{const aM=await query_objects({'objects':[b['arbitration']['object']],'network':aJ}),aN=aM?.['objects']?.[0x0];if(aN?.['permission']){const aO=await fetchObjectLinkerCore(aN['permission'],aJ),aP=(aO?.['items']??[])['map'](aR=>aR['who'])['filter'](aR=>aR!==b['arbitration']['object']),aQ=[];for(const aR of aP['slice'](0x0,0xa)){const aS=await enumerateArbs(aJ,{'arbitration':aR})['catch'](()=>undefined);aS?.['arbs']?.['length']&&aQ['push'](...await arbCasesWithRoles(aS['arbs'],aJ));}if(aQ['length']>0x0)aI=aQ;}}catch{}const aK=await assessArbitration({'arbitration':{'object':b['arbitration']['object'],'fee':b['arbitration']['fee'],'balance':b['arbitration']['balance'],'voting_guard_count':b['arbitration']['voting_guard_count'],'bPaused':b['arbitration']['bPaused'],'location':b['arbitration']['location'],'has_verified_identity':b['arbitration']['has_verified_identity']},'history':aI,'entity_votes':b['entity_votes'],'fee_median':b['fee_median']},await resolveInjection(b['account'],b['injection']));c={'action':'arbitration_score',...aK};break;}case'account_events':{const aT=await runAccountEventWatchers({'account':b['account'],'network':await resolveNetwork(b['context_network']),'reviews':b['reviews']?.['map'](aU=>({'reviewer':aU['reviewer'],'rating':aU['rating'],'tags':aU['tags'],'comment':aU['comment'],'orderRef':aU['orderRef'],'timestamp':aU['timestamp'],'verified':aU['verified']??![]})),'order_history':b['order_history']},b['categories']);c={'action':'account_events','events':aT};break;}default:throw new Error('Unknown\x20evaluation_operation\x20action');}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c}};}
1
+ import{strictParse}from'../../schema/index.js';import{EvaluationOperationInputSchema}from'../../schema/evaluation/index.js';import{evaluateArbGame}from'../../evaluation/arbitration-game.js';import{evaluateNodeGame}from'../../evaluation/node-game.js';import{evaluatePathReasoning}from'../../evaluation/path-reasoning.js';import{assessEvidenceReview,reviewEvidenceList}from'../../knowledge/evidence-review.js';import{expandSearchScope,inferSensitivity,rankByLocation}from'../../evaluation/location-match.js';import{query_objects,ArbStatus,discoveryDataSource}from'@wowok/wowok';import{enumerateServices,enumerateDemands,enumerateArbs,indexErrorCode,indexUrlFor,matchServicesViaIndex,matchDemandsViaIndex,withDegradedReasons}from'../../knowledge/jsonrpc-enum.js';import{KNOWN_CAPABILITIES}from'../../data/api/match.js';import{fetchObjectLinkerCore,batchQueryObjectsByIds}from'../../graph/onchain/sdk-batch.js';import{summarizeCapabilityGaps}from'../../evaluation/gap.js';import{resolveNetwork}from'./network.js';import{composeServicesForDemand}from'../../evaluation/composer.js';import{matchDemandToServices,matchServiceToDemands}from'../../evaluation/builtins/demand-match.js';import{nextOperationForServiceMatch,nextOperationForDemandMatch,nextOperationForServiceOrder}from'../../evaluation/match-operation.js';import{extractDemandCapability,enrichFromDescription}from'../../evaluation/extract.js';import{assessArbitration}from'../../evaluation/builtins/arbitration-score.js';import{resolveCategoryMatchRules,toSoftWeightInjection,applyHardConstraints}from'../../evaluation/category-match-rules.js';import{computeMarketMetrics,computeOrderFlow}from'../../knowledge/market-metrics.js';import{workflowSubgraphFromRows}from'../../graph/onchain/index.js';import{assessAntiCheat}from'../../knowledge/anti-cheat.js';import{computeJourneyFunnel,attributeReferrals,buildCustomerRelationships}from'../../knowledge/market-operations.js';import{suggestPricing}from'../../knowledge/dynamic-pricing.js';import{runAccountEventWatchers}from'../../customer/account-events.js';import{registerBuiltinEvaluations}from'../../evaluation/builtins/index.js';import{getEffectivePersona,mergeInjections}from'../../persona/index.js';import{buildUserInjection}from'../../evaluation/injection.js';import{applyDemandPolicyGates,applyPolicyGates,applyPolicyRerank,buildPolicyEffect,policyToInjection,rerankDemandMatches,resolveMatchPolicy}from'../../evaluation/match-policy.js';registerBuiltinEvaluations();function arbCaseFromObject(b){const c=typeof b['time']==='number'?b['time']:Number(b['time']??0x0);return{'status':b['status'],'time':Number['isFinite'](c)?c:undefined,'resolved_time':typeof b['indemnity']?.['time']==='number'?b['indemnity']['time']:b['compensation_time']??undefined,'indemnity_amount':b['indemnity']?.['amount'],'objected':b['status']===ArbStatus['Objectionable']||b['objection']!=null&&b['objection']['length']>0x0};}async function arbCasesWithRoles(a,b){const c=a['map'](arbCaseFromObject),d=Array['from'](new Set(a['map'](j=>j['order'])['filter'](Boolean))),e=new Map(),f=[];if(d['length']>0x0){const j=await batchQueryObjectsByIds(d,b);for(const k of j){const l=k;if(!l?.['object'])continue;e['set'](l['object'],l);if(l['service'])f['push'](l['service']);}}const g=new Map(),h=Array['from'](new Set(f));if(h['length']>0x0){const m=await batchQueryObjectsByIds(h,b);for(const n of m){const p=n;if(p?.['object'])g['set'](p['object'],p);}}for(let q=0x0;q<a['length'];q++){const r=e['get'](a[q]['order']);if(!r)continue;c[q]['customer']=r['builder']||undefined;const t=g['get'](r['service']);if(t)c[q]['merchant']=t['permission']||undefined;}return c;}function capabilityFromInput(a){return{'id':a['id'],'kind':a['kind'],'owner':a['owner']??'','industry':a['industry'],'industry_confidence':a['industry_confidence']??0x0,'region':a['region'],'price_min':a['price_min']!==undefined?BigInt(a['price_min']):undefined,'price_max':a['price_max']!==undefined?BigInt(a['price_max']):undefined,'token_type':a['token_type']??'','ticket_size':a['ticket_size']??'medium','trust_score':a['trust_score']??0x32,'reputation_like_ratio':a['reputation_like_ratio']??0x1,'arbitration_independent':a['arbitration_independent']??![],'merchant_history_count':a['merchant_history_count']??0x0,'capabilities':a['capabilities'],'tags':a['tags']??[],'keywords':a['keywords']??[]};}async function resolveInjection(a,b){return mergeInjections(await buildUserInjection(a),b);}function serviceSummaryToExtract(a){const b=a['json']??{},c=f=>typeof f==='string'?f:undefined,d=f=>typeof f==='string'?f:null,e=Array['isArray'](b['sales'])?b['sales']['map'](f=>{const g=f?.['fields']??f;return{'name':typeof g?.['name']==='string'?g['name']:undefined,'price':typeof g?.['price']==='string'?g['price']:g?.['price']!=null?String(g['price']):'0','wip_hash':typeof g?.['wip_hash']==='string'?g['wip_hash']:undefined};}):[];return{'object':a['object'],'description':c(b['description'])??'','location':a['location']??c(b['location'])??'','sales':e,'arbitrations':Array['isArray'](b['arbitrations'])?b['arbitrations']['map'](String):[],'compensation_fund':c(b['compensation_fund']),'buy_guard':d(b['buy_guard']),'machine':d(b['machine']),'um':d(b['um']),'bPublished':b['bPublished']===!![],'bPaused':b['bPaused']===!![],'owner':c(b['owner'])};}function policyNeedsOwner(a){if(!a)return![];return Boolean(a['gates']?.['some'](b=>b['dim']==='owner')||a['excludes']?.['some'](b=>b['dim']==='blacklist'&&(b['owners']?.['length']??0x0)>0x0));}async function recallDemandsHybrid(a,b,c){const d=()=>enumerateDemands(a,{'max_objects':b['max_objects'],'no_cache':b['no_cache']}),e=async h=>({'answer':withDegradedReasons(await d(),['MATCH_INDEX_FALLBACK',...h]),'matchRoute':'legacy_enumeration'}),f=!policyNeedsOwner(c),g=discoveryDataSource();if(!f||g==='legacy'||!indexUrlFor(a))return{'answer':await d(),'matchRoute':'legacy_enumeration'};try{const h=await matchDemandsViaIndex(a,{'location':b['location'],'industry':b['industry']&&b['industry']!=='general'?b['industry']:undefined,'limit':Math['min'](0x64,b['max_objects']??0x64),'recallLimit':Math['min'](0x3e8,Math['max'](0xc8,b['max_objects']??0xc8))});if(g==='auto'&&h['total_enumerated']===0x0)return await e(['INDEX_KIND_EMPTY']);return{'answer':h,'matchRoute':'remote_index'};}catch(i){if(g==='remote')throw i;return await e([indexErrorCode(i)]);}}export async function handleEvaluationOperation(a){const b=strictParse(EvaluationOperationInputSchema,a,'evaluation_operation\x20input');let c;switch(b['action']){case'arb_game':{const e=b['account']?await getEffectivePersona(b['account']):null,f=b['appetite']??e?.['layer']['preferences']?.['risk_appetite'],g=b['requirements']??e?.['layer']['requirements'];c={'action':'arb_game',...evaluateArbGame(b['status'],b['perspective'],{'risk_appetite':f,'requirements':g})};break;}case'node_game':{const h=b['account']?await getEffectivePersona(b['account']):null,i=b['appetite']??h?.['layer']['preferences']?.['risk_appetite'],j=b['requirements']??h?.['layer']['requirements'];c={'action':'node_game',...evaluateNodeGame({'current_node':b['current_node'],'perspective':b['perspective'],'appetite':i,'requirements':j,'threshold':b['threshold'],'allocation':b['allocation'],'order_amount':b['order_amount'],'compensation_fund':b['compensation_fund'],'operable':b['operable'],'waiting_on':b['waiting_on']??[]})};break;}case'capability_gap':{c={'action':'capability_gap','report':summarizeCapabilityGaps(capabilityFromInput(b['demand']),capabilityFromInput(b['service']))};break;}case'compose_service':{c={'action':'compose_service','plan':composeServicesForDemand(capabilityFromInput(b['demand']),b['services']['map'](capabilityFromInput))};break;}case'demand_match':{const k=await matchDemandToServices(capabilityFromInput(b['demand_cap']),b['services'],await resolveInjection(b['account'],b['injection']),0x5,b['presenter_history']);c={'action':'demand_match','matches':k['map'](l=>({'service':l['service'],'result':l['result'],'next':nextOperationForDemandMatch(l['service']),'order':nextOperationForServiceOrder(l['service'])}))};break;}case'service_match':{const l=await matchServiceToDemands(capabilityFromInput(b['service_cap']),b['demands'],await resolveInjection(b['account'],b['injection']),0x5,b['presenter_history']);c={'action':'service_match','matches':l['map'](n=>({'demand':n['demand'],'result':n['result'],'next':nextOperationForServiceMatch(n['demand'],null)}))};break;}case'path_reasoning':{const m=b['account']?await getEffectivePersona(b['account']):null,n=b['appetite']??m?.['layer']['preferences']?.['risk_appetite'],o=b['requirements']??m?.['layer']['requirements'];c={'action':'path_reasoning',...evaluatePathReasoning({'current_node':b['current_node'],'perspective':b['perspective'],'workflow':workflowSubgraphFromRows(b['machine_nodes']),'node_annotations':b['node_annotations'],'appetite':n,'requirements':o,'order_amount':b['order_amount'],'max_depth':b['max_depth']})};break;}case'evidence_review':{b['items']&&b['items']['length']>0x0?c={'action':'evidence_review','list':reviewEvidenceList(b['items'])}:c={'action':'evidence_review','review':assessEvidenceReview({'kind':b['kind'],'hash_committed':b['hash_committed'],'digital_check_passed':b['digital_check_passed'],'contradiction':b['contradiction']})};break;}case'discover_services':{const p=!b['sensitivity']?inferSensitivity(b['description']??''):null,q=b['sensitivity']??p['sensitivity'],r=p?.['signals']??[],s=await resolveNetwork(b['context_network']),t={'raw':b['location'],...b['region']??{}},u=expandSearchScope(q,t),v=await enumerateServices(s,{'max_objects':b['max_objects'],'no_cache':b['no_cache'],'location_any':u['search_terms'],'coin_type':b['coin_type'],'name_contains':b['name_contains']}),w=rankByLocation(q,t,v['services']['map'](x=>({'id':x['object'],'name':x['name'],'location':x['location']})));c={'action':'discover_services','sensitivity':q,'inference_signals':r,'services':w['map'](x=>{const y=v['services']['find'](z=>z['object']===x['id']);return{'object':x['id'],'name':y?.['name'],'location':y?.['location'],'relation':x['relation'],'satisfied':x['satisfied'],'score':x['score'],'reason':x['reason']};}),'total_enumerated':v['total_enumerated'],'has_more':v['has_more'],'coverage':v['coverage'],'scope_advice':{'search_terms':u['search_terms'],'ai_enrichment_note':u['ai_enrichment_note']}};break;}case'discover_demands':{const x=await resolveNetwork(b['context_network']),y=resolveMatchPolicy(b['match_policy'],'supply_to_demand'),{answer:z,matchRoute:A}=await recallDemandsHybrid(x,{'max_objects':b['max_objects'],'no_cache':b['no_cache'],'location':b['location']},y),B=b['location']?.['toLowerCase'](),C=z['demands']['filter'](F=>!B||(F['location']??'')['toLowerCase']()['includes'](B))['map'](F=>({'object':F['object'],'description':F['description']??'','location':F['location']??'','presenters_count':F['presenters_count']??0x0,'permission':F['permission']??''}));let D=C,E;if(y){const F=z['demands']['filter'](K=>!B||(K['location']??'')['toLowerCase']()['includes'](B))['map'](K=>({'object':K['object'],'description':K['description']??'','location':K['location']??'','rewards':K['rewards'],'um':K['um']??null,'owner':typeof K['owner']==='string'?K['owner']:undefined,'guards':K['guards'],'presenters_count':K['presenters_count']})),G=applyDemandPolicyGates(y,F),H=new Set(G['passed']['map'](K=>K['object']));D=C['filter'](K=>H['has'](K['object']));const I=y['output']?.['top_n'];if(I!==undefined)D=D['slice'](0x0,I);const J=[];Object['keys'](y['weights']??{})['length']>0x0&&J['push']('weights\x20not\x20applicable\x20in\x20discover_demands\x20(no\x20private\x20scoring\x20at\x20this\x20stage;\x20use\x20demand_present)'),y['rerank']!==undefined&&J['push']('rerank\x20not\x20applicable\x20in\x20discover_demands\x20(no\x20private\x20scoring\x20at\x20this\x20stage;\x20use\x20demand_present)'),E=buildPolicyEffect(y,G,{'applied':{},'ignored':[]},{'order':A==='remote_index'?'server\x20public-baseline\x20order\x20(discover_demands\x20performs\x20no\x20private\x20scoring)':'enumeration\x20order\x20(discover_demands\x20performs\x20no\x20private\x20scoring)','diversity_applied':![],'deferred':0x0,'ignored':[]},J);}c={'action':'discover_demands','demands':D,'total_enumerated':z['total_enumerated'],'has_more':z['has_more'],'match_route':A,'coverage':z['coverage'],...E?{'policy_effect':E}:{}};break;}case'demand_present':{const K=await resolveNetwork(b['context_network']),L=resolveMatchPolicy(b['match_policy'],'supply_to_demand'),{answer:M,matchRoute:N}=await recallDemandsHybrid(K,{'max_objects':b['max_objects'],'no_cache':b['no_cache'],'location':b['location'],'industry':b['service_cap']['industry']},L),O=b['location']?.['toLowerCase'](),P=M['demands']['filter'](Z=>!O||(Z['location']??'')['toLowerCase']()['includes'](O)),Q=new Map(P['map'](Z=>[Z['object'],(Z['guards']?.['length']??0x0)>0x0])),R=P['map'](Z=>({'object':Z['object'],'description':Z['description']??'','location':Z['location']??'','rewards':Z['rewards']??[],'um':Z['um']??null,'owner':typeof Z['owner']==='string'?Z['owner']:undefined})),S=P['map'](Z=>({'object':Z['object'],'description':Z['description']??'','location':Z['location']??'','rewards':Z['rewards'],'um':Z['um']??null,'owner':typeof Z['owner']==='string'?Z['owner']:undefined,'guards':Z['guards'],'presenters_count':Z['presenters_count']}));let T=await resolveInjection(b['account'],b['injection']),U=R,V,W;if(L){const Z=applyDemandPolicyGates(L,S),a0=new Set(Z['passed']['map'](a2=>a2['object']));U=R['filter'](a2=>a0['has'](a2['object']));const a1=policyToInjection(L);T=mergeInjections(T,a1['injection']),W={'gateOutcome':Z,'weights':a1};}const X=await matchServiceToDemands(capabilityFromInput(b['service_cap']),U,T,L?U['length']:b['limit']??0x5);let Y=X['map'](a2=>{const a3=Q['get'](a2['demand']['object'])??![];return{'demand':a2['demand'],'result':a2['result'],'next':nextOperationForServiceMatch(a2['demand'],a3)};});if(L&&W){const a2=rerankDemandMatches(Y,L);Y=a2['matches'],V=buildPolicyEffect(L,W['gateOutcome'],W['weights'],a2);}c={'action':'demand_present','matches':Y,'total_enumerated':M['total_enumerated'],'has_more':M['has_more'],'match_route':N,'coverage':M['coverage'],...V?{'policy_effect':V}:{}};break;}case'market_metrics':{const a3=await resolveNetwork(b['context_network']),a4=await computeMarketMetrics(a3,b['no_cache']),a5=await computeOrderFlow(a3,{'noCache':b['no_cache'],'maxPages':b['limit']?Math['max'](0x1,Math['ceil'](b['limit']/0x32)):undefined});c={'action':'market_metrics',...a4,'order_flow':a5};break;}case'anti_cheat':{const a6=assessAntiCheat({'service':{'object':b['service']['object'],'arbitrations':b['service']['arbitrations'],'compensation_fund':b['service']['compensation_fund'],'machine':b['service']['machine'],'bPublished':b['service']['bPublished']},'orders':b['orders'],'reviews':b['reviews']});c={'action':'anti_cheat','signals':a6};break;}case'market_operations':{if(b['op']==='journey_funnel')c={'action':'market_operations','result':computeJourneyFunnel({'due_diligence':b['due_diligence']??0x0,'orders':b['orders']??0x0,'completed':b['completed']??0x0,'reviews':b['reviews']??0x0})};else{if(b['op']==='referral_attribution')c={'action':'market_operations','result':attributeReferrals(b['referral_orders']??[])};else{if(b['op']==='dynamic_pricing'){const a7=b['market_signals'];if(!a7)throw new Error('dynamic_pricing\x20op\x20requires\x20market_signals');c={'action':'market_operations','result':suggestPricing({'supplyCount':a7['supplyCount'],'demandCount':a7['demandCount'],'avgPrice':a7['avgPrice'],'myPrice':a7['myPrice'],'competitorPrices':a7['competitorPrices'],'recentOrderCount':a7['recentOrderCount'],'repeatCustomerRate':a7['repeatCustomerRate']})};}else c={'action':'market_operations','result':buildCustomerRelationships(b['customer_orders']??[])};}}break;}case'match_discover':{const a8=!b['sensitivity']?inferSensitivity(b['description']??''):null,a9=b['sensitivity']??a8['sensitivity'],aa=a8?.['signals']??[],ab=await resolveNetwork(b['context_network']),ac={'raw':b['location'],...b['region']??{}},ad=expandSearchScope(a9,ac),ae=resolveMatchPolicy(b['match_policy'],'demand_to_supply'),af=(b['required_capabilities']??[])['filter'](aC=>KNOWN_CAPABILITIES['includes'](aC)),ag=enrichFromDescription(b['description'])['industry'],ah=!b['coin_type']&&!b['name_contains'],ai=discoveryDataSource();let aj,ak=new Map(),al='legacy_enumeration';const am=()=>enumerateServices(ab,{'max_objects':b['max_objects'],'no_cache':b['no_cache'],'location_any':ad['search_terms'],'coin_type':b['coin_type'],'name_contains':b['name_contains']});if(ah&&ai!=='legacy'&&indexUrlFor(ab))try{const aC=await matchServicesViaIndex(ab,{'q':b['description'],'location':b['location'],'budgetWei':b['budget'],'industry':ag==='general'?undefined:ag,'capabilities':af['length']>0x0?af:undefined,'limit':Math['min'](0x64,b['max_objects']??0x64),'recallLimit':Math['min'](0x3e8,Math['max'](0xc8,b['max_objects']??0xc8))});aj={'services':aC['candidates']['map'](aD=>({'object':aD['objectId'],'location':aD['publicFeatures']['location']??'','json':aD['payloadJson']??null})),'total_enumerated':aC['recall']['liveSet']??aC['recall']['gated'],'has_more':aC['truncated'],'coverage':aC['coverage']};if(ai==='auto'&&aj['total_enumerated']===0x0)throw Object['assign'](new Error('Remote\x20index\x20materializes\x20no\x20Service'),{'code':'INDEX_KIND_EMPTY'});ak=new Map(aC['candidates']['map'](aD=>[aD['objectId'],aD])),al='remote_index';}catch(aD){if(ai==='remote')throw aD;aj=withDegradedReasons(await am(),['MATCH_INDEX_FALLBACK',indexErrorCode(aD)]);}else aj=await am();const an=new Set(b['required_capabilities']??[]),ao=extractDemandCapability({'object':'intent','description':b['description'],'location':b['location'],'owner':b['account']},{'price_max':b['budget']!==undefined?BigInt(b['budget']):undefined,'capabilities':{'has_arbitration':an['has']('has_arbitration'),'has_refund_path':an['has']('has_refund_path'),'has_milestone_nodes':an['has']('has_milestone_nodes'),'has_compensation_fund':an['has']('has_compensation_fund'),'has_wip_verification':an['has']('has_wip_verification'),'has_messenger':an['has']('has_messenger'),'has_buy_guard':an['has']('has_buy_guard'),'has_dynamic_pricing':an['has']('has_dynamic_pricing'),'is_published':!![],'is_paused':![]}}),ap=rankByLocation(a9,ac,aj['services']['map'](aE=>({'id':aE['object'],'name':aE['name'],'location':aE['location']}))),aq=ap['filter'](aE=>aE['satisfied']),ar=aj['services']['filter'](aE=>aq['some'](aF=>aF['id']===aE['object']))['map'](serviceSummaryToExtract),as=resolveCategoryMatchRules(b['category']);let at=ar;const au=[];if(as){const aE=applyHardConstraints(as,ar);at=aE['passed'];for(const aF of aE['dropped']){au['push']({'object':aF['candidate']['object'],'reason':aF['constraint']['description']});}}let av=await resolveInjection(b['account'],b['injection']);as&&(av=mergeInjections(av,toSoftWeightInjection(as)));let aw,ax;if(ae){const aG=applyPolicyGates(ae,at,{'budgetWei':b['budget']!==undefined?BigInt(b['budget']):undefined});at=aG['passed'];const aH=policyToInjection(ae);av=mergeInjections(av,aH['injection']),ax={'gateOutcome':aG,'weights':aH};}const ay=await matchDemandToServices(ao,at,av,at['length'],b['presenter_history']),az=new Map(ay['map'](aI=>[aI['service']['object'],aI['result']])),aA=new Set(at['map'](aI=>aI['object']));let aB=aq['filter'](aI=>aA['has'](aI['id']))['map'](aI=>{const aJ=aj['services']['find'](aL=>aL['object']===aI['id']),aK=ak['get'](aI['id']);return{'service':serviceSummaryToExtract(aJ),'location':{'relation':aI['relation'],'satisfied':aI['satisfied'],'score':aI['score'],'reason':aI['reason']},'result':az['get'](aI['id']),...aK?{'server_match':{'policy_version':aK['serverEvaluation']['policyVersion'],'total':aK['serverEvaluation']['total'],'breakdown':aK['serverEvaluation']['breakdown'],'unknown_rules':aK['serverEvaluation']['unknownRules'],'red_flags':aK['serverEvaluation']['redFlags'],'channels':aK['channels'],'rrf':aK['rrf']}}:{}};});if(ae&&ax){const aI=applyPolicyRerank(aB,ae);aB=aI['matches'],aw=buildPolicyEffect(ae,ax['gateOutcome'],ax['weights'],aI);}c={'action':'match_discover','sensitivity':a9,'inference_signals':aa,'match_route':al,'matches':aB,'total_enumerated':aj['total_enumerated'],'has_more':aj['has_more'],'coverage':aj['coverage'],'scope_advice':{'search_terms':ad['search_terms'],'ai_enrichment_note':ad['ai_enrichment_note']},...aw?{'policy_effect':aw}:{}};break;}case'arbitration_score':{let aJ=b['history'];const aK=b['context_network']??'testnet';if((!aJ||aJ['length']===0x0)&&b['arbitration']['object'])try{const aM=await enumerateArbs(aK,{'arbitration':b['arbitration']['object']});aJ=await arbCasesWithRoles(aM['arbs'],aK);}catch{aJ=b['history'];}if((!aJ||aJ['length']===0x0)&&b['arbitration']['object'])try{const aN=await query_objects({'objects':[b['arbitration']['object']],'network':aK}),aO=aN?.['objects']?.[0x0];if(aO?.['permission']){const aP=await fetchObjectLinkerCore(aO['permission'],aK),aQ=(aP?.['items']??[])['map'](aS=>aS['who'])['filter'](aS=>aS!==b['arbitration']['object']),aR=[];for(const aS of aQ['slice'](0x0,0xa)){const aT=await enumerateArbs(aK,{'arbitration':aS})['catch'](()=>undefined);aT?.['arbs']?.['length']&&aR['push'](...await arbCasesWithRoles(aT['arbs'],aK));}if(aR['length']>0x0)aJ=aR;}}catch{}const aL=await assessArbitration({'arbitration':{'object':b['arbitration']['object'],'fee':b['arbitration']['fee'],'balance':b['arbitration']['balance'],'voting_guard_count':b['arbitration']['voting_guard_count'],'bPaused':b['arbitration']['bPaused'],'location':b['arbitration']['location'],'has_verified_identity':b['arbitration']['has_verified_identity']},'history':aJ,'entity_votes':b['entity_votes'],'fee_median':b['fee_median']},await resolveInjection(b['account'],b['injection']));c={'action':'arbitration_score',...aL};break;}case'account_events':{const aU=await runAccountEventWatchers({'account':b['account'],'network':await resolveNetwork(b['context_network']),'reviews':b['reviews']?.['map'](aV=>({'reviewer':aV['reviewer'],'rating':aV['rating'],'tags':aV['tags'],'comment':aV['comment'],'orderRef':aV['orderRef'],'timestamp':aV['timestamp'],'verified':aV['verified']??![]})),'order_history':b['order_history']},b['categories']);c={'action':'account_events','events':aU};break;}default:throw new Error('Unknown\x20evaluation_operation\x20action');}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c}};}