@wowok/agent-mcp 3.4.3 → 3.4.4

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 (853) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/build-stamp.js +1 -0
  3. package/dist/chain-semantics/composition-truth.js +1 -1
  4. package/dist/chain-semantics/eval-order.js +1 -1
  5. package/dist/chain-semantics/freeze-map.js +1 -1
  6. package/dist/chain-semantics/fund-flow.js +1 -1
  7. package/dist/chain-semantics/object-graph.js +1 -1
  8. package/dist/composition/audit.js +1 -1
  9. package/dist/composition/compile.js +1 -1
  10. package/dist/composition/emit-phases.js +1 -1
  11. package/dist/composition/generate.js +1 -1
  12. package/dist/composition/guard-fill.js +1 -1
  13. package/dist/composition/input-normalize.js +1 -1
  14. package/dist/composition/materialize.js +1 -1
  15. package/dist/composition/mode-gates.js +1 -1
  16. package/dist/composition/plan.js +1 -1
  17. package/dist/composition/product-card.js +1 -1
  18. package/dist/composition/shape-expand.js +1 -0
  19. package/dist/config/judgment.js +1 -1
  20. package/dist/config/template-params.js +1 -1
  21. package/dist/data/sync/cdc.js +1 -1
  22. package/dist/data/sync/graphql-source.js +1 -1
  23. package/dist/evaluation/engine.js +1 -1
  24. package/dist/experience/realtime-feedback.js +1 -1
  25. package/dist/graph/onchain/expand.js +1 -1
  26. package/dist/graph/onchain/exposure.js +1 -1
  27. package/dist/graph/onchain/sdk-batch.js +1 -1
  28. package/dist/harness/entry-ignite-selfheal.js +1 -0
  29. package/dist/harness/forward-leg-preflight.js +1 -0
  30. package/dist/harness/recover.js +1 -1
  31. package/dist/keeper/detectors.js +1 -1
  32. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  33. package/dist/knowledge/arb-operation-face.js +1 -0
  34. package/dist/knowledge/arbitration-rail-verifier.js +1 -1
  35. package/dist/knowledge/arbitration-templates.js +1 -1
  36. package/dist/knowledge/audit-rules.d.ts +15 -0
  37. package/dist/knowledge/audit-rules.js +1 -1
  38. package/dist/knowledge/baselines/rules/alloc_audit.json.good +310 -0
  39. package/dist/knowledge/baselines/rules/allocation.json.good +568 -0
  40. package/dist/knowledge/baselines/rules/arb.json.good +174 -0
  41. package/dist/knowledge/baselines/rules/arbitration.json.good +393 -0
  42. package/dist/knowledge/baselines/rules/bridge.json.good +197 -0
  43. package/dist/knowledge/baselines/rules/contact.json.good +152 -0
  44. package/dist/knowledge/baselines/rules/demand.json.good +158 -0
  45. package/dist/knowledge/baselines/rules/graph.json.good +534 -0
  46. package/dist/knowledge/baselines/rules/guard.json +18 -5
  47. package/dist/knowledge/baselines/rules/guard.json.good +1192 -0
  48. package/dist/knowledge/baselines/rules/machine.json.good +734 -0
  49. package/dist/knowledge/baselines/rules/oracle.json +1 -1
  50. package/dist/knowledge/baselines/rules/oracle.json.good +120 -0
  51. package/dist/knowledge/baselines/rules/order.json.good +549 -0
  52. package/dist/knowledge/baselines/rules/payment.json.good +205 -0
  53. package/dist/knowledge/baselines/rules/permission.json.good +330 -0
  54. package/dist/knowledge/baselines/rules/personal.json.good +139 -0
  55. package/dist/knowledge/baselines/rules/plan.json +343 -1
  56. package/dist/knowledge/baselines/rules/plan.json.good +1187 -0
  57. package/dist/knowledge/baselines/rules/progress.json.good +364 -0
  58. package/dist/knowledge/baselines/rules/proof.json.good +158 -0
  59. package/dist/knowledge/baselines/rules/registrar.json.good +159 -0
  60. package/dist/knowledge/baselines/rules/repository.json.good +244 -0
  61. package/dist/knowledge/baselines/rules/resource.json.good +117 -0
  62. package/dist/knowledge/baselines/rules/reward.json +10 -10
  63. package/dist/knowledge/baselines/rules/reward.json.good +586 -0
  64. package/dist/knowledge/baselines/rules/service.json.good +595 -0
  65. package/dist/knowledge/baselines/rules/treasury.json.good +440 -0
  66. package/dist/knowledge/baselines/rules/util.json.good +101 -0
  67. package/dist/knowledge/builtin-templates.d.ts +13 -1
  68. package/dist/knowledge/builtin-templates.js +1 -1
  69. package/dist/knowledge/chain-query-registry.js +1 -1
  70. package/dist/knowledge/discount-threshold.js +1 -1
  71. package/dist/knowledge/fee-param-bindings.js +1 -1
  72. package/dist/knowledge/fund-layer.d.ts +2 -0
  73. package/dist/knowledge/fund-layer.js +1 -1
  74. package/dist/knowledge/getting-started.js +1 -1
  75. package/dist/knowledge/guard-binding-table.js +1 -1
  76. package/dist/knowledge/guard-binding-verifier.js +1 -1
  77. package/dist/knowledge/guard-create-preflight.js +1 -0
  78. package/dist/knowledge/guard-field-cognition.js +1 -1
  79. package/dist/knowledge/guard-host-context.js +1 -1
  80. package/dist/knowledge/guard-leg-eval.js +1 -0
  81. package/dist/knowledge/guard-node-gates.js +1 -1
  82. package/dist/knowledge/guard-puzzle.js +1 -1
  83. package/dist/knowledge/guard-quality.js +1 -0
  84. package/dist/knowledge/guard-render.js +1 -1
  85. package/dist/knowledge/guard-risk.js +1 -1
  86. package/dist/knowledge/guard-semantic-walk.js +1 -0
  87. package/dist/knowledge/guard-templates.d.ts +1 -0
  88. package/dist/knowledge/guard-templates.js +1 -1
  89. package/dist/knowledge/guard-translation.js +1 -1
  90. package/dist/knowledge/index.js +1 -1
  91. package/dist/knowledge/industry-registry.js +1 -1
  92. package/dist/knowledge/jsonrpc-enum.js +1 -1
  93. package/dist/knowledge/param-schema.js +1 -1
  94. package/dist/knowledge/param-tiers.js +1 -1
  95. package/dist/knowledge/path-oracle/coverage.js +1 -1
  96. package/dist/knowledge/path-oracle/index.js +1 -1
  97. package/dist/knowledge/path-oracle/products/airbnb.js +1 -0
  98. package/dist/knowledge/path-oracle/products/algora.js +1 -0
  99. package/dist/knowledge/path-oracle/products/alibaba-1688.js +1 -0
  100. package/dist/knowledge/path-oracle/products/amazon.js +1 -0
  101. package/dist/knowledge/path-oracle/products/beatstars.js +1 -0
  102. package/dist/knowledge/path-oracle/products/booking-com.js +1 -0
  103. package/dist/knowledge/path-oracle/products/contra.js +1 -0
  104. package/dist/knowledge/path-oracle/products/costco.js +1 -0
  105. package/dist/knowledge/path-oracle/products/coursera.js +1 -0
  106. package/dist/knowledge/path-oracle/products/duoduo-maicai.js +1 -0
  107. package/dist/knowledge/path-oracle/products/etsy.js +1 -0
  108. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -1
  109. package/dist/knowledge/path-oracle/products/gamefound.js +1 -0
  110. package/dist/knowledge/path-oracle/products/gofundme.js +1 -0
  111. package/dist/knowledge/path-oracle/products/hackerone.js +1 -0
  112. package/dist/knowledge/path-oracle/products/kickstarter.js +1 -0
  113. package/dist/knowledge/path-oracle/products/klook.js +1 -0
  114. package/dist/knowledge/path-oracle/products/ninety-nine-designs.js +1 -0
  115. package/dist/knowledge/path-oracle/products/onlyfans.js +1 -0
  116. package/dist/knowledge/path-oracle/products/patreon.js +1 -0
  117. package/dist/knowledge/path-oracle/products/pinduoduo-kuaituantuan.js +1 -0
  118. package/dist/knowledge/path-oracle/products/royalty-exchange.js +1 -0
  119. package/dist/knowledge/path-oracle/products/shansong.js +1 -0
  120. package/dist/knowledge/path-oracle/products/taobao-presale.js +1 -0
  121. package/dist/knowledge/path-oracle/products/upwork-catalog.js +1 -0
  122. package/dist/knowledge/path-oracle/products/upwork.js +1 -0
  123. package/dist/knowledge/path-oracle/products/yuanfudao.js +1 -0
  124. package/dist/knowledge/path-oracle/products/ziroom.js +1 -0
  125. package/dist/knowledge/pattern-resolutions.js +1 -1
  126. package/dist/knowledge/product-detail-source.js +1 -1
  127. package/dist/knowledge/product-doc-b5.js +1 -1
  128. package/dist/knowledge/product-doc-facets.js +1 -0
  129. package/dist/knowledge/projection.js +1 -1
  130. package/dist/knowledge/publish-gate.js +1 -1
  131. package/dist/knowledge/publish-surface-contract.js +1 -1
  132. package/dist/knowledge/recipient-constraint.d.ts +20 -0
  133. package/dist/knowledge/recipient-constraint.js +1 -1
  134. package/dist/knowledge/rule-declaration-types.d.ts +13 -0
  135. package/dist/knowledge/rule-declaration-types.js +1 -0
  136. package/dist/knowledge/rule-declarations.js +1 -0
  137. package/dist/knowledge/scenario-modes.d.ts +6 -0
  138. package/dist/knowledge/scenario-topology.js +1 -1
  139. package/dist/knowledge/template-loader.js +1 -1
  140. package/dist/knowledge/template-prose.js +1 -1
  141. package/dist/knowledge/template-registry.js +1 -1
  142. package/dist/knowledge/template-scanner.js +1 -1
  143. package/dist/knowledge/tools-reference.js +1 -1
  144. package/dist/monitor/MonitorLoop.js +1 -1
  145. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  146. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  147. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  148. package/dist/playbooks/service-build/object-panorama.js +1 -1
  149. package/dist/playbooks/service-build/participation-radar.js +1 -1
  150. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  151. package/dist/playbooks/service-build/service-panorama.js +1 -1
  152. package/dist/playbooks/service-build/service-quote.js +1 -1
  153. package/dist/review/index.js +1 -1
  154. package/dist/review/service.js +1 -1
  155. package/dist/safety/confirm-gate.js +1 -1
  156. package/dist/schema/benchmark-migration/index.d.ts +9 -0
  157. package/dist/schema/benchmark-migration/index.js +1 -1
  158. package/dist/schema/call/arbitration.d.ts +8 -0
  159. package/dist/schema/call/arbitration.js +1 -1
  160. package/dist/schema/call/base.d.ts +8 -0
  161. package/dist/schema/call/base.js +1 -1
  162. package/dist/schema/call/bridge.d.ts +2 -0
  163. package/dist/schema/call/error-codes.d.ts +1 -1
  164. package/dist/schema/call/error-codes.js +1 -1
  165. package/dist/schema/call/handler.d.ts +2 -1
  166. package/dist/schema/call/handler.js +1 -1
  167. package/dist/schema/call/order.d.ts +10 -0
  168. package/dist/schema/call/permission-handler.js +1 -1
  169. package/dist/schema/call/permission.js +1 -1
  170. package/dist/schema/call/progress.d.ts +15 -0
  171. package/dist/schema/call/progress.js +1 -1
  172. package/dist/schema/call/receipt.d.ts +1 -0
  173. package/dist/schema/call/receipt.js +1 -1
  174. package/dist/schema/call/repository.d.ts +12 -0
  175. package/dist/schema/call/repository.js +1 -1
  176. package/dist/schema/call/reward.js +1 -1
  177. package/dist/schema/call/semantic.d.ts +1 -0
  178. package/dist/schema/call/semantic.js +1 -1
  179. package/dist/schema/call/service.d.ts +5 -3
  180. package/dist/schema/call/service.js +1 -1
  181. package/dist/schema/common/index.js +1 -1
  182. package/dist/schema/envelope-unify.js +1 -1
  183. package/dist/schema/goal/index.d.ts +23 -0
  184. package/dist/schema/goal/planning.js +1 -1
  185. package/dist/schema/industry-pack/index.d.ts +2 -2
  186. package/dist/schema/local/index.d.ts +20 -0
  187. package/dist/schema/local/index.js +1 -1
  188. package/dist/schema/local/wip.d.ts +4 -0
  189. package/dist/schema/local/wip.js +1 -1
  190. package/dist/schema/messenger/index.d.ts +5 -0
  191. package/dist/schema/messenger/index.js +1 -1
  192. package/dist/schema/operations.d.ts +944 -1
  193. package/dist/schema/operations.js +1 -1
  194. package/dist/schema/query/bi.js +1 -1
  195. package/dist/schema/query/index.d.ts +5 -5
  196. package/dist/schema/query/index.js +1 -1
  197. package/dist/schema/schema-version.js +1 -1
  198. package/dist/schema/workspace/index.d.ts +2 -2
  199. package/dist/schema-query-impl/index.js +1 -1
  200. package/dist/schemas/account_operation.schema.json +1 -257
  201. package/dist/schemas/ask_user.schema.json +1 -78
  202. package/dist/schemas/benchmark_migration_operation.schema.json +1 -626
  203. package/dist/schemas/bridge_operation.schema.json +1 -1069
  204. package/dist/schemas/config_operation.schema.json +1 -82
  205. package/dist/schemas/employee_operation.schema.json +1 -319
  206. package/dist/schemas/evaluation_operation.schema.json +1 -3932
  207. package/dist/schemas/goal_operation.schema.json +1 -1650
  208. package/dist/schemas/guard2file.schema.json +1 -137
  209. package/dist/schemas/index.json +1 -285
  210. package/dist/schemas/industry_pack_operation.schema.json +1 -582
  211. package/dist/schemas/intent_radar.schema.json +1 -155
  212. package/dist/schemas/keeper_operation.schema.json +1 -364
  213. package/dist/schemas/local_cache_operation.schema.json +1 -116
  214. package/dist/schemas/local_history_operation.schema.json +1 -105
  215. package/dist/schemas/local_info_operation.schema.json +1 -140
  216. package/dist/schemas/local_mark_operation.schema.json +1 -124
  217. package/dist/schemas/machineNode2file.schema.json +1 -137
  218. package/dist/schemas/messenger_operation.schema.json +1 -2068
  219. package/dist/schemas/monitor_events.schema.json +1 -87
  220. package/dist/schemas/monitor_subscription.schema.json +1 -327
  221. package/dist/schemas/onchain_events.schema.json +1 -207
  222. package/dist/schemas/onchain_operations.schema.json +1 -28699
  223. package/dist/schemas/onchain_operations_allocation.schema.json +1 -1376
  224. package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1355
  225. package/dist/schemas/onchain_operations_contact.schema.json +1 -988
  226. package/dist/schemas/onchain_operations_demand.schema.json +1 -1146
  227. package/dist/schemas/onchain_operations_gen_passport.schema.json +1 -663
  228. package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -180
  229. package/dist/schemas/onchain_operations_guard.schema.json +1 -8518
  230. package/dist/schemas/onchain_operations_machine.schema.json +1 -1879
  231. package/dist/schemas/onchain_operations_order.schema.json +1 -1121
  232. package/dist/schemas/onchain_operations_payment.schema.json +1 -316
  233. package/dist/schemas/onchain_operations_permission.schema.json +1 -1036
  234. package/dist/schemas/onchain_operations_personal.schema.json +1 -1463
  235. package/dist/schemas/onchain_operations_progress.schema.json +1 -1041
  236. package/dist/schemas/onchain_operations_proof.schema.json +1 -750
  237. package/dist/schemas/onchain_operations_repository.schema.json +1 -2046
  238. package/dist/schemas/onchain_operations_reward.schema.json +1 -1286
  239. package/dist/schemas/onchain_operations_service.schema.json +1 -2602
  240. package/dist/schemas/onchain_operations_treasury.schema.json +1 -1527
  241. package/dist/schemas/onchain_table_data.schema.json +1 -1146
  242. package/dist/schemas/permission_operation.schema.json +1 -43
  243. package/dist/schemas/persona_operation.schema.json +1 -10424
  244. package/dist/schemas/query_toolkit.schema.json +1 -1867
  245. package/dist/schemas/schema_query.schema.json +1 -116
  246. package/dist/schemas/service_clone_operation.schema.json +1 -49
  247. package/dist/schemas/settle_sweep.schema.json +1 -0
  248. package/dist/schemas/strategy_review_operation.schema.json +1 -66
  249. package/dist/schemas/verify_guard_dry_run.schema.json +1 -0
  250. package/dist/schemas/watch_operation.schema.json +1 -145
  251. package/dist/schemas/wip_file.schema.json +1 -299
  252. package/dist/schemas/workflow_operation.schema.json +1 -722
  253. package/dist/schemas/workspace_operation.schema.json +1 -104
  254. package/dist/schemas/wowok_buildin_info.schema.json +1 -758
  255. package/dist/tools/handlers/benchmark-migration.js +1 -1
  256. package/dist/tools/handlers/config.js +1 -1
  257. package/dist/tools/handlers/entry-edge-recipe.js +1 -1
  258. package/dist/tools/handlers/file-export.js +1 -1
  259. package/dist/tools/handlers/local.js +1 -1
  260. package/dist/tools/handlers/messenger.js +1 -1
  261. package/dist/tools/handlers/onchain.js +1 -1
  262. package/dist/tools/handlers/pending-settlement-recipe.js +1 -0
  263. package/dist/tools/handlers/plan-recovery.js +1 -0
  264. package/dist/tools/handlers/query.js +1 -1
  265. package/dist/tools/handlers/repository-row-id.js +1 -0
  266. package/dist/tools/handlers/review-chain.js +1 -1
  267. package/dist/tools/handlers/settle-sweep.js +1 -0
  268. package/dist/tools/handlers/stale-build-check.js +1 -1
  269. package/dist/tools/handlers/submission-assembly.js +1 -1
  270. package/dist/tools/handlers/verify-guard-dry-run.js +1 -0
  271. package/dist/tools/handlers/wip-upload.js +1 -1
  272. package/dist/tools/index.d.ts +3 -1
  273. package/dist/tools/index.js +1 -1
  274. package/dist/tools/move-fn-index.gen.js +1 -1
  275. package/dist/tools/publish-gate-state.js +1 -1
  276. package/dist/tools/registry/business.js +1 -1
  277. package/dist/tools/registry/onchain.js +1 -1
  278. package/dist/tools/shared.js +1 -1
  279. package/dist/tools/types.d.ts +1 -1
  280. package/dist/tools/wrap.js +1 -1
  281. package/package.json +11 -4
  282. package/dist/chain-semantics/composition-truth.d.ts +0 -102
  283. package/dist/chain-semantics/eval-order.d.ts +0 -17
  284. package/dist/chain-semantics/field-capability.d.ts +0 -11
  285. package/dist/chain-semantics/freeze-map.d.ts +0 -11
  286. package/dist/chain-semantics/fund-flow.d.ts +0 -10
  287. package/dist/chain-semantics/guard-verbs.d.ts +0 -22
  288. package/dist/chain-semantics/index.d.ts +0 -12
  289. package/dist/chain-semantics/object-graph.d.ts +0 -18
  290. package/dist/communication/evidence.d.ts +0 -6
  291. package/dist/communication/message-cursors.d.ts +0 -35
  292. package/dist/communication/proof-reuse.d.ts +0 -9
  293. package/dist/communication/wts-attestation.d.ts +0 -39
  294. package/dist/composition/audit.d.ts +0 -15
  295. package/dist/composition/blueprint-view.d.ts +0 -63
  296. package/dist/composition/compile.d.ts +0 -83
  297. package/dist/composition/emit-phases.d.ts +0 -234
  298. package/dist/composition/generate.d.ts +0 -40
  299. package/dist/composition/guard-fill.d.ts +0 -52
  300. package/dist/composition/inflight.d.ts +0 -86
  301. package/dist/composition/input-normalize.d.ts +0 -15
  302. package/dist/composition/materialize.d.ts +0 -78
  303. package/dist/composition/mode-gates.d.ts +0 -35
  304. package/dist/composition/param-disclosure.d.ts +0 -61
  305. package/dist/composition/plan-retry-ledger.d.ts +0 -37
  306. package/dist/composition/plan.d.ts +0 -121
  307. package/dist/composition/product-card.d.ts +0 -94
  308. package/dist/composition/reflux.d.ts +0 -28
  309. package/dist/composition/supply-chain-emit.d.ts +0 -46
  310. package/dist/config/config-audit.spec.d.ts +0 -1
  311. package/dist/config/config-audit.spec.js +0 -1
  312. package/dist/config/config-warnings.d.ts +0 -2
  313. package/dist/config/index.d.ts +0 -4
  314. package/dist/config/judgment.spec.d.ts +0 -1
  315. package/dist/config/judgment.spec.js +0 -1
  316. package/dist/config/match-policy-file.d.ts +0 -34
  317. package/dist/config/match-policy-file.spec.d.ts +0 -1
  318. package/dist/config/match-policy-file.spec.js +0 -1
  319. package/dist/config/rule-engine.spec.d.ts +0 -1
  320. package/dist/config/rule-engine.spec.js +0 -1
  321. package/dist/config/runtime.d.ts +0 -29
  322. package/dist/config/store-policy.d.ts +0 -14
  323. package/dist/config/store-policy.spec.d.ts +0 -1
  324. package/dist/config/store-policy.spec.js +0 -1
  325. package/dist/config/template-params.d.ts +0 -42
  326. package/dist/config/template-params.spec.d.ts +0 -1
  327. package/dist/config/template-params.spec.js +0 -1
  328. package/dist/customer/account-events.d.ts +0 -32
  329. package/dist/data/api/api.spec.d.ts +0 -1
  330. package/dist/data/api/api.spec.js +0 -1
  331. package/dist/data/api/cli.d.ts +0 -1
  332. package/dist/data/api/head.d.ts +0 -16
  333. package/dist/data/api/head.spec.d.ts +0 -1
  334. package/dist/data/api/head.spec.js +0 -1
  335. package/dist/data/api/index.d.ts +0 -2
  336. package/dist/data/api/match.d.ts +0 -69
  337. package/dist/data/api/match.spec.d.ts +0 -1
  338. package/dist/data/api/match.spec.js +0 -1
  339. package/dist/data/api/server.d.ts +0 -13
  340. package/dist/data/projection/cli.d.ts +0 -1
  341. package/dist/data/projection/edges.d.ts +0 -8
  342. package/dist/data/projection/edges.spec.d.ts +0 -1
  343. package/dist/data/projection/edges.spec.js +0 -1
  344. package/dist/data/projection/facets.d.ts +0 -18
  345. package/dist/data/projection/facets.spec.d.ts +0 -1
  346. package/dist/data/projection/facets.spec.js +0 -1
  347. package/dist/data/projection/facts.d.ts +0 -40
  348. package/dist/data/projection/index.d.ts +0 -6
  349. package/dist/data/projection/project.d.ts +0 -10
  350. package/dist/data/projection/projection.spec.d.ts +0 -1
  351. package/dist/data/projection/projection.spec.js +0 -1
  352. package/dist/data/projection/schema.d.ts +0 -1
  353. package/dist/data/projection/store.d.ts +0 -51
  354. package/dist/data/projection/types.d.ts +0 -169
  355. package/dist/data/sync/cdc.d.ts +0 -33
  356. package/dist/data/sync/cdc.spec.d.ts +0 -1
  357. package/dist/data/sync/cdc.spec.js +0 -1
  358. package/dist/data/sync/graphql-source.d.ts +0 -16
  359. package/dist/data/sync/index.d.ts +0 -5
  360. package/dist/data/sync/reconciler.d.ts +0 -14
  361. package/dist/data/sync/reconciler.spec.d.ts +0 -1
  362. package/dist/data/sync/reconciler.spec.js +0 -1
  363. package/dist/data/sync/schema.d.ts +0 -1
  364. package/dist/data/sync/store.d.ts +0 -24
  365. package/dist/data/sync/sync.spec.d.ts +0 -1
  366. package/dist/data/sync/sync.spec.js +0 -1
  367. package/dist/data/sync/synchronizer.d.ts +0 -10
  368. package/dist/data/sync/types.d.ts +0 -164
  369. package/dist/evaluation/acceptance.d.ts +0 -33
  370. package/dist/evaluation/architecture.spec.d.ts +0 -1
  371. package/dist/evaluation/architecture.spec.js +0 -1
  372. package/dist/evaluation/builtins/arbitration-score.d.ts +0 -42
  373. package/dist/evaluation/builtins/demand-match.d.ts +0 -16
  374. package/dist/evaluation/builtins/graph-service.spec.d.ts +0 -1
  375. package/dist/evaluation/builtins/graph-service.spec.js +0 -1
  376. package/dist/evaluation/builtins/index.d.ts +0 -4
  377. package/dist/evaluation/builtins/purity.spec.d.ts +0 -1
  378. package/dist/evaluation/builtins/purity.spec.js +0 -1
  379. package/dist/evaluation/composer.d.ts +0 -38
  380. package/dist/evaluation/facets/catalog.d.ts +0 -19
  381. package/dist/evaluation/gap.d.ts +0 -2
  382. package/dist/evaluation/guard-scan.d.ts +0 -10
  383. package/dist/evaluation/index.d.ts +0 -14
  384. package/dist/evaluation/injection.d.ts +0 -6
  385. package/dist/evaluation/location-match.d.ts +0 -42
  386. package/dist/evaluation/match-operation.d.ts +0 -23
  387. package/dist/evaluation/match-policy-resolver.d.ts +0 -9
  388. package/dist/evaluation/match-policy.spec.d.ts +0 -1
  389. package/dist/evaluation/match-policy.spec.js +0 -1
  390. package/dist/evaluation/path-reasoning.d.ts +0 -37
  391. package/dist/evaluation/standards.d.ts +0 -11
  392. package/dist/evaluation/standards.spec.d.ts +0 -1
  393. package/dist/evaluation/standards.spec.js +0 -1
  394. package/dist/evaluation/structured-lines.d.ts +0 -8
  395. package/dist/evaluation/user-injection.d.ts +0 -6
  396. package/dist/experience/experience-reuse.d.ts +0 -10
  397. package/dist/experience/index.d.ts +0 -7
  398. package/dist/experience/persistence-config.d.ts +0 -6
  399. package/dist/experience/persistence.d.ts +0 -21
  400. package/dist/experience/realtime-feedback.d.ts +0 -5
  401. package/dist/experience/user-profile.d.ts +0 -25
  402. package/dist/extensions/capability.d.ts +0 -91
  403. package/dist/extensions/industry-audit.spec.d.ts +0 -1
  404. package/dist/extensions/industry-audit.spec.js +0 -1
  405. package/dist/goal/GoalClassifier.d.ts +0 -17
  406. package/dist/goal/GoalEngine.d.ts +0 -175
  407. package/dist/goal/GoalStore.d.ts +0 -27
  408. package/dist/goal/next-steps.d.ts +0 -12
  409. package/dist/goal/plan-approval.d.ts +0 -5
  410. package/dist/goal/pursue.d.ts +0 -18
  411. package/dist/graph/base.d.ts +0 -8
  412. package/dist/graph/onchain/analyze.d.ts +0 -59
  413. package/dist/graph/onchain/analyze.spec.d.ts +0 -1
  414. package/dist/graph/onchain/analyze.spec.js +0 -1
  415. package/dist/graph/onchain/anti-cheat.d.ts +0 -69
  416. package/dist/graph/onchain/anti-cheat.spec.d.ts +0 -1
  417. package/dist/graph/onchain/anti-cheat.spec.js +0 -1
  418. package/dist/graph/onchain/dataplane.d.ts +0 -44
  419. package/dist/graph/onchain/edge-batch.spec.d.ts +0 -1
  420. package/dist/graph/onchain/edge-batch.spec.js +0 -1
  421. package/dist/graph/onchain/edge-schema.d.ts +0 -69
  422. package/dist/graph/onchain/entity-profile.spec.d.ts +0 -1
  423. package/dist/graph/onchain/entity-profile.spec.js +0 -1
  424. package/dist/graph/onchain/event-history.spec.d.ts +0 -1
  425. package/dist/graph/onchain/event-history.spec.js +0 -1
  426. package/dist/graph/onchain/expand.d.ts +0 -4
  427. package/dist/graph/onchain/exploration.d.ts +0 -28
  428. package/dist/graph/onchain/exploration.spec.d.ts +0 -1
  429. package/dist/graph/onchain/exploration.spec.js +0 -1
  430. package/dist/graph/onchain/exposure.d.ts +0 -18
  431. package/dist/graph/onchain/exposure.spec.d.ts +0 -1
  432. package/dist/graph/onchain/exposure.spec.js +0 -1
  433. package/dist/graph/onchain/extract-deep.spec.d.ts +0 -1
  434. package/dist/graph/onchain/extract-deep.spec.js +0 -1
  435. package/dist/graph/onchain/extract.d.ts +0 -29
  436. package/dist/graph/onchain/facet-projection.d.ts +0 -99
  437. package/dist/graph/onchain/facet-projection.spec.d.ts +0 -1
  438. package/dist/graph/onchain/facet-projection.spec.js +0 -1
  439. package/dist/graph/onchain/facts.spec.d.ts +0 -1
  440. package/dist/graph/onchain/facts.spec.js +0 -1
  441. package/dist/graph/onchain/field-manifest.d.ts +0 -29
  442. package/dist/graph/onchain/field-manifest.spec.d.ts +0 -1
  443. package/dist/graph/onchain/field-manifest.spec.js +0 -1
  444. package/dist/graph/onchain/fixtures.d.ts +0 -80
  445. package/dist/graph/onchain/fixtures.spec.d.ts +0 -1
  446. package/dist/graph/onchain/fixtures.spec.js +0 -1
  447. package/dist/graph/onchain/graph-policy.spec.d.ts +0 -1
  448. package/dist/graph/onchain/graph-policy.spec.js +0 -1
  449. package/dist/graph/onchain/index.d.ts +0 -29
  450. package/dist/graph/onchain/interest.d.ts +0 -10
  451. package/dist/graph/onchain/interest.spec.d.ts +0 -1
  452. package/dist/graph/onchain/interest.spec.js +0 -1
  453. package/dist/graph/onchain/label-lint.spec.d.ts +0 -1
  454. package/dist/graph/onchain/label-lint.spec.js +0 -1
  455. package/dist/graph/onchain/names.d.ts +0 -23
  456. package/dist/graph/onchain/names.spec.d.ts +0 -1
  457. package/dist/graph/onchain/names.spec.js +0 -1
  458. package/dist/graph/onchain/object-held-receipts.d.ts +0 -20
  459. package/dist/graph/onchain/object-held-receipts.spec.d.ts +0 -1
  460. package/dist/graph/onchain/object-held-receipts.spec.js +0 -1
  461. package/dist/graph/onchain/onchain.spec.d.ts +0 -1
  462. package/dist/graph/onchain/onchain.spec.js +0 -1
  463. package/dist/graph/onchain/policy.d.ts +0 -8
  464. package/dist/graph/onchain/project-relationship.d.ts +0 -3
  465. package/dist/graph/onchain/proposal-graph.d.ts +0 -11
  466. package/dist/graph/onchain/proposal-graph.spec.d.ts +0 -1
  467. package/dist/graph/onchain/proposal-graph.spec.js +0 -1
  468. package/dist/graph/onchain/sdk-batch.d.ts +0 -129
  469. package/dist/graph/onchain/sdk-dataplane.d.ts +0 -44
  470. package/dist/graph/onchain/strategy.spec.d.ts +0 -1
  471. package/dist/graph/onchain/strategy.spec.js +0 -1
  472. package/dist/graph/onchain/synthesis.d.ts +0 -20
  473. package/dist/graph/onchain/synthesis.spec.d.ts +0 -1
  474. package/dist/graph/onchain/synthesis.spec.js +0 -1
  475. package/dist/graph/onchain/table-ledger.spec.d.ts +0 -1
  476. package/dist/graph/onchain/table-ledger.spec.js +0 -1
  477. package/dist/graph/onchain/viewport.d.ts +0 -6
  478. package/dist/harness/auto-escalation.d.ts +0 -15
  479. package/dist/intent/enrich.d.ts +0 -1
  480. package/dist/intent/index.d.ts +0 -23
  481. package/dist/intent/matcher.d.ts +0 -2
  482. package/dist/intent/store.d.ts +0 -19
  483. package/dist/intent/types.d.ts +0 -32
  484. package/dist/keeper/KeeperScan.d.ts +0 -41
  485. package/dist/keeper/KeeperStore.d.ts +0 -43
  486. package/dist/keeper/detectors.d.ts +0 -42
  487. package/dist/keeper/keeper.spec.d.ts +0 -1
  488. package/dist/keeper/keeper.spec.js +0 -1
  489. package/dist/keeper/types.d.ts +0 -67
  490. package/dist/knowledge/account-marks.d.ts +0 -36
  491. package/dist/knowledge/allocation-ledger.d.ts +0 -75
  492. package/dist/knowledge/allocation-puzzle.d.ts +0 -138
  493. package/dist/knowledge/allocation-risk.d.ts +0 -82
  494. package/dist/knowledge/allocation-templates.d.ts +0 -38
  495. package/dist/knowledge/allocator-rail-verifier.d.ts +0 -59
  496. package/dist/knowledge/anti-cheat.d.ts +0 -2
  497. package/dist/knowledge/arb-fund-facts.d.ts +0 -51
  498. package/dist/knowledge/arb-risk.d.ts +0 -39
  499. package/dist/knowledge/arbitration-puzzle.d.ts +0 -84
  500. package/dist/knowledge/arbitration-rail-verifier.d.ts +0 -35
  501. package/dist/knowledge/arbitration-risk.d.ts +0 -114
  502. package/dist/knowledge/arbitration-templates.d.ts +0 -39
  503. package/dist/knowledge/arbitration-venue-order.d.ts +0 -25
  504. package/dist/knowledge/baselines/guard-lint-baseline.spec.d.ts +0 -1
  505. package/dist/knowledge/baselines/guard-lint-baseline.spec.js +0 -1
  506. package/dist/knowledge/baselines/risk-baselines.spec.d.ts +0 -1
  507. package/dist/knowledge/baselines/risk-baselines.spec.js +0 -1
  508. package/dist/knowledge/baselines/risk-cases.d.ts +0 -8
  509. package/dist/knowledge/baselines/semantic-facts.d.ts +0 -12
  510. package/dist/knowledge/bridge-risk.d.ts +0 -36
  511. package/dist/knowledge/catalog-facts.d.ts +0 -4
  512. package/dist/knowledge/chain-query-registry.d.ts +0 -14
  513. package/dist/knowledge/commission-landing.d.ts +0 -26
  514. package/dist/knowledge/component-schema.d.ts +0 -64
  515. package/dist/knowledge/contact-risk.d.ts +0 -32
  516. package/dist/knowledge/contact-templates.d.ts +0 -26
  517. package/dist/knowledge/contract-invariants.d.ts +0 -54
  518. package/dist/knowledge/demand-risk.d.ts +0 -30
  519. package/dist/knowledge/discount-threshold.d.ts +0 -26
  520. package/dist/knowledge/dynamic-pricing.d.ts +0 -29
  521. package/dist/knowledge/entity-recipient-guard.d.ts +0 -21
  522. package/dist/knowledge/event-semantics.d.ts +0 -23
  523. package/dist/knowledge/evidence-review.d.ts +0 -35
  524. package/dist/knowledge/fee-param-bindings.d.ts +0 -28
  525. package/dist/knowledge/flywheel-loop.d.ts +0 -41
  526. package/dist/knowledge/game-scenarios.d.ts +0 -21
  527. package/dist/knowledge/getting-started.d.ts +0 -37
  528. package/dist/knowledge/goal-completion.d.ts +0 -31
  529. package/dist/knowledge/guard-anchor-reach.d.ts +0 -19
  530. package/dist/knowledge/guard-binding-table.d.ts +0 -52
  531. package/dist/knowledge/guard-binding-verifier.d.ts +0 -37
  532. package/dist/knowledge/guard-bindings.d.ts +0 -21
  533. package/dist/knowledge/guard-blueprint.d.ts +0 -68
  534. package/dist/knowledge/guard-design-patterns.d.ts +0 -38
  535. package/dist/knowledge/guard-eval.d.ts +0 -15
  536. package/dist/knowledge/guard-field-cognition.d.ts +0 -48
  537. package/dist/knowledge/guard-host-context.d.ts +0 -24
  538. package/dist/knowledge/guard-ledger.d.ts +0 -19
  539. package/dist/knowledge/guard-leg-map.d.ts +0 -5
  540. package/dist/knowledge/guard-lint.d.ts +0 -79
  541. package/dist/knowledge/guard-node-gates.d.ts +0 -9
  542. package/dist/knowledge/guard-puzzle.d.ts +0 -188
  543. package/dist/knowledge/guard-render.d.ts +0 -71
  544. package/dist/knowledge/guard-risk.d.ts +0 -71
  545. package/dist/knowledge/guard-submission-brief.d.ts +0 -94
  546. package/dist/knowledge/guard-submission-prompt.d.ts +0 -63
  547. package/dist/knowledge/guard-translation.d.ts +0 -58
  548. package/dist/knowledge/index.d.ts +0 -299
  549. package/dist/knowledge/industry-evolution.d.ts +0 -82
  550. package/dist/knowledge/industry-generalizer.d.ts +0 -63
  551. package/dist/knowledge/industry-rule-node.d.ts +0 -7
  552. package/dist/knowledge/industry-strategy.d.ts +0 -91
  553. package/dist/knowledge/intent-metrics.d.ts +0 -43
  554. package/dist/knowledge/jsonrpc-enum.d.ts +0 -102
  555. package/dist/knowledge/knob-docs.d.ts +0 -5
  556. package/dist/knowledge/machine-fork-watch.d.ts +0 -9
  557. package/dist/knowledge/machine-ledger.d.ts +0 -42
  558. package/dist/knowledge/machine-puzzle.d.ts +0 -206
  559. package/dist/knowledge/machine-risk.d.ts +0 -72
  560. package/dist/knowledge/machine-templates.d.ts +0 -92
  561. package/dist/knowledge/machine-topology.d.ts +0 -116
  562. package/dist/knowledge/machine-translation.d.ts +0 -96
  563. package/dist/knowledge/market-metrics.d.ts +0 -34
  564. package/dist/knowledge/market-operations.d.ts +0 -46
  565. package/dist/knowledge/migration-preflight.d.ts +0 -27
  566. package/dist/knowledge/object-dependency.d.ts +0 -31
  567. package/dist/knowledge/operation-dictionary.d.ts +0 -18
  568. package/dist/knowledge/order-ledger.d.ts +0 -69
  569. package/dist/knowledge/order-puzzle.d.ts +0 -162
  570. package/dist/knowledge/order-risk.d.ts +0 -62
  571. package/dist/knowledge/order-templates.d.ts +0 -50
  572. package/dist/knowledge/param-schema.d.ts +0 -93
  573. package/dist/knowledge/param-tiers.d.ts +0 -27
  574. package/dist/knowledge/passport-ledger.d.ts +0 -60
  575. package/dist/knowledge/passport-templates.d.ts +0 -40
  576. package/dist/knowledge/path-oracle/coverage.d.ts +0 -16
  577. package/dist/knowledge/path-oracle/index.d.ts +0 -5
  578. package/dist/knowledge/path-oracle/products/food-delivery.d.ts +0 -2
  579. package/dist/knowledge/path-oracle/schema.d.ts +0 -188
  580. package/dist/knowledge/pattern-resolutions.d.ts +0 -110
  581. package/dist/knowledge/payment-risk.d.ts +0 -38
  582. package/dist/knowledge/payment-tracker.d.ts +0 -63
  583. package/dist/knowledge/permission-ledger.d.ts +0 -49
  584. package/dist/knowledge/permission-puzzle.d.ts +0 -122
  585. package/dist/knowledge/permission-risk.d.ts +0 -70
  586. package/dist/knowledge/permission-templates.d.ts +0 -38
  587. package/dist/knowledge/personal-risk.d.ts +0 -36
  588. package/dist/knowledge/product-detail-source.d.ts +0 -37
  589. package/dist/knowledge/product-doc-b5.d.ts +0 -16
  590. package/dist/knowledge/progress-ledger.d.ts +0 -63
  591. package/dist/knowledge/progress-puzzle.d.ts +0 -82
  592. package/dist/knowledge/progress-risk.d.ts +0 -75
  593. package/dist/knowledge/progress-templates.d.ts +0 -38
  594. package/dist/knowledge/projection.d.ts +0 -54
  595. package/dist/knowledge/projection.spec.d.ts +0 -1
  596. package/dist/knowledge/projection.spec.js +0 -1
  597. package/dist/knowledge/proof-risk.d.ts +0 -33
  598. package/dist/knowledge/protocol-facts.d.ts +0 -17
  599. package/dist/knowledge/publish-gate.d.ts +0 -20
  600. package/dist/knowledge/publish-readiness.d.ts +0 -25
  601. package/dist/knowledge/publish-surface-contract.d.ts +0 -16
  602. package/dist/knowledge/puzzle-projections.d.ts +0 -11
  603. package/dist/knowledge/rail-exit-satisfiability.d.ts +0 -25
  604. package/dist/knowledge/registrar-risk.d.ts +0 -34
  605. package/dist/knowledge/release-sentinel.d.ts +0 -12
  606. package/dist/knowledge/repository-risk.d.ts +0 -46
  607. package/dist/knowledge/repository-write-semantics.d.ts +0 -27
  608. package/dist/knowledge/reputation-rules.d.ts +0 -36
  609. package/dist/knowledge/requirement-families.d.ts +0 -13
  610. package/dist/knowledge/resource-risk.d.ts +0 -32
  611. package/dist/knowledge/reward-ledger.d.ts +0 -97
  612. package/dist/knowledge/reward-puzzle.d.ts +0 -98
  613. package/dist/knowledge/reward-risk.d.ts +0 -86
  614. package/dist/knowledge/reward-templates.d.ts +0 -25
  615. package/dist/knowledge/rule-node-analyzers.d.ts +0 -49
  616. package/dist/knowledge/rule-outcome.d.ts +0 -5
  617. package/dist/knowledge/scenario-topology.d.ts +0 -48
  618. package/dist/knowledge/semantic-ir.d.ts +0 -136
  619. package/dist/knowledge/service-allocation-semantics.d.ts +0 -36
  620. package/dist/knowledge/service-allocator-audit-node.d.ts +0 -3
  621. package/dist/knowledge/service-ledger.d.ts +0 -87
  622. package/dist/knowledge/service-puzzle.d.ts +0 -158
  623. package/dist/knowledge/service-risk-node.d.ts +0 -3
  624. package/dist/knowledge/service-risk.d.ts +0 -110
  625. package/dist/knowledge/service-templates.d.ts +0 -41
  626. package/dist/knowledge/settlement-semantics.d.ts +0 -1
  627. package/dist/knowledge/strategy-manuals.d.ts +0 -15
  628. package/dist/knowledge/supply-chain.d.ts +0 -35
  629. package/dist/knowledge/template-index.d.ts +0 -19
  630. package/dist/knowledge/template-loader.d.ts +0 -425
  631. package/dist/knowledge/template-nav.d.ts +0 -9
  632. package/dist/knowledge/template-prose.d.ts +0 -50
  633. package/dist/knowledge/template-registry.d.ts +0 -48
  634. package/dist/knowledge/template-scanner.d.ts +0 -158
  635. package/dist/knowledge/template-test-profiles.d.ts +0 -17
  636. package/dist/knowledge/template-validation.d.ts +0 -3
  637. package/dist/knowledge/tools-reference.d.ts +0 -17
  638. package/dist/knowledge/treasury-ledger.d.ts +0 -42
  639. package/dist/knowledge/treasury-puzzle.d.ts +0 -163
  640. package/dist/knowledge/treasury-risk.d.ts +0 -88
  641. package/dist/knowledge/treasury-templates.d.ts +0 -38
  642. package/dist/knowledge/universal-template.d.ts +0 -22
  643. package/dist/knowledge/util-risk.d.ts +0 -30
  644. package/dist/knowledge/workflow-guidance.d.ts +0 -194
  645. package/dist/knowledge/workspace-lists.d.ts +0 -61
  646. package/dist/monitor/SuggestionBridge.spec.d.ts +0 -1
  647. package/dist/monitor/SuggestionBridge.spec.js +0 -1
  648. package/dist/participation/arbitrator-interest.d.ts +0 -22
  649. package/dist/participation/demander-interest.d.ts +0 -23
  650. package/dist/participation/employee-kpi.d.ts +0 -37
  651. package/dist/participation/employee-kpi.spec.d.ts +0 -1
  652. package/dist/participation/employee-kpi.spec.js +0 -1
  653. package/dist/participation/employee-store.d.ts +0 -16
  654. package/dist/participation/game-context.d.ts +0 -25
  655. package/dist/participation/index.d.ts +0 -2
  656. package/dist/participation/node-action-advisor.d.ts +0 -68
  657. package/dist/participation/time-window.d.ts +0 -48
  658. package/dist/persona/facet-profile.d.ts +0 -33
  659. package/dist/persona/persona-audit.spec.d.ts +0 -1
  660. package/dist/persona/persona-audit.spec.js +0 -1
  661. package/dist/playbooks/service-build/business-puzzle.d.ts +0 -48
  662. package/dist/playbooks/service-build/context-assembly.d.ts +0 -32
  663. package/dist/playbooks/service-build/facet-money.d.ts +0 -33
  664. package/dist/playbooks/service-build/facet-money.spec.d.ts +0 -1
  665. package/dist/playbooks/service-build/facet-money.spec.js +0 -1
  666. package/dist/playbooks/service-build/game-theory.d.ts +0 -47
  667. package/dist/playbooks/service-build/index.d.ts +0 -15
  668. package/dist/playbooks/service-build/intent-analyzer.d.ts +0 -72
  669. package/dist/playbooks/service-build/machine-nodes.d.ts +0 -27
  670. package/dist/playbooks/service-build/machine-panorama.d.ts +0 -71
  671. package/dist/playbooks/service-build/merchant-guide.d.ts +0 -382
  672. package/dist/playbooks/service-build/migration-planner.d.ts +0 -61
  673. package/dist/playbooks/service-build/mode-actions.d.ts +0 -260
  674. package/dist/playbooks/service-build/object-panorama.d.ts +0 -317
  675. package/dist/playbooks/service-build/object-type.d.ts +0 -1
  676. package/dist/playbooks/service-build/participation-radar.d.ts +0 -20
  677. package/dist/playbooks/service-build/pipeline-actions.d.ts +0 -108
  678. package/dist/playbooks/service-build/process.d.ts +0 -6
  679. package/dist/playbooks/service-build/relationship-profile.d.ts +0 -3
  680. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.d.ts +0 -1
  681. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.js +0 -1
  682. package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.d.ts +0 -1
  683. package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.js +0 -1
  684. package/dist/playbooks/service-build/reverse-mapping.d.ts +0 -66
  685. package/dist/playbooks/service-build/risk-aggregator.d.ts +0 -59
  686. package/dist/playbooks/service-build/service-panorama.d.ts +0 -229
  687. package/dist/playbooks/service-build/service-quote.d.ts +0 -2
  688. package/dist/playbooks/service-build/service-quote.spec.d.ts +0 -1
  689. package/dist/playbooks/service-build/service-quote.spec.js +0 -1
  690. package/dist/playbooks/service-build/topology-evaluation.spec.d.ts +0 -1
  691. package/dist/playbooks/service-build/topology-evaluation.spec.js +0 -1
  692. package/dist/playbooks/service-build/topology-query.d.ts +0 -25
  693. package/dist/playbooks/service-build/workflow-design-assessment.d.ts +0 -33
  694. package/dist/relationship/derivation.d.ts +0 -95
  695. package/dist/relationship/derivation.spec.d.ts +0 -1
  696. package/dist/relationship/derivation.spec.js +0 -1
  697. package/dist/relationship/incentive.d.ts +0 -38
  698. package/dist/relationship/index.d.ts +0 -4
  699. package/dist/relationship/registry.d.ts +0 -13
  700. package/dist/relationship/types.d.ts +0 -45
  701. package/dist/review/arb.d.ts +0 -4
  702. package/dist/review/demand.d.ts +0 -3
  703. package/dist/review/index.d.ts +0 -3
  704. package/dist/review/machine.d.ts +0 -3
  705. package/dist/review/order.d.ts +0 -8
  706. package/dist/review/progress.d.ts +0 -3
  707. package/dist/review/repository.d.ts +0 -3
  708. package/dist/review/service.d.ts +0 -5
  709. package/dist/review/types.d.ts +0 -163
  710. package/dist/role/derivation.d.ts +0 -35
  711. package/dist/role/index.d.ts +0 -6
  712. package/dist/role/intent.d.ts +0 -23
  713. package/dist/role/model.d.ts +0 -9
  714. package/dist/role/profiles.d.ts +0 -26
  715. package/dist/role/resolution.d.ts +0 -27
  716. package/dist/runtime/instance-registry.d.ts +0 -14
  717. package/dist/safety/index.d.ts +0 -3
  718. package/dist/schema/call/permission-handler.d.ts +0 -5
  719. package/dist/schema/call/semantic-customer-advice.spec.d.ts +0 -1
  720. package/dist/schema/call/semantic-customer-advice.spec.js +0 -1
  721. package/dist/schema/common/tokentype-short-probe.spec.d.ts +0 -1
  722. package/dist/schema/common/tokentype-short-probe.spec.js +0 -1
  723. package/dist/schema/envelope-unify.d.ts +0 -5
  724. package/dist/schema/goal/planning.d.ts +0 -742
  725. package/dist/schema/industry-pack/modes.d.ts +0 -447
  726. package/dist/schema/query/bi.d.ts +0 -3369
  727. package/dist/schema/utils/guard-query-utils.d.ts +0 -18
  728. package/dist/schema/utils/permission-index-utils.d.ts +0 -2
  729. package/dist/schema/utils/skills-recommendation.d.ts +0 -2
  730. package/dist/schema-query-impl/index.d.ts +0 -83
  731. package/dist/schemas/account_operation.output.json +0 -3869
  732. package/dist/schemas/ask_user.output.json +0 -54
  733. package/dist/schemas/benchmark_migration_operation.output.json +0 -1669
  734. package/dist/schemas/bridge_operation.output.json +0 -1548
  735. package/dist/schemas/config_operation.output.json +0 -896
  736. package/dist/schemas/employee_operation.output.json +0 -307
  737. package/dist/schemas/evaluation_operation.output.json +0 -4716
  738. package/dist/schemas/guard2file.output.json +0 -83
  739. package/dist/schemas/industry_pack_operation.output.json +0 -2985
  740. package/dist/schemas/intent_radar.output.json +0 -326
  741. package/dist/schemas/keeper_operation.output.json +0 -1441
  742. package/dist/schemas/local_cache_operation.output.json +0 -1718
  743. package/dist/schemas/local_history_operation.output.json +0 -1644
  744. package/dist/schemas/local_info_operation.output.json +0 -1530
  745. package/dist/schemas/local_mark_operation.output.json +0 -1622
  746. package/dist/schemas/machineNode2file.output.json +0 -88
  747. package/dist/schemas/messenger_operation.output.json +0 -4692
  748. package/dist/schemas/monitor_events.output.json +0 -1602
  749. package/dist/schemas/monitor_subscription.output.json +0 -1629
  750. package/dist/schemas/onchain_events.output.json +0 -4053
  751. package/dist/schemas/onchain_operations.output.json +0 -7788
  752. package/dist/schemas/onchain_table_data.output.json +0 -11868
  753. package/dist/schemas/permission_operation.output.json +0 -205
  754. package/dist/schemas/persona_operation.output.json +0 -64612
  755. package/dist/schemas/query_toolkit.output.json +0 -28302
  756. package/dist/schemas/schema_query.output.json +0 -81
  757. package/dist/schemas/service_clone_operation.output.json +0 -247
  758. package/dist/schemas/strategy_review_operation.output.json +0 -532
  759. package/dist/schemas/watch_operation.output.json +0 -930
  760. package/dist/schemas/wip_file.output.json +0 -360
  761. package/dist/schemas/workflow_operation.output.json +0 -422
  762. package/dist/schemas/workspace_operation.output.json +0 -477
  763. package/dist/schemas/wowok_buildin_info.output.json +0 -2477
  764. package/dist/strategy/collectors.d.ts +0 -66
  765. package/dist/strategy/collectors.spec.d.ts +0 -1
  766. package/dist/strategy/collectors.spec.js +0 -1
  767. package/dist/strategy/index.d.ts +0 -5
  768. package/dist/strategy/metrics.d.ts +0 -20
  769. package/dist/strategy/review.d.ts +0 -48
  770. package/dist/strategy/scorecard.d.ts +0 -32
  771. package/dist/strategy/store.d.ts +0 -26
  772. package/dist/task/ProcessStore.d.ts +0 -98
  773. package/dist/task/playbook.d.ts +0 -11
  774. package/dist/task/substep-trace.d.ts +0 -91
  775. package/dist/tools/build-fingerprint.d.ts +0 -28
  776. package/dist/tools/error-catalog.d.ts +0 -17
  777. package/dist/tools/handlers/ask-user.d.ts +0 -3
  778. package/dist/tools/handlers/benchmark-migration.d.ts +0 -121
  779. package/dist/tools/handlers/bridge.d.ts +0 -8
  780. package/dist/tools/handlers/config.d.ts +0 -2
  781. package/dist/tools/handlers/dispatch-expectations.d.ts +0 -2
  782. package/dist/tools/handlers/dispatch-expectations.spec.d.ts +0 -1
  783. package/dist/tools/handlers/dispatch-expectations.spec.js +0 -1
  784. package/dist/tools/handlers/employee.d.ts +0 -8
  785. package/dist/tools/handlers/employee.spec.d.ts +0 -1
  786. package/dist/tools/handlers/employee.spec.js +0 -1
  787. package/dist/tools/handlers/entry-edge-recipe.d.ts +0 -101
  788. package/dist/tools/handlers/escrow-deficit.d.ts +0 -10
  789. package/dist/tools/handlers/evaluation.d.ts +0 -2
  790. package/dist/tools/handlers/evaluation.spec.d.ts +0 -1
  791. package/dist/tools/handlers/evaluation.spec.js +0 -1
  792. package/dist/tools/handlers/file-export.d.ts +0 -3
  793. package/dist/tools/handlers/fund-rail-recipe.d.ts +0 -10
  794. package/dist/tools/handlers/goal.d.ts +0 -4
  795. package/dist/tools/handlers/industry-pack.d.ts +0 -3
  796. package/dist/tools/handlers/intent-radar.d.ts +0 -2
  797. package/dist/tools/handlers/keeper.d.ts +0 -12
  798. package/dist/tools/handlers/local.d.ts +0 -6
  799. package/dist/tools/handlers/mark-namespace.d.ts +0 -30
  800. package/dist/tools/handlers/messenger.d.ts +0 -24
  801. package/dist/tools/handlers/monitor.d.ts +0 -26
  802. package/dist/tools/handlers/name-resolution.d.ts +0 -4
  803. package/dist/tools/handlers/name-resolution.spec.d.ts +0 -1
  804. package/dist/tools/handlers/name-resolution.spec.js +0 -1
  805. package/dist/tools/handlers/network.d.ts +0 -1
  806. package/dist/tools/handlers/onchain-name-registration.d.ts +0 -49
  807. package/dist/tools/handlers/onchain-name-registration.spec.d.ts +0 -1
  808. package/dist/tools/handlers/onchain-name-registration.spec.js +0 -1
  809. package/dist/tools/handlers/onchain.d.ts +0 -132
  810. package/dist/tools/handlers/permission.d.ts +0 -2
  811. package/dist/tools/handlers/persona.d.ts +0 -4
  812. package/dist/tools/handlers/publish-binding-echo.d.ts +0 -22
  813. package/dist/tools/handlers/review-chain.d.ts +0 -19
  814. package/dist/tools/handlers/schema-query.d.ts +0 -2
  815. package/dist/tools/handlers/service-clone.d.ts +0 -20
  816. package/dist/tools/handlers/stale-build-check.d.ts +0 -9
  817. package/dist/tools/handlers/strategy-review.d.ts +0 -2
  818. package/dist/tools/handlers/submission-assembly.d.ts +0 -55
  819. package/dist/tools/handlers/watch.d.ts +0 -2
  820. package/dist/tools/handlers/winner-derivation.d.ts +0 -20
  821. package/dist/tools/handlers/wip-upload.d.ts +0 -22
  822. package/dist/tools/handlers/wip.d.ts +0 -2
  823. package/dist/tools/handlers/workflow.d.ts +0 -2
  824. package/dist/tools/handlers/workspace.d.ts +0 -4
  825. package/dist/tools/move-fn-index.gen.d.ts +0 -3
  826. package/dist/tools/publish-gate-state.d.ts +0 -5
  827. package/dist/tools/registry/agent.d.ts +0 -2
  828. package/dist/tools/registry/bridge.d.ts +0 -2
  829. package/dist/tools/registry/business.d.ts +0 -2
  830. package/dist/tools/registry/config.d.ts +0 -2
  831. package/dist/tools/registry/evaluation.d.ts +0 -2
  832. package/dist/tools/registry/files.d.ts +0 -2
  833. package/dist/tools/registry/identity.d.ts +0 -2
  834. package/dist/tools/registry/interaction.d.ts +0 -2
  835. package/dist/tools/registry/local.d.ts +0 -2
  836. package/dist/tools/registry/messenger.d.ts +0 -2
  837. package/dist/tools/registry/monitor.d.ts +0 -2
  838. package/dist/tools/registry/onchain.d.ts +0 -2
  839. package/dist/tools/registry/query.d.ts +0 -2
  840. package/dist/tools/retry.d.ts +0 -8
  841. package/dist/tools/rules-hook.d.ts +0 -5
  842. package/dist/tools/runtime-health.d.ts +0 -10
  843. package/dist/tools/sanitize-description-roundtrip.spec.d.ts +0 -1
  844. package/dist/tools/sanitize-description-roundtrip.spec.js +0 -1
  845. package/dist/tools/sanitize-output.d.ts +0 -4
  846. package/dist/tools/sanitize-output.spec.d.ts +0 -1
  847. package/dist/tools/sanitize-output.spec.js +0 -1
  848. package/dist/tools/shared.d.ts +0 -20
  849. package/dist/tools/transport-integrity.d.ts +0 -7
  850. package/dist/tools/upgrade-check.d.ts +0 -75
  851. package/dist/tools/wip-deploy-assist.d.ts +0 -34
  852. package/dist/tools/wip-verify-ledger.d.ts +0 -16
  853. package/dist/tools/wrap.d.ts +0 -45
@@ -1,1286 +1 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://wowok.net/schemas/onchain_operations_reward.json",
4
- "title": "Reward Operation",
5
- "description": "🎁 Reward Object: Create reward pools and set claim conditions by Guard verification.",
6
- "type": "object",
7
- "properties": {
8
- "operation_type": {
9
- "type": "string",
10
- "const": "reward"
11
- },
12
- "data": {
13
- "type": "object",
14
- "properties": {
15
- "object": {
16
- "anyOf": [
17
- {
18
- "type": "string",
19
- "description": "String format: Reference an EXISTING object by its name (local mark) or on-chain object ID. Use this when the object already exists and you want to reference it."
20
- },
21
- {
22
- "type": "object",
23
- "properties": {
24
- "name": {
25
- "description": "The name of the object",
26
- "type": "string"
27
- },
28
- "tags": {
29
- "description": "The tags of the object",
30
- "type": "array",
31
- "items": {
32
- "type": "string"
33
- }
34
- },
35
- "onChain": {
36
- "description": "CRITICAL: Whether to sync the name to the blockchain. DEFAULT (undefined/false): The name is stored LOCALLY ONLY on your device (PRIVATE). If set to true: The name is published ON-CHAIN and becomes PUBLICLY VISIBLE to everyone. Only set to true for displaying the relationships you are willing to make public on the chain.",
37
- "type": "boolean"
38
- },
39
- "replaceExistName": {
40
- "description": "FORCE CLAIM: Set to true ONLY when the user explicitly expresses a STRONG INTENTION to forcefully take over an existing name (e.g., 'I must use this name', 'force rename', 'replace the existing one'). WARNING: This will UNBIND the name from its original object and rebind it to the new one, potentially breaking existing references. If not specified or false: the operation will FAIL with an error when the name is already in use (safe default behavior).",
41
- "type": "boolean"
42
- },
43
- "permission": {
44
- "anyOf": [
45
- {
46
- "type": "string",
47
- "description": "String format: Reference an EXISTING object by its name (local mark) or on-chain object ID. Example: 'my-object' or '0x1234...'"
48
- },
49
- {
50
- "type": "object",
51
- "properties": {
52
- "name": {
53
- "description": "The name of the object",
54
- "type": "string"
55
- },
56
- "tags": {
57
- "description": "The tags of the object",
58
- "type": "array",
59
- "items": {
60
- "type": "string"
61
- }
62
- },
63
- "onChain": {
64
- "description": "CRITICAL: Whether to sync the name to the blockchain. DEFAULT (undefined/false): The name is stored LOCALLY ONLY on your device (PRIVATE). If set to true: The name is published ON-CHAIN and becomes PUBLICLY VISIBLE to everyone. Only set to true for displaying the relationships you are willing to make public on the chain.",
65
- "type": "boolean"
66
- },
67
- "replaceExistName": {
68
- "description": "FORCE CLAIM: Set to true ONLY when the user explicitly expresses a STRONG INTENTION to forcefully take over an existing name (e.g., 'I must use this name', 'force rename', 'replace the existing one'). WARNING: This will UNBIND the name from its original object and rebind it to the new one, potentially breaking existing references. If not specified or false: the operation will FAIL with an error when the name is already in use (safe default behavior).",
69
- "type": "boolean"
70
- },
71
- "description": {
72
- "description": "The description of the object",
73
- "type": "string"
74
- }
75
- },
76
- "additionalProperties": false,
77
- "description": "Object format: CREATE a NEW object with name, optional description, and visibility settings. Extends NamedObjectSchema with an additional 'description' field for detailed object information."
78
- }
79
- ],
80
- "description": "Two ways to specify an object: (1) STRING - Reference an EXISTING object by name or ID; (2) OBJECT - CREATE a NEW object with full configuration including optional name, tags, description, and visibility settings (local private by default, or public on-chain with onChain:true)."
81
- },
82
- "type_parameter": {
83
- "default": "0x2::wow::WOW",
84
- "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. ALWAYS the FULL type string `{address}::{module}::{struct}` e.g. '0x2::wow::WOW'. ⚠️ The bare names 'WOW' / 'USDT' / 'ETH' are REJECTED (the validator requires all three parts) — write '0x2::wow::WOW', not 'WOW'. The field may be OMITTED entirely: it then defaults to WOW ('0x2::wow::WOW'). This token is what the object accepts for payments and is fixed at creation. To discover other available tokens, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here. NOTE: testnet/localnet carry WOW only — USDT/ETH are a mainnet capability.",
85
- "type": "string"
86
- }
87
- },
88
- "required": [
89
- "type_parameter"
90
- ],
91
- "additionalProperties": false,
92
- "description": "Object format: CREATE a NEW object with COMPLETE configuration including: optional name, tags, description, token type for payments (e.g., '0x2::wow::WOW'), AND Permission-based access control. Use this for creating sophisticated objects with both payment token specification and permission management."
93
- }
94
- ],
95
- "description": "Two ways to specify an object: (1) STRING - Reference an EXISTING object by name or ID; (2) OBJECT - CREATE a NEW object with full configuration including name, tags, description, token type for payments, and Permission-based access control. The object format is used when you need both token specification AND permission management."
96
- },
97
- "claim": {
98
- "description": "GUARD object name/address whose verification starts the reward distribution — this is the GUARD, NEVER the order (KLM-FIND-08, klook-mn 261019: passing the order here aborts). The ORDER reference rides submission slot 0 — pass it via the call's 'submission', not in this field. WINDOW LIFECYCLE (rqd3-tn-261030 F-02): the guard's pass condition must cover EVERY terminal state that may legitimately hold at claim time. A completed-only window (root = query order status == completed) is CLOSED FOREVER the moment the Machine settles — settlement overwrites the order status, the guard can never pass again, and the bounty is stranded (claim path aborts with E_GUARD_NOT_FOUND — the payout lookup finds no payable row, abort 7). Design the claim guard against the full terminal set (e.g. completed OR settled OR refunded, per the payout rail), and if a bound window is already closed, migration = new guard with the corrected root + reward.guard_remove + reward.guard_add (guards are immutable — there is no in-place edit).",
99
- "type": "string"
100
- },
101
- "description": {
102
- "type": "string",
103
- "description": "Description string (max 4000 bcs characters)"
104
- },
105
- "coin_add": {
106
- "description": "Add amount to Reward object.",
107
- "anyOf": [
108
- {
109
- "type": "object",
110
- "properties": {
111
- "balance": {
112
- "anyOf": [
113
- {
114
- "type": "number"
115
- },
116
- {
117
- "type": "string"
118
- }
119
- ],
120
- "description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."
121
- }
122
- },
123
- "required": [
124
- "balance"
125
- ],
126
- "additionalProperties": false,
127
- "description": "Specify an amount value."
128
- },
129
- {
130
- "type": "object",
131
- "properties": {
132
- "coin": {
133
- "type": "string",
134
- "description": "Coin object ID or name(local mark). WHOLE-COIN TRANSFER: the ENTIRE Coin object is moved to the recipient — the 'amount' is NOT taken from it (testnet lesson: passing your main gas coin transfers its full balance, leaving you unable to pay for anything). Use only for coins whose whole balance is exactly what you intend to send; prefer {balance: <smallest-unit number>} for partial amounts."
135
- }
136
- },
137
- "required": [
138
- "coin"
139
- ],
140
- "additionalProperties": false
141
- }
142
- ]
143
- },
144
- "receive": {
145
- "description": "Unwrap CoinWrapper objects received by Reward object and store them in pending balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n REWARD-OBJECT TRAP (F55 gf32-mn-261103): on a REWARD object, 'recently' resolves through\n the Payment-derived ReceivedBalance primitive — a Reward that holds plain CoinWrapper\n sweeps (query_received answers ReceivedNormal[]) aborts with 'received is ReceivedNormal[]\n (expected ReceivedBalance)'. For a plain coin sweep on a Reward use owner_receive:'recently'\n (same call — it unwraps received objects to the Permission owner) instead of receive.\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly. F55 (gf32-mn-261103): on a REWARD object holding a plain coin sweep, 'recently' aborts ('received is ReceivedNormal[] (expected ReceivedBalance)') — use owner_receive:'recently' for that shape; receive targets Payment-derived ReceivedBalance entries only.",
146
- "anyOf": [
147
- {
148
- "type": "object",
149
- "properties": {
150
- "balance": {
151
- "anyOf": [
152
- {
153
- "type": "number"
154
- },
155
- {
156
- "type": "string"
157
- }
158
- ],
159
- "description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."
160
- },
161
- "token_type": {
162
- "type": "string",
163
- "description": "Asset type of Coin objects. Supports CoinWrapper<...> format for order receive operations."
164
- },
165
- "received": {
166
- "type": "array",
167
- "items": {
168
- "type": "object",
169
- "properties": {
170
- "id": {
171
- "type": "string",
172
- "description": "Received CoinWrapper object ID"
173
- },
174
- "balance": {
175
- "anyOf": [
176
- {
177
- "type": "number"
178
- },
179
- {
180
- "type": "string"
181
- }
182
- ],
183
- "description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."
184
- },
185
- "payment": {
186
- "type": "string",
187
- "description": "Payment object ID"
188
- },
189
- "type": {
190
- "description": "Type of the received object (or inner coin type); used for token_type detection",
191
- "type": "string"
192
- },
193
- "version": {
194
- "description": "Object version, required to build a Receiving<T> argument for owner_receive",
195
- "type": "string"
196
- },
197
- "digest": {
198
- "description": "Object digest, required to build a Receiving<T> argument for owner_receive",
199
- "type": "string"
200
- }
201
- },
202
- "required": [
203
- "id",
204
- "balance",
205
- "payment"
206
- ],
207
- "additionalProperties": false,
208
- "description": "Received CoinWrapper object record"
209
- },
210
- "description": "Received records of Coin objects"
211
- }
212
- },
213
- "required": [
214
- "balance",
215
- "token_type",
216
- "received"
217
- ],
218
- "additionalProperties": false,
219
- "description": "Received record of Coin objects"
220
- },
221
- {
222
- "type": "string",
223
- "const": "recently"
224
- }
225
- ]
226
- },
227
- "guard_add": {
228
- "description": "Add Guard to Reward object. IDIOMS (F08 — these differ from Service allocation, follow THIS shape here): recipient is ONE OF {GuardIdentifier: <u8>} | {Entity: {name_or_address: 'mark'}} | {Signer: 'signer'} (string const INSIDE the key, NOT a bare string) — BUT on the REWARD claim rail the recipient MUST equal the transaction sender (chain assert, abort 14), so {Signer: 'signer'} is the canonical form and {Entity} also passes (SDK replaces it with the claimant's account at claim time); a {GuardIdentifier} recipient resolves to the submitted Order and is STRUCTURALLY UNPAYABLE (every claim aborts 14) — the tool gate rejects it (crs-mn-261015 F-12). amount is {type: 'Fixed', value: '0.1WOW'} — value accepts a display string with token symbol ('0.1WOW') or a smallest-unit integer ('100000000'), NOT the plain balance string used by allocation `sharing`. FULL EXAMPLE: [{guard: '0xabc...', recipient: {Signer: 'signer'}, amount: {type: 'Fixed', value: '0.1WOW'}}]. OPTIONAL EVIDENCE BINDING (ksk9d2-tn-261026 F-01): an entry may carry evidence {repo, key, predicate} — a claim-time attestation pin that counts ONLY repository rows tied to THIS claim's own store_from value (the submitted order), so borrowed/foreign rows never satisfy the bounty; it requires store_from_id on the same guard (a missing pin aborts 16 at build time) and a claim whose order has no matching attestation row aborts 15.",
229
- "type": "array",
230
- "items": {
231
- "type": "object",
232
- "properties": {
233
- "guard": {
234
- "type": "string",
235
- "description": "Guard object ID or name."
236
- },
237
- "recipient": {
238
- "anyOf": [
239
- {
240
- "type": "object",
241
- "properties": {
242
- "GuardIdentifier": {
243
- "type": "integer",
244
- "minimum": 0,
245
- "maximum": 255,
246
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
247
- }
248
- },
249
- "required": [
250
- "GuardIdentifier"
251
- ],
252
- "additionalProperties": false,
253
- "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type. ALLOCATION rails only — the REWARD claim rail requires recipient == the transaction sender (abort 14), so a GuardIdentifier recipient on reward.guard_add resolves to the submitted Order and is structurally unpayable; the tool gate rejects it (crs-mn-261015 F-12)."
254
- },
255
- {
256
- "type": "object",
257
- "properties": {
258
- "Entity": {
259
- "anyOf": [
260
- {
261
- "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
262
- },
263
- {
264
- "type": "object",
265
- "properties": {
266
- "name_or_address": {
267
- "type": "string",
268
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
269
- },
270
- "local_mark_first": {
271
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
272
- "type": "boolean"
273
- }
274
- },
275
- "additionalProperties": false,
276
- "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."
277
- }
278
- ],
279
- "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 }."
280
- }
281
- },
282
- "required": [
283
- "Entity"
284
- ],
285
- "additionalProperties": false,
286
- "description": "Static address resolved via LocalMark. Format: {Entity: 'mark_name'} (string shorthand) or {Entity: {name_or_address: 'mark_name'}} (full object).F-RQ-11 (rq2 promotion): string shorthand accepted — the FIX-005 transform resolves local marks first."
287
- },
288
- {
289
- "type": "object",
290
- "properties": {
291
- "Signer": {
292
- "type": "string",
293
- "const": "signer"
294
- }
295
- },
296
- "required": [
297
- "Signer"
298
- ],
299
- "additionalProperties": false,
300
- "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds. On the REWARD claim rail this is the CANONICAL recipient (the claim entry requires recipient == the tx sender)."
301
- }
302
- ],
303
- "description": "Recipient ID. Three forms:\n - {GuardIdentifier: u8} — DYNAMIC address resolved from Passport at alloc() time (Allocation rails only; structurally unpayable on reward.guard_add — abort 14)\n - {Entity: {name_or_address: 'mark_name'}} — FIXED static address via LocalMark (recommended)\n - {Signer: 'signer'} — transaction sender at alloc() time (e.g. self-refund; customer must call alloc_by_guard themselves; canonical on reward claim rails)"
304
- },
305
- "amount": {
306
- "oneOf": [
307
- {
308
- "type": "object",
309
- "properties": {
310
- "type": {
311
- "type": "string",
312
- "const": "GuardU64Identifier"
313
- },
314
- "value": {
315
- "type": "integer",
316
- "minimum": 0,
317
- "maximum": 255,
318
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
319
- }
320
- },
321
- "required": [
322
- "type",
323
- "value"
324
- ],
325
- "additionalProperties": false,
326
- "description": "Guard verified amount. Get amount value from specified data index in Guard table. The value type must be u64."
327
- },
328
- {
329
- "type": "object",
330
- "properties": {
331
- "type": {
332
- "type": "string",
333
- "const": "Fixed"
334
- },
335
- "value": {
336
- "anyOf": [
337
- {
338
- "type": "number"
339
- },
340
- {
341
- "type": "string"
342
- }
343
- ],
344
- "description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."
345
- }
346
- },
347
- "required": [
348
- "type",
349
- "value"
350
- ],
351
- "additionalProperties": false,
352
- "description": "Fixed amount"
353
- }
354
- ],
355
- "description": "Reward amount"
356
- },
357
- "expiration_time": {
358
- "description": "Reward Guard expiration time. If set, the reward cannot be claimed by this guard after the expiration time. If not specified, Reward Guard is permanently valid.",
359
- "type": "number"
360
- },
361
- "store_from_id": {
362
- "description": "Guard table data index for record storage. The value at this index (address or number, including submitted values) will be stored in the record for Guard verification purposes, such as controlling operation frequency.",
363
- "anyOf": [
364
- {
365
- "type": "integer",
366
- "minimum": 0,
367
- "maximum": 255,
368
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
369
- },
370
- {
371
- "type": "null"
372
- }
373
- ]
374
- },
375
- "evidence": {
376
- "description": "ksk9d2-tn-261026 F-01 claim-time attestation pin. REQUIRES store_from_id on the SAME guard — the binding reads THE pinned store_from row, so the chain aborts 16 (E_EVIDENCE_NEEDS_STORE_FROM) at build time without it. At claim the chain counts repository rows under (repo, key) matching the predicate for the claim's OWN store_from value (the submitted order) via the native row-match count and aborts 15 (E_EVIDENCE_NOT_OWNED) when none — a borrowed foreign row can never pay.",
377
- "type": "object",
378
- "properties": {
379
- "repo": {
380
- "type": "string",
381
- "description": "Repository object ID or name holding the attestation rows."
382
- },
383
- "key": {
384
- "type": "array",
385
- "items": {
386
- "type": "integer",
387
- "minimum": 0,
388
- "maximum": 255
389
- },
390
- "description": "Repository data key bytes (the policy name the rows live under, e.g. UTF-8 bytes of 'rating')."
391
- },
392
- "predicate": {
393
- "type": "array",
394
- "items": {
395
- "type": "integer",
396
- "minimum": 0,
397
- "maximum": 255
398
- },
399
- "description": "BCS-encoded RepositoryDataPredicateWire bytes — the same predicate blob the repository read channel uses."
400
- }
401
- },
402
- "required": [
403
- "repo",
404
- "key",
405
- "predicate"
406
- ],
407
- "additionalProperties": false
408
- }
409
- },
410
- "required": [
411
- "guard",
412
- "recipient",
413
- "amount"
414
- ],
415
- "additionalProperties": false,
416
- "description": "Reward Guard type"
417
- }
418
- },
419
- "guard_remove": {
420
- "description": "Unified guard removal — one entry, two intents: pass the literal 'expired' to sweep ALL expired guards, or pass a Guard object ID to remove that specific mounted guard (works on non-expiring guards too, F-57). Constraints: while the no-guard window (guard_expiration_time) is still in the future removal is blocked (same public-commitment lock as guard_add, abort 10); removing a not-mounted ID aborts 7; consumed claim once-slots survive remove+re-add, so removal can never re-arm an already-drained bounty.",
421
- "type": "string"
422
- },
423
- "guard_expiration_time": {
424
- "description": "Add expiration time(ms). Before this time expires, new Guard and fund allocation rules cannot be added.",
425
- "anyOf": [
426
- {
427
- "type": "integer",
428
- "minimum": 1,
429
- "maximum": 9007199254740991
430
- },
431
- {
432
- "type": "null"
433
- }
434
- ]
435
- },
436
- "owner_receive": {
437
- "description": "Unwrap CoinWrapper objects and other objects received by this Reward object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received\" — for\n order.receive this is the correct default for \"the buyer got their refund\".\n Example: receive: 'recently'\n• bare object id (string, 0x-prefixed) — one-object form, auto-expanded (F-15):\n pass the id of the single received object you want to unwrap (e.g. a CoinWrapper id).\n Example: receive: '0xabc...'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::wow::WOW>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
438
- "anyOf": [
439
- {
440
- "type": "string",
441
- "const": "recently"
442
- },
443
- {
444
- "type": "string",
445
- "pattern": "^0x[0-9a-fA-F]{8,}$"
446
- },
447
- {
448
- "minItems": 1,
449
- "type": "array",
450
- "items": {
451
- "type": "object",
452
- "properties": {
453
- "id": {
454
- "type": "string",
455
- "minLength": 1,
456
- "description": "Received object ID"
457
- },
458
- "type": {
459
- "type": "string",
460
- "minLength": 1,
461
- "description": "Object type"
462
- },
463
- "content_raw": {
464
- "description": "Raw content data"
465
- },
466
- "version": {
467
- "description": "Object version, required to build a Receiving<T> argument for owner_receive",
468
- "type": "string"
469
- },
470
- "digest": {
471
- "description": "Object digest, required to build a Receiving<T> argument for owner_receive",
472
- "type": "string"
473
- }
474
- },
475
- "required": [
476
- "id",
477
- "type"
478
- ],
479
- "additionalProperties": false,
480
- "description": "Received normal object record"
481
- }
482
- },
483
- {
484
- "type": "object",
485
- "properties": {
486
- "balance": {
487
- "anyOf": [
488
- {
489
- "type": "number"
490
- },
491
- {
492
- "type": "string"
493
- }
494
- ],
495
- "description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."
496
- },
497
- "token_type": {
498
- "type": "string",
499
- "description": "Asset type of Coin objects. Supports CoinWrapper<...> format for order receive operations."
500
- },
501
- "received": {
502
- "type": "array",
503
- "items": {
504
- "type": "object",
505
- "properties": {
506
- "id": {
507
- "type": "string",
508
- "description": "Received CoinWrapper object ID"
509
- },
510
- "balance": {
511
- "anyOf": [
512
- {
513
- "type": "number"
514
- },
515
- {
516
- "type": "string"
517
- }
518
- ],
519
- "description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."
520
- },
521
- "payment": {
522
- "type": "string",
523
- "description": "Payment object ID"
524
- },
525
- "type": {
526
- "description": "Type of the received object (or inner coin type); used for token_type detection",
527
- "type": "string"
528
- },
529
- "version": {
530
- "description": "Object version, required to build a Receiving<T> argument for owner_receive",
531
- "type": "string"
532
- },
533
- "digest": {
534
- "description": "Object digest, required to build a Receiving<T> argument for owner_receive",
535
- "type": "string"
536
- }
537
- },
538
- "required": [
539
- "id",
540
- "balance",
541
- "payment"
542
- ],
543
- "additionalProperties": false,
544
- "description": "Received CoinWrapper object record"
545
- },
546
- "description": "Received records of Coin objects"
547
- }
548
- },
549
- "required": [
550
- "balance",
551
- "token_type",
552
- "received"
553
- ],
554
- "additionalProperties": false,
555
- "description": "Received record of Coin objects"
556
- }
557
- ]
558
- },
559
- "um": {
560
- "description": "Contact object ID or name.",
561
- "anyOf": [
562
- {
563
- "type": "string",
564
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
565
- },
566
- {
567
- "type": "null"
568
- }
569
- ]
570
- },
571
- "withdraw": {
572
- "description": "Permission-gated balance exit (the ONLY non-claim exit from the Reward balance): withdraws this amount from the Reward balance and delivers it to the transaction sender inside a Payment object (the on-chain auditable receipt, keyed by the RewardWithdrawEvent). The executing account needs the withdraw right (permission index 158) on the Reward's Permission object. Fails on-chain when the balance is insufficient or while the declared no-guard window (guard_expiration_time) is still in the future; claim replay protection is unaffected. Use it to recover mismatched or overfunded pools.",
573
- "type": "object",
574
- "properties": {
575
- "amount": {
576
- "anyOf": [
577
- {
578
- "type": "integer",
579
- "minimum": 0,
580
- "maximum": 9007199254740991
581
- },
582
- {
583
- "type": "string"
584
- }
585
- ],
586
- "description": "Amount to withdraw (SMALLEST token units, e.g. '100000000')."
587
- },
588
- "payment_info": {
589
- "type": "object",
590
- "properties": {
591
- "for_object": {
592
- "description": "Binding anchor for this distribution. On an Allocation a SET for_object is ENFORCED at alloc(): every GuardIdentifier recipient submission must equal this address or the whole tx aborts (ERECIPIENT_NOT_FOR_OBJECT, code 15) — verify the anchor matches the intended recipient flow BEFORE create; payment_info is immutable afterwards. NULL/omitted = no anchor: nothing is enforced on-chain, recipient routing is entirely the creator's design. Also recorded at creation for auditors to query the distribution's business context.",
593
- "anyOf": [
594
- {
595
- "type": "string"
596
- },
597
- {
598
- "type": "null"
599
- }
600
- ]
601
- },
602
- "for_guard": {
603
- "description": "Payment to satisfy verification of a Guard object",
604
- "anyOf": [
605
- {
606
- "type": "string"
607
- },
608
- {
609
- "type": "null"
610
- }
611
- ]
612
- },
613
- "remark": {
614
- "type": "string",
615
- "description": "Payment record remark"
616
- },
617
- "index": {
618
- "type": "integer",
619
- "minimum": 0,
620
- "maximum": 9007199254740991,
621
- "description": "Payment record index (non-negative integer)"
622
- }
623
- },
624
- "required": [
625
- "remark",
626
- "index"
627
- ],
628
- "additionalProperties": false,
629
- "description": "Payment receipt metadata (remark/index). The withdrawn funds leave the Reward balance inside a Payment object — the on-chain auditable receipt."
630
- },
631
- "unwrap": {
632
- "description": "Auto-unwrap: when true, the coin is paid straight to the transaction sender in the SAME transaction (single-PTB flow). When false or omitted (default), a CoinWrapper is delivered to the sender's wallet for later unwrapping via the payment call with receive:true. Both modes keep the Payment object as the on-chain receipt.",
633
- "type": "boolean"
634
- }
635
- },
636
- "required": [
637
- "amount",
638
- "payment_info"
639
- ],
640
- "additionalProperties": false
641
- }
642
- },
643
- "required": [
644
- "object"
645
- ],
646
- "additionalProperties": false,
647
- "description": "On-chain Reward operations. USAGE: (1) CREATE NEW: Set 'object' field with OBJECT format {name, type_parameter, permission, ...} to create a Reward. NOTE: 'name' goes INSIDE 'object', NOT at the data root level.'permission' can be a new Permission object or reference an existing one - check 'object' field description for details. (2) OPERATE EXISTING: Set 'object' field with STRING format (object ID or name). The 'object' field is CRITICAL and REQUIRED in both cases. STRING for existing, OBJECT for new creation. NAME RESOLUTION SCOPE (T8 az3-mn-261013): a LocalMark name resolves ONLY within the SIGNING account's own local mark store — when the Reward was named by a DIFFERENT account (e.g. the merchant's mark) and you operate it from another account, the name lookup fails with 'not found locally'; pass the on-chain 0x object ID instead (resolve it once via workspace/onchain_objects and reuse the id)."
648
- },
649
- "idempotency_key": {
650
- "type": "string",
651
- "minLength": 8,
652
- "maxLength": 128,
653
- "pattern": "^[A-Za-z0-9._:-]+$",
654
- "description": "F-RQ-13A (prescription ⑨): idempotency key for this business attempt. REPLAY GUARD: if a previous call with the SAME key is still open (dispatched but outcome unresolved, or already committed), this call is HELD — you get a structured state_conflict envelope with the prior attempt's verification data instead of a second on-chain submission (the ghost-order guard: two live mainnet orders, two escrows). Lifecycle: a deterministic failure (nothing submitted / provably reverted) clears the key — fix the cause and retry with the SAME key; an unknown-outcome failure (submission may have landed) keeps the key HELD — verify on-chain state first (result.submission_verification tells you where to look), and only retry with a NEW key once the outcome is resolved. Keep one key per business attempt (e.g. 'ord-20261030-042-buy'); do not reuse across attempts."
655
- },
656
- "env": {
657
- "type": "object",
658
- "properties": {
659
- "account": {
660
- "default": "",
661
- "type": "string",
662
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
663
- },
664
- "permission_guard": {
665
- "description": "List of permission guard IDs. Used to extend additional operation permissions (requires verification and configuration in the Permission object).",
666
- "type": "array",
667
- "items": {
668
- "type": "string"
669
- }
670
- },
671
- "no_cache": {
672
- "description": "Whether to disable caching.",
673
- "type": "boolean"
674
- },
675
- "network": {
676
- "description": "Omit in chat-client contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
677
- "type": "string",
678
- "enum": [
679
- "localnet",
680
- "testnet",
681
- "mainnet"
682
- ]
683
- },
684
- "referrer": {
685
- "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
686
- "type": "string"
687
- },
688
- "no_auto_register": {
689
- "description": "Opt-out of SDK-level Entity auto-registration. By default, a business transaction whose sender has no entry in the global Entity table automatically appends an entity registration: the sender gets registered and receives an owned Resource object (their on-chain mark book) in the wallet. Set true ONLY when the user explicitly cancelled their entity registration or demands that the transaction not touch the Entity table.",
690
- "type": "boolean"
691
- },
692
- "confirmed": {
693
- "description": "Phase 2 ConfirmGate: set to true to proceed after a 'pending_confirmation' result. The operation is NOT executed until you re-call with confirmed=true after user consent.",
694
- "type": "boolean"
695
- },
696
- "user_intent_phrases": {
697
- "description": "Phase 2 ConfirmGate: explicit user intent phrases collected from conversation context (e.g. 'use default account', 'force publish'). Used to bypass confirmation rules whose bypass_on_explicit_intent matches.",
698
- "type": "array",
699
- "items": {
700
- "type": "string"
701
- }
702
- },
703
- "plan_approval": {
704
- "description": "K3 24 PlanApproval: id of a goal whose plan was approved via goal_operation action='approve'. When set: 1) the ConfirmGate treats fail-open rules (standard/none levels) as pre-approved for operations under this goal's plan; 2) after successful CREATION operations, the created objects are auto-registered into the goal (GoalRecord.objects + its TaskProcess manifest — ACT station 'execution registers'). Fail-closed levels (irreversible/publish/amount) still require per-operation confirmation with env.confirmed=true.",
705
- "type": "string"
706
- },
707
- "client_schema_version": {
708
- "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched.",
709
- "type": "string"
710
- },
711
- "schema_strict_mode": {
712
- "default": false,
713
- "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode).",
714
- "type": "boolean"
715
- },
716
- "dry_run": {
717
- "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
718
- "type": "boolean"
719
- },
720
- "window_profile": {
721
- "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
722
- "type": "string",
723
- "enum": [
724
- "production",
725
- "test"
726
- ]
727
- },
728
- "response_level": {
729
- "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
730
- "type": "string",
731
- "enum": [
732
- "compact",
733
- "full"
734
- ]
735
- },
736
- "confirm_mode": {
737
- "description": "Confirmation frequency for this call. 'full': confirm every matched gate rule. 'streamlined' (client default): skip fail-open 'standard' level prompts — fail-closed levels (irreversible/publish/amount) ALWAYS still confirm. 'quiet': same hard floor as streamlined, for clients that batch/suppress repeat low-risk prompts in their own UI. This field NEVER downgrades fail-closed levels.",
738
- "type": "string",
739
- "enum": [
740
- "full",
741
- "streamlined",
742
- "quiet"
743
- ]
744
- }
745
- },
746
- "required": [
747
- "account",
748
- "schema_strict_mode"
749
- ],
750
- "additionalProperties": false,
751
- "description": "IMPORTANT: Execution environment includes: account for signing operations, network selection (testnet | localnet | mainnet), additional Guard permissions, and more. Used to specify context information during the call. If account is not specified, the default account (\"\") will be used. NOTE: by default the SDK auto-registers the sender in the global Entity table when absent (first business transaction; the account receives an owned Resource object). Set no_auto_register=true only on explicit user request."
752
- },
753
- "submission": {
754
- "type": "object",
755
- "properties": {
756
- "type": {
757
- "type": "string",
758
- "const": "submission",
759
- "description": "Discriminator for this result variant. Constraint: always 'submission'. Example: 'submission'"
760
- },
761
- "guard": {
762
- "maxItems": 20,
763
- "type": "array",
764
- "items": {
765
- "type": "object",
766
- "properties": {
767
- "object": {
768
- "type": "string",
769
- "description": "Guard object name or ID to verify against. Example: 'my-delivery-guard' or '0x123...'"
770
- },
771
- "impack": {
772
- "type": "boolean",
773
- "description": "Whether this Guard's verification result participates in the final logic. Constraint: if false, the Guard is checked but does not block the operation. Example: true"
774
- }
775
- },
776
- "required": [
777
- "object",
778
- "impack"
779
- ],
780
- "additionalProperties": false
781
- },
782
- "description": "Array of Guard objects to verify. Constraint: at most 20 entries (MAX_GUARD_COUNT_PASSPORT). Relation: each entry corresponds to a Guard bound to the operation."
783
- },
784
- "submission": {
785
- "type": "array",
786
- "items": {
787
- "type": "object",
788
- "properties": {
789
- "guard": {
790
- "type": "string",
791
- "description": "Guard object name or ID that requires submission data. Example: 'my-delivery-guard'"
792
- },
793
- "submission": {
794
- "type": "array",
795
- "items": {
796
- "type": "object",
797
- "properties": {
798
- "identifier": {
799
- "type": "integer",
800
- "minimum": 0,
801
- "maximum": 255,
802
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
803
- },
804
- "b_submission": {
805
- "type": "boolean",
806
- "description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
807
- },
808
- "value_type": {
809
- "description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details.",
810
- "anyOf": [
811
- {
812
- "type": "number",
813
- "const": 0,
814
- "description": "Bool (0)"
815
- },
816
- {
817
- "type": "number",
818
- "const": 1,
819
- "description": "Address (1)"
820
- },
821
- {
822
- "type": "number",
823
- "const": 2,
824
- "description": "String (2)"
825
- },
826
- {
827
- "type": "number",
828
- "const": 3,
829
- "description": "U8 (3)"
830
- },
831
- {
832
- "type": "number",
833
- "const": 4,
834
- "description": "U16 (4)"
835
- },
836
- {
837
- "type": "number",
838
- "const": 5,
839
- "description": "U32 (5)"
840
- },
841
- {
842
- "type": "number",
843
- "const": 6,
844
- "description": "U64 (6)"
845
- },
846
- {
847
- "type": "number",
848
- "const": 7,
849
- "description": "U128 (7)"
850
- },
851
- {
852
- "type": "number",
853
- "const": 8,
854
- "description": "U256 (8)"
855
- },
856
- {
857
- "type": "number",
858
- "const": 9,
859
- "description": "VecBool (9)"
860
- },
861
- {
862
- "type": "number",
863
- "const": 10,
864
- "description": "VecAddress (10)"
865
- },
866
- {
867
- "type": "number",
868
- "const": 11,
869
- "description": "VecString (11)"
870
- },
871
- {
872
- "type": "number",
873
- "const": 12,
874
- "description": "VecU8 (12)"
875
- },
876
- {
877
- "type": "number",
878
- "const": 13,
879
- "description": "VecU16 (13)"
880
- },
881
- {
882
- "type": "number",
883
- "const": 14,
884
- "description": "VecU32 (14)"
885
- },
886
- {
887
- "type": "number",
888
- "const": 15,
889
- "description": "VecU64 (15)"
890
- },
891
- {
892
- "type": "number",
893
- "const": 16,
894
- "description": "VecU128 (16)"
895
- },
896
- {
897
- "type": "number",
898
- "const": 17,
899
- "description": "VecU256 (17)"
900
- },
901
- {
902
- "type": "number",
903
- "const": 18,
904
- "description": "VecVecU8 (18)"
905
- },
906
- {
907
- "type": "string",
908
- "const": "Bool",
909
- "description": "Bool"
910
- },
911
- {
912
- "type": "string",
913
- "const": "Address",
914
- "description": "Address"
915
- },
916
- {
917
- "type": "string",
918
- "const": "String",
919
- "description": "String"
920
- },
921
- {
922
- "type": "string",
923
- "const": "U8",
924
- "description": "U8"
925
- },
926
- {
927
- "type": "string",
928
- "const": "U16",
929
- "description": "U16"
930
- },
931
- {
932
- "type": "string",
933
- "const": "U32",
934
- "description": "U32"
935
- },
936
- {
937
- "type": "string",
938
- "const": "U64",
939
- "description": "U64"
940
- },
941
- {
942
- "type": "string",
943
- "const": "U128",
944
- "description": "U128"
945
- },
946
- {
947
- "type": "string",
948
- "const": "U256",
949
- "description": "U256"
950
- },
951
- {
952
- "type": "string",
953
- "const": "VecBool",
954
- "description": "VecBool"
955
- },
956
- {
957
- "type": "string",
958
- "const": "VecAddress",
959
- "description": "VecAddress"
960
- },
961
- {
962
- "type": "string",
963
- "const": "VecString",
964
- "description": "VecString"
965
- },
966
- {
967
- "type": "string",
968
- "const": "VecU8",
969
- "description": "VecU8"
970
- },
971
- {
972
- "type": "string",
973
- "const": "VecU16",
974
- "description": "VecU16"
975
- },
976
- {
977
- "type": "string",
978
- "const": "VecU32",
979
- "description": "VecU32"
980
- },
981
- {
982
- "type": "string",
983
- "const": "VecU64",
984
- "description": "VecU64"
985
- },
986
- {
987
- "type": "string",
988
- "const": "VecU128",
989
- "description": "VecU128"
990
- },
991
- {
992
- "type": "string",
993
- "const": "VecU256",
994
- "description": "VecU256"
995
- },
996
- {
997
- "type": "string",
998
- "const": "VecVecU8",
999
- "description": "VecVecU8"
1000
- },
1001
- {
1002
- "type": "string",
1003
- "const": "bool",
1004
- "description": "bool"
1005
- },
1006
- {
1007
- "type": "string",
1008
- "const": "address",
1009
- "description": "address"
1010
- },
1011
- {
1012
- "type": "string",
1013
- "const": "string",
1014
- "description": "string"
1015
- },
1016
- {
1017
- "type": "string",
1018
- "const": "u8",
1019
- "description": "u8"
1020
- },
1021
- {
1022
- "type": "string",
1023
- "const": "u16",
1024
- "description": "u16"
1025
- },
1026
- {
1027
- "type": "string",
1028
- "const": "u32",
1029
- "description": "u32"
1030
- },
1031
- {
1032
- "type": "string",
1033
- "const": "u64",
1034
- "description": "u64"
1035
- },
1036
- {
1037
- "type": "string",
1038
- "const": "u128",
1039
- "description": "u128"
1040
- },
1041
- {
1042
- "type": "string",
1043
- "const": "u256",
1044
- "description": "u256"
1045
- },
1046
- {
1047
- "type": "string",
1048
- "const": "vecbool",
1049
- "description": "vecbool"
1050
- },
1051
- {
1052
- "type": "string",
1053
- "const": "vecaddress",
1054
- "description": "vecaddress"
1055
- },
1056
- {
1057
- "type": "string",
1058
- "const": "vecstring",
1059
- "description": "vecstring"
1060
- },
1061
- {
1062
- "type": "string",
1063
- "const": "vecu8",
1064
- "description": "vecu8"
1065
- },
1066
- {
1067
- "type": "string",
1068
- "const": "vecu16",
1069
- "description": "vecu16"
1070
- },
1071
- {
1072
- "type": "string",
1073
- "const": "vecu32",
1074
- "description": "vecu32"
1075
- },
1076
- {
1077
- "type": "string",
1078
- "const": "vecu64",
1079
- "description": "vecu64"
1080
- },
1081
- {
1082
- "type": "string",
1083
- "const": "vecu128",
1084
- "description": "vecu128"
1085
- },
1086
- {
1087
- "type": "string",
1088
- "const": "vecu256",
1089
- "description": "vecu256"
1090
- },
1091
- {
1092
- "type": "string",
1093
- "const": "vecvecu8",
1094
- "description": "vecvecu8"
1095
- }
1096
- ]
1097
- },
1098
- "value": {
1099
- "description": "The actual value data. Format depends on `value_type`:\nTYPE-CLASS SPLIT (F03): scalar value_types (Bool/Address/String/U8..U256) take ONE scalar value (boolean/address string/name/string/number); Vec* value_types (VecBool/VecAddress/VecString/VecU8..VecU256) take a REAL JSON ARRAY of elements — a string (even a Python-repr-looking \"[a, b]\") fails serialization with 'value_type=10 (array) requires a array value'. The historical 'static values must be strings' rule applied to SCALARS only.\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nPROTOCOL SLOT 254 (once, b_submission Address): the submitted value MUST be the ORDER address bound to the operation (payment_info.for_object) — NEVER the Progress/Machine/Arb object the call is advancing. The chain asserts submission(254) == the order address; a Progress address fails the task binding and the forward aborts.\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission).",
1100
- "anyOf": [
1101
- {
1102
- "type": "boolean"
1103
- },
1104
- {
1105
- "anyOf": [
1106
- {
1107
- "type": "object",
1108
- "properties": {
1109
- "name_or_address": {
1110
- "type": "string",
1111
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1112
- },
1113
- "local_mark_first": {
1114
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1115
- "type": "boolean"
1116
- }
1117
- },
1118
- "additionalProperties": false,
1119
- "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."
1120
- },
1121
- {
1122
- "type": "string"
1123
- }
1124
- ]
1125
- },
1126
- {
1127
- "type": "string"
1128
- },
1129
- {
1130
- "type": "number"
1131
- },
1132
- {
1133
- "type": "array",
1134
- "items": {
1135
- "type": "boolean"
1136
- }
1137
- },
1138
- {
1139
- "anyOf": [
1140
- {
1141
- "type": "object",
1142
- "properties": {
1143
- "entities": {
1144
- "minItems": 1,
1145
- "type": "array",
1146
- "items": {
1147
- "type": "object",
1148
- "properties": {
1149
- "name_or_address": {
1150
- "type": "string",
1151
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1152
- },
1153
- "local_mark_first": {
1154
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1155
- "type": "boolean"
1156
- }
1157
- },
1158
- "additionalProperties": false,
1159
- "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."
1160
- }
1161
- },
1162
- "check_all_founded": {
1163
- "default": true,
1164
- "description": "Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)",
1165
- "type": "boolean"
1166
- }
1167
- },
1168
- "required": [
1169
- "entities",
1170
- "check_all_founded"
1171
- ],
1172
- "additionalProperties": false,
1173
- "description": "Used to batch find account or object IDs by name"
1174
- },
1175
- {
1176
- "type": "array",
1177
- "items": {
1178
- "type": "string"
1179
- }
1180
- }
1181
- ]
1182
- },
1183
- {
1184
- "type": "array",
1185
- "items": {
1186
- "type": "string"
1187
- }
1188
- },
1189
- {
1190
- "type": "array",
1191
- "items": {
1192
- "type": "number"
1193
- }
1194
- },
1195
- {
1196
- "type": "array",
1197
- "items": {
1198
- "type": "array",
1199
- "items": {
1200
- "type": "number"
1201
- }
1202
- }
1203
- }
1204
- ]
1205
- },
1206
- "name": {
1207
- "default": "",
1208
- "description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here.",
1209
- "type": "string"
1210
- },
1211
- "object_type": {
1212
- "description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation.",
1213
- "type": "string",
1214
- "enum": [
1215
- "Permission",
1216
- "Repository",
1217
- "Arb",
1218
- "Arbitration",
1219
- "Service",
1220
- "Machine",
1221
- "Order",
1222
- "Progress",
1223
- "Payment",
1224
- "Treasury",
1225
- "Guard",
1226
- "Demand",
1227
- "Passport",
1228
- "Allocation",
1229
- "Resource",
1230
- "Reward",
1231
- "Discount",
1232
- "EntityRegistrar",
1233
- "EntityLinker",
1234
- "Proof",
1235
- "WReceivedObject",
1236
- "Contact",
1237
- "TableItem_ProgressHistory",
1238
- "TableItem_PermissionPerm",
1239
- "TableItem_DemandPresenter",
1240
- "TableItem_MachineNode",
1241
- "TableItem_TreasuryHistory",
1242
- "TableItem_RepositoryData",
1243
- "TableItem_RewardRecord",
1244
- "TableItem_EntityLinker",
1245
- "TableItem_AddressMark",
1246
- "TableItem_EntityRegistrar"
1247
- ]
1248
- }
1249
- },
1250
- "required": [
1251
- "identifier",
1252
- "b_submission",
1253
- "value_type",
1254
- "name"
1255
- ],
1256
- "additionalProperties": false,
1257
- "description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
1258
- },
1259
- "description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}] PROTOCOL SLOT 254: when the Guard table has identifier 254, submit the ORDER address bound to the operation (payment_info.for_object) — never the Progress/Machine object being advanced."
1260
- }
1261
- },
1262
- "required": [
1263
- "guard",
1264
- "submission"
1265
- ],
1266
- "additionalProperties": false,
1267
- "description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
1268
- },
1269
- "description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. SLOT COMPLETENESS (T8 az3-mn-261013): the submission array must cover EVERY b_submission slot in the Guard's table, not just one — a Guard whose table has multiple b_submission entries (e.g. slot 0 + slot 254) aborts on-chain with 'Submission ID not found' (abort 11) when any b_submission slot has no matching entry. Check the Guard's table (each entry with b_submission needs its identifier filled) and include ALL of them. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
1270
- }
1271
- },
1272
- "required": [
1273
- "type",
1274
- "guard",
1275
- "submission"
1276
- ],
1277
- "additionalProperties": false,
1278
- "description": "Guard verification required. The operation was blocked because one or more Guards require user-submitted data. Fill the submission array and resubmit. Semantic status is 'pending_input'."
1279
- }
1280
- },
1281
- "required": [
1282
- "operation_type",
1283
- "data"
1284
- ],
1285
- "additionalProperties": false
1286
- }
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://wowok.net/schemas/onchain_operations_reward.json","title":"Reward Operation","description":"🎁 Reward Object: Create reward pools and set claim conditions by Guard verification.","type":"object","properties":{"operation_type":{"type":"string","const":"reward"},"data":{"type":"object","properties":{"object":{"anyOf":[{"type":"string","description":"String format: Reference an EXISTING object by its name (local mark) or on-chain object ID. Use this when the object already exists and you want to reference it."},{"type":"object","properties":{"name":{"description":"The name of the object","type":"string"},"tags":{"description":"The tags of the object","type":"array","items":{"type":"string"}},"onChain":{"description":"CRITICAL: Whether to sync the name to the blockchain. DEFAULT (undefined/false): The name is stored LOCALLY ONLY on your device (PRIVATE). If set to true: The name is published ON-CHAIN and becomes PUBLICLY VISIBLE to everyone. Only set to true for displaying the relationships you are willing to make public on the chain.","type":"boolean"},"replaceExistName":{"description":"FORCE CLAIM: Set to true ONLY when the user explicitly expresses a STRONG INTENTION to forcefully take over an existing name (e.g., 'I must use this name', 'force rename', 'replace the existing one'). WARNING: This will UNBIND the name from its original object and rebind it to the new one, potentially breaking existing references. If not specified or false: the operation will FAIL with an error when the name is already in use (safe default behavior).","type":"boolean"},"permission":{"anyOf":[{"type":"string","description":"String format: Reference an EXISTING object by its name (local mark) or on-chain object ID. Example: 'my-object' or '0x1234...'"},{"type":"object","properties":{"name":{"description":"The name of the object","type":"string"},"tags":{"description":"The tags of the object","type":"array","items":{"type":"string"}},"onChain":{"description":"CRITICAL: Whether to sync the name to the blockchain. DEFAULT (undefined/false): The name is stored LOCALLY ONLY on your device (PRIVATE). If set to true: The name is published ON-CHAIN and becomes PUBLICLY VISIBLE to everyone. Only set to true for displaying the relationships you are willing to make public on the chain.","type":"boolean"},"replaceExistName":{"description":"FORCE CLAIM: Set to true ONLY when the user explicitly expresses a STRONG INTENTION to forcefully take over an existing name (e.g., 'I must use this name', 'force rename', 'replace the existing one'). WARNING: This will UNBIND the name from its original object and rebind it to the new one, potentially breaking existing references. If not specified or false: the operation will FAIL with an error when the name is already in use (safe default behavior).","type":"boolean"},"description":{"description":"The description of the object","type":"string"}},"additionalProperties":false,"description":"Object format: CREATE a NEW object with name, optional description, and visibility settings. Extends NamedObjectSchema with an additional 'description' field for detailed object information."}],"description":"Two ways to specify an object: (1) STRING - Reference an EXISTING object by name or ID; (2) OBJECT - CREATE a NEW object with full configuration including optional name, tags, description, and visibility settings (local private by default, or public on-chain with onChain:true)."},"type_parameter":{"default":"0x2::wow::WOW","description":"Payment token type for this object (format: {address}::{module}::{struct}). e.g. ALWAYS the FULL type string `{address}::{module}::{struct}` e.g. '0x2::wow::WOW'. ⚠️ The bare names 'WOW' / 'USDT' / 'ETH' are REJECTED (the validator requires all three parts) — write '0x2::wow::WOW', not 'WOW'. The field may be OMITTED entirely: it then defaults to WOW ('0x2::wow::WOW'). This token is what the object accepts for payments and is fixed at creation. To discover other available tokens, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here. NOTE: testnet/localnet carry WOW only — USDT/ETH are a mainnet capability.","type":"string"}},"required":["type_parameter"],"additionalProperties":false,"description":"Object format: CREATE a NEW object with COMPLETE configuration including: optional name, tags, description, token type for payments (e.g., '0x2::wow::WOW'), AND Permission-based access control. Use this for creating sophisticated objects with both payment token specification and permission management."}],"description":"Two ways to specify an object: (1) STRING - Reference an EXISTING object by name or ID; (2) OBJECT - CREATE a NEW object with full configuration including name, tags, description, token type for payments, and Permission-based access control. The object format is used when you need both token specification AND permission management."},"claim":{"description":"GUARD object name/address whose verification starts the reward distribution — this is the GUARD, NEVER the order (KLM-FIND-08, klook-mn 261019: passing the order here aborts). The ORDER reference rides submission slot 0 — pass it via the call's 'submission', not in this field. WINDOW LIFECYCLE (rqd3-tn-261030 F-02): the guard's pass condition must cover EVERY terminal state that may legitimately hold at claim time. A completed-only window (root = query order status == completed) is CLOSED FOREVER the moment the Machine settles — settlement overwrites the order status, the guard can never pass again, and the bounty is stranded (claim path aborts with E_GUARD_NOT_FOUND — the payout lookup finds no payable row, abort 7). Design the claim guard against the full terminal set (e.g. completed OR settled OR refunded, per the payout rail), and if a bound window is already closed, migration = new guard with the corrected root + reward.guard_remove + reward.guard_add (guards are immutable — there is no in-place edit).","type":"string"},"description":{"type":"string","description":"Description string (max 4000 bcs characters)"},"coin_add":{"description":"Add amount to Reward object.","anyOf":[{"type":"object","properties":{"balance":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."}},"required":["balance"],"additionalProperties":false,"description":"Specify an amount value."},{"type":"object","properties":{"coin":{"type":"string","description":"Coin object ID or name(local mark). WHOLE-COIN TRANSFER: the ENTIRE Coin object is moved to the recipient — the 'amount' is NOT taken from it (testnet lesson: passing your main gas coin transfers its full balance, leaving you unable to pay for anything). Use only for coins whose whole balance is exactly what you intend to send; prefer {balance: <smallest-unit number>} for partial amounts."}},"required":["coin"],"additionalProperties":false}]},"receive":{"description":"Unwrap CoinWrapper objects received by Reward object and store them in pending balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n REWARD-OBJECT TRAP (F55 gf32-mn-261103): on a REWARD object, 'recently' resolves through\n the Payment-derived ReceivedBalance primitive — a Reward that holds plain CoinWrapper\n sweeps (query_received answers ReceivedNormal[]) aborts with 'received is ReceivedNormal[]\n (expected ReceivedBalance)'. For a plain coin sweep on a Reward use owner_receive:'recently'\n (same call — it unwraps received objects to the Permission owner) instead of receive.\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly. F55 (gf32-mn-261103): on a REWARD object holding a plain coin sweep, 'recently' aborts ('received is ReceivedNormal[] (expected ReceivedBalance)') — use owner_receive:'recently' for that shape; receive targets Payment-derived ReceivedBalance entries only.","anyOf":[{"type":"object","properties":{"balance":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."},"token_type":{"type":"string","description":"Asset type of Coin objects. Supports CoinWrapper<...> format for order receive operations."},"received":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Received CoinWrapper object ID"},"balance":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."},"payment":{"type":"string","description":"Payment object ID"},"type":{"description":"Type of the received object (or inner coin type); used for token_type detection","type":"string"},"version":{"description":"Object version, required to build a Receiving<T> argument for owner_receive","type":"string"},"digest":{"description":"Object digest, required to build a Receiving<T> argument for owner_receive","type":"string"}},"required":["id","balance","payment"],"additionalProperties":false,"description":"Received CoinWrapper object record"},"description":"Received records of Coin objects"}},"required":["balance","token_type","received"],"additionalProperties":false,"description":"Received record of Coin objects"},{"type":"string","const":"recently"}]},"guard_add":{"description":"Add Guard to Reward object. IDIOMS (F08 — these differ from Service allocation, follow THIS shape here): recipient is ONE OF {GuardIdentifier: <u8>} | {Entity: {name_or_address: 'mark'}} | {Signer: 'signer'} (string const INSIDE the key, NOT a bare string) — BUT on the REWARD claim rail the recipient MUST equal the transaction sender (chain assert, abort 14), so {Signer: 'signer'} is the canonical form and {Entity} also passes (SDK replaces it with the claimant's account at claim time); a {GuardIdentifier} recipient resolves to the submitted Order and is STRUCTURALLY UNPAYABLE (every claim aborts 14) — the tool gate rejects it (crs-mn-261015 F-12). amount is {type: 'Fixed', value: '0.1WOW'} — value accepts a display string with token symbol ('0.1WOW') or a smallest-unit integer ('100000000'), NOT the plain balance string used by allocation `sharing`. FULL EXAMPLE: [{guard: '0xabc...', recipient: {Signer: 'signer'}, amount: {type: 'Fixed', value: '0.1WOW'}}]. OPTIONAL EVIDENCE BINDING (ksk9d2-tn-261026 F-01): an entry may carry evidence {repo, key, predicate} — a claim-time attestation pin that counts ONLY repository rows tied to THIS claim's own store_from value (the submitted order), so borrowed/foreign rows never satisfy the bounty; it requires store_from_id on the same guard (a missing pin aborts 16 at build time) and a claim whose order has no matching attestation row aborts 15. AUTHOR GATE (v142, evidence author_bound — SDK default true): the binding is armed against the kernel-recorded AUTHOR of the store_from row — a claim pays only when the row's author IS the claim recipient (mismatch aborts 17; an unstamped row fails closed and denies the claim), so a row written by a third party can never satisfy the bounty even if it matches the predicate. author_bound:false restores the legacy predicate-only binding (advanced — drops the author check). On a pre-142 chain the author-bound face aborts 18 — rebuild without evidence binding or run on a v142 chain.","type":"array","items":{"type":"object","properties":{"guard":{"type":"string","description":"Guard object ID or name."},"recipient":{"anyOf":[{"type":"object","properties":{"GuardIdentifier":{"type":"integer","minimum":0,"maximum":255,"description":"Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."}},"required":["GuardIdentifier"],"additionalProperties":false,"description":"Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type. ALLOCATION rails only — the REWARD claim rail requires recipient == the transaction sender (abort 14), so a GuardIdentifier recipient on reward.guard_add resolves to the submitted Order and is structurally unpayable; the tool gate rejects it (crs-mn-261015 F-12)."},{"type":"object","properties":{"Entity":{"anyOf":[{"description":"Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"},{"type":"object","properties":{"name_or_address":{"type":"string","description":"Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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."}],"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 }."}},"required":["Entity"],"additionalProperties":false,"description":"Static address resolved via LocalMark. Format: {Entity: 'mark_name'} (string shorthand) or {Entity: {name_or_address: 'mark_name'}} (full object).F-RQ-11 (rq2 promotion): string shorthand accepted — the FIX-005 transform resolves local marks first."},{"type":"object","properties":{"Signer":{"type":"string","const":"signer"}},"required":["Signer"],"additionalProperties":false,"description":"Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds. On the REWARD claim rail this is the CANONICAL recipient (the claim entry requires recipient == the tx sender)."}],"description":"Recipient ID. Three forms:\n - {GuardIdentifier: u8} — DYNAMIC address resolved from Passport at alloc() time (Allocation rails only; structurally unpayable on reward.guard_add — abort 14)\n - {Entity: {name_or_address: 'mark_name'}} — FIXED static address via LocalMark (recommended)\n - {Signer: 'signer'} — transaction sender at alloc() time (e.g. self-refund; customer must call alloc_by_guard themselves; canonical on reward claim rails)"},"amount":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"GuardU64Identifier"},"value":{"type":"integer","minimum":0,"maximum":255,"description":"Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."}},"required":["type","value"],"additionalProperties":false,"description":"Guard verified amount. Get amount value from specified data index in Guard table. The value type must be u64."},{"type":"object","properties":{"type":{"type":"string","const":"Fixed"},"value":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."}},"required":["type","value"],"additionalProperties":false,"description":"Fixed amount"}],"description":"Reward amount"},"expiration_time":{"description":"Reward Guard expiration time. If set, the reward cannot be claimed by this guard after the expiration time. If not specified, Reward Guard is permanently valid.","type":"number"},"store_from_id":{"description":"Guard table data index for record storage. The value at this index (address or number, including submitted values) will be stored in the record for Guard verification purposes, such as controlling operation frequency.","anyOf":[{"type":"integer","minimum":0,"maximum":255,"description":"Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."},{"type":"null"}]},"evidence":{"description":"ksk9d2-tn-261026 F-01 claim-time attestation pin. REQUIRES store_from_id on the SAME guard — the binding reads THE pinned store_from row, so the chain aborts 16 (E_EVIDENCE_NEEDS_STORE_FROM) at build time without it. At claim the chain counts repository rows under (repo, key) matching the predicate for the claim's OWN store_from value (the submitted order) via the native row-match count and aborts 15 (E_EVIDENCE_NOT_OWNED) when none — a borrowed foreign row can never pay.","type":"object","properties":{"repo":{"type":"string","description":"Repository object ID or name holding the attestation rows."},"key":{"type":"array","items":{"type":"integer","minimum":0,"maximum":255},"description":"Repository data key bytes (the policy name the rows live under, e.g. UTF-8 bytes of 'rating')."},"predicate":{"type":"array","items":{"type":"integer","minimum":0,"maximum":255},"description":"BCS-encoded RepositoryDataPredicateWire bytes — the same predicate blob the repository read channel uses."}},"required":["repo","key","predicate"],"additionalProperties":false}},"required":["guard","recipient","amount"],"additionalProperties":false,"description":"Reward Guard type"}},"guard_remove":{"description":"Unified guard removal — one entry, two intents: pass the literal 'expired' to sweep ALL expired guards, or pass a Guard object ID to remove that specific mounted guard (works on non-expiring guards too, F-57). Constraints: while the no-guard window (guard_expiration_time) is still in the future removal is blocked (same public-commitment lock as guard_add, abort 10); removing a not-mounted ID aborts 7; consumed claim once-slots survive remove+re-add, so removal can never re-arm an already-drained bounty.","type":"string"},"guard_expiration_time":{"description":"Add expiration time(ms). Before this time expires, new Guard and fund allocation rules cannot be added.","anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"owner_receive":{"description":"Unwrap CoinWrapper objects and other objects received by this Reward object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received\" — for\n order.receive this is the correct default for \"the buyer got their refund\".\n Example: receive: 'recently'\n• bare object id (string, 0x-prefixed) — one-object form, auto-expanded (F-15):\n pass the id of the single received object you want to unwrap (e.g. a CoinWrapper id).\n Example: receive: '0xabc...'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::wow::WOW>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.","anyOf":[{"type":"string","const":"recently"},{"type":"string","pattern":"^0x[0-9a-fA-F]{8,}$"},{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Received object ID"},"type":{"type":"string","minLength":1,"description":"Object type"},"content_raw":{"description":"Raw content data"},"version":{"description":"Object version, required to build a Receiving<T> argument for owner_receive","type":"string"},"digest":{"description":"Object digest, required to build a Receiving<T> argument for owner_receive","type":"string"}},"required":["id","type"],"additionalProperties":false,"description":"Received normal object record"}},{"type":"object","properties":{"balance":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."},"token_type":{"type":"string","description":"Asset type of Coin objects. Supports CoinWrapper<...> format for order receive operations."},"received":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Received CoinWrapper object ID"},"balance":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05WOW\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is only within the safe integer range (±2^53); numbers outside it are REJECTED, use a numeric string instead. PRECISION RULE: for values exceeding 2^53 (9007199254740991), ALWAYS use format (1) or (2) — JS numbers lose integer precision silently and such inputs are blocked. Raw amounts must be plain non-negative integers; a decimal value without a token symbol (e.g. \"2.5\") is rejected — append the symbol (\"2.5WOW\") so the Fund Processing Layer converts it. WARNING — BARE INTEGER MEANS SMALLEST UNIT, NOT TOKENS: formats (2)/(3) are NEVER interpreted as display tokens. For example amount=\"5\" or 5 means 5 raw units = 0.000000005 WOW (9 decimals) — NOT 5 WOW. When the user asks for a token amount, you MUST use display format (\"5WOW\", \"2USDC\"); a bare integer is only correct for unitless counts (e.g. stock quantity) or when you computed exact raw units yourself. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer, where the token's FULL type, decimals and raw amount are always visible. MULTIPLE ISSUERS: several on-chain tokens may legally share the same symbol (e.g. multiple \"USDT\" coins). When a bare symbol matches more than one token, the operation is BLOCKED and every candidate is listed with full details (type, name, decimals, verified tag) — present the list to the USER and let them choose (they may answer by number), then re-issue with the chosen token's FULL type string in type_parameter; never guess an issuer from the bare symbol. MISSING TOKEN INFO: when a token's precision cannot be resolved, the operation is REFUSED (raw u64 included — amount magnitude could not be verified). Recovery: provide the token's FULL type in package::module::Name form in type_parameter (a bare symbol like \"USDT\" cannot be resolved), and verify the WOW network is correct. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: service sale prices, compensation fund balances, Treasury deposits, arbitration fees, reward amounts, stock quantities."},"payment":{"type":"string","description":"Payment object ID"},"type":{"description":"Type of the received object (or inner coin type); used for token_type detection","type":"string"},"version":{"description":"Object version, required to build a Receiving<T> argument for owner_receive","type":"string"},"digest":{"description":"Object digest, required to build a Receiving<T> argument for owner_receive","type":"string"}},"required":["id","balance","payment"],"additionalProperties":false,"description":"Received CoinWrapper object record"},"description":"Received records of Coin objects"}},"required":["balance","token_type","received"],"additionalProperties":false,"description":"Received record of Coin objects"}]},"um":{"description":"Contact object ID or name.","anyOf":[{"type":"string","description":"Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."},{"type":"null"}]},"withdraw":{"description":"Permission-gated balance exit (the ONLY non-claim exit from the Reward balance): withdraws this amount from the Reward balance and delivers it to the transaction sender inside a Payment object (the on-chain auditable receipt, keyed by the RewardWithdrawEvent). The executing account needs the withdraw right (permission index 158) on the Reward's Permission object. Fails on-chain when the balance is insufficient or while the declared no-guard window (guard_expiration_time) is still in the future; claim replay protection is unaffected. Use it to recover mismatched or overfunded pools.","type":"object","properties":{"amount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"string"}],"description":"Amount to withdraw (SMALLEST token units, e.g. '100000000')."},"payment_info":{"type":"object","properties":{"for_object":{"description":"Binding anchor for this distribution. On an Allocation a SET for_object is ENFORCED at alloc(): every GuardIdentifier recipient submission must equal this address or the whole tx aborts (ERECIPIENT_NOT_FOR_OBJECT, code 15) — verify the anchor matches the intended recipient flow BEFORE create; payment_info is immutable afterwards. NULL/omitted = no anchor: nothing is enforced on-chain, recipient routing is entirely the creator's design. Also recorded at creation for auditors to query the distribution's business context.","anyOf":[{"type":"string"},{"type":"null"}]},"for_guard":{"description":"Payment to satisfy verification of a Guard object","anyOf":[{"type":"string"},{"type":"null"}]},"remark":{"type":"string","description":"Payment record remark"},"index":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Payment record index (non-negative integer)"}},"required":["remark","index"],"additionalProperties":false,"description":"Payment receipt metadata (remark/index). The withdrawn funds leave the Reward balance inside a Payment object — the on-chain auditable receipt."},"unwrap":{"description":"Auto-unwrap: when true, the coin is paid straight to the transaction sender in the SAME transaction (single-PTB flow). When false or omitted (default), a CoinWrapper is delivered to the sender's wallet for later unwrapping via the payment call with receive:true. Both modes keep the Payment object as the on-chain receipt.","type":"boolean"}},"required":["amount","payment_info"],"additionalProperties":false}},"required":["object"],"additionalProperties":false,"description":"On-chain Reward operations. USAGE: (1) CREATE NEW: Set 'object' field with OBJECT format {name, type_parameter, permission, ...} to create a Reward. NOTE: 'name' goes INSIDE 'object', NOT at the data root level.'permission' can be a new Permission object or reference an existing one - check 'object' field description for details. (2) OPERATE EXISTING: Set 'object' field with STRING format (object ID or name). The 'object' field is CRITICAL and REQUIRED in both cases. STRING for existing, OBJECT for new creation. NAME RESOLUTION SCOPE (T8 az3-mn-261013): a LocalMark name resolves ONLY within the SIGNING account's own local mark store — when the Reward was named by a DIFFERENT account (e.g. the merchant's mark) and you operate it from another account, the name lookup fails with 'not found locally'; pass the on-chain 0x object ID instead (resolve it once via workspace/onchain_objects and reuse the id)."},"idempotency_key":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"F-RQ-13A (prescription ⑨): idempotency key for this business attempt. REPLAY GUARD: if a previous call with the SAME key is still open (dispatched but outcome unresolved, or already committed), this call is HELD — you get a structured state_conflict envelope with the prior attempt's verification data instead of a second on-chain submission (the ghost-order guard: two live mainnet orders, two escrows). Lifecycle: a deterministic failure (nothing submitted / provably reverted) clears the key — fix the cause and retry with the SAME key; an unknown-outcome failure (submission may have landed) keeps the key HELD — verify on-chain state first (result.submission_verification tells you where to look), and only retry with a NEW key once the outcome is resolved. Keep one key per business attempt (e.g. 'ord-20261030-042-buy'); do not reuse across attempts."},"env":{"type":"object","properties":{"account":{"default":"","type":"string","description":"Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."},"permission_guard":{"description":"List of permission guard IDs. Used to extend additional operation permissions (requires verification and configuration in the Permission object).","type":"array","items":{"type":"string"}},"no_cache":{"description":"Whether to disable caching.","type":"boolean"},"network":{"description":"Omit in chat-client contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.","type":"string","enum":["localnet","testnet","mainnet"]},"referrer":{"description":"Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).","type":"string"},"no_auto_register":{"description":"Opt-out of SDK-level Entity auto-registration. By default, a business transaction whose sender has no entry in the global Entity table automatically appends an entity registration: the sender gets registered and receives an owned Resource object (their on-chain mark book) in the wallet. Set true ONLY when the user explicitly cancelled their entity registration or demands that the transaction not touch the Entity table.","type":"boolean"},"confirmed":{"description":"Phase 2 ConfirmGate: set to true to proceed after a 'pending_confirmation' result. The operation is NOT executed until you re-call with confirmed=true after user consent.","type":"boolean"},"user_intent_phrases":{"description":"Phase 2 ConfirmGate: explicit user intent phrases collected from conversation context (e.g. 'use default account', 'force publish'). Used to bypass confirmation rules whose bypass_on_explicit_intent matches.","type":"array","items":{"type":"string"}},"plan_approval":{"description":"K3 24 PlanApproval: id of a goal whose plan was approved via goal_operation action='approve'. When set: 1) the ConfirmGate treats fail-open rules (standard/none levels) as pre-approved for operations under this goal's plan; 2) after successful CREATION operations, the created objects are auto-registered into the goal (GoalRecord.objects + its TaskProcess manifest — ACT station 'execution registers'). Fail-closed levels (irreversible/publish/amount) still require per-operation confirmation with env.confirmed=true.","type":"string"},"client_schema_version":{"description":"Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched.","type":"string"},"schema_strict_mode":{"default":false,"description":"When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode).","type":"boolean"},"dry_run":{"description":"Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).","type":"boolean"},"window_profile":{"description":"Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).","type":"string","enum":["production","test"]},"response_level":{"description":"Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.","type":"string","enum":["compact","full"]},"confirm_mode":{"description":"Confirmation frequency for this call. 'full': confirm every matched gate rule. 'streamlined' (client default): skip fail-open 'standard' level prompts — fail-closed levels (irreversible/publish/amount) ALWAYS still confirm. 'quiet': same hard floor as streamlined, for clients that batch/suppress repeat low-risk prompts in their own UI. This field NEVER downgrades fail-closed levels.","type":"string","enum":["full","streamlined","quiet"]}},"required":["account","schema_strict_mode"],"additionalProperties":false,"description":"IMPORTANT: Execution environment includes: account for signing operations, network selection (testnet | localnet | mainnet), additional Guard permissions, and more. Used to specify context information during the call. If account is not specified, the default account (\"\") will be used. NOTE: by default the SDK auto-registers the sender in the global Entity table when absent (first business transaction; the account receives an owned Resource object). Set no_auto_register=true only on explicit user request."},"submission":{"type":"object","properties":{"type":{"type":"string","const":"submission","description":"Discriminator for this result variant. Constraint: always 'submission'. Example: 'submission'"},"guard":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"object":{"type":"string","description":"Guard object name or ID to verify against. Example: 'my-delivery-guard' or '0x123...'"},"impack":{"type":"boolean","description":"Whether this Guard's verification result participates in the final logic. Constraint: if false, the Guard is checked but does not block the operation. Example: true"}},"required":["object","impack"],"additionalProperties":false},"description":"Array of Guard objects to verify. Constraint: at most 20 entries (MAX_GUARD_COUNT_PASSPORT). Relation: each entry corresponds to a Guard bound to the operation."},"submission":{"type":"array","items":{"type":"object","properties":{"guard":{"type":"string","description":"Guard object name or ID that requires submission data. Example: 'my-delivery-guard'"},"submission":{"type":"array","items":{"type":"object","properties":{"identifier":{"type":"integer","minimum":0,"maximum":255,"description":"Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."},"b_submission":{"type":"boolean","description":"Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."},"value_type":{"description":"Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details.","anyOf":[{"type":"number","const":0,"description":"Bool (0)"},{"type":"number","const":1,"description":"Address (1)"},{"type":"number","const":2,"description":"String (2)"},{"type":"number","const":3,"description":"U8 (3)"},{"type":"number","const":4,"description":"U16 (4)"},{"type":"number","const":5,"description":"U32 (5)"},{"type":"number","const":6,"description":"U64 (6)"},{"type":"number","const":7,"description":"U128 (7)"},{"type":"number","const":8,"description":"U256 (8)"},{"type":"number","const":9,"description":"VecBool (9)"},{"type":"number","const":10,"description":"VecAddress (10)"},{"type":"number","const":11,"description":"VecString (11)"},{"type":"number","const":12,"description":"VecU8 (12)"},{"type":"number","const":13,"description":"VecU16 (13)"},{"type":"number","const":14,"description":"VecU32 (14)"},{"type":"number","const":15,"description":"VecU64 (15)"},{"type":"number","const":16,"description":"VecU128 (16)"},{"type":"number","const":17,"description":"VecU256 (17)"},{"type":"number","const":18,"description":"VecVecU8 (18)"},{"type":"string","const":"Bool","description":"Bool"},{"type":"string","const":"Address","description":"Address"},{"type":"string","const":"String","description":"String"},{"type":"string","const":"U8","description":"U8"},{"type":"string","const":"U16","description":"U16"},{"type":"string","const":"U32","description":"U32"},{"type":"string","const":"U64","description":"U64"},{"type":"string","const":"U128","description":"U128"},{"type":"string","const":"U256","description":"U256"},{"type":"string","const":"VecBool","description":"VecBool"},{"type":"string","const":"VecAddress","description":"VecAddress"},{"type":"string","const":"VecString","description":"VecString"},{"type":"string","const":"VecU8","description":"VecU8"},{"type":"string","const":"VecU16","description":"VecU16"},{"type":"string","const":"VecU32","description":"VecU32"},{"type":"string","const":"VecU64","description":"VecU64"},{"type":"string","const":"VecU128","description":"VecU128"},{"type":"string","const":"VecU256","description":"VecU256"},{"type":"string","const":"VecVecU8","description":"VecVecU8"},{"type":"string","const":"bool","description":"bool"},{"type":"string","const":"address","description":"address"},{"type":"string","const":"string","description":"string"},{"type":"string","const":"u8","description":"u8"},{"type":"string","const":"u16","description":"u16"},{"type":"string","const":"u32","description":"u32"},{"type":"string","const":"u64","description":"u64"},{"type":"string","const":"u128","description":"u128"},{"type":"string","const":"u256","description":"u256"},{"type":"string","const":"vecbool","description":"vecbool"},{"type":"string","const":"vecaddress","description":"vecaddress"},{"type":"string","const":"vecstring","description":"vecstring"},{"type":"string","const":"vecu8","description":"vecu8"},{"type":"string","const":"vecu16","description":"vecu16"},{"type":"string","const":"vecu32","description":"vecu32"},{"type":"string","const":"vecu64","description":"vecu64"},{"type":"string","const":"vecu128","description":"vecu128"},{"type":"string","const":"vecu256","description":"vecu256"},{"type":"string","const":"vecvecu8","description":"vecvecu8"}]},"value":{"description":"The actual value data. Format depends on `value_type`:\nTYPE-CLASS SPLIT (F03): scalar value_types (Bool/Address/String/U8..U256) take ONE scalar value (boolean/address string/name/string/number); Vec* value_types (VecBool/VecAddress/VecString/VecU8..VecU256) take a REAL JSON ARRAY of elements — a string (even a Python-repr-looking \"[a, b]\") fails serialization with 'value_type=10 (array) requires a array value'. The historical 'static values must be strings' rule applied to SCALARS only.\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nPROTOCOL SLOT 254 (once, b_submission Address): the submitted value MUST be the ORDER address bound to the operation (payment_info.for_object) — NEVER the Progress/Machine/Arb object the call is advancing. The chain asserts submission(254) == the order address; a Progress address fails the task binding and the forward aborts.\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission).","anyOf":[{"type":"boolean"},{"anyOf":[{"type":"object","properties":{"name_or_address":{"type":"string","description":"Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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."},{"type":"string"}]},{"type":"string"},{"type":"number"},{"type":"array","items":{"type":"boolean"}},{"anyOf":[{"type":"object","properties":{"entities":{"minItems":1,"type":"array","items":{"type":"object","properties":{"name_or_address":{"type":"string","description":"Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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."}},"check_all_founded":{"default":true,"description":"Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)","type":"boolean"}},"required":["entities","check_all_founded"],"additionalProperties":false,"description":"Used to batch find account or object IDs by name"},{"type":"array","items":{"type":"string"}}]},{"type":"array","items":{"type":"string"}},{"type":"array","items":{"type":"number"}},{"type":"array","items":{"type":"array","items":{"type":"number"}}}]},"name":{"default":"","description":"Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here.","type":"string"},"object_type":{"description":"OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation.","type":"string","enum":["Permission","Repository","Arb","Arbitration","Service","Machine","Order","Progress","Payment","Treasury","Guard","Demand","Passport","Allocation","Resource","Reward","Discount","EntityRegistrar","EntityLinker","Proof","WReceivedObject","Contact","TableItem_ProgressHistory","TableItem_PermissionPerm","TableItem_DemandPresenter","TableItem_MachineNode","TableItem_TreasuryHistory","TableItem_RepositoryData","TableItem_RewardRecord","TableItem_EntityLinker","TableItem_AddressMark","TableItem_EntityRegistrar"]}},"required":["identifier","b_submission","value_type","name"],"additionalProperties":false,"description":"Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"},"description":"User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}] PROTOCOL SLOT 254: when the Guard table has identifier 254, submit the ORDER address bound to the operation (payment_info.for_object) — never the Progress/Machine object being advanced."}},"required":["guard","submission"],"additionalProperties":false,"description":"One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."},"description":"User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. SLOT COMPLETENESS (T8 az3-mn-261013): the submission array must cover EVERY b_submission slot in the Guard's table, not just one — a Guard whose table has multiple b_submission entries (e.g. slot 0 + slot 254) aborts on-chain with 'Submission ID not found' (abort 11) when any b_submission slot has no matching entry. Check the Guard's table (each entry with b_submission needs its identifier filled) and include ALL of them. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"}},"required":["type","guard","submission"],"additionalProperties":false,"description":"Guard verification required. The operation was blocked because one or more Guards require user-submitted data. Fill the submission array and resubmit. Semantic status is 'pending_input'."}},"required":["operation_type","data"],"additionalProperties":false}