@wowok/agent-mcp 2.7.1 → 2.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/dist/config/index.js +1 -1
  2. package/dist/config/runtime.js +1 -238
  3. package/dist/customer/account-events.d.ts +32 -0
  4. package/dist/customer/account-events.js +1 -0
  5. package/dist/customer/customer-advice.d.ts +1 -0
  6. package/dist/customer/customer-advice.js +1 -130
  7. package/dist/customer/index.js +1 -11
  8. package/dist/customer/industry-risks.js +1 -438
  9. package/dist/customer/info-puzzle.js +1 -681
  10. package/dist/customer/order-monitor.js +1 -328
  11. package/dist/customer/order-strategy.d.ts +1 -1
  12. package/dist/customer/order-strategy.js +1 -373
  13. package/dist/customer/post-purchase.js +1 -351
  14. package/dist/customer/preorder-compare.js +1 -34
  15. package/dist/customer/reminder-system.d.ts +2 -0
  16. package/dist/customer/reminder-system.js +1 -316
  17. package/dist/customer/risk-assessment.d.ts +1 -0
  18. package/dist/customer/risk-assessment.js +1 -397
  19. package/dist/customer/types.d.ts +2 -0
  20. package/dist/customer/types.js +1 -13
  21. package/dist/customer/user-preferences.js +1 -460
  22. package/dist/evaluation/arbitration-game.d.ts +9 -2
  23. package/dist/evaluation/arbitration-game.js +1 -48
  24. package/dist/evaluation/builtins/arbitration-score.d.ts +41 -0
  25. package/dist/evaluation/builtins/arbitration-score.js +1 -0
  26. package/dist/evaluation/builtins/demand-match.js +1 -153
  27. package/dist/evaluation/builtins/index.d.ts +1 -0
  28. package/dist/evaluation/builtins/index.js +1 -10
  29. package/dist/evaluation/builtins/service-risk.js +1 -55
  30. package/dist/evaluation/capability.js +1 -13
  31. package/dist/evaluation/category-match-rules.d.ts +30 -0
  32. package/dist/evaluation/category-match-rules.js +1 -0
  33. package/dist/evaluation/composer.js +1 -40
  34. package/dist/evaluation/engine.js +1 -175
  35. package/dist/evaluation/extract.js +1 -115
  36. package/dist/evaluation/game-strategy.d.ts +27 -0
  37. package/dist/evaluation/game-strategy.js +1 -0
  38. package/dist/evaluation/gap.js +1 -100
  39. package/dist/evaluation/index.d.ts +2 -0
  40. package/dist/evaluation/index.js +1 -11
  41. package/dist/evaluation/location-match.d.ts +42 -0
  42. package/dist/evaluation/location-match.js +1 -0
  43. package/dist/evaluation/node-game.d.ts +31 -3
  44. package/dist/evaluation/node-game.js +1 -57
  45. package/dist/evaluation/path-reasoning.d.ts +35 -0
  46. package/dist/evaluation/path-reasoning.js +1 -0
  47. package/dist/evaluation/region.d.ts +6 -0
  48. package/dist/evaluation/region.js +1 -36
  49. package/dist/evaluation/types.d.ts +18 -0
  50. package/dist/evaluation/types.js +1 -1
  51. package/dist/evaluation/user-injection.js +1 -27
  52. package/dist/experience/experience-reuse.js +1 -103
  53. package/dist/experience/index.js +1 -5
  54. package/dist/experience/intent-distill.js +1 -83
  55. package/dist/experience/realtime-feedback.js +1 -94
  56. package/dist/experience/types.js +1 -1
  57. package/dist/experience/user-profile.d.ts +1 -1
  58. package/dist/experience/user-profile.js +1 -171
  59. package/dist/extensions/business-modules.js +1 -287
  60. package/dist/extensions/capability-manifest.js +1 -781
  61. package/dist/extensions/constraint-registry.js +1 -198
  62. package/dist/extensions/index.d.ts +6 -0
  63. package/dist/extensions/index.js +1 -6
  64. package/dist/extensions/industry-layers.d.ts +75 -0
  65. package/dist/extensions/industry-layers.js +1 -0
  66. package/dist/extensions/industry-pack.d.ts +105 -0
  67. package/dist/extensions/industry-pack.js +1 -0
  68. package/dist/extensions/metric-registry.js +1 -257
  69. package/dist/extensions/mode-evaluator.d.ts +1 -1
  70. package/dist/extensions/mode-evaluator.js +1 -170
  71. package/dist/extensions/modes.js +1 -499
  72. package/dist/extensions/registry.d.ts +1 -0
  73. package/dist/extensions/registry.js +1 -717
  74. package/dist/extensions/types.js +1 -1
  75. package/dist/graph/base.d.ts +8 -0
  76. package/dist/graph/base.js +1 -0
  77. package/dist/harness/auto-escalation.js +1 -68
  78. package/dist/harness/checkpoint.js +1 -129
  79. package/dist/harness/index.d.ts +1 -0
  80. package/dist/harness/index.js +1 -78
  81. package/dist/harness/plan.d.ts +2 -0
  82. package/dist/harness/plan.js +1 -315
  83. package/dist/harness/recover.d.ts +1 -1
  84. package/dist/harness/recover.js +1 -139
  85. package/dist/harness/types.d.ts +2 -3
  86. package/dist/harness/types.js +1 -1
  87. package/dist/harness/verify.js +1 -237
  88. package/dist/index.js +1 -273
  89. package/dist/intent/enrich.js +1 -67
  90. package/dist/intent/index.js +1 -60
  91. package/dist/intent/matcher.js +1 -81
  92. package/dist/intent/store.js +1 -55
  93. package/dist/intent/types.js +1 -10
  94. package/dist/knowledge/acquisition-flywheel.js +1 -192
  95. package/dist/knowledge/allocation-confirm.js +1 -534
  96. package/dist/knowledge/allocation-context.js +1 -249
  97. package/dist/knowledge/allocation-ledger.js +1 -463
  98. package/dist/knowledge/allocation-puzzle.js +1 -298
  99. package/dist/knowledge/allocation-risk.js +1 -568
  100. package/dist/knowledge/allocation-templates.js +1 -970
  101. package/dist/knowledge/allocation-translation.js +1 -585
  102. package/dist/knowledge/anti-cheat.d.ts +37 -0
  103. package/dist/knowledge/anti-cheat.js +1 -0
  104. package/dist/knowledge/arb-confirm.d.ts +28 -0
  105. package/dist/knowledge/arb-confirm.js +1 -0
  106. package/dist/knowledge/arb-risk.js +1 -210
  107. package/dist/knowledge/arb-translation.d.ts +48 -0
  108. package/dist/knowledge/arb-translation.js +1 -0
  109. package/dist/knowledge/arbitration-confirm.js +1 -559
  110. package/dist/knowledge/arbitration-context.js +1 -505
  111. package/dist/knowledge/arbitration-ledger.js +1 -521
  112. package/dist/knowledge/arbitration-puzzle.js +1 -304
  113. package/dist/knowledge/arbitration-risk.js +1 -423
  114. package/dist/knowledge/arbitration-templates.js +1 -276
  115. package/dist/knowledge/arbitration-translation.js +1 -487
  116. package/dist/knowledge/audit-rules.js +1 -141
  117. package/dist/knowledge/bridge-confirm.d.ts +26 -0
  118. package/dist/knowledge/bridge-confirm.js +1 -0
  119. package/dist/knowledge/bridge-risk.js +1 -263
  120. package/dist/knowledge/bridge-translation.d.ts +37 -0
  121. package/dist/knowledge/bridge-translation.js +1 -0
  122. package/dist/knowledge/contact-confirm.d.ts +27 -0
  123. package/dist/knowledge/contact-confirm.js +1 -0
  124. package/dist/knowledge/contact-risk.js +1 -200
  125. package/dist/knowledge/contact-templates.js +1 -60
  126. package/dist/knowledge/contact-translation.d.ts +39 -0
  127. package/dist/knowledge/contact-translation.js +1 -0
  128. package/dist/knowledge/demand-confirm.js +1 -206
  129. package/dist/knowledge/demand-context.d.ts +17 -0
  130. package/dist/knowledge/demand-context.js +1 -0
  131. package/dist/knowledge/demand-ledger.d.ts +26 -0
  132. package/dist/knowledge/demand-ledger.js +1 -0
  133. package/dist/knowledge/demand-matching.js +1 -132
  134. package/dist/knowledge/demand-puzzle.d.ts +29 -0
  135. package/dist/knowledge/demand-puzzle.js +1 -0
  136. package/dist/knowledge/demand-risk.js +1 -240
  137. package/dist/knowledge/demand-templates.d.ts +12 -0
  138. package/dist/knowledge/demand-templates.js +1 -0
  139. package/dist/knowledge/demand-translation.js +1 -354
  140. package/dist/knowledge/deployment-scanner.js +1 -823
  141. package/dist/knowledge/dynamic-pricing.js +1 -87
  142. package/dist/knowledge/evidence-review.d.ts +12 -0
  143. package/dist/knowledge/evidence-review.js +1 -0
  144. package/dist/knowledge/examples-scanner-cli.js +1 -26
  145. package/dist/knowledge/examples-scanner.js +1 -843
  146. package/dist/knowledge/flywheel-loop.d.ts +0 -1
  147. package/dist/knowledge/flywheel-loop.js +1 -404
  148. package/dist/knowledge/fund-layer.js +1 -973
  149. package/dist/knowledge/glossary.js +1 -211
  150. package/dist/knowledge/guard-confirm.js +1 -406
  151. package/dist/knowledge/guard-context.js +1 -287
  152. package/dist/knowledge/guard-design-patterns.js +1 -360
  153. package/dist/knowledge/guard-ledger.js +1 -260
  154. package/dist/knowledge/guard-lint.js +1 -670
  155. package/dist/knowledge/guard-migration.d.ts +1 -1
  156. package/dist/knowledge/guard-migration.js +1 -228
  157. package/dist/knowledge/guard-puzzle.js +1 -805
  158. package/dist/knowledge/guard-render.js +1 -700
  159. package/dist/knowledge/guard-risk.js +1 -1879
  160. package/dist/knowledge/guard-submission-prompt.js +1 -171
  161. package/dist/knowledge/guard-templates.js +1 -1105
  162. package/dist/knowledge/guard-translation.js +1 -1119
  163. package/dist/knowledge/index.d.ts +71 -3
  164. package/dist/knowledge/index.js +1 -436
  165. package/dist/knowledge/industry-evolution.js +1 -323
  166. package/dist/knowledge/industry-generalizer.js +1 -381
  167. package/dist/knowledge/industry-registry.js +1 -174
  168. package/dist/knowledge/intent-metrics.d.ts +4 -3
  169. package/dist/knowledge/intent-metrics.js +1 -566
  170. package/dist/knowledge/machine-confirm.js +1 -559
  171. package/dist/knowledge/machine-context.js +1 -833
  172. package/dist/knowledge/machine-ledger.js +1 -338
  173. package/dist/knowledge/machine-puzzle.js +1 -494
  174. package/dist/knowledge/machine-render.js +1 -565
  175. package/dist/knowledge/machine-risk.js +1 -669
  176. package/dist/knowledge/machine-templates.js +1 -1597
  177. package/dist/knowledge/machine-topology.js +1 -234
  178. package/dist/knowledge/machine-translation.js +1 -513
  179. package/dist/knowledge/market-metrics.d.ts +12 -0
  180. package/dist/knowledge/market-metrics.js +1 -0
  181. package/dist/knowledge/market-operations.d.ts +46 -0
  182. package/dist/knowledge/market-operations.js +1 -0
  183. package/dist/knowledge/mcp-schema-audit-cli.js +1 -45
  184. package/dist/knowledge/mcp-schema-audit.d.ts +22 -22
  185. package/dist/knowledge/mcp-schema-audit.js +1 -777
  186. package/dist/knowledge/onchain-constants.js +1 -35
  187. package/dist/knowledge/order-confirm.js +1 -573
  188. package/dist/knowledge/order-context.js +1 -390
  189. package/dist/knowledge/order-ledger.js +1 -341
  190. package/dist/knowledge/order-puzzle.js +1 -255
  191. package/dist/knowledge/order-risk.js +1 -653
  192. package/dist/knowledge/order-templates.js +1 -368
  193. package/dist/knowledge/order-translation.js +1 -550
  194. package/dist/knowledge/overrides-loader.js +1 -65
  195. package/dist/knowledge/passport-confirm.js +1 -531
  196. package/dist/knowledge/passport-context.js +1 -306
  197. package/dist/knowledge/passport-ledger.js +1 -282
  198. package/dist/knowledge/passport-puzzle.js +1 -333
  199. package/dist/knowledge/passport-risk.js +1 -450
  200. package/dist/knowledge/passport-templates.js +1 -568
  201. package/dist/knowledge/passport-translation.js +1 -516
  202. package/dist/knowledge/payment-confirm.d.ts +26 -0
  203. package/dist/knowledge/payment-confirm.js +1 -0
  204. package/dist/knowledge/payment-risk.js +1 -249
  205. package/dist/knowledge/payment-translation.d.ts +37 -0
  206. package/dist/knowledge/payment-translation.js +1 -0
  207. package/dist/knowledge/permission-confirm.js +1 -426
  208. package/dist/knowledge/permission-context.js +1 -224
  209. package/dist/knowledge/permission-ledger.d.ts +11 -0
  210. package/dist/knowledge/permission-ledger.js +1 -403
  211. package/dist/knowledge/permission-puzzle.js +1 -173
  212. package/dist/knowledge/permission-risk.js +1 -411
  213. package/dist/knowledge/permission-templates.js +1 -234
  214. package/dist/knowledge/permission-translation.js +1 -350
  215. package/dist/knowledge/personal-confirm.d.ts +29 -0
  216. package/dist/knowledge/personal-confirm.js +1 -0
  217. package/dist/knowledge/personal-risk.js +1 -212
  218. package/dist/knowledge/personal-translation.d.ts +37 -0
  219. package/dist/knowledge/personal-translation.js +1 -0
  220. package/dist/knowledge/process-model.d.ts +1 -11
  221. package/dist/knowledge/process-model.js +1 -160
  222. package/dist/knowledge/progress-confirm.js +1 -456
  223. package/dist/knowledge/progress-context.js +1 -452
  224. package/dist/knowledge/progress-ledger.js +1 -330
  225. package/dist/knowledge/progress-puzzle.js +1 -219
  226. package/dist/knowledge/progress-risk.js +1 -461
  227. package/dist/knowledge/progress-templates.js +1 -228
  228. package/dist/knowledge/progress-translation.js +1 -405
  229. package/dist/knowledge/proof-confirm.js +1 -187
  230. package/dist/knowledge/proof-context.d.ts +17 -0
  231. package/dist/knowledge/proof-context.js +1 -0
  232. package/dist/knowledge/proof-ledger.d.ts +34 -0
  233. package/dist/knowledge/proof-ledger.js +1 -0
  234. package/dist/knowledge/proof-puzzle.d.ts +35 -0
  235. package/dist/knowledge/proof-puzzle.js +1 -0
  236. package/dist/knowledge/proof-risk.js +1 -207
  237. package/dist/knowledge/proof-templates.d.ts +22 -0
  238. package/dist/knowledge/proof-templates.js +1 -0
  239. package/dist/knowledge/proof-translation.js +1 -283
  240. package/dist/knowledge/registrar-confirm.d.ts +26 -0
  241. package/dist/knowledge/registrar-confirm.js +1 -0
  242. package/dist/knowledge/registrar-risk.js +1 -217
  243. package/dist/knowledge/registrar-translation.d.ts +37 -0
  244. package/dist/knowledge/registrar-translation.js +1 -0
  245. package/dist/knowledge/repository-confirm.js +1 -286
  246. package/dist/knowledge/repository-context.d.ts +12 -0
  247. package/dist/knowledge/repository-context.js +1 -0
  248. package/dist/knowledge/repository-ledger.d.ts +25 -0
  249. package/dist/knowledge/repository-ledger.js +1 -0
  250. package/dist/knowledge/repository-puzzle.d.ts +30 -0
  251. package/dist/knowledge/repository-puzzle.js +1 -0
  252. package/dist/knowledge/repository-risk.js +1 -373
  253. package/dist/knowledge/repository-templates.d.ts +14 -0
  254. package/dist/knowledge/repository-templates.js +1 -0
  255. package/dist/knowledge/repository-translation.js +1 -445
  256. package/dist/knowledge/reputation-rules.js +1 -99
  257. package/dist/knowledge/resource-confirm.d.ts +25 -0
  258. package/dist/knowledge/resource-confirm.js +1 -0
  259. package/dist/knowledge/resource-risk.js +1 -157
  260. package/dist/knowledge/resource-translation.d.ts +37 -0
  261. package/dist/knowledge/resource-translation.js +1 -0
  262. package/dist/knowledge/reward-confirm.js +1 -526
  263. package/dist/knowledge/reward-context.d.ts +2 -2
  264. package/dist/knowledge/reward-context.js +1 -504
  265. package/dist/knowledge/reward-ledger.js +1 -502
  266. package/dist/knowledge/reward-puzzle.js +1 -300
  267. package/dist/knowledge/reward-risk.js +1 -627
  268. package/dist/knowledge/reward-templates.js +1 -197
  269. package/dist/knowledge/reward-translation.js +1 -501
  270. package/dist/knowledge/safety-rules.d.ts +1 -0
  271. package/dist/knowledge/safety-rules.js +1 -404
  272. package/dist/knowledge/scenario-modes.js +1 -321
  273. package/dist/knowledge/service-confirm.js +1 -807
  274. package/dist/knowledge/service-context.js +1 -403
  275. package/dist/knowledge/service-ledger.js +1 -609
  276. package/dist/knowledge/service-puzzle.js +1 -236
  277. package/dist/knowledge/service-risk.d.ts +1 -1
  278. package/dist/knowledge/service-risk.js +1 -651
  279. package/dist/knowledge/service-templates.js +1 -456
  280. package/dist/knowledge/service-translation.js +1 -622
  281. package/dist/knowledge/template-registry.js +1 -353
  282. package/dist/knowledge/tool-constraints.js +1 -195
  283. package/dist/knowledge/tools-reference.js +1 -178
  284. package/dist/knowledge/treasury-confirm.js +1 -512
  285. package/dist/knowledge/treasury-context.js +1 -363
  286. package/dist/knowledge/treasury-ledger.js +1 -300
  287. package/dist/knowledge/treasury-puzzle.js +1 -216
  288. package/dist/knowledge/treasury-risk.js +1 -440
  289. package/dist/knowledge/treasury-templates.js +1 -358
  290. package/dist/knowledge/treasury-translation.js +1 -498
  291. package/dist/knowledge/trust-metrics.js +1 -198
  292. package/dist/knowledge/universal-template.d.ts +22 -0
  293. package/dist/knowledge/universal-template.js +1 -0
  294. package/dist/knowledge/util-confirm.d.ts +24 -0
  295. package/dist/knowledge/util-confirm.js +1 -0
  296. package/dist/knowledge/util-risk.js +1 -135
  297. package/dist/knowledge/util-translation.d.ts +38 -0
  298. package/dist/knowledge/util-translation.js +1 -0
  299. package/dist/knowledge/workflow-guidance.d.ts +116 -0
  300. package/dist/knowledge/workflow-guidance.js +1 -0
  301. package/dist/loop-engineering/aggregate.js +1 -132
  302. package/dist/loop-engineering/context-collect.js +1 -83
  303. package/dist/loop-engineering/diagnose.js +1 -273
  304. package/dist/loop-engineering/improve.js +1 -405
  305. package/dist/loop-engineering/index.js +1 -4
  306. package/dist/loop-engineering/pipeline.js +1 -56
  307. package/dist/mode-market/index.js +1 -3
  308. package/dist/mode-market/registry.js +1 -124
  309. package/dist/mode-market/review.js +1 -214
  310. package/dist/mode-market/submission.js +1 -85
  311. package/dist/participation/collaborator-interest.d.ts +23 -0
  312. package/dist/participation/collaborator-interest.js +1 -0
  313. package/dist/participation/customer-interest.d.ts +25 -0
  314. package/dist/participation/customer-interest.js +1 -0
  315. package/dist/participation/employee-kpi.d.ts +25 -0
  316. package/dist/participation/employee-kpi.js +1 -0
  317. package/dist/participation/employee-store.d.ts +16 -0
  318. package/dist/participation/employee-store.js +1 -0
  319. package/dist/participation/index.d.ts +2 -0
  320. package/dist/participation/index.js +1 -0
  321. package/dist/participation/merchant-interest.js +1 -100
  322. package/dist/participation/radar-core.d.ts +13 -3
  323. package/dist/participation/radar-core.js +1 -269
  324. package/dist/participation/supplier-interest.d.ts +25 -0
  325. package/dist/participation/supplier-interest.js +1 -0
  326. package/dist/persona/analyzer.js +1 -66
  327. package/dist/persona/bridge.js +1 -86
  328. package/dist/persona/defaults.js +1 -195
  329. package/dist/persona/experience-bridge.js +1 -23
  330. package/dist/persona/index.d.ts +9 -2
  331. package/dist/persona/index.js +1 -71
  332. package/dist/persona/local-region.d.ts +20 -0
  333. package/dist/persona/local-region.js +1 -0
  334. package/dist/persona/model.js +1 -111
  335. package/dist/persona/overrides.d.ts +10 -0
  336. package/dist/persona/overrides.js +1 -0
  337. package/dist/persona/pack-personae.d.ts +11 -0
  338. package/dist/persona/pack-personae.js +1 -0
  339. package/dist/persona/store.js +1 -62
  340. package/dist/persona/strategy-intent.d.ts +20 -0
  341. package/dist/persona/strategy-intent.js +1 -0
  342. package/dist/persona/types.d.ts +6 -2
  343. package/dist/persona/types.js +1 -5
  344. package/dist/project/business-puzzle.d.ts +1 -1
  345. package/dist/project/business-puzzle.js +1 -383
  346. package/dist/project/context-assembly.js +1 -254
  347. package/dist/project/deployment-bridge.js +1 -120
  348. package/dist/project/deployment-doc.js +1 -1126
  349. package/dist/project/edit-planner.js +1 -1342
  350. package/dist/project/evaluation.d.ts +37 -1
  351. package/dist/project/evaluation.js +1 -2011
  352. package/dist/project/game-theory.js +1 -177
  353. package/dist/project/graph-builder.js +1 -656
  354. package/dist/project/graph.d.ts +3 -6
  355. package/dist/project/graph.js +1 -340
  356. package/dist/project/handlers.d.ts +33 -2
  357. package/dist/project/handlers.js +1 -1784
  358. package/dist/project/index.d.ts +2 -0
  359. package/dist/project/index.js +1 -301
  360. package/dist/project/intent-analyzer.js +1 -149
  361. package/dist/project/machine-nodes.js +1 -36
  362. package/dist/project/merchant-guide.d.ts +19 -0
  363. package/dist/project/merchant-guide.js +1 -264
  364. package/dist/project/migration.js +1 -125
  365. package/dist/project/mode-actions.js +1 -309
  366. package/dist/project/namespace.js +1 -206
  367. package/dist/project/participation-radar.js +1 -428
  368. package/dist/project/pipeline-actions.js +1 -109
  369. package/dist/project/project-store.js +1 -422
  370. package/dist/project/query.js +1 -153
  371. package/dist/project/reverse-mapping.d.ts +34 -0
  372. package/dist/project/reverse-mapping.js +1 -0
  373. package/dist/project/risk-aggregator.js +1 -295
  374. package/dist/project/rollback-policy.js +1 -290
  375. package/dist/project/semantic-assembler.js +1 -345
  376. package/dist/project/semantic-graph.d.ts +3 -5
  377. package/dist/project/semantic-graph.js +1 -292
  378. package/dist/project/stage-gate.js +1 -369
  379. package/dist/project/substep-trace.js +1 -332
  380. package/dist/project/task-tracker.js +1 -78
  381. package/dist/project/workflow-design-assessment.d.ts +24 -0
  382. package/dist/project/workflow-design-assessment.js +1 -0
  383. package/dist/role/derivation.d.ts +18 -0
  384. package/dist/role/derivation.js +1 -0
  385. package/dist/role/index.d.ts +5 -0
  386. package/dist/role/index.js +1 -0
  387. package/dist/role/model.d.ts +8 -0
  388. package/dist/role/model.js +1 -0
  389. package/dist/role/resolution.d.ts +11 -0
  390. package/dist/role/resolution.js +1 -0
  391. package/dist/role/types.d.ts +11 -0
  392. package/dist/role/types.js +1 -0
  393. package/dist/rules.js +1 -52
  394. package/dist/safety/confirm-gate.d.ts +1 -1
  395. package/dist/safety/confirm-gate.js +1 -88
  396. package/dist/safety/index.js +1 -3
  397. package/dist/safety/preview.js +1 -52
  398. package/dist/schema/call/allocation.d.ts +186 -1385
  399. package/dist/schema/call/allocation.js +1 -34
  400. package/dist/schema/call/arbitration.d.ts +272 -1871
  401. package/dist/schema/call/arbitration.js +1 -113
  402. package/dist/schema/call/base.d.ts +1831 -9076
  403. package/dist/schema/call/base.js +1 -370
  404. package/dist/schema/call/bridge.d.ts +911 -3171
  405. package/dist/schema/call/bridge.js +1 -458
  406. package/dist/schema/call/contact.d.ts +135 -931
  407. package/dist/schema/call/contact.js +1 -37
  408. package/dist/schema/call/demand.d.ts +164 -1194
  409. package/dist/schema/call/demand.js +1 -47
  410. package/dist/schema/call/guard.d.ts +298 -1140
  411. package/dist/schema/call/guard.js +1 -161
  412. package/dist/schema/call/handler.js +1 -322
  413. package/dist/schema/call/index.js +1 -20
  414. package/dist/schema/call/machine.d.ts +459 -5403
  415. package/dist/schema/call/machine.js +1 -193
  416. package/dist/schema/call/order.d.ts +137 -844
  417. package/dist/schema/call/order.js +1 -35
  418. package/dist/schema/call/payment.d.ts +74 -561
  419. package/dist/schema/call/payment.js +1 -37
  420. package/dist/schema/call/permission-handler.js +1 -54
  421. package/dist/schema/call/permission.d.ts +335 -2791
  422. package/dist/schema/call/permission.js +1 -105
  423. package/dist/schema/call/personal.d.ts +227 -1814
  424. package/dist/schema/call/personal.js +1 -78
  425. package/dist/schema/call/progress.d.ts +140 -843
  426. package/dist/schema/call/progress.js +1 -47
  427. package/dist/schema/call/proof.d.ts +42 -258
  428. package/dist/schema/call/proof.js +1 -33
  429. package/dist/schema/call/repository.d.ts +324 -2222
  430. package/dist/schema/call/repository.js +1 -77
  431. package/dist/schema/call/reward.d.ts +153 -1183
  432. package/dist/schema/call/reward.js +1 -30
  433. package/dist/schema/call/semantic.js +1 -1679
  434. package/dist/schema/call/service.d.ts +376 -3431
  435. package/dist/schema/call/service.js +1 -184
  436. package/dist/schema/call/treasury.d.ts +252 -2158
  437. package/dist/schema/call/treasury.js +1 -71
  438. package/dist/schema/common/index.d.ts +222 -697
  439. package/dist/schema/common/index.js +1 -407
  440. package/dist/schema/config/index.d.ts +18 -161
  441. package/dist/schema/config/index.js +1 -68
  442. package/dist/schema/employee/index.d.ts +99 -0
  443. package/dist/schema/employee/index.js +1 -0
  444. package/dist/schema/evaluation/index.d.ts +1062 -3748
  445. package/dist/schema/evaluation/index.js +1 -356
  446. package/dist/schema/index.d.ts +3 -0
  447. package/dist/schema/index.js +1 -17
  448. package/dist/schema/industry-pack/index.d.ts +132 -0
  449. package/dist/schema/industry-pack/index.js +1 -0
  450. package/dist/schema/intent-radar/index.d.ts +92 -245
  451. package/dist/schema/intent-radar/index.js +1 -89
  452. package/dist/schema/local/index.d.ts +2045 -18080
  453. package/dist/schema/local/index.js +1 -927
  454. package/dist/schema/local/wip.d.ts +61 -651
  455. package/dist/schema/local/wip.js +1 -187
  456. package/dist/schema/messenger/index.d.ts +949 -5557
  457. package/dist/schema/messenger/index.js +1 -475
  458. package/dist/schema/operations.d.ts +2969 -26518
  459. package/dist/schema/operations.js +1 -520
  460. package/dist/schema/persona/index.d.ts +469 -1820
  461. package/dist/schema/persona/index.js +1 -148
  462. package/dist/schema/project/index.d.ts +1027 -8408
  463. package/dist/schema/project/index.js +1 -2057
  464. package/dist/schema/query/index.d.ts +12041 -75261
  465. package/dist/schema/query/index.js +1 -1646
  466. package/dist/schema/schema-query/index.d.ts +35 -98
  467. package/dist/schema/schema-query/index.js +1 -104
  468. package/dist/schema/schema-version.js +1 -76
  469. package/dist/schema/task-status.d.ts +26 -132
  470. package/dist/schema/task-status.js +1 -36
  471. package/dist/schema/trust/index.d.ts +194 -1290
  472. package/dist/schema/trust/index.js +1 -314
  473. package/dist/schema/utils/guard-parser.js +1 -419
  474. package/dist/schema/utils/guard-query-utils.js +1 -46
  475. package/dist/schema/utils/node-parser.js +1 -369
  476. package/dist/schema/utils/object-type-utils.js +1 -35
  477. package/dist/schema/utils/permission-index-utils.js +1 -7
  478. package/dist/schema/utils/permission-machine-check.js +1 -121
  479. package/dist/schema/utils/skills-recommendation.d.ts +1 -0
  480. package/dist/schema/utils/skills-recommendation.js +1 -77
  481. package/dist/schema/workspace/index.d.ts +69 -0
  482. package/dist/schema/workspace/index.js +1 -0
  483. package/dist/schema-query-impl/index.js +1 -0
  484. package/dist/schemas/account_operation.output.json +3147 -1652
  485. package/dist/schemas/account_operation.schema.json +225 -218
  486. package/dist/schemas/bridge_operation.output.json +1168 -650
  487. package/dist/schemas/bridge_operation.schema.json +736 -504
  488. package/dist/schemas/config_operation.output.json +185 -179
  489. package/dist/schemas/config_operation.schema.json +21 -26
  490. package/dist/schemas/employee_operation.output.json +207 -0
  491. package/dist/schemas/employee_operation.schema.json +176 -0
  492. package/dist/schemas/evaluation_operation.output.json +2329 -557
  493. package/dist/schemas/evaluation_operation.schema.json +2939 -720
  494. package/dist/schemas/guard2file.output.json +58 -64
  495. package/dist/schemas/guard2file.schema.json +79 -81
  496. package/dist/schemas/index.json +29 -11
  497. package/dist/schemas/industry_pack_operation.output.json +594 -0
  498. package/dist/schemas/industry_pack_operation.schema.json +55 -0
  499. package/dist/schemas/intent_radar.output.json +275 -200
  500. package/dist/schemas/intent_radar.schema.json +124 -123
  501. package/dist/schemas/local_info_operation.output.json +1174 -657
  502. package/dist/schemas/local_info_operation.schema.json +119 -125
  503. package/dist/schemas/local_mark_operation.output.json +1239 -689
  504. package/dist/schemas/local_mark_operation.schema.json +91 -96
  505. package/dist/schemas/machineNode2file.output.json +63 -69
  506. package/dist/schemas/machineNode2file.schema.json +79 -81
  507. package/dist/schemas/messenger_operation.output.json +2722 -1528
  508. package/dist/schemas/messenger_operation.schema.json +1482 -1264
  509. package/dist/schemas/onchain_events.output.json +2590 -975
  510. package/dist/schemas/onchain_events.schema.json +117 -99
  511. package/dist/schemas/onchain_operations.output.json +3957 -2309
  512. package/dist/schemas/onchain_operations.schema.json +20799 -9285
  513. package/dist/schemas/onchain_operations_allocation.schema.json +172 -108
  514. package/dist/schemas/onchain_operations_arbitration.schema.json +233 -146
  515. package/dist/schemas/onchain_operations_contact.schema.json +129 -90
  516. package/dist/schemas/onchain_operations_demand.schema.json +170 -112
  517. package/dist/schemas/onchain_operations_gen_passport.schema.json +61 -646
  518. package/dist/schemas/onchain_operations_gen_proof.schema.json +40 -172
  519. package/dist/schemas/onchain_operations_guard.schema.json +3765 -294
  520. package/dist/schemas/onchain_operations_machine.schema.json +537 -164
  521. package/dist/schemas/onchain_operations_order.schema.json +126 -96
  522. package/dist/schemas/onchain_operations_payment.schema.json +82 -67
  523. package/dist/schemas/onchain_operations_permission.schema.json +331 -93
  524. package/dist/schemas/onchain_operations_personal.schema.json +636 -96
  525. package/dist/schemas/onchain_operations_progress.schema.json +125 -92
  526. package/dist/schemas/onchain_operations_proof.schema.json +76 -69
  527. package/dist/schemas/onchain_operations_repository.schema.json +636 -249
  528. package/dist/schemas/onchain_operations_reward.schema.json +218 -108
  529. package/dist/schemas/onchain_operations_service.schema.json +679 -221
  530. package/dist/schemas/onchain_operations_treasury.schema.json +401 -135
  531. package/dist/schemas/onchain_table_data.output.json +6018 -2430
  532. package/dist/schemas/onchain_table_data.schema.json +544 -430
  533. package/dist/schemas/persona_operation.output.json +1568 -265
  534. package/dist/schemas/persona_operation.schema.json +346 -202
  535. package/dist/schemas/project_operation.output.json +6957 -5147
  536. package/dist/schemas/project_operation.schema.json +1050 -1020
  537. package/dist/schemas/query_task_status.output.json +195 -99
  538. package/dist/schemas/query_task_status.schema.json +12 -18
  539. package/dist/schemas/query_toolkit.output.json +18870 -14566
  540. package/dist/schemas/query_toolkit.schema.json +614 -522
  541. package/dist/schemas/schema_query.output.json +127 -129
  542. package/dist/schemas/schema_query.schema.json +64 -69
  543. package/dist/schemas/trust_score.output.json +678 -587
  544. package/dist/schemas/trust_score.schema.json +289 -277
  545. package/dist/schemas/wip_file.output.json +116 -124
  546. package/dist/schemas/wip_file.schema.json +142 -143
  547. package/dist/schemas/workspace_operation.output.json +277 -0
  548. package/dist/schemas/workspace_operation.schema.json +45 -0
  549. package/dist/schemas/wowok_buildin_info.output.json +1693 -723
  550. package/dist/schemas/wowok_buildin_info.schema.json +576 -512
  551. package/dist/telemetry/index.js +1 -112
  552. package/dist/telemetry/redact.js +1 -23
  553. package/dist/telemetry/storage.js +1 -80
  554. package/dist/tools/handlers/bridge.d.ts +8 -1
  555. package/dist/tools/handlers/bridge.js +1 -1
  556. package/dist/tools/handlers/config.js +1 -74
  557. package/dist/tools/handlers/employee.d.ts +2 -0
  558. package/dist/tools/handlers/employee.js +1 -0
  559. package/dist/tools/handlers/evaluation.js +1 -123
  560. package/dist/tools/handlers/file-export.js +1 -90
  561. package/dist/tools/handlers/industry-pack.d.ts +2 -0
  562. package/dist/tools/handlers/industry-pack.js +1 -0
  563. package/dist/tools/handlers/intent-radar.js +1 -76
  564. package/dist/tools/handlers/local.js +1 -53
  565. package/dist/tools/handlers/messenger.js +1 -188
  566. package/dist/tools/handlers/onchain.js +1 -1180
  567. package/dist/tools/handlers/persona.js +1 -89
  568. package/dist/tools/handlers/project.js +1 -211
  569. package/dist/tools/handlers/query.js +1 -434
  570. package/dist/tools/handlers/schema-query.js +1 -176
  571. package/dist/tools/handlers/task-status.js +1 -26
  572. package/dist/tools/handlers/trust.js +1 -380
  573. package/dist/tools/handlers/wip.js +1 -90
  574. package/dist/tools/handlers/workspace.d.ts +2 -0
  575. package/dist/tools/handlers/workspace.js +1 -0
  576. package/dist/tools/index.d.ts +2 -1
  577. package/dist/tools/index.js +1 -1382
  578. package/dist/tools/retry.js +1 -85
  579. package/dist/tools/rules-hook.d.ts +1 -1
  580. package/dist/tools/rules-hook.js +1 -23
  581. package/dist/tools/shared.d.ts +1 -1
  582. package/dist/tools/shared.js +1 -130
  583. package/dist/tools/types.d.ts +2 -1
  584. package/dist/tools/types.js +1 -1
  585. package/dist/tools/upgrade-check.d.ts +19 -0
  586. package/dist/tools/upgrade-check.js +1 -0
  587. package/dist/tools/wip-deploy-assist.js +1 -306
  588. package/dist/tools/wrap.js +1 -500
  589. package/package.json +7 -6
  590. package/dist/knowledge/arbitration-trust.d.ts +0 -24
  591. package/dist/knowledge/arbitration-trust.js +0 -117
  592. package/dist/schema/call/bridge-handler.d.ts +0 -8
  593. package/dist/schema/call/bridge-handler.js +0 -265
  594. package/dist/schema/sync-layer4.d.ts +0 -21
  595. package/dist/schema/sync-layer4.js +0 -286
  596. package/dist/schema-query/index.js +0 -810
  597. /package/dist/{schema-query → schema-query-impl}/index.d.ts +0 -0
@@ -2,139 +2,48 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://wowok.net/schemas/onchain_operations_guard.json",
4
4
  "title": "Guard Operation",
5
- "description": "On-chain guard operation schema",
5
+ "description": "🛡️ Guard Object: Create immutable programmable validation rules that return boolean results. Set 'namedNew' to name the new Guard (you may also use 'object' as an alias — both work). Use root.type='node' for direct node tree or root.type='file' to load from file. Use 'wowok_buildin_info' tool with query='guard instructions' for all available operations. NOTE for EntityLinker/EntityRegistrar queries: Add system addresses to the Guard table - ENTITY_LINKER_ADDRESS (0xaaa) for EntityLinker, ENTITY_REGISTRAR_ADDRESS (0xaab) for EntityRegistrar.",
6
6
  "type": "object",
7
7
  "properties": {
8
8
  "operation_type": {
9
+ "type": "string",
9
10
  "const": "guard"
10
11
  },
11
12
  "data": {
12
13
  "type": "object",
13
- "description": "On-chain Guard creation. IMPORTANT: All defined data (include all submitted data) must be defined in the 'table' field. USAGE: Set 'namedNew' field with {name, tags?, onChain?} to name the new Guard (you may also use 'object' as an alias for 'namedNew' — the MCP preprocess will convert it automatically). The Guard is immutable once created. Define the validation logic in 'root' field. When root.type='file', the file can contain all Guard fields, and any fields defined in the schema will OVERRIDE the file content.",
14
14
  "properties": {
15
15
  "namedNew": {
16
- "$ref": "#/definitions/guard_namedNew",
17
- "$schema": "http://json-schema.org/draft-07/schema#"
18
- },
19
- "description": {
20
- "$ref": "#/definitions/guard_description",
21
- "$schema": "http://json-schema.org/draft-07/schema#"
22
- },
23
- "table": {
24
- "$ref": "#/definitions/guard_table",
25
- "$schema": "http://json-schema.org/draft-07/schema#"
26
- },
27
- "root": {
28
- "description": "Root definition: either a direct GuardNode computation tree (no type wrapper) or a file reference (type='file'). When type='file', the file can define all Guard fields (namedNew, description, table, root, rely), and schema fields override file content. For the node structure, see guard-node-schema.json for complete GuardNode definitions. IMPORTANT: The root node MUST be a logical operation returning Bool (e.g., logic_and, logic_or, logic_equal, query_reward_record_exists, etc.)",
29
- "oneOf": [
30
- {
31
- "$ref": "guard-node-schema.json",
32
- "description": "Direct GuardNode computation tree - the node MUST be a logical operation returning Bool (e.g., logic_and, logic_or, logic_equal, query_reward_record_exists, etc.). No 'type: node' wrapper needed."
33
- },
34
- {
35
- "type": "object",
36
- "description": "File reference",
37
- "properties": {
38
- "type": {
39
- "const": "file"
40
- },
41
- "file_path": {
42
- "type": "string",
43
- "description": "Path to JSON or Markdown file containing Guard definition"
44
- },
45
- "format": {
46
- "type": "string",
47
- "enum": [
48
- "json",
49
- "markdown"
50
- ],
51
- "default": "json",
52
- "description": "File format: 'json' or 'markdown'"
53
- }
54
- },
55
- "required": [
56
- "type",
57
- "file_path"
58
- ]
59
- }
60
- ]
61
- },
62
- "rely": {
63
- "$ref": "#/definitions/guard_rely",
64
- "$schema": "http://json-schema.org/draft-07/schema#"
65
- },
66
- "binding_hint": {
67
- "$ref": "#/definitions/guard_binding_hint",
68
- "$schema": "http://json-schema.org/draft-07/schema#"
69
- }
70
- },
71
- "required": [
72
- "root"
73
- ],
74
- "additionalProperties": false
75
- },
76
- "env": {
77
- "$ref": "#/definitions/env",
78
- "$schema": "http://json-schema.org/draft-07/schema#"
79
- }
80
- },
81
- "required": [
82
- "operation_type",
83
- "data"
84
- ],
85
- "definitions": {
86
- "guard_namedNew": {
87
- "anyOf": [
88
- {
89
- "not": {}
90
- },
91
- {
16
+ "description": "Name and optional tags for the new Guard object. Set 'onChain: true' to create a public on-chain identity. When using root.type='file', this field OVERRIDES namedNew in the file. CIRCULAR DEPENDENCY (DOC-01): When a Guard queries a Service that hasn't been created yet, use a LocalMark NAME (not address) in the query table — the name is resolved to an address at transaction build time. Workflow: (1) Create Service (Phase 1, no publish) → (2) Create Guard referencing Service by name → (3) Update Service.buy_guard = Guard address → (4) Publish Service.",
92
17
  "type": "object",
93
18
  "properties": {
94
19
  "name": {
95
- "type": "string",
96
- "description": "The name of the object"
20
+ "description": "The name of the object",
21
+ "type": "string"
97
22
  },
98
23
  "tags": {
24
+ "description": "The tags of the object",
99
25
  "type": "array",
100
26
  "items": {
101
27
  "type": "string"
102
- },
103
- "description": "The tags of the object"
28
+ }
104
29
  },
105
30
  "onChain": {
106
- "type": "boolean",
107
- "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."
31
+ "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.",
32
+ "type": "boolean"
108
33
  },
109
34
  "replaceExistName": {
110
- "type": "boolean",
111
- "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)."
35
+ "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).",
36
+ "type": "boolean"
112
37
  }
113
38
  },
114
- "additionalProperties": false,
115
- "description": "Assign a name and optional tags to a new object. By default, names are stored LOCALLY (private) on your device. Set 'onChain: true' to create a PUBLIC on-chain identity visible to everyone. IMPORTANT: If the requested name is already taken, the operation will FAIL by default. Only set 'replaceExistName: true' when the user EXPLICITLY demands to forcefully claim the name."
116
- }
117
- ],
118
- "description": "Name and optional tags for the new Guard object. Set 'onChain: true' to create a public on-chain identity. When using root.type='file', this field OVERRIDES namedNew in the file. CIRCULAR DEPENDENCY (DOC-01): When a Guard queries a Service that hasn't been created yet, use a LocalMark NAME (not address) in the query table — the name is resolved to an address at transaction build time. Workflow: (1) Create Service (Phase 1, no publish) → (2) Create Guard referencing Service by name → (3) Update Service.buy_guard = Guard address → (4) Publish Service."
119
- },
120
- "guard_description": {
121
- "anyOf": [
122
- {
123
- "not": {}
39
+ "additionalProperties": false
124
40
  },
125
- {
126
- "type": "string",
127
- "description": "Description string (max 4000 bcs characters)"
128
- }
129
- ],
130
- "description": "Guard description. When using root.type='file', this field OVERRIDES description in the file."
131
- },
132
- "guard_table": {
133
- "anyOf": [
134
- {
135
- "not": {}
41
+ "description": {
42
+ "description": "Guard description. When using root.type='file', this field OVERRIDES description in the file.",
43
+ "type": "string"
136
44
  },
137
- {
45
+ "table": {
46
+ "description": "Data table of the Guard object. When using root.type='file', this field OVERRIDES table in the file.",
138
47
  "type": "array",
139
48
  "items": {
140
49
  "type": "object",
@@ -440,6 +349,7 @@
440
349
  "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."
441
350
  },
442
351
  "value": {
352
+ "description": "The actual value data. Format depends on `value_type`:\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\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission).",
443
353
  "anyOf": [
444
354
  {
445
355
  "type": "boolean"
@@ -454,8 +364,8 @@
454
364
  "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)."
455
365
  },
456
366
  "local_mark_first": {
457
- "type": "boolean",
458
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks"
367
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
368
+ "type": "boolean"
459
369
  }
460
370
  },
461
371
  "additionalProperties": false,
@@ -486,12 +396,24 @@
486
396
  "entities": {
487
397
  "type": "array",
488
398
  "items": {
489
- "$ref": "#/definitions/guard_table/anyOf/1/items/properties/value/anyOf/1/anyOf/0"
399
+ "type": "object",
400
+ "properties": {
401
+ "name_or_address": {
402
+ "type": "string",
403
+ "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)."
404
+ },
405
+ "local_mark_first": {
406
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
407
+ "type": "boolean"
408
+ }
409
+ },
410
+ "additionalProperties": false,
411
+ "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."
490
412
  }
491
413
  },
492
414
  "check_all_founded": {
493
- "type": "boolean",
494
- "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs"
415
+ "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs",
416
+ "type": "boolean"
495
417
  }
496
418
  },
497
419
  "required": [
@@ -529,200 +451,3749 @@
529
451
  }
530
452
  }
531
453
  }
532
- ],
533
- "description": "The actual value data. Format depends on `value_type`:\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\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
454
+ ]
534
455
  },
535
456
  "name": {
536
- "type": "string",
537
457
  "default": "",
538
- "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."
458
+ "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.",
459
+ "type": "string"
539
460
  }
540
461
  },
541
462
  "required": [
542
463
  "identifier",
543
464
  "b_submission",
544
- "value_type"
465
+ "value_type",
466
+ "name"
545
467
  ],
546
468
  "additionalProperties": false,
547
469
  "description": "Guard table item (INPUT/CREATION form). DO NOT include `object_type` field — it is query-output only and will be rejected here."
548
470
  }
549
- }
550
- ],
551
- "description": "Data table of the Guard object. When using root.type='file', this field OVERRIDES table in the file."
552
- },
553
- "guard_rely": {
554
- "anyOf": [
555
- {
556
- "not": {}
557
- },
558
- {
559
- "type": "object",
560
- "properties": {
561
- "guards": {
562
- "type": "array",
563
- "items": {
564
- "type": "string",
565
- "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)."
566
- },
567
- "description": "List of dependent Guard object IDs or names."
568
- },
569
- "logic_or": {
570
- "type": "boolean",
571
- "description": "Whether to use logical OR operator."
572
- }
573
- },
574
- "required": [
575
- "guards"
576
- ],
577
- "additionalProperties": false
578
- }
579
- ],
580
- "description": "All Guard objects that the new Guard object depends on. If logic_or is true, the execution result of the new Guard object is the logical OR of the execution results of all dependent Guard objects; otherwise, it is logical AND. When using root.type='file', this field OVERRIDES rely in the file."
581
- },
582
- "guard_binding_hint": {
583
- "anyOf": [
584
- {
585
- "not": {}
586
- },
587
- {
588
- "type": "object",
589
- "properties": {
590
- "action": {
591
- "type": "string",
592
- "enum": [
593
- "buy",
594
- "forward",
595
- "allocate",
596
- "claim_reward",
597
- "vote",
598
- "dispute",
599
- "write_repository",
600
- "submit_progress",
601
- "gen_passport",
602
- "custom"
603
- ],
604
- "description": "Protected action type. Example: 'buy' for Service buy_guard, 'forward' for Machine Forward.guard."
605
- },
606
- "host_object": {
607
- "type": "string",
608
- "enum": [
609
- "Service",
610
- "Machine",
611
- "Arbitration",
612
- "Reward",
613
- "Repository",
614
- "Progress",
615
- "Demand",
616
- "Standalone"
617
- ],
618
- "description": "Host object type. Example: 'Service', 'Machine'."
619
- },
620
- "binding_field": {
621
- "type": "string",
622
- "enum": [
623
- "buy_guard",
624
- "order_allocators",
625
- "Forward.guard",
626
- "submission",
627
- "guard",
628
- "write_guard",
629
- "usage_guard",
630
- "voting_guard",
631
- "ServiceGuard",
632
- "none"
633
- ],
634
- "description": "Binding field. Example: 'buy_guard', 'Forward.guard'."
635
- },
636
- "rule_sentence": {
637
- "type": "string",
638
- "description": "One-sentence description of the validation rule (human-readable). Example: 'Only the author can purchase this service'."
639
- },
640
- "failure_conditions": {
641
- "type": "array",
642
- "items": {
643
- "type": "string"
644
- },
645
- "description": "List of conditions under which the Guard should FAIL. Example: ['Signer is not in allowlist','Order is already completed']."
646
- },
647
- "circular_reference": {
648
- "type": "boolean",
649
- "description": "Whether the Guard references the Host Object itself (circular reference pattern). true=Guard queries the Host Object it binds to."
650
- }
651
- },
652
- "required": [
653
- "action",
654
- "host_object",
655
- "binding_field"
656
- ],
657
- "additionalProperties": false,
658
- "description": "Optional semantic hint for Guard capability system. Provides intent + binding context so the MCP server can derive GuardPuzzle, run risk assessment, and generate confirmation text. Strongly recommended: fill this field to enable puzzle_status, matched_scene, suggested_patterns, confirmation_text, and pending_questions in the response guard_advice."
659
- }
660
- ],
661
- "description": "Phase 5 Guard capability hint. Provides semantic context (action + host_object + binding_field + optional rule/failure_conditions) for puzzle derivation. When provided, the response will include complete guard_advice (puzzle_status, matched_scene, suggested_patterns, confirmation_text, pending_questions). When absent, puzzle_status intent/binding dimensions are marked incomplete."
662
- },
663
- "env": {
664
- "type": "object",
665
- "properties": {
666
- "account": {
667
- "type": "string",
668
- "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).",
669
- "default": ""
670
- },
671
- "permission_guard": {
672
- "type": "array",
673
- "items": {
674
- "type": "string"
675
- },
676
- "description": "List of permission guard IDs. Used to extend additional operation permissions (requires verification and configuration in the Permission object)."
677
- },
678
- "no_cache": {
679
- "type": "boolean",
680
- "description": "Whether to disable caching."
681
- },
682
- "network": {
683
- "type": "string",
684
- "enum": [
685
- "localnet",
686
- "testnet",
687
- "mainnet"
688
- ],
689
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
690
- },
691
- "referrer": {
692
- "$ref": "#/definitions/env/properties/account",
693
- "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded."
694
- },
695
- "confirmed": {
696
- "type": "boolean",
697
- "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."
698
- },
699
- "user_intent_phrases": {
700
- "type": "array",
701
- "items": {
702
- "type": "string"
703
- },
704
- "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."
705
- },
706
- "project": {
707
- "type": "string",
708
- "description": "Project prefix to assign this object to (e.g. 'myshop'). When set: 1) the object is tagged with 'project:<prefix>' on-chain automatically via ProjectService, 2) the newly created object is auto-associated to the SQLite project for local management, evaluation, and graph tracking. The project MUST exist (create via project_operation action='create_project' first). Use project_operation to manage projects."
709
- },
710
- "client_schema_version": {
711
- "type": "string",
712
- "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
713
- },
714
- "schema_strict_mode": {
715
- "type": "boolean",
716
- "default": false,
717
- "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
718
471
  },
719
- "dry_run": {
720
- "type": "boolean",
721
- "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 an operation will succeed before committing. Essential for the 5-step loop's Plan step. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only)."
722
- }
723
- },
724
- "additionalProperties": false,
725
- "description": "IMPORTANT: Execution environment includes: account for signing operations, network selection ([object Object]), additional Guard permissions, and more. Used to specify context information during the call. If account is not specified, the default account (\"\") will be used."
472
+ "root": {
473
+ "anyOf": [
474
+ {
475
+ "description": "Guard computational tree root node. MUST be an operation that returns a Bool value (pass/fail). For 'query' type, the specific query must return Bool. For 'identifier' type, the referenced table item must have value_type=Bool.",
476
+ "oneOf": [
477
+ {
478
+ "type": "object",
479
+ "properties": {
480
+ "type": {
481
+ "type": "string",
482
+ "const": "identifier"
483
+ },
484
+ "identifier": {
485
+ "type": "integer",
486
+ "minimum": 0,
487
+ "maximum": 255,
488
+ "description": "Identifier (0-255) for data lookup in Guard table."
489
+ }
490
+ },
491
+ "required": [
492
+ "type",
493
+ "identifier"
494
+ ],
495
+ "additionalProperties": false,
496
+ "description": "Returns the constant value stored at the specified identifier in the Guard table."
497
+ },
498
+ {
499
+ "type": "object",
500
+ "properties": {
501
+ "type": {
502
+ "type": "string",
503
+ "const": "query"
504
+ },
505
+ "query": {
506
+ "anyOf": [
507
+ {
508
+ "type": "integer",
509
+ "minimum": -9007199254740991,
510
+ "maximum": 9007199254740991
511
+ },
512
+ {
513
+ "type": "string"
514
+ }
515
+ ],
516
+ "description": "ID or name of the wowok object data query instruction. Can be a numeric ID (e.g., 1001) or a name string (e.g., 'permission.description'). Name matching is case-insensitive."
517
+ },
518
+ "object": {
519
+ "type": "object",
520
+ "properties": {
521
+ "identifier": {
522
+ "type": "integer",
523
+ "minimum": 0,
524
+ "maximum": 255,
525
+ "description": "Identifier (0-255) for data lookup in Guard table."
526
+ },
527
+ "convert_witness": {
528
+ "anyOf": [
529
+ {
530
+ "type": "integer",
531
+ "minimum": -9007199254740991,
532
+ "maximum": 9007199254740991
533
+ },
534
+ {
535
+ "type": "string"
536
+ }
537
+ ],
538
+ "description": "When specified, the query retrieves data from the associated (witness) object instead of the queried object itself. This enables cross-object queries within Guard validation logic. Can be a numeric ID (100-108) or a string name (case-insensitive, with or without the 'Type' prefix). String format is recommended for readability.\n\nAvailable WitnessTypes:\n- OrderProgress / TypeOrderProgress (100): Query an Order's associated Progress object. Use case: Check if order has reached a specific workflow node (e.g., 'complete') before allowing reward claims.\n- OrderMachine / TypeOrderMachine (101): Query an Order's associated Machine (workflow definition). Use case: Verify the workflow structure or check node configurations.\n- OrderService / TypeOrderService (102): Query an Order's parent Service object. Use case: Validate the service offering details or check service-level configurations.\n- ProgressMachine / TypeProgressMachine (103): Query a Progress's associated Machine. Use case: Access workflow definition from a Progress context.\n- ArbOrder / TypeArbOrder (104): Query an Arb's associated Order. Use case: In arbitration voting guards, verify order details like payment amount or service ID.\n- ArbArbitration / TypeArbArbitration (105): Query an Arb's parent Arbitration service. Use case: Access arbitration configuration or fee settings from within an Arb case.\n- ArbProgress / TypeArbProgress (106): Query an Arb's associated Progress. Use case: Check order workflow state during arbitration validation.\n- ArbMachine / TypeArbMachine (107): Query an Arb's associated Machine. Use case: Access workflow definition for dispute context analysis.\n- ArbService / TypeArbService (108): Query an Arb's associated Service. Use case: Verify service terms or compensation fund status during arbitration.\n\nExample: To validate that an order has reached the 'complete' node, query the Order with convert_witness='OrderProgress' and check the Progress's current_node field."
539
+ }
540
+ },
541
+ "required": [
542
+ "identifier"
543
+ ],
544
+ "additionalProperties": false,
545
+ "description": "The object to query from the Guard table."
546
+ },
547
+ "parameters": {
548
+ "description": "Parameters required by the query. Optional — defaults to empty array []. Many queries (e.g. progress.current, order.service) take no parameters; for those, this field can be omitted.",
549
+ "type": "array",
550
+ "items": {
551
+ "$ref": "#/definitions/__schema0"
552
+ }
553
+ }
554
+ },
555
+ "required": [
556
+ "type",
557
+ "query",
558
+ "object"
559
+ ],
560
+ "additionalProperties": false,
561
+ "description": "Returns the result of executing a data query instruction on the specified object. The return type depends on the query being executed. SPECIAL NOTE for EntityLinker/EntityRegistrar queries: Use system addresses in the Guard table -0x0000000000000000000000000000000000000000000000000000000000000aaa for EntityLinker queries, 0x0000000000000000000000000000000000000000000000000000000000000aab for EntityRegistrar queries."
562
+ },
563
+ {
564
+ "type": "object",
565
+ "properties": {
566
+ "type": {
567
+ "type": "string",
568
+ "const": "logic_as_u256_greater_or_equal"
569
+ },
570
+ "nodes": {
571
+ "type": "array",
572
+ "items": {
573
+ "$ref": "#/definitions/__schema0"
574
+ }
575
+ }
576
+ },
577
+ "required": [
578
+ "type",
579
+ "nodes"
580
+ ],
581
+ "additionalProperties": false,
582
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first >= all others, otherwise false."
583
+ },
584
+ {
585
+ "type": "object",
586
+ "properties": {
587
+ "type": {
588
+ "type": "string",
589
+ "const": "logic_as_u256_lesser_or_equal"
590
+ },
591
+ "nodes": {
592
+ "type": "array",
593
+ "items": {
594
+ "$ref": "#/definitions/__schema0"
595
+ }
596
+ }
597
+ },
598
+ "required": [
599
+ "type",
600
+ "nodes"
601
+ ],
602
+ "additionalProperties": false,
603
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first <= all others, otherwise false."
604
+ },
605
+ {
606
+ "type": "object",
607
+ "properties": {
608
+ "type": {
609
+ "type": "string",
610
+ "const": "logic_as_u256_greater"
611
+ },
612
+ "nodes": {
613
+ "type": "array",
614
+ "items": {
615
+ "$ref": "#/definitions/__schema0"
616
+ }
617
+ }
618
+ },
619
+ "required": [
620
+ "type",
621
+ "nodes"
622
+ ],
623
+ "additionalProperties": false,
624
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first > all others, otherwise false."
625
+ },
626
+ {
627
+ "type": "object",
628
+ "properties": {
629
+ "type": {
630
+ "type": "string",
631
+ "const": "logic_as_u256_lesser"
632
+ },
633
+ "nodes": {
634
+ "type": "array",
635
+ "items": {
636
+ "$ref": "#/definitions/__schema0"
637
+ }
638
+ }
639
+ },
640
+ "required": [
641
+ "type",
642
+ "nodes"
643
+ ],
644
+ "additionalProperties": false,
645
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first < all others, otherwise false."
646
+ },
647
+ {
648
+ "type": "object",
649
+ "properties": {
650
+ "type": {
651
+ "type": "string",
652
+ "const": "logic_as_u256_equal"
653
+ },
654
+ "nodes": {
655
+ "type": "array",
656
+ "items": {
657
+ "$ref": "#/definitions/__schema0"
658
+ }
659
+ }
660
+ },
661
+ "required": [
662
+ "type",
663
+ "nodes"
664
+ ],
665
+ "additionalProperties": false,
666
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first equals all others, otherwise false."
667
+ },
668
+ {
669
+ "type": "object",
670
+ "properties": {
671
+ "type": {
672
+ "type": "string",
673
+ "const": "logic_equal"
674
+ },
675
+ "nodes": {
676
+ "type": "array",
677
+ "items": {
678
+ "$ref": "#/definitions/__schema0"
679
+ }
680
+ }
681
+ },
682
+ "required": [
683
+ "type",
684
+ "nodes"
685
+ ],
686
+ "additionalProperties": false,
687
+ "description": "Returns Bool. Requires 2-8 nodes of any type. Computed by comparing the first node with all subsequent nodes in both type and value. Returns true if type and value match for all, otherwise false."
688
+ },
689
+ {
690
+ "type": "object",
691
+ "properties": {
692
+ "type": {
693
+ "type": "string",
694
+ "const": "logic_not"
695
+ },
696
+ "node": {
697
+ "$ref": "#/definitions/__schema0"
698
+ }
699
+ },
700
+ "required": [
701
+ "type",
702
+ "node"
703
+ ],
704
+ "additionalProperties": false,
705
+ "description": "Returns Bool. Computed by inverting the boolean value of the child node (true -> false, false -> true)."
706
+ },
707
+ {
708
+ "type": "object",
709
+ "properties": {
710
+ "type": {
711
+ "type": "string",
712
+ "const": "logic_and"
713
+ },
714
+ "nodes": {
715
+ "minItems": 2,
716
+ "maxItems": 8,
717
+ "type": "array",
718
+ "items": {
719
+ "$ref": "#/definitions/__schema0"
720
+ }
721
+ }
722
+ },
723
+ "required": [
724
+ "type",
725
+ "nodes"
726
+ ],
727
+ "additionalProperties": false,
728
+ "description": "Returns Bool. Requires 2-8 boolean nodes. Computed by performing logical AND on all child node values. Returns true if ALL are true, otherwise false."
729
+ },
730
+ {
731
+ "type": "object",
732
+ "properties": {
733
+ "type": {
734
+ "type": "string",
735
+ "const": "logic_or"
736
+ },
737
+ "nodes": {
738
+ "minItems": 2,
739
+ "maxItems": 8,
740
+ "type": "array",
741
+ "items": {
742
+ "$ref": "#/definitions/__schema0"
743
+ }
744
+ }
745
+ },
746
+ "required": [
747
+ "type",
748
+ "nodes"
749
+ ],
750
+ "additionalProperties": false,
751
+ "description": "Returns Bool. Requires 2-8 boolean nodes. Computed by performing logical OR on all child node values. Returns true if ANY is true, otherwise false."
752
+ },
753
+ {
754
+ "type": "object",
755
+ "properties": {
756
+ "type": {
757
+ "type": "string",
758
+ "const": "logic_string_contains"
759
+ },
760
+ "nodes": {
761
+ "type": "array",
762
+ "items": {
763
+ "$ref": "#/definitions/__schema0"
764
+ }
765
+ }
766
+ },
767
+ "required": [
768
+ "type",
769
+ "nodes"
770
+ ],
771
+ "additionalProperties": false,
772
+ "description": "Returns Bool. Requires 2-8 string nodes. The first node is the haystack, all subsequent nodes are needles. Returns true if all needles are substrings of the haystack, otherwise false. Case-sensitive."
773
+ },
774
+ {
775
+ "type": "object",
776
+ "properties": {
777
+ "type": {
778
+ "type": "string",
779
+ "const": "logic_string_nocase_contains"
780
+ },
781
+ "nodes": {
782
+ "type": "array",
783
+ "items": {
784
+ "$ref": "#/definitions/__schema0"
785
+ }
786
+ }
787
+ },
788
+ "required": [
789
+ "type",
790
+ "nodes"
791
+ ],
792
+ "additionalProperties": false,
793
+ "description": "Returns Bool. Requires 2-8 string nodes. The first node is the haystack, all subsequent nodes are needles. Returns true if all needles are substrings of the haystack, otherwise false. Case-insensitive."
794
+ },
795
+ {
796
+ "type": "object",
797
+ "properties": {
798
+ "type": {
799
+ "type": "string",
800
+ "const": "logic_string_nocase_equal"
801
+ },
802
+ "nodes": {
803
+ "type": "array",
804
+ "items": {
805
+ "$ref": "#/definitions/__schema0"
806
+ }
807
+ }
808
+ },
809
+ "required": [
810
+ "type",
811
+ "nodes"
812
+ ],
813
+ "additionalProperties": false,
814
+ "description": "Returns Bool. Requires 2-8 string nodes. Computed by comparing the first node with all subsequent nodes as strings, ignoring case. Returns true if all are equal, otherwise false."
815
+ },
816
+ {
817
+ "type": "object",
818
+ "properties": {
819
+ "type": {
820
+ "type": "string",
821
+ "const": "calc_number_add"
822
+ },
823
+ "nodes": {
824
+ "type": "array",
825
+ "items": {
826
+ "$ref": "#/definitions/__schema0"
827
+ }
828
+ }
829
+ },
830
+ "required": [
831
+ "type",
832
+ "nodes"
833
+ ],
834
+ "additionalProperties": false,
835
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by adding the first node value with all subsequent node values in sequence (first + second + third + ...)."
836
+ },
837
+ {
838
+ "type": "object",
839
+ "properties": {
840
+ "type": {
841
+ "type": "string",
842
+ "const": "calc_number_multiply"
843
+ },
844
+ "nodes": {
845
+ "type": "array",
846
+ "items": {
847
+ "$ref": "#/definitions/__schema0"
848
+ }
849
+ }
850
+ },
851
+ "required": [
852
+ "type",
853
+ "nodes"
854
+ ],
855
+ "additionalProperties": false,
856
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by multiplying the first node value with all subsequent node values in sequence (first * second * third * ...)."
857
+ },
858
+ {
859
+ "type": "object",
860
+ "properties": {
861
+ "type": {
862
+ "type": "string",
863
+ "const": "calc_number_subtract"
864
+ },
865
+ "nodes": {
866
+ "type": "array",
867
+ "items": {
868
+ "$ref": "#/definitions/__schema0"
869
+ }
870
+ }
871
+ },
872
+ "required": [
873
+ "type",
874
+ "nodes"
875
+ ],
876
+ "additionalProperties": false,
877
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by subtracting the second node value from the first node value in sequence, then continuing with each subsequent node (first - second - third - ...)."
878
+ },
879
+ {
880
+ "type": "object",
881
+ "properties": {
882
+ "type": {
883
+ "type": "string",
884
+ "const": "calc_number_divide"
885
+ },
886
+ "nodes": {
887
+ "type": "array",
888
+ "items": {
889
+ "$ref": "#/definitions/__schema0"
890
+ }
891
+ }
892
+ },
893
+ "required": [
894
+ "type",
895
+ "nodes"
896
+ ],
897
+ "additionalProperties": false,
898
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by dividing the first node value by the second node value in sequence, then continuing with each subsequent node ((first / second) / third / ...). Throws exception if any divisor is zero."
899
+ },
900
+ {
901
+ "type": "object",
902
+ "properties": {
903
+ "type": {
904
+ "type": "string",
905
+ "const": "calc_number_mod"
906
+ },
907
+ "nodes": {
908
+ "type": "array",
909
+ "items": {
910
+ "$ref": "#/definitions/__schema0"
911
+ }
912
+ }
913
+ },
914
+ "required": [
915
+ "type",
916
+ "nodes"
917
+ ],
918
+ "additionalProperties": false,
919
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by taking the remainder of dividing the first node value by the second node value in sequence, then continuing with each subsequent node ((first % second) % third % ...). Throws exception if any divisor is zero."
920
+ },
921
+ {
922
+ "type": "object",
923
+ "properties": {
924
+ "type": {
925
+ "type": "string",
926
+ "const": "calc_string_length"
927
+ },
928
+ "node": {
929
+ "$ref": "#/definitions/__schema0"
930
+ }
931
+ },
932
+ "required": [
933
+ "type",
934
+ "node"
935
+ ],
936
+ "additionalProperties": false,
937
+ "description": "Returns U64. Computed by getting the length (number of UTF-8 bytes) of the child node value."
938
+ },
939
+ {
940
+ "type": "object",
941
+ "properties": {
942
+ "type": {
943
+ "type": "string",
944
+ "const": "calc_string_nocase_contains"
945
+ },
946
+ "nodes": {
947
+ "type": "array",
948
+ "items": {
949
+ "$ref": "#/definitions/__schema0"
950
+ }
951
+ }
952
+ },
953
+ "required": [
954
+ "type",
955
+ "nodes"
956
+ ],
957
+ "additionalProperties": false,
958
+ "description": "Returns Bool. Requires 2-8 string nodes. The first node is the haystack, all subsequent nodes are needles. Returns true if all needles are substrings of the haystack, otherwise false. Case-insensitive."
959
+ },
960
+ {
961
+ "type": "object",
962
+ "properties": {
963
+ "type": {
964
+ "type": "string",
965
+ "const": "calc_string_nocase_equal"
966
+ },
967
+ "nodes": {
968
+ "type": "array",
969
+ "items": {
970
+ "$ref": "#/definitions/__schema0"
971
+ }
972
+ }
973
+ },
974
+ "required": [
975
+ "type",
976
+ "nodes"
977
+ ],
978
+ "additionalProperties": false,
979
+ "description": "Returns Bool. Requires 2-8 string nodes. Computed by comparing the first node with all subsequent nodes as strings, ignoring case. Returns true if all are equal, otherwise false."
980
+ },
981
+ {
982
+ "type": "object",
983
+ "properties": {
984
+ "type": {
985
+ "type": "string",
986
+ "const": "calc_string_contains"
987
+ },
988
+ "nodes": {
989
+ "type": "array",
990
+ "items": {
991
+ "$ref": "#/definitions/__schema0"
992
+ }
993
+ }
994
+ },
995
+ "required": [
996
+ "type",
997
+ "nodes"
998
+ ],
999
+ "additionalProperties": false,
1000
+ "description": "Returns Bool. Requires 2-8 string nodes. The first node is the haystack, all subsequent nodes are needles. Returns true if all needles are substrings of the haystack, otherwise false. Case-sensitive."
1001
+ },
1002
+ {
1003
+ "type": "object",
1004
+ "properties": {
1005
+ "type": {
1006
+ "type": "string",
1007
+ "const": "calc_string_indexof"
1008
+ },
1009
+ "nodeLeft": {
1010
+ "$ref": "#/definitions/__schema0"
1011
+ },
1012
+ "nodeRight": {
1013
+ "$ref": "#/definitions/__schema0"
1014
+ },
1015
+ "order": {
1016
+ "type": "string",
1017
+ "enum": [
1018
+ "forward",
1019
+ "backward"
1020
+ ],
1021
+ "description": "'forward' searches from start to end, 'backward' searches from end to start."
1022
+ }
1023
+ },
1024
+ "required": [
1025
+ "type",
1026
+ "nodeLeft",
1027
+ "nodeRight",
1028
+ "order"
1029
+ ],
1030
+ "additionalProperties": false,
1031
+ "description": "Returns U64. Computed by searching for the second node (needle) in the first node (haystack). Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
1032
+ },
1033
+ {
1034
+ "type": "object",
1035
+ "properties": {
1036
+ "type": {
1037
+ "type": "string",
1038
+ "const": "calc_string_nocase_indexof"
1039
+ },
1040
+ "nodeLeft": {
1041
+ "$ref": "#/definitions/__schema0"
1042
+ },
1043
+ "nodeRight": {
1044
+ "$ref": "#/definitions/__schema0"
1045
+ },
1046
+ "order": {
1047
+ "type": "string",
1048
+ "enum": [
1049
+ "forward",
1050
+ "backward"
1051
+ ],
1052
+ "description": "'forward' searches from start to end, 'backward' searches from end to start."
1053
+ }
1054
+ },
1055
+ "required": [
1056
+ "type",
1057
+ "nodeLeft",
1058
+ "nodeRight",
1059
+ "order"
1060
+ ],
1061
+ "additionalProperties": false,
1062
+ "description": "Returns U64. Computed by searching for the second node (needle) in the first node (haystack), ignoring case. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
1063
+ },
1064
+ {
1065
+ "type": "object",
1066
+ "properties": {
1067
+ "type": {
1068
+ "type": "string",
1069
+ "const": "convert_number_address"
1070
+ },
1071
+ "node": {
1072
+ "$ref": "#/definitions/__schema0"
1073
+ }
1074
+ },
1075
+ "required": [
1076
+ "type",
1077
+ "node"
1078
+ ],
1079
+ "additionalProperties": false,
1080
+ "description": "Returns Address. Computed by converting the child node value from number type to Address type."
1081
+ },
1082
+ {
1083
+ "type": "object",
1084
+ "properties": {
1085
+ "type": {
1086
+ "type": "string",
1087
+ "const": "convert_address_number"
1088
+ },
1089
+ "node": {
1090
+ "$ref": "#/definitions/__schema0"
1091
+ }
1092
+ },
1093
+ "required": [
1094
+ "type",
1095
+ "node"
1096
+ ],
1097
+ "additionalProperties": false,
1098
+ "description": "Returns U256. Computed by converting the child node value from Address type to number type."
1099
+ },
1100
+ {
1101
+ "type": "object",
1102
+ "properties": {
1103
+ "type": {
1104
+ "type": "string",
1105
+ "const": "convert_number_string"
1106
+ },
1107
+ "node": {
1108
+ "$ref": "#/definitions/__schema0"
1109
+ }
1110
+ },
1111
+ "required": [
1112
+ "type",
1113
+ "node"
1114
+ ],
1115
+ "additionalProperties": false,
1116
+ "description": "Returns String. Computed by converting the child node value from number type to string type."
1117
+ },
1118
+ {
1119
+ "type": "object",
1120
+ "properties": {
1121
+ "type": {
1122
+ "type": "string",
1123
+ "const": "convert_string_number"
1124
+ },
1125
+ "node": {
1126
+ "$ref": "#/definitions/__schema0"
1127
+ }
1128
+ },
1129
+ "required": [
1130
+ "type",
1131
+ "node"
1132
+ ],
1133
+ "additionalProperties": false,
1134
+ "description": "Returns U256. Computed by parsing the child node value as a number. Throws exception if the string is not a valid number."
1135
+ },
1136
+ {
1137
+ "type": "object",
1138
+ "properties": {
1139
+ "type": {
1140
+ "type": "string",
1141
+ "const": "convert_safe_u8"
1142
+ },
1143
+ "node": {
1144
+ "$ref": "#/definitions/__schema0"
1145
+ }
1146
+ },
1147
+ "required": [
1148
+ "type",
1149
+ "node"
1150
+ ],
1151
+ "additionalProperties": false,
1152
+ "description": "Returns U8. Computed by converting the child node value to U8. Throws exception if value is out of U8 range (0-255)."
1153
+ },
1154
+ {
1155
+ "type": "object",
1156
+ "properties": {
1157
+ "type": {
1158
+ "type": "string",
1159
+ "const": "convert_safe_u16"
1160
+ },
1161
+ "node": {
1162
+ "$ref": "#/definitions/__schema0"
1163
+ }
1164
+ },
1165
+ "required": [
1166
+ "type",
1167
+ "node"
1168
+ ],
1169
+ "additionalProperties": false,
1170
+ "description": "Returns U16. Computed by converting the child node value to U16. Throws exception if value is out of U16 range (0-65535)."
1171
+ },
1172
+ {
1173
+ "type": "object",
1174
+ "properties": {
1175
+ "type": {
1176
+ "type": "string",
1177
+ "const": "convert_safe_u32"
1178
+ },
1179
+ "node": {
1180
+ "$ref": "#/definitions/__schema0"
1181
+ }
1182
+ },
1183
+ "required": [
1184
+ "type",
1185
+ "node"
1186
+ ],
1187
+ "additionalProperties": false,
1188
+ "description": "Returns U32. Computed by converting the child node value to U32. Throws exception if value is out of U32 range."
1189
+ },
1190
+ {
1191
+ "type": "object",
1192
+ "properties": {
1193
+ "type": {
1194
+ "type": "string",
1195
+ "const": "convert_safe_u64"
1196
+ },
1197
+ "node": {
1198
+ "$ref": "#/definitions/__schema0"
1199
+ }
1200
+ },
1201
+ "required": [
1202
+ "type",
1203
+ "node"
1204
+ ],
1205
+ "additionalProperties": false,
1206
+ "description": "Returns U64. Computed by converting the child node value to U64. Throws exception if value is out of U64 range."
1207
+ },
1208
+ {
1209
+ "type": "object",
1210
+ "properties": {
1211
+ "type": {
1212
+ "type": "string",
1213
+ "const": "convert_safe_u128"
1214
+ },
1215
+ "node": {
1216
+ "$ref": "#/definitions/__schema0"
1217
+ }
1218
+ },
1219
+ "required": [
1220
+ "type",
1221
+ "node"
1222
+ ],
1223
+ "additionalProperties": false,
1224
+ "description": "Returns U128. Computed by converting the child node value to U128. Throws exception if value is out of U128 range."
1225
+ },
1226
+ {
1227
+ "type": "object",
1228
+ "properties": {
1229
+ "type": {
1230
+ "type": "string",
1231
+ "const": "convert_safe_u256"
1232
+ },
1233
+ "node": {
1234
+ "$ref": "#/definitions/__schema0"
1235
+ }
1236
+ },
1237
+ "required": [
1238
+ "type",
1239
+ "node"
1240
+ ],
1241
+ "additionalProperties": false,
1242
+ "description": "Returns U256. Computed by converting the child node value to U256."
1243
+ },
1244
+ {
1245
+ "type": "object",
1246
+ "properties": {
1247
+ "type": {
1248
+ "type": "string",
1249
+ "const": "value_type"
1250
+ },
1251
+ "node": {
1252
+ "$ref": "#/definitions/__schema0"
1253
+ }
1254
+ },
1255
+ "required": [
1256
+ "type",
1257
+ "node"
1258
+ ],
1259
+ "additionalProperties": false,
1260
+ "description": "Returns U8. Computed by getting the type identifier (ValueType) of the child node value. Value type: can be specified as a string name (e.g., 'U64', 'Address', 'String') or a number (0-18). Supported types: Bool=0/'Bool', Address=1/'Address', String=2/'String', U8=3/'U8', U16=4/'U16', U32=5/'U32', U64=6/'U64', U128=7/'U128', U256=8/'U256', VecBool=9/'VecBool', VecAddress=10/'VecAddress', VecString=11/'VecString', VecU8=12/'VecU8', VecU16=13/'VecU16', VecU32=14/'VecU32', VecU64=15/'VecU64', VecU128=16/'VecU128', VecU256=17/'VecU256', VecVecU8=18/'VecVecU8'. Note: Value=19 is an INTERNAL type for wowok system use only and should NOT be used directly by users. String format is recommended for better readability."
1261
+ },
1262
+ {
1263
+ "type": "object",
1264
+ "properties": {
1265
+ "type": {
1266
+ "type": "string",
1267
+ "const": "vec_length"
1268
+ },
1269
+ "node": {
1270
+ "$ref": "#/definitions/__schema0"
1271
+ }
1272
+ },
1273
+ "required": [
1274
+ "type",
1275
+ "node"
1276
+ ],
1277
+ "additionalProperties": false,
1278
+ "description": "Returns U64. Computed by getting the length of the vector in the child node value. Child node must be one of Vec types: VecBool=9, VecAddress=10, VecString=11, VecU8=12, VecU16=13, VecU32=14, VecU64=15, VecU128=16, VecU256=17, VecVecU8=18, Value=19."
1279
+ },
1280
+ {
1281
+ "type": "object",
1282
+ "properties": {
1283
+ "type": {
1284
+ "type": "string",
1285
+ "const": "vec_contains_bool"
1286
+ },
1287
+ "nodes": {
1288
+ "type": "array",
1289
+ "items": {
1290
+ "$ref": "#/definitions/__schema0"
1291
+ },
1292
+ "description": "2 to 8 nodes required. First node must be VecBool (ValueType=9) or Value (ValueType=19), remaining nodes must be Bool (ValueType=0) or Value (ValueType=19)."
1293
+ }
1294
+ },
1295
+ "required": [
1296
+ "type",
1297
+ "nodes"
1298
+ ],
1299
+ "additionalProperties": false,
1300
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL boolean values (subsequent nodes)."
1301
+ },
1302
+ {
1303
+ "type": "object",
1304
+ "properties": {
1305
+ "type": {
1306
+ "type": "string",
1307
+ "const": "vec_contains_address"
1308
+ },
1309
+ "nodes": {
1310
+ "type": "array",
1311
+ "items": {
1312
+ "$ref": "#/definitions/__schema0"
1313
+ },
1314
+ "description": "2 to 8 nodes required. First node must be VecAddress (ValueType=10) or Value (ValueType=19), remaining nodes must be Address (ValueType=1) or Value (ValueType=19)."
1315
+ }
1316
+ },
1317
+ "required": [
1318
+ "type",
1319
+ "nodes"
1320
+ ],
1321
+ "additionalProperties": false,
1322
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL address values (subsequent nodes)."
1323
+ },
1324
+ {
1325
+ "type": "object",
1326
+ "properties": {
1327
+ "type": {
1328
+ "type": "string",
1329
+ "const": "vec_contains_string"
1330
+ },
1331
+ "nodes": {
1332
+ "type": "array",
1333
+ "items": {
1334
+ "$ref": "#/definitions/__schema0"
1335
+ },
1336
+ "description": "2 to 8 nodes required. First node must be VecString (ValueType=11) or Value (ValueType=19), remaining nodes must be String (ValueType=2) or Value (ValueType=19)."
1337
+ }
1338
+ },
1339
+ "required": [
1340
+ "type",
1341
+ "nodes"
1342
+ ],
1343
+ "additionalProperties": false,
1344
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL string values (subsequent nodes)."
1345
+ },
1346
+ {
1347
+ "type": "object",
1348
+ "properties": {
1349
+ "type": {
1350
+ "type": "string",
1351
+ "const": "vec_contains_string_nocase"
1352
+ },
1353
+ "nodes": {
1354
+ "type": "array",
1355
+ "items": {
1356
+ "$ref": "#/definitions/__schema0"
1357
+ },
1358
+ "description": "2 to 8 nodes required. First node must be VecString (ValueType=11) or Value (ValueType=19), remaining nodes must be String (ValueType=2) or Value (ValueType=19)."
1359
+ }
1360
+ },
1361
+ "required": [
1362
+ "type",
1363
+ "nodes"
1364
+ ],
1365
+ "additionalProperties": false,
1366
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL string values (subsequent nodes), using case-insensitive comparison."
1367
+ },
1368
+ {
1369
+ "type": "object",
1370
+ "properties": {
1371
+ "type": {
1372
+ "type": "string",
1373
+ "const": "vec_contains_number"
1374
+ },
1375
+ "nodes": {
1376
+ "type": "array",
1377
+ "items": {
1378
+ "$ref": "#/definitions/__schema0"
1379
+ },
1380
+ "description": "2 to 8 nodes required. First node must be VecU8 (12), VecU16 (13), VecU32 (14), VecU64 (15), VecU128 (16), VecU256 (17) or Value (ValueType=19), remaining nodes must be U8 (3), U16 (4), U32 (5), U64 (6), U128 (7), U256 (8) or Value (ValueType=19)."
1381
+ }
1382
+ },
1383
+ "required": [
1384
+ "type",
1385
+ "nodes"
1386
+ ],
1387
+ "additionalProperties": false,
1388
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL number values (subsequent nodes)."
1389
+ },
1390
+ {
1391
+ "type": "object",
1392
+ "properties": {
1393
+ "type": {
1394
+ "type": "string",
1395
+ "const": "vec_indexof_bool"
1396
+ },
1397
+ "nodeLeft": {
1398
+ "$ref": "#/definitions/__schema0"
1399
+ },
1400
+ "nodeRight": {
1401
+ "$ref": "#/definitions/__schema0"
1402
+ },
1403
+ "order": {
1404
+ "type": "string",
1405
+ "enum": [
1406
+ "forward",
1407
+ "backward"
1408
+ ],
1409
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
1410
+ }
1411
+ },
1412
+ "required": [
1413
+ "type",
1414
+ "nodeLeft",
1415
+ "nodeRight",
1416
+ "order"
1417
+ ],
1418
+ "additionalProperties": false,
1419
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node). nodeLeft must be VecBool (ValueType=9) or Value (ValueType=19) type, nodeRight must be Bool (ValueType=0) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
1420
+ },
1421
+ {
1422
+ "type": "object",
1423
+ "properties": {
1424
+ "type": {
1425
+ "type": "string",
1426
+ "const": "vec_indexof_address"
1427
+ },
1428
+ "nodeLeft": {
1429
+ "$ref": "#/definitions/__schema0"
1430
+ },
1431
+ "nodeRight": {
1432
+ "$ref": "#/definitions/__schema0"
1433
+ },
1434
+ "order": {
1435
+ "type": "string",
1436
+ "enum": [
1437
+ "forward",
1438
+ "backward"
1439
+ ],
1440
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
1441
+ }
1442
+ },
1443
+ "required": [
1444
+ "type",
1445
+ "nodeLeft",
1446
+ "nodeRight",
1447
+ "order"
1448
+ ],
1449
+ "additionalProperties": false,
1450
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node). nodeLeft must be VecAddress (ValueType=10) or Value (ValueType=19) type, nodeRight must be Address (ValueType=1) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
1451
+ },
1452
+ {
1453
+ "type": "object",
1454
+ "properties": {
1455
+ "type": {
1456
+ "type": "string",
1457
+ "const": "vec_indexof_string"
1458
+ },
1459
+ "nodeLeft": {
1460
+ "$ref": "#/definitions/__schema0"
1461
+ },
1462
+ "nodeRight": {
1463
+ "$ref": "#/definitions/__schema0"
1464
+ },
1465
+ "order": {
1466
+ "type": "string",
1467
+ "enum": [
1468
+ "forward",
1469
+ "backward"
1470
+ ],
1471
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
1472
+ }
1473
+ },
1474
+ "required": [
1475
+ "type",
1476
+ "nodeLeft",
1477
+ "nodeRight",
1478
+ "order"
1479
+ ],
1480
+ "additionalProperties": false,
1481
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node). nodeLeft must be VecString (ValueType=11) or Value (ValueType=19) type, nodeRight must be String (ValueType=2) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
1482
+ },
1483
+ {
1484
+ "type": "object",
1485
+ "properties": {
1486
+ "type": {
1487
+ "type": "string",
1488
+ "const": "vec_indexof_string_nocase"
1489
+ },
1490
+ "nodeLeft": {
1491
+ "$ref": "#/definitions/__schema0"
1492
+ },
1493
+ "nodeRight": {
1494
+ "$ref": "#/definitions/__schema0"
1495
+ },
1496
+ "order": {
1497
+ "type": "string",
1498
+ "enum": [
1499
+ "forward",
1500
+ "backward"
1501
+ ],
1502
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
1503
+ }
1504
+ },
1505
+ "required": [
1506
+ "type",
1507
+ "nodeLeft",
1508
+ "nodeRight",
1509
+ "order"
1510
+ ],
1511
+ "additionalProperties": false,
1512
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node), using case-insensitive comparison. nodeLeft must be VecString (ValueType=11) or Value (ValueType=19) type, nodeRight must be String (ValueType=2) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
1513
+ },
1514
+ {
1515
+ "type": "object",
1516
+ "properties": {
1517
+ "type": {
1518
+ "type": "string",
1519
+ "const": "vec_indexof_number"
1520
+ },
1521
+ "nodeLeft": {
1522
+ "$ref": "#/definitions/__schema0"
1523
+ },
1524
+ "nodeRight": {
1525
+ "$ref": "#/definitions/__schema0"
1526
+ },
1527
+ "order": {
1528
+ "type": "string",
1529
+ "enum": [
1530
+ "forward",
1531
+ "backward"
1532
+ ],
1533
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
1534
+ }
1535
+ },
1536
+ "required": [
1537
+ "type",
1538
+ "nodeLeft",
1539
+ "nodeRight",
1540
+ "order"
1541
+ ],
1542
+ "additionalProperties": false,
1543
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node). nodeLeft must be VecU8 (12), VecU16 (13), VecU32 (14), VecU64 (15), VecU128 (16), VecU256 (17) or Value (ValueType=19) type, nodeRight must be U8 (3), U16 (4), U32 (5), U64 (6), U128 (7), U256 (8) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
1544
+ },
1545
+ {
1546
+ "type": "object",
1547
+ "properties": {
1548
+ "type": {
1549
+ "type": "string",
1550
+ "const": "context"
1551
+ },
1552
+ "context": {
1553
+ "type": "string",
1554
+ "enum": [
1555
+ "Signer",
1556
+ "Clock",
1557
+ "Guard"
1558
+ ],
1559
+ "description": "System context type: Signer returns transaction sender address (Address), Clock returns current on-chain timestamp (U64), Guard returns current Guard object ID (Address)."
1560
+ }
1561
+ },
1562
+ "required": [
1563
+ "type",
1564
+ "context"
1565
+ ],
1566
+ "additionalProperties": false,
1567
+ "description": "Signer returns transaction sender address (Address), Clock returns current on-chain timestamp (U64), Guard returns current Guard object ID (Address)."
1568
+ },
1569
+ {
1570
+ "type": "object",
1571
+ "properties": {
1572
+ "type": {
1573
+ "type": "string",
1574
+ "const": "query_reward_record_find"
1575
+ },
1576
+ "object": {
1577
+ "type": "object",
1578
+ "properties": {
1579
+ "identifier": {
1580
+ "type": "integer",
1581
+ "minimum": 0,
1582
+ "maximum": 255,
1583
+ "description": "Identifier (0-255) for data lookup in Guard table."
1584
+ }
1585
+ },
1586
+ "required": [
1587
+ "identifier"
1588
+ ],
1589
+ "additionalProperties": false,
1590
+ "description": "Reference to the Reward object in the Guard table (must be Address type)."
1591
+ },
1592
+ "find": {
1593
+ "type": "string",
1594
+ "enum": [
1595
+ "first",
1596
+ "last"
1597
+ ],
1598
+ "description": "'first' finds the earliest matching record, 'last' finds the most recent matching record."
1599
+ },
1600
+ "recipient": {
1601
+ "description": "Optional: Identifier reference to the recipient address in the Guard table (must be Address type). If not specified, uses the transaction signer address.",
1602
+ "type": "object",
1603
+ "properties": {
1604
+ "identifier": {
1605
+ "type": "integer",
1606
+ "minimum": 0,
1607
+ "maximum": 255,
1608
+ "description": "Identifier (0-255) for data lookup in Guard table."
1609
+ }
1610
+ },
1611
+ "required": [
1612
+ "identifier"
1613
+ ],
1614
+ "additionalProperties": false
1615
+ },
1616
+ "where": {
1617
+ "type": "object",
1618
+ "properties": {
1619
+ "guard": {
1620
+ "description": "Optional filter: Guard object address constant to match.",
1621
+ "type": "string"
1622
+ },
1623
+ "timeMin": {
1624
+ "description": "Optional filter: minimum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
1625
+ "type": "string"
1626
+ },
1627
+ "timeMax": {
1628
+ "description": "Optional filter: maximum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
1629
+ "type": "string"
1630
+ },
1631
+ "amountMin": {
1632
+ "description": "Optional filter: minimum reward amount (inclusive). Use string to represent U64 value.",
1633
+ "type": "string"
1634
+ },
1635
+ "amountMax": {
1636
+ "description": "Optional filter: maximum reward amount (inclusive). Use string to represent U64 value.",
1637
+ "type": "string"
1638
+ },
1639
+ "storeFromId": {
1640
+ "description": "Optional filter: identifier reference to the store_from_id address in the Guard table (must be Address type). If not specified, the store_from_id field is ignored during matching. The server resolves this identifier to the actual address from the Guard table constants.",
1641
+ "type": "object",
1642
+ "properties": {
1643
+ "identifier": {
1644
+ "type": "integer",
1645
+ "minimum": 0,
1646
+ "maximum": 255,
1647
+ "description": "Identifier (0-255) for data lookup in Guard table."
1648
+ }
1649
+ },
1650
+ "required": [
1651
+ "identifier"
1652
+ ],
1653
+ "additionalProperties": false
1654
+ }
1655
+ },
1656
+ "additionalProperties": false,
1657
+ "description": "Filter conditions for the reward record query."
1658
+ }
1659
+ },
1660
+ "required": [
1661
+ "type",
1662
+ "object",
1663
+ "find",
1664
+ "where"
1665
+ ],
1666
+ "additionalProperties": false,
1667
+ "description": "Returns U64. Finds the index of the first or last reward record matching the specified recipient and filter conditions. Returns the record index (U64) if found. Throws error if no matching record is found (Guard validation fails). If recipient is not specified, uses the transaction signer address."
1668
+ },
1669
+ {
1670
+ "type": "object",
1671
+ "properties": {
1672
+ "type": {
1673
+ "type": "string",
1674
+ "const": "query_reward_record_count"
1675
+ },
1676
+ "object": {
1677
+ "type": "object",
1678
+ "properties": {
1679
+ "identifier": {
1680
+ "type": "integer",
1681
+ "minimum": 0,
1682
+ "maximum": 255,
1683
+ "description": "Identifier (0-255) for data lookup in Guard table."
1684
+ }
1685
+ },
1686
+ "required": [
1687
+ "identifier"
1688
+ ],
1689
+ "additionalProperties": false,
1690
+ "description": "Reference to the Reward object in the Guard table (must be Address type)."
1691
+ },
1692
+ "recipient": {
1693
+ "description": "Optional: Identifier reference to the recipient address in the Guard table (must be Address type). If not specified, uses the transaction signer address.",
1694
+ "type": "object",
1695
+ "properties": {
1696
+ "identifier": {
1697
+ "type": "integer",
1698
+ "minimum": 0,
1699
+ "maximum": 255,
1700
+ "description": "Identifier (0-255) for data lookup in Guard table."
1701
+ }
1702
+ },
1703
+ "required": [
1704
+ "identifier"
1705
+ ],
1706
+ "additionalProperties": false
1707
+ },
1708
+ "where": {
1709
+ "type": "object",
1710
+ "properties": {
1711
+ "guard": {
1712
+ "description": "Optional filter: Guard object address constant to match.",
1713
+ "type": "string"
1714
+ },
1715
+ "timeMin": {
1716
+ "description": "Optional filter: minimum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
1717
+ "type": "string"
1718
+ },
1719
+ "timeMax": {
1720
+ "description": "Optional filter: maximum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
1721
+ "type": "string"
1722
+ },
1723
+ "amountMin": {
1724
+ "description": "Optional filter: minimum reward amount (inclusive). Use string to represent U64 value.",
1725
+ "type": "string"
1726
+ },
1727
+ "amountMax": {
1728
+ "description": "Optional filter: maximum reward amount (inclusive). Use string to represent U64 value.",
1729
+ "type": "string"
1730
+ },
1731
+ "storeFromId": {
1732
+ "description": "Optional filter: identifier reference to the store_from_id address in the Guard table (must be Address type). If not specified, the store_from_id field is ignored during matching. The server resolves this identifier to the actual address from the Guard table constants.",
1733
+ "type": "object",
1734
+ "properties": {
1735
+ "identifier": {
1736
+ "type": "integer",
1737
+ "minimum": 0,
1738
+ "maximum": 255,
1739
+ "description": "Identifier (0-255) for data lookup in Guard table."
1740
+ }
1741
+ },
1742
+ "required": [
1743
+ "identifier"
1744
+ ],
1745
+ "additionalProperties": false
1746
+ }
1747
+ },
1748
+ "additionalProperties": false,
1749
+ "description": "Filter conditions for the reward record count query."
1750
+ }
1751
+ },
1752
+ "required": [
1753
+ "type",
1754
+ "object",
1755
+ "where"
1756
+ ],
1757
+ "additionalProperties": false,
1758
+ "description": "Returns U64. Counts the number of reward records matching the specified recipient and filter conditions. If recipient is not specified, uses the transaction signer address."
1759
+ },
1760
+ {
1761
+ "type": "object",
1762
+ "properties": {
1763
+ "type": {
1764
+ "type": "string",
1765
+ "const": "query_reward_record_exists"
1766
+ },
1767
+ "object": {
1768
+ "type": "object",
1769
+ "properties": {
1770
+ "identifier": {
1771
+ "type": "integer",
1772
+ "minimum": 0,
1773
+ "maximum": 255,
1774
+ "description": "Identifier (0-255) for data lookup in Guard table."
1775
+ }
1776
+ },
1777
+ "required": [
1778
+ "identifier"
1779
+ ],
1780
+ "additionalProperties": false,
1781
+ "description": "Reference to the Reward object in the Guard table (must be Address type)."
1782
+ },
1783
+ "recipient": {
1784
+ "description": "Optional: Identifier reference to the recipient address in the Guard table (must be Address type). If not specified, uses the transaction signer address.",
1785
+ "type": "object",
1786
+ "properties": {
1787
+ "identifier": {
1788
+ "type": "integer",
1789
+ "minimum": 0,
1790
+ "maximum": 255,
1791
+ "description": "Identifier (0-255) for data lookup in Guard table."
1792
+ }
1793
+ },
1794
+ "required": [
1795
+ "identifier"
1796
+ ],
1797
+ "additionalProperties": false
1798
+ },
1799
+ "where": {
1800
+ "type": "object",
1801
+ "properties": {
1802
+ "guard": {
1803
+ "description": "Optional filter: Guard object address constant to match.",
1804
+ "type": "string"
1805
+ },
1806
+ "timeMin": {
1807
+ "description": "Optional filter: minimum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
1808
+ "type": "string"
1809
+ },
1810
+ "timeMax": {
1811
+ "description": "Optional filter: maximum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
1812
+ "type": "string"
1813
+ },
1814
+ "amountMin": {
1815
+ "description": "Optional filter: minimum reward amount (inclusive). Use string to represent U64 value.",
1816
+ "type": "string"
1817
+ },
1818
+ "amountMax": {
1819
+ "description": "Optional filter: maximum reward amount (inclusive). Use string to represent U64 value.",
1820
+ "type": "string"
1821
+ },
1822
+ "storeFromId": {
1823
+ "description": "Optional filter: identifier reference to the store_from_id address in the Guard table (must be Address type). If not specified, the store_from_id field is ignored during matching. The server resolves this identifier to the actual address from the Guard table constants.",
1824
+ "type": "object",
1825
+ "properties": {
1826
+ "identifier": {
1827
+ "type": "integer",
1828
+ "minimum": 0,
1829
+ "maximum": 255,
1830
+ "description": "Identifier (0-255) for data lookup in Guard table."
1831
+ }
1832
+ },
1833
+ "required": [
1834
+ "identifier"
1835
+ ],
1836
+ "additionalProperties": false
1837
+ }
1838
+ },
1839
+ "additionalProperties": false,
1840
+ "description": "Filter conditions for the reward record existence query."
1841
+ }
1842
+ },
1843
+ "required": [
1844
+ "type",
1845
+ "object",
1846
+ "where"
1847
+ ],
1848
+ "additionalProperties": false,
1849
+ "description": "Returns Bool. Returns true if at least one reward record exists matching the specified recipient and filter conditions, otherwise false. If recipient is not specified, uses the transaction signer address."
1850
+ },
1851
+ {
1852
+ "type": "object",
1853
+ "properties": {
1854
+ "type": {
1855
+ "type": "string",
1856
+ "const": "query_progress_history_find"
1857
+ },
1858
+ "object": {
1859
+ "type": "object",
1860
+ "properties": {
1861
+ "identifier": {
1862
+ "type": "integer",
1863
+ "minimum": 0,
1864
+ "maximum": 255,
1865
+ "description": "Identifier (0-255) for data lookup in Guard table."
1866
+ }
1867
+ },
1868
+ "required": [
1869
+ "identifier"
1870
+ ],
1871
+ "additionalProperties": false,
1872
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
1873
+ },
1874
+ "where": {
1875
+ "type": "object",
1876
+ "properties": {
1877
+ "node": {
1878
+ "description": "Optional filter: node name string to match.",
1879
+ "type": "string"
1880
+ },
1881
+ "nextNode": {
1882
+ "description": "Optional filter: next node name string to match.",
1883
+ "type": "string"
1884
+ },
1885
+ "timeMin": {
1886
+ "description": "Optional filter: minimum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
1887
+ "type": "string"
1888
+ },
1889
+ "timeMax": {
1890
+ "description": "Optional filter: maximum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
1891
+ "type": "string"
1892
+ },
1893
+ "indexMin": {
1894
+ "description": "Optional filter: minimum history index (inclusive) to search within. Use string to represent U64 value.",
1895
+ "type": "string"
1896
+ },
1897
+ "indexMax": {
1898
+ "description": "Optional filter: maximum history index (inclusive) to search within. Use string to represent U64 value.",
1899
+ "type": "string"
1900
+ }
1901
+ },
1902
+ "additionalProperties": false,
1903
+ "description": "Filter conditions for the progress history query."
1904
+ },
1905
+ "find": {
1906
+ "type": "string",
1907
+ "enum": [
1908
+ "first",
1909
+ "last"
1910
+ ],
1911
+ "description": "'first' finds the earliest matching history entry, 'last' finds the most recent matching history entry."
1912
+ }
1913
+ },
1914
+ "required": [
1915
+ "type",
1916
+ "object",
1917
+ "where",
1918
+ "find"
1919
+ ],
1920
+ "additionalProperties": false,
1921
+ "description": "Returns U64. Finds the index of the first or last history entry matching the filter conditions. Returns the history index (U64) if found. Throws error if no matching entry is found (Guard validation fails)."
1922
+ },
1923
+ {
1924
+ "type": "object",
1925
+ "properties": {
1926
+ "type": {
1927
+ "type": "string",
1928
+ "const": "query_progress_history_session_find"
1929
+ },
1930
+ "object": {
1931
+ "type": "object",
1932
+ "properties": {
1933
+ "identifier": {
1934
+ "type": "integer",
1935
+ "minimum": 0,
1936
+ "maximum": 255,
1937
+ "description": "Identifier (0-255) for data lookup in Guard table."
1938
+ }
1939
+ },
1940
+ "required": [
1941
+ "identifier"
1942
+ ],
1943
+ "additionalProperties": false,
1944
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
1945
+ },
1946
+ "historyIdx": {
1947
+ "description": "GuardNode that returns the history index (U64 type) to search within. Typically an 'identifier' node referencing a U64 value from the Guard table.",
1948
+ "allOf": [
1949
+ {
1950
+ "$ref": "#/definitions/__schema1"
1951
+ }
1952
+ ],
1953
+ "$ref": "#/definitions/__schema0"
1954
+ },
1955
+ "where": {
1956
+ "type": "object",
1957
+ "properties": {
1958
+ "nextNode": {
1959
+ "description": "Optional filter: next node name string to match.",
1960
+ "type": "string"
1961
+ }
1962
+ },
1963
+ "additionalProperties": false,
1964
+ "description": "Filter conditions for the progress history session query."
1965
+ },
1966
+ "find": {
1967
+ "type": "string",
1968
+ "enum": [
1969
+ "first",
1970
+ "last"
1971
+ ],
1972
+ "description": "'first' finds the earliest matching session, 'last' finds the most recent matching session."
1973
+ }
1974
+ },
1975
+ "required": [
1976
+ "type",
1977
+ "object",
1978
+ "historyIdx",
1979
+ "where",
1980
+ "find"
1981
+ ],
1982
+ "additionalProperties": false,
1983
+ "description": "Returns U64. Finds the index of the first or last session within the specified history entry matching the filter conditions. Returns the session index (U64) if found. Throws error if no matching session is found (Guard validation fails)."
1984
+ },
1985
+ {
1986
+ "type": "object",
1987
+ "properties": {
1988
+ "type": {
1989
+ "type": "string",
1990
+ "const": "query_progress_history_session_forward_find"
1991
+ },
1992
+ "object": {
1993
+ "type": "object",
1994
+ "properties": {
1995
+ "identifier": {
1996
+ "type": "integer",
1997
+ "minimum": 0,
1998
+ "maximum": 255,
1999
+ "description": "Identifier (0-255) for data lookup in Guard table."
2000
+ }
2001
+ },
2002
+ "required": [
2003
+ "identifier"
2004
+ ],
2005
+ "additionalProperties": false,
2006
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
2007
+ },
2008
+ "historyIdx": {
2009
+ "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
2010
+ "allOf": [
2011
+ {
2012
+ "$ref": "#/definitions/__schema1"
2013
+ }
2014
+ ],
2015
+ "$ref": "#/definitions/__schema0"
2016
+ },
2017
+ "sessionIdx": {
2018
+ "description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
2019
+ "allOf": [
2020
+ {
2021
+ "$ref": "#/definitions/__schema1"
2022
+ }
2023
+ ],
2024
+ "$ref": "#/definitions/__schema0"
2025
+ },
2026
+ "where": {
2027
+ "type": "object",
2028
+ "properties": {
2029
+ "who": {
2030
+ "description": "Optional filter: operator address string to match.",
2031
+ "type": "string"
2032
+ },
2033
+ "operation": {
2034
+ "description": "Optional filter: operation name string to match.",
2035
+ "type": "string"
2036
+ },
2037
+ "accomplished": {
2038
+ "description": "Optional filter: whether the forward operation was accomplished.",
2039
+ "type": "boolean"
2040
+ },
2041
+ "timeMin": {
2042
+ "description": "Optional filter: minimum timestamp (inclusive) for forward operation time. Use string to represent U64 value.",
2043
+ "type": "string"
2044
+ },
2045
+ "timeMax": {
2046
+ "description": "Optional filter: maximum timestamp (inclusive) for forward operation time. Use string to represent U64 value.",
2047
+ "type": "string"
2048
+ }
2049
+ },
2050
+ "additionalProperties": false,
2051
+ "description": "Filter conditions for the progress history session forward query."
2052
+ },
2053
+ "find": {
2054
+ "type": "string",
2055
+ "enum": [
2056
+ "first",
2057
+ "last"
2058
+ ],
2059
+ "description": "'first' finds the earliest matching forward operation, 'last' finds the most recent matching forward operation."
2060
+ }
2061
+ },
2062
+ "required": [
2063
+ "type",
2064
+ "object",
2065
+ "historyIdx",
2066
+ "sessionIdx",
2067
+ "where",
2068
+ "find"
2069
+ ],
2070
+ "additionalProperties": false,
2071
+ "description": "Returns U64. Finds the index of the first or last forward operation within the specified history session matching the filter conditions. Returns the forward index (U64) if found. Throws error if no matching forward operation is found (Guard validation fails)."
2072
+ },
2073
+ {
2074
+ "type": "object",
2075
+ "properties": {
2076
+ "type": {
2077
+ "type": "string",
2078
+ "const": "query_progress_history_session_count"
2079
+ },
2080
+ "object": {
2081
+ "type": "object",
2082
+ "properties": {
2083
+ "identifier": {
2084
+ "type": "integer",
2085
+ "minimum": 0,
2086
+ "maximum": 255,
2087
+ "description": "Identifier (0-255) for data lookup in Guard table."
2088
+ }
2089
+ },
2090
+ "required": [
2091
+ "identifier"
2092
+ ],
2093
+ "additionalProperties": false,
2094
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
2095
+ },
2096
+ "historyIdx": {
2097
+ "description": "GuardNode that returns the history index (U64 type) to count sessions for. Typically an 'identifier' node referencing a U64 value from the Guard table.",
2098
+ "allOf": [
2099
+ {
2100
+ "$ref": "#/definitions/__schema1"
2101
+ }
2102
+ ],
2103
+ "$ref": "#/definitions/__schema0"
2104
+ }
2105
+ },
2106
+ "required": [
2107
+ "type",
2108
+ "object",
2109
+ "historyIdx"
2110
+ ],
2111
+ "additionalProperties": false,
2112
+ "description": "Returns U64. Counts the number of sessions within the specified history entry."
2113
+ },
2114
+ {
2115
+ "type": "object",
2116
+ "properties": {
2117
+ "type": {
2118
+ "type": "string",
2119
+ "const": "query_progress_history_session_forward_count"
2120
+ },
2121
+ "object": {
2122
+ "type": "object",
2123
+ "properties": {
2124
+ "identifier": {
2125
+ "type": "integer",
2126
+ "minimum": 0,
2127
+ "maximum": 255,
2128
+ "description": "Identifier (0-255) for data lookup in Guard table."
2129
+ }
2130
+ },
2131
+ "required": [
2132
+ "identifier"
2133
+ ],
2134
+ "additionalProperties": false,
2135
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
2136
+ },
2137
+ "historyIdx": {
2138
+ "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
2139
+ "allOf": [
2140
+ {
2141
+ "$ref": "#/definitions/__schema1"
2142
+ }
2143
+ ],
2144
+ "$ref": "#/definitions/__schema0"
2145
+ },
2146
+ "sessionIdx": {
2147
+ "description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
2148
+ "allOf": [
2149
+ {
2150
+ "$ref": "#/definitions/__schema1"
2151
+ }
2152
+ ],
2153
+ "$ref": "#/definitions/__schema0"
2154
+ }
2155
+ },
2156
+ "required": [
2157
+ "type",
2158
+ "object",
2159
+ "historyIdx",
2160
+ "sessionIdx"
2161
+ ],
2162
+ "additionalProperties": false,
2163
+ "description": "Returns U64. Counts the number of forward operations within the specified history session."
2164
+ },
2165
+ {
2166
+ "type": "object",
2167
+ "properties": {
2168
+ "type": {
2169
+ "type": "string",
2170
+ "const": "query_progress_history_session_forward_retained_submission_count"
2171
+ },
2172
+ "object": {
2173
+ "type": "object",
2174
+ "properties": {
2175
+ "identifier": {
2176
+ "type": "integer",
2177
+ "minimum": 0,
2178
+ "maximum": 255,
2179
+ "description": "Identifier (0-255) for data lookup in Guard table."
2180
+ }
2181
+ },
2182
+ "required": [
2183
+ "identifier"
2184
+ ],
2185
+ "additionalProperties": false,
2186
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
2187
+ },
2188
+ "historyIdx": {
2189
+ "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
2190
+ "allOf": [
2191
+ {
2192
+ "$ref": "#/definitions/__schema1"
2193
+ }
2194
+ ],
2195
+ "$ref": "#/definitions/__schema0"
2196
+ },
2197
+ "sessionIdx": {
2198
+ "description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
2199
+ "allOf": [
2200
+ {
2201
+ "$ref": "#/definitions/__schema1"
2202
+ }
2203
+ ],
2204
+ "$ref": "#/definitions/__schema0"
2205
+ },
2206
+ "forwardIdx": {
2207
+ "description": "GuardNode that returns the forward operation index (U64 type) within the session. Typically an 'identifier' node referencing a U64 value from the Guard table.",
2208
+ "allOf": [
2209
+ {
2210
+ "$ref": "#/definitions/__schema1"
2211
+ }
2212
+ ],
2213
+ "$ref": "#/definitions/__schema0"
2214
+ }
2215
+ },
2216
+ "required": [
2217
+ "type",
2218
+ "object",
2219
+ "historyIdx",
2220
+ "sessionIdx",
2221
+ "forwardIdx"
2222
+ ],
2223
+ "additionalProperties": false,
2224
+ "description": "Returns U64. Counts the number of retained submissions within the specified forward operation."
2225
+ }
2226
+ ],
2227
+ "$ref": "#/definitions/__schema0"
2228
+ },
2229
+ {
2230
+ "type": "object",
2231
+ "properties": {
2232
+ "type": {
2233
+ "type": "string",
2234
+ "const": "file"
2235
+ },
2236
+ "file_path": {
2237
+ "type": "string",
2238
+ "description": "Path to JSON or Markdown file containing Guard definition. File can define: namedNew, description, table, root, rely."
2239
+ },
2240
+ "format": {
2241
+ "default": "json",
2242
+ "description": "File format: 'json' or 'markdown'. Default is 'json'.",
2243
+ "type": "string",
2244
+ "enum": [
2245
+ "json",
2246
+ "markdown"
2247
+ ]
2248
+ }
2249
+ },
2250
+ "required": [
2251
+ "type",
2252
+ "file_path",
2253
+ "format"
2254
+ ],
2255
+ "additionalProperties": false
2256
+ }
2257
+ ],
2258
+ "description": "Root definition: either a direct GuardNode (must be a logical operation returning Bool) or a file reference (type='file'). When type='file', the file can define all Guard fields (namedNew, description, table, root, rely), and schema fields override file content."
2259
+ },
2260
+ "rely": {
2261
+ "description": "All Guard objects that the new Guard object depends on. If logic_or is true, the execution result of the new Guard object is the logical OR of the execution results of all dependent Guard objects; otherwise, it is logical AND. When using root.type='file', this field OVERRIDES rely in the file.",
2262
+ "type": "object",
2263
+ "properties": {
2264
+ "guards": {
2265
+ "type": "array",
2266
+ "items": {
2267
+ "type": "string",
2268
+ "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)."
2269
+ },
2270
+ "description": "List of dependent Guard object IDs or names."
2271
+ },
2272
+ "logic_or": {
2273
+ "description": "Whether to use logical OR operator.",
2274
+ "type": "boolean"
2275
+ }
2276
+ },
2277
+ "required": [
2278
+ "guards"
2279
+ ],
2280
+ "additionalProperties": false
2281
+ },
2282
+ "binding_hint": {
2283
+ "description": "Phase 5 Guard capability hint. Provides semantic context (action + host_object + binding_field + optional rule/failure_conditions) for puzzle derivation. When provided, the response will include complete guard_advice (puzzle_status, matched_scene, suggested_patterns, confirmation_text, pending_questions). When absent, puzzle_status intent/binding dimensions are marked incomplete.",
2284
+ "type": "object",
2285
+ "properties": {
2286
+ "action": {
2287
+ "type": "string",
2288
+ "enum": [
2289
+ "buy",
2290
+ "forward",
2291
+ "allocate",
2292
+ "claim_reward",
2293
+ "vote",
2294
+ "dispute",
2295
+ "write_repository",
2296
+ "submit_progress",
2297
+ "gen_passport",
2298
+ "custom"
2299
+ ],
2300
+ "description": "Protected action type. Example: 'buy' for Service buy_guard, 'forward' for Machine Forward.guard."
2301
+ },
2302
+ "host_object": {
2303
+ "type": "string",
2304
+ "enum": [
2305
+ "Service",
2306
+ "Machine",
2307
+ "Arbitration",
2308
+ "Reward",
2309
+ "Repository",
2310
+ "Progress",
2311
+ "Demand",
2312
+ "Standalone"
2313
+ ],
2314
+ "description": "Host object type. Example: 'Service', 'Machine'."
2315
+ },
2316
+ "binding_field": {
2317
+ "type": "string",
2318
+ "enum": [
2319
+ "buy_guard",
2320
+ "order_allocators",
2321
+ "Forward.guard",
2322
+ "submission",
2323
+ "guard",
2324
+ "write_guard",
2325
+ "usage_guard",
2326
+ "voting_guard",
2327
+ "ServiceGuard",
2328
+ "none"
2329
+ ],
2330
+ "description": "Binding field. Example: 'buy_guard', 'Forward.guard'."
2331
+ },
2332
+ "rule_sentence": {
2333
+ "description": "One-sentence description of the validation rule (human-readable). Example: 'Only the author can purchase this service'.",
2334
+ "type": "string"
2335
+ },
2336
+ "failure_conditions": {
2337
+ "description": "List of conditions under which the Guard should FAIL. Example: ['Signer is not in allowlist','Order is already completed'].",
2338
+ "type": "array",
2339
+ "items": {
2340
+ "type": "string"
2341
+ }
2342
+ },
2343
+ "circular_reference": {
2344
+ "description": "Whether the Guard references the Host Object itself (circular reference pattern). true=Guard queries the Host Object it binds to.",
2345
+ "type": "boolean"
2346
+ }
2347
+ },
2348
+ "required": [
2349
+ "action",
2350
+ "host_object",
2351
+ "binding_field"
2352
+ ],
2353
+ "additionalProperties": false
2354
+ }
2355
+ },
2356
+ "required": [
2357
+ "root"
2358
+ ],
2359
+ "additionalProperties": false,
2360
+ "description": "On-chain Guard creation. IMPORTANT: All defined data (include all submitted data) must be defined in the 'table' field. USAGE: Set 'namedNew' field with {name, tags?, onChain?} to name the new Guard (you may also use 'object' as an alias for 'namedNew' — the MCP preprocess will convert it automatically). The Guard is immutable once created. Define the validation logic in 'root' field. When root.type='file', the file can contain all Guard fields, and any fields defined in the schema will OVERRIDE the file content."
2361
+ },
2362
+ "env": {
2363
+ "type": "object",
2364
+ "properties": {
2365
+ "account": {
2366
+ "default": "",
2367
+ "type": "string",
2368
+ "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)."
2369
+ },
2370
+ "permission_guard": {
2371
+ "description": "List of permission guard IDs. Used to extend additional operation permissions (requires verification and configuration in the Permission object).",
2372
+ "type": "array",
2373
+ "items": {
2374
+ "type": "string"
2375
+ }
2376
+ },
2377
+ "no_cache": {
2378
+ "description": "Whether to disable caching.",
2379
+ "type": "boolean"
2380
+ },
2381
+ "network": {
2382
+ "type": "string",
2383
+ "enum": [
2384
+ "localnet",
2385
+ "testnet",
2386
+ "mainnet"
2387
+ ],
2388
+ "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
2389
+ },
2390
+ "referrer": {
2391
+ "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded.",
2392
+ "type": "string"
2393
+ },
2394
+ "confirmed": {
2395
+ "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.",
2396
+ "type": "boolean"
2397
+ },
2398
+ "user_intent_phrases": {
2399
+ "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.",
2400
+ "type": "array",
2401
+ "items": {
2402
+ "type": "string"
2403
+ }
2404
+ },
2405
+ "project": {
2406
+ "description": "Project prefix to assign this object to (e.g. 'myshop'). When set: 1) the object is tagged with 'project:<prefix>' on-chain automatically via ProjectService, 2) the newly created object is auto-associated to the SQLite project for local management, evaluation, and graph tracking. The project MUST exist (create via project_operation action='create_project' first). Use project_operation to manage projects.",
2407
+ "type": "string"
2408
+ },
2409
+ "client_schema_version": {
2410
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched.",
2411
+ "type": "string"
2412
+ },
2413
+ "schema_strict_mode": {
2414
+ "default": false,
2415
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode).",
2416
+ "type": "boolean"
2417
+ },
2418
+ "dry_run": {
2419
+ "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 an operation will succeed before committing. Essential for the 5-step loop's Plan step. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
2420
+ "type": "boolean"
2421
+ }
2422
+ },
2423
+ "required": [
2424
+ "account",
2425
+ "schema_strict_mode"
2426
+ ],
2427
+ "additionalProperties": false,
2428
+ "description": "IMPORTANT: Execution environment includes: account for signing operations, network selection ([object Object]), additional Guard permissions, and more. Used to specify context information during the call. If account is not specified, the default account (\"\") will be used."
2429
+ }
2430
+ },
2431
+ "required": [
2432
+ "operation_type",
2433
+ "data"
2434
+ ],
2435
+ "additionalProperties": false,
2436
+ "definitions": {
2437
+ "__schema0": {
2438
+ "description": "Guard node: represents an operation instruction in Guard. Each node returns a value of a specific type, computed from its child nodes or context.",
2439
+ "allOf": [
2440
+ {
2441
+ "$ref": "#/definitions/__schema1"
2442
+ }
2443
+ ]
2444
+ },
2445
+ "__schema1": {
2446
+ "oneOf": [
2447
+ {
2448
+ "type": "object",
2449
+ "properties": {
2450
+ "type": {
2451
+ "type": "string",
2452
+ "const": "identifier"
2453
+ },
2454
+ "identifier": {
2455
+ "type": "integer",
2456
+ "minimum": 0,
2457
+ "maximum": 255,
2458
+ "description": "Identifier (0-255) for data lookup in Guard table."
2459
+ }
2460
+ },
2461
+ "required": [
2462
+ "type",
2463
+ "identifier"
2464
+ ],
2465
+ "additionalProperties": false,
2466
+ "description": "Returns the constant value stored at the specified identifier in the Guard table."
2467
+ },
2468
+ {
2469
+ "type": "object",
2470
+ "properties": {
2471
+ "type": {
2472
+ "type": "string",
2473
+ "const": "query"
2474
+ },
2475
+ "query": {
2476
+ "anyOf": [
2477
+ {
2478
+ "type": "integer",
2479
+ "minimum": -9007199254740991,
2480
+ "maximum": 9007199254740991
2481
+ },
2482
+ {
2483
+ "type": "string"
2484
+ }
2485
+ ],
2486
+ "description": "ID or name of the wowok object data query instruction. Can be a numeric ID (e.g., 1001) or a name string (e.g., 'permission.description'). Name matching is case-insensitive."
2487
+ },
2488
+ "object": {
2489
+ "type": "object",
2490
+ "properties": {
2491
+ "identifier": {
2492
+ "type": "integer",
2493
+ "minimum": 0,
2494
+ "maximum": 255,
2495
+ "description": "Identifier (0-255) for data lookup in Guard table."
2496
+ },
2497
+ "convert_witness": {
2498
+ "anyOf": [
2499
+ {
2500
+ "type": "integer",
2501
+ "minimum": -9007199254740991,
2502
+ "maximum": 9007199254740991
2503
+ },
2504
+ {
2505
+ "type": "string"
2506
+ }
2507
+ ],
2508
+ "description": "When specified, the query retrieves data from the associated (witness) object instead of the queried object itself. This enables cross-object queries within Guard validation logic. Can be a numeric ID (100-108) or a string name (case-insensitive, with or without the 'Type' prefix). String format is recommended for readability.\n\nAvailable WitnessTypes:\n- OrderProgress / TypeOrderProgress (100): Query an Order's associated Progress object. Use case: Check if order has reached a specific workflow node (e.g., 'complete') before allowing reward claims.\n- OrderMachine / TypeOrderMachine (101): Query an Order's associated Machine (workflow definition). Use case: Verify the workflow structure or check node configurations.\n- OrderService / TypeOrderService (102): Query an Order's parent Service object. Use case: Validate the service offering details or check service-level configurations.\n- ProgressMachine / TypeProgressMachine (103): Query a Progress's associated Machine. Use case: Access workflow definition from a Progress context.\n- ArbOrder / TypeArbOrder (104): Query an Arb's associated Order. Use case: In arbitration voting guards, verify order details like payment amount or service ID.\n- ArbArbitration / TypeArbArbitration (105): Query an Arb's parent Arbitration service. Use case: Access arbitration configuration or fee settings from within an Arb case.\n- ArbProgress / TypeArbProgress (106): Query an Arb's associated Progress. Use case: Check order workflow state during arbitration validation.\n- ArbMachine / TypeArbMachine (107): Query an Arb's associated Machine. Use case: Access workflow definition for dispute context analysis.\n- ArbService / TypeArbService (108): Query an Arb's associated Service. Use case: Verify service terms or compensation fund status during arbitration.\n\nExample: To validate that an order has reached the 'complete' node, query the Order with convert_witness='OrderProgress' and check the Progress's current_node field."
2509
+ }
2510
+ },
2511
+ "required": [
2512
+ "identifier"
2513
+ ],
2514
+ "additionalProperties": false,
2515
+ "description": "The object to query from the Guard table."
2516
+ },
2517
+ "parameters": {
2518
+ "description": "Parameters required by the query. Optional — defaults to empty array []. Many queries (e.g. progress.current, order.service) take no parameters; for those, this field can be omitted.",
2519
+ "type": "array",
2520
+ "items": {
2521
+ "$ref": "#/definitions/__schema0"
2522
+ }
2523
+ }
2524
+ },
2525
+ "required": [
2526
+ "type",
2527
+ "query",
2528
+ "object"
2529
+ ],
2530
+ "additionalProperties": false,
2531
+ "description": "Returns the result of executing a data query instruction on the specified object. The return type depends on the query being executed. SPECIAL NOTE for EntityLinker/EntityRegistrar queries: Use system addresses in the Guard table -0x0000000000000000000000000000000000000000000000000000000000000aaa for EntityLinker queries, 0x0000000000000000000000000000000000000000000000000000000000000aab for EntityRegistrar queries."
2532
+ },
2533
+ {
2534
+ "type": "object",
2535
+ "properties": {
2536
+ "type": {
2537
+ "type": "string",
2538
+ "const": "logic_as_u256_greater_or_equal"
2539
+ },
2540
+ "nodes": {
2541
+ "type": "array",
2542
+ "items": {
2543
+ "$ref": "#/definitions/__schema0"
2544
+ }
2545
+ }
2546
+ },
2547
+ "required": [
2548
+ "type",
2549
+ "nodes"
2550
+ ],
2551
+ "additionalProperties": false,
2552
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first >= all others, otherwise false."
2553
+ },
2554
+ {
2555
+ "type": "object",
2556
+ "properties": {
2557
+ "type": {
2558
+ "type": "string",
2559
+ "const": "logic_as_u256_lesser_or_equal"
2560
+ },
2561
+ "nodes": {
2562
+ "type": "array",
2563
+ "items": {
2564
+ "$ref": "#/definitions/__schema0"
2565
+ }
2566
+ }
2567
+ },
2568
+ "required": [
2569
+ "type",
2570
+ "nodes"
2571
+ ],
2572
+ "additionalProperties": false,
2573
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first <= all others, otherwise false."
2574
+ },
2575
+ {
2576
+ "type": "object",
2577
+ "properties": {
2578
+ "type": {
2579
+ "type": "string",
2580
+ "const": "logic_as_u256_greater"
2581
+ },
2582
+ "nodes": {
2583
+ "type": "array",
2584
+ "items": {
2585
+ "$ref": "#/definitions/__schema0"
2586
+ }
2587
+ }
2588
+ },
2589
+ "required": [
2590
+ "type",
2591
+ "nodes"
2592
+ ],
2593
+ "additionalProperties": false,
2594
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first > all others, otherwise false."
2595
+ },
2596
+ {
2597
+ "type": "object",
2598
+ "properties": {
2599
+ "type": {
2600
+ "type": "string",
2601
+ "const": "logic_as_u256_lesser"
2602
+ },
2603
+ "nodes": {
2604
+ "type": "array",
2605
+ "items": {
2606
+ "$ref": "#/definitions/__schema0"
2607
+ }
2608
+ }
2609
+ },
2610
+ "required": [
2611
+ "type",
2612
+ "nodes"
2613
+ ],
2614
+ "additionalProperties": false,
2615
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first < all others, otherwise false."
2616
+ },
2617
+ {
2618
+ "type": "object",
2619
+ "properties": {
2620
+ "type": {
2621
+ "type": "string",
2622
+ "const": "logic_as_u256_equal"
2623
+ },
2624
+ "nodes": {
2625
+ "type": "array",
2626
+ "items": {
2627
+ "$ref": "#/definitions/__schema0"
2628
+ }
2629
+ }
2630
+ },
2631
+ "required": [
2632
+ "type",
2633
+ "nodes"
2634
+ ],
2635
+ "additionalProperties": false,
2636
+ "description": "Returns Bool. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by comparing the first node value with all subsequent node values. Returns true if first equals all others, otherwise false."
2637
+ },
2638
+ {
2639
+ "type": "object",
2640
+ "properties": {
2641
+ "type": {
2642
+ "type": "string",
2643
+ "const": "logic_equal"
2644
+ },
2645
+ "nodes": {
2646
+ "type": "array",
2647
+ "items": {
2648
+ "$ref": "#/definitions/__schema0"
2649
+ }
2650
+ }
2651
+ },
2652
+ "required": [
2653
+ "type",
2654
+ "nodes"
2655
+ ],
2656
+ "additionalProperties": false,
2657
+ "description": "Returns Bool. Requires 2-8 nodes of any type. Computed by comparing the first node with all subsequent nodes in both type and value. Returns true if type and value match for all, otherwise false."
2658
+ },
2659
+ {
2660
+ "type": "object",
2661
+ "properties": {
2662
+ "type": {
2663
+ "type": "string",
2664
+ "const": "logic_not"
2665
+ },
2666
+ "node": {
2667
+ "$ref": "#/definitions/__schema0"
2668
+ }
2669
+ },
2670
+ "required": [
2671
+ "type",
2672
+ "node"
2673
+ ],
2674
+ "additionalProperties": false,
2675
+ "description": "Returns Bool. Computed by inverting the boolean value of the child node (true -> false, false -> true)."
2676
+ },
2677
+ {
2678
+ "type": "object",
2679
+ "properties": {
2680
+ "type": {
2681
+ "type": "string",
2682
+ "const": "logic_and"
2683
+ },
2684
+ "nodes": {
2685
+ "minItems": 2,
2686
+ "maxItems": 8,
2687
+ "type": "array",
2688
+ "items": {
2689
+ "$ref": "#/definitions/__schema0"
2690
+ }
2691
+ }
2692
+ },
2693
+ "required": [
2694
+ "type",
2695
+ "nodes"
2696
+ ],
2697
+ "additionalProperties": false,
2698
+ "description": "Returns Bool. Requires 2-8 boolean nodes. Computed by performing logical AND on all child node values. Returns true if ALL are true, otherwise false."
2699
+ },
2700
+ {
2701
+ "type": "object",
2702
+ "properties": {
2703
+ "type": {
2704
+ "type": "string",
2705
+ "const": "logic_or"
2706
+ },
2707
+ "nodes": {
2708
+ "minItems": 2,
2709
+ "maxItems": 8,
2710
+ "type": "array",
2711
+ "items": {
2712
+ "$ref": "#/definitions/__schema0"
2713
+ }
2714
+ }
2715
+ },
2716
+ "required": [
2717
+ "type",
2718
+ "nodes"
2719
+ ],
2720
+ "additionalProperties": false,
2721
+ "description": "Returns Bool. Requires 2-8 boolean nodes. Computed by performing logical OR on all child node values. Returns true if ANY is true, otherwise false."
2722
+ },
2723
+ {
2724
+ "type": "object",
2725
+ "properties": {
2726
+ "type": {
2727
+ "type": "string",
2728
+ "const": "logic_string_contains"
2729
+ },
2730
+ "nodes": {
2731
+ "type": "array",
2732
+ "items": {
2733
+ "$ref": "#/definitions/__schema0"
2734
+ }
2735
+ }
2736
+ },
2737
+ "required": [
2738
+ "type",
2739
+ "nodes"
2740
+ ],
2741
+ "additionalProperties": false,
2742
+ "description": "Returns Bool. Requires 2-8 string nodes. The first node is the haystack, all subsequent nodes are needles. Returns true if all needles are substrings of the haystack, otherwise false. Case-sensitive."
2743
+ },
2744
+ {
2745
+ "type": "object",
2746
+ "properties": {
2747
+ "type": {
2748
+ "type": "string",
2749
+ "const": "logic_string_nocase_contains"
2750
+ },
2751
+ "nodes": {
2752
+ "type": "array",
2753
+ "items": {
2754
+ "$ref": "#/definitions/__schema0"
2755
+ }
2756
+ }
2757
+ },
2758
+ "required": [
2759
+ "type",
2760
+ "nodes"
2761
+ ],
2762
+ "additionalProperties": false,
2763
+ "description": "Returns Bool. Requires 2-8 string nodes. The first node is the haystack, all subsequent nodes are needles. Returns true if all needles are substrings of the haystack, otherwise false. Case-insensitive."
2764
+ },
2765
+ {
2766
+ "type": "object",
2767
+ "properties": {
2768
+ "type": {
2769
+ "type": "string",
2770
+ "const": "logic_string_nocase_equal"
2771
+ },
2772
+ "nodes": {
2773
+ "type": "array",
2774
+ "items": {
2775
+ "$ref": "#/definitions/__schema0"
2776
+ }
2777
+ }
2778
+ },
2779
+ "required": [
2780
+ "type",
2781
+ "nodes"
2782
+ ],
2783
+ "additionalProperties": false,
2784
+ "description": "Returns Bool. Requires 2-8 string nodes. Computed by comparing the first node with all subsequent nodes as strings, ignoring case. Returns true if all are equal, otherwise false."
2785
+ },
2786
+ {
2787
+ "type": "object",
2788
+ "properties": {
2789
+ "type": {
2790
+ "type": "string",
2791
+ "const": "calc_number_add"
2792
+ },
2793
+ "nodes": {
2794
+ "type": "array",
2795
+ "items": {
2796
+ "$ref": "#/definitions/__schema0"
2797
+ }
2798
+ }
2799
+ },
2800
+ "required": [
2801
+ "type",
2802
+ "nodes"
2803
+ ],
2804
+ "additionalProperties": false,
2805
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by adding the first node value with all subsequent node values in sequence (first + second + third + ...)."
2806
+ },
2807
+ {
2808
+ "type": "object",
2809
+ "properties": {
2810
+ "type": {
2811
+ "type": "string",
2812
+ "const": "calc_number_multiply"
2813
+ },
2814
+ "nodes": {
2815
+ "type": "array",
2816
+ "items": {
2817
+ "$ref": "#/definitions/__schema0"
2818
+ }
2819
+ }
2820
+ },
2821
+ "required": [
2822
+ "type",
2823
+ "nodes"
2824
+ ],
2825
+ "additionalProperties": false,
2826
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by multiplying the first node value with all subsequent node values in sequence (first * second * third * ...)."
2827
+ },
2828
+ {
2829
+ "type": "object",
2830
+ "properties": {
2831
+ "type": {
2832
+ "type": "string",
2833
+ "const": "calc_number_subtract"
2834
+ },
2835
+ "nodes": {
2836
+ "type": "array",
2837
+ "items": {
2838
+ "$ref": "#/definitions/__schema0"
2839
+ }
2840
+ }
2841
+ },
2842
+ "required": [
2843
+ "type",
2844
+ "nodes"
2845
+ ],
2846
+ "additionalProperties": false,
2847
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by subtracting the second node value from the first node value in sequence, then continuing with each subsequent node (first - second - third - ...)."
2848
+ },
2849
+ {
2850
+ "type": "object",
2851
+ "properties": {
2852
+ "type": {
2853
+ "type": "string",
2854
+ "const": "calc_number_divide"
2855
+ },
2856
+ "nodes": {
2857
+ "type": "array",
2858
+ "items": {
2859
+ "$ref": "#/definitions/__schema0"
2860
+ }
2861
+ }
2862
+ },
2863
+ "required": [
2864
+ "type",
2865
+ "nodes"
2866
+ ],
2867
+ "additionalProperties": false,
2868
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by dividing the first node value by the second node value in sequence, then continuing with each subsequent node ((first / second) / third / ...). Throws exception if any divisor is zero."
2869
+ },
2870
+ {
2871
+ "type": "object",
2872
+ "properties": {
2873
+ "type": {
2874
+ "type": "string",
2875
+ "const": "calc_number_mod"
2876
+ },
2877
+ "nodes": {
2878
+ "type": "array",
2879
+ "items": {
2880
+ "$ref": "#/definitions/__schema0"
2881
+ }
2882
+ }
2883
+ },
2884
+ "required": [
2885
+ "type",
2886
+ "nodes"
2887
+ ],
2888
+ "additionalProperties": false,
2889
+ "description": "Returns U256. Requires 2-8 numeric nodes (U8, U16, U32, U64, U128, U256). Computed by taking the remainder of dividing the first node value by the second node value in sequence, then continuing with each subsequent node ((first % second) % third % ...). Throws exception if any divisor is zero."
2890
+ },
2891
+ {
2892
+ "type": "object",
2893
+ "properties": {
2894
+ "type": {
2895
+ "type": "string",
2896
+ "const": "calc_string_length"
2897
+ },
2898
+ "node": {
2899
+ "$ref": "#/definitions/__schema0"
2900
+ }
2901
+ },
2902
+ "required": [
2903
+ "type",
2904
+ "node"
2905
+ ],
2906
+ "additionalProperties": false,
2907
+ "description": "Returns U64. Computed by getting the length (number of UTF-8 bytes) of the child node value."
2908
+ },
2909
+ {
2910
+ "type": "object",
2911
+ "properties": {
2912
+ "type": {
2913
+ "type": "string",
2914
+ "const": "calc_string_nocase_contains"
2915
+ },
2916
+ "nodes": {
2917
+ "type": "array",
2918
+ "items": {
2919
+ "$ref": "#/definitions/__schema0"
2920
+ }
2921
+ }
2922
+ },
2923
+ "required": [
2924
+ "type",
2925
+ "nodes"
2926
+ ],
2927
+ "additionalProperties": false,
2928
+ "description": "Returns Bool. Requires 2-8 string nodes. The first node is the haystack, all subsequent nodes are needles. Returns true if all needles are substrings of the haystack, otherwise false. Case-insensitive."
2929
+ },
2930
+ {
2931
+ "type": "object",
2932
+ "properties": {
2933
+ "type": {
2934
+ "type": "string",
2935
+ "const": "calc_string_nocase_equal"
2936
+ },
2937
+ "nodes": {
2938
+ "type": "array",
2939
+ "items": {
2940
+ "$ref": "#/definitions/__schema0"
2941
+ }
2942
+ }
2943
+ },
2944
+ "required": [
2945
+ "type",
2946
+ "nodes"
2947
+ ],
2948
+ "additionalProperties": false,
2949
+ "description": "Returns Bool. Requires 2-8 string nodes. Computed by comparing the first node with all subsequent nodes as strings, ignoring case. Returns true if all are equal, otherwise false."
2950
+ },
2951
+ {
2952
+ "type": "object",
2953
+ "properties": {
2954
+ "type": {
2955
+ "type": "string",
2956
+ "const": "calc_string_contains"
2957
+ },
2958
+ "nodes": {
2959
+ "type": "array",
2960
+ "items": {
2961
+ "$ref": "#/definitions/__schema0"
2962
+ }
2963
+ }
2964
+ },
2965
+ "required": [
2966
+ "type",
2967
+ "nodes"
2968
+ ],
2969
+ "additionalProperties": false,
2970
+ "description": "Returns Bool. Requires 2-8 string nodes. The first node is the haystack, all subsequent nodes are needles. Returns true if all needles are substrings of the haystack, otherwise false. Case-sensitive."
2971
+ },
2972
+ {
2973
+ "type": "object",
2974
+ "properties": {
2975
+ "type": {
2976
+ "type": "string",
2977
+ "const": "calc_string_indexof"
2978
+ },
2979
+ "nodeLeft": {
2980
+ "$ref": "#/definitions/__schema0"
2981
+ },
2982
+ "nodeRight": {
2983
+ "$ref": "#/definitions/__schema0"
2984
+ },
2985
+ "order": {
2986
+ "type": "string",
2987
+ "enum": [
2988
+ "forward",
2989
+ "backward"
2990
+ ],
2991
+ "description": "'forward' searches from start to end, 'backward' searches from end to start."
2992
+ }
2993
+ },
2994
+ "required": [
2995
+ "type",
2996
+ "nodeLeft",
2997
+ "nodeRight",
2998
+ "order"
2999
+ ],
3000
+ "additionalProperties": false,
3001
+ "description": "Returns U64. Computed by searching for the second node (needle) in the first node (haystack). Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
3002
+ },
3003
+ {
3004
+ "type": "object",
3005
+ "properties": {
3006
+ "type": {
3007
+ "type": "string",
3008
+ "const": "calc_string_nocase_indexof"
3009
+ },
3010
+ "nodeLeft": {
3011
+ "$ref": "#/definitions/__schema0"
3012
+ },
3013
+ "nodeRight": {
3014
+ "$ref": "#/definitions/__schema0"
3015
+ },
3016
+ "order": {
3017
+ "type": "string",
3018
+ "enum": [
3019
+ "forward",
3020
+ "backward"
3021
+ ],
3022
+ "description": "'forward' searches from start to end, 'backward' searches from end to start."
3023
+ }
3024
+ },
3025
+ "required": [
3026
+ "type",
3027
+ "nodeLeft",
3028
+ "nodeRight",
3029
+ "order"
3030
+ ],
3031
+ "additionalProperties": false,
3032
+ "description": "Returns U64. Computed by searching for the second node (needle) in the first node (haystack), ignoring case. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
3033
+ },
3034
+ {
3035
+ "type": "object",
3036
+ "properties": {
3037
+ "type": {
3038
+ "type": "string",
3039
+ "const": "convert_number_address"
3040
+ },
3041
+ "node": {
3042
+ "$ref": "#/definitions/__schema0"
3043
+ }
3044
+ },
3045
+ "required": [
3046
+ "type",
3047
+ "node"
3048
+ ],
3049
+ "additionalProperties": false,
3050
+ "description": "Returns Address. Computed by converting the child node value from number type to Address type."
3051
+ },
3052
+ {
3053
+ "type": "object",
3054
+ "properties": {
3055
+ "type": {
3056
+ "type": "string",
3057
+ "const": "convert_address_number"
3058
+ },
3059
+ "node": {
3060
+ "$ref": "#/definitions/__schema0"
3061
+ }
3062
+ },
3063
+ "required": [
3064
+ "type",
3065
+ "node"
3066
+ ],
3067
+ "additionalProperties": false,
3068
+ "description": "Returns U256. Computed by converting the child node value from Address type to number type."
3069
+ },
3070
+ {
3071
+ "type": "object",
3072
+ "properties": {
3073
+ "type": {
3074
+ "type": "string",
3075
+ "const": "convert_number_string"
3076
+ },
3077
+ "node": {
3078
+ "$ref": "#/definitions/__schema0"
3079
+ }
3080
+ },
3081
+ "required": [
3082
+ "type",
3083
+ "node"
3084
+ ],
3085
+ "additionalProperties": false,
3086
+ "description": "Returns String. Computed by converting the child node value from number type to string type."
3087
+ },
3088
+ {
3089
+ "type": "object",
3090
+ "properties": {
3091
+ "type": {
3092
+ "type": "string",
3093
+ "const": "convert_string_number"
3094
+ },
3095
+ "node": {
3096
+ "$ref": "#/definitions/__schema0"
3097
+ }
3098
+ },
3099
+ "required": [
3100
+ "type",
3101
+ "node"
3102
+ ],
3103
+ "additionalProperties": false,
3104
+ "description": "Returns U256. Computed by parsing the child node value as a number. Throws exception if the string is not a valid number."
3105
+ },
3106
+ {
3107
+ "type": "object",
3108
+ "properties": {
3109
+ "type": {
3110
+ "type": "string",
3111
+ "const": "convert_safe_u8"
3112
+ },
3113
+ "node": {
3114
+ "$ref": "#/definitions/__schema0"
3115
+ }
3116
+ },
3117
+ "required": [
3118
+ "type",
3119
+ "node"
3120
+ ],
3121
+ "additionalProperties": false,
3122
+ "description": "Returns U8. Computed by converting the child node value to U8. Throws exception if value is out of U8 range (0-255)."
3123
+ },
3124
+ {
3125
+ "type": "object",
3126
+ "properties": {
3127
+ "type": {
3128
+ "type": "string",
3129
+ "const": "convert_safe_u16"
3130
+ },
3131
+ "node": {
3132
+ "$ref": "#/definitions/__schema0"
3133
+ }
3134
+ },
3135
+ "required": [
3136
+ "type",
3137
+ "node"
3138
+ ],
3139
+ "additionalProperties": false,
3140
+ "description": "Returns U16. Computed by converting the child node value to U16. Throws exception if value is out of U16 range (0-65535)."
3141
+ },
3142
+ {
3143
+ "type": "object",
3144
+ "properties": {
3145
+ "type": {
3146
+ "type": "string",
3147
+ "const": "convert_safe_u32"
3148
+ },
3149
+ "node": {
3150
+ "$ref": "#/definitions/__schema0"
3151
+ }
3152
+ },
3153
+ "required": [
3154
+ "type",
3155
+ "node"
3156
+ ],
3157
+ "additionalProperties": false,
3158
+ "description": "Returns U32. Computed by converting the child node value to U32. Throws exception if value is out of U32 range."
3159
+ },
3160
+ {
3161
+ "type": "object",
3162
+ "properties": {
3163
+ "type": {
3164
+ "type": "string",
3165
+ "const": "convert_safe_u64"
3166
+ },
3167
+ "node": {
3168
+ "$ref": "#/definitions/__schema0"
3169
+ }
3170
+ },
3171
+ "required": [
3172
+ "type",
3173
+ "node"
3174
+ ],
3175
+ "additionalProperties": false,
3176
+ "description": "Returns U64. Computed by converting the child node value to U64. Throws exception if value is out of U64 range."
3177
+ },
3178
+ {
3179
+ "type": "object",
3180
+ "properties": {
3181
+ "type": {
3182
+ "type": "string",
3183
+ "const": "convert_safe_u128"
3184
+ },
3185
+ "node": {
3186
+ "$ref": "#/definitions/__schema0"
3187
+ }
3188
+ },
3189
+ "required": [
3190
+ "type",
3191
+ "node"
3192
+ ],
3193
+ "additionalProperties": false,
3194
+ "description": "Returns U128. Computed by converting the child node value to U128. Throws exception if value is out of U128 range."
3195
+ },
3196
+ {
3197
+ "type": "object",
3198
+ "properties": {
3199
+ "type": {
3200
+ "type": "string",
3201
+ "const": "convert_safe_u256"
3202
+ },
3203
+ "node": {
3204
+ "$ref": "#/definitions/__schema0"
3205
+ }
3206
+ },
3207
+ "required": [
3208
+ "type",
3209
+ "node"
3210
+ ],
3211
+ "additionalProperties": false,
3212
+ "description": "Returns U256. Computed by converting the child node value to U256."
3213
+ },
3214
+ {
3215
+ "type": "object",
3216
+ "properties": {
3217
+ "type": {
3218
+ "type": "string",
3219
+ "const": "value_type"
3220
+ },
3221
+ "node": {
3222
+ "$ref": "#/definitions/__schema0"
3223
+ }
3224
+ },
3225
+ "required": [
3226
+ "type",
3227
+ "node"
3228
+ ],
3229
+ "additionalProperties": false,
3230
+ "description": "Returns U8. Computed by getting the type identifier (ValueType) of the child node value. Value type: can be specified as a string name (e.g., 'U64', 'Address', 'String') or a number (0-18). Supported types: Bool=0/'Bool', Address=1/'Address', String=2/'String', U8=3/'U8', U16=4/'U16', U32=5/'U32', U64=6/'U64', U128=7/'U128', U256=8/'U256', VecBool=9/'VecBool', VecAddress=10/'VecAddress', VecString=11/'VecString', VecU8=12/'VecU8', VecU16=13/'VecU16', VecU32=14/'VecU32', VecU64=15/'VecU64', VecU128=16/'VecU128', VecU256=17/'VecU256', VecVecU8=18/'VecVecU8'. Note: Value=19 is an INTERNAL type for wowok system use only and should NOT be used directly by users. String format is recommended for better readability."
3231
+ },
3232
+ {
3233
+ "type": "object",
3234
+ "properties": {
3235
+ "type": {
3236
+ "type": "string",
3237
+ "const": "vec_length"
3238
+ },
3239
+ "node": {
3240
+ "$ref": "#/definitions/__schema0"
3241
+ }
3242
+ },
3243
+ "required": [
3244
+ "type",
3245
+ "node"
3246
+ ],
3247
+ "additionalProperties": false,
3248
+ "description": "Returns U64. Computed by getting the length of the vector in the child node value. Child node must be one of Vec types: VecBool=9, VecAddress=10, VecString=11, VecU8=12, VecU16=13, VecU32=14, VecU64=15, VecU128=16, VecU256=17, VecVecU8=18, Value=19."
3249
+ },
3250
+ {
3251
+ "type": "object",
3252
+ "properties": {
3253
+ "type": {
3254
+ "type": "string",
3255
+ "const": "vec_contains_bool"
3256
+ },
3257
+ "nodes": {
3258
+ "type": "array",
3259
+ "items": {
3260
+ "$ref": "#/definitions/__schema0"
3261
+ },
3262
+ "description": "2 to 8 nodes required. First node must be VecBool (ValueType=9) or Value (ValueType=19), remaining nodes must be Bool (ValueType=0) or Value (ValueType=19)."
3263
+ }
3264
+ },
3265
+ "required": [
3266
+ "type",
3267
+ "nodes"
3268
+ ],
3269
+ "additionalProperties": false,
3270
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL boolean values (subsequent nodes)."
3271
+ },
3272
+ {
3273
+ "type": "object",
3274
+ "properties": {
3275
+ "type": {
3276
+ "type": "string",
3277
+ "const": "vec_contains_address"
3278
+ },
3279
+ "nodes": {
3280
+ "type": "array",
3281
+ "items": {
3282
+ "$ref": "#/definitions/__schema0"
3283
+ },
3284
+ "description": "2 to 8 nodes required. First node must be VecAddress (ValueType=10) or Value (ValueType=19), remaining nodes must be Address (ValueType=1) or Value (ValueType=19)."
3285
+ }
3286
+ },
3287
+ "required": [
3288
+ "type",
3289
+ "nodes"
3290
+ ],
3291
+ "additionalProperties": false,
3292
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL address values (subsequent nodes)."
3293
+ },
3294
+ {
3295
+ "type": "object",
3296
+ "properties": {
3297
+ "type": {
3298
+ "type": "string",
3299
+ "const": "vec_contains_string"
3300
+ },
3301
+ "nodes": {
3302
+ "type": "array",
3303
+ "items": {
3304
+ "$ref": "#/definitions/__schema0"
3305
+ },
3306
+ "description": "2 to 8 nodes required. First node must be VecString (ValueType=11) or Value (ValueType=19), remaining nodes must be String (ValueType=2) or Value (ValueType=19)."
3307
+ }
3308
+ },
3309
+ "required": [
3310
+ "type",
3311
+ "nodes"
3312
+ ],
3313
+ "additionalProperties": false,
3314
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL string values (subsequent nodes)."
3315
+ },
3316
+ {
3317
+ "type": "object",
3318
+ "properties": {
3319
+ "type": {
3320
+ "type": "string",
3321
+ "const": "vec_contains_string_nocase"
3322
+ },
3323
+ "nodes": {
3324
+ "type": "array",
3325
+ "items": {
3326
+ "$ref": "#/definitions/__schema0"
3327
+ },
3328
+ "description": "2 to 8 nodes required. First node must be VecString (ValueType=11) or Value (ValueType=19), remaining nodes must be String (ValueType=2) or Value (ValueType=19)."
3329
+ }
3330
+ },
3331
+ "required": [
3332
+ "type",
3333
+ "nodes"
3334
+ ],
3335
+ "additionalProperties": false,
3336
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL string values (subsequent nodes), using case-insensitive comparison."
3337
+ },
3338
+ {
3339
+ "type": "object",
3340
+ "properties": {
3341
+ "type": {
3342
+ "type": "string",
3343
+ "const": "vec_contains_number"
3344
+ },
3345
+ "nodes": {
3346
+ "type": "array",
3347
+ "items": {
3348
+ "$ref": "#/definitions/__schema0"
3349
+ },
3350
+ "description": "2 to 8 nodes required. First node must be VecU8 (12), VecU16 (13), VecU32 (14), VecU64 (15), VecU128 (16), VecU256 (17) or Value (ValueType=19), remaining nodes must be U8 (3), U16 (4), U32 (5), U64 (6), U128 (7), U256 (8) or Value (ValueType=19)."
3351
+ }
3352
+ },
3353
+ "required": [
3354
+ "type",
3355
+ "nodes"
3356
+ ],
3357
+ "additionalProperties": false,
3358
+ "description": "Returns Bool. Computed by checking if the vector (first node) contains ALL number values (subsequent nodes)."
3359
+ },
3360
+ {
3361
+ "type": "object",
3362
+ "properties": {
3363
+ "type": {
3364
+ "type": "string",
3365
+ "const": "vec_indexof_bool"
3366
+ },
3367
+ "nodeLeft": {
3368
+ "$ref": "#/definitions/__schema0"
3369
+ },
3370
+ "nodeRight": {
3371
+ "$ref": "#/definitions/__schema0"
3372
+ },
3373
+ "order": {
3374
+ "type": "string",
3375
+ "enum": [
3376
+ "forward",
3377
+ "backward"
3378
+ ],
3379
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
3380
+ }
3381
+ },
3382
+ "required": [
3383
+ "type",
3384
+ "nodeLeft",
3385
+ "nodeRight",
3386
+ "order"
3387
+ ],
3388
+ "additionalProperties": false,
3389
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node). nodeLeft must be VecBool (ValueType=9) or Value (ValueType=19) type, nodeRight must be Bool (ValueType=0) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
3390
+ },
3391
+ {
3392
+ "type": "object",
3393
+ "properties": {
3394
+ "type": {
3395
+ "type": "string",
3396
+ "const": "vec_indexof_address"
3397
+ },
3398
+ "nodeLeft": {
3399
+ "$ref": "#/definitions/__schema0"
3400
+ },
3401
+ "nodeRight": {
3402
+ "$ref": "#/definitions/__schema0"
3403
+ },
3404
+ "order": {
3405
+ "type": "string",
3406
+ "enum": [
3407
+ "forward",
3408
+ "backward"
3409
+ ],
3410
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
3411
+ }
3412
+ },
3413
+ "required": [
3414
+ "type",
3415
+ "nodeLeft",
3416
+ "nodeRight",
3417
+ "order"
3418
+ ],
3419
+ "additionalProperties": false,
3420
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node). nodeLeft must be VecAddress (ValueType=10) or Value (ValueType=19) type, nodeRight must be Address (ValueType=1) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
3421
+ },
3422
+ {
3423
+ "type": "object",
3424
+ "properties": {
3425
+ "type": {
3426
+ "type": "string",
3427
+ "const": "vec_indexof_string"
3428
+ },
3429
+ "nodeLeft": {
3430
+ "$ref": "#/definitions/__schema0"
3431
+ },
3432
+ "nodeRight": {
3433
+ "$ref": "#/definitions/__schema0"
3434
+ },
3435
+ "order": {
3436
+ "type": "string",
3437
+ "enum": [
3438
+ "forward",
3439
+ "backward"
3440
+ ],
3441
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
3442
+ }
3443
+ },
3444
+ "required": [
3445
+ "type",
3446
+ "nodeLeft",
3447
+ "nodeRight",
3448
+ "order"
3449
+ ],
3450
+ "additionalProperties": false,
3451
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node). nodeLeft must be VecString (ValueType=11) or Value (ValueType=19) type, nodeRight must be String (ValueType=2) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
3452
+ },
3453
+ {
3454
+ "type": "object",
3455
+ "properties": {
3456
+ "type": {
3457
+ "type": "string",
3458
+ "const": "vec_indexof_string_nocase"
3459
+ },
3460
+ "nodeLeft": {
3461
+ "$ref": "#/definitions/__schema0"
3462
+ },
3463
+ "nodeRight": {
3464
+ "$ref": "#/definitions/__schema0"
3465
+ },
3466
+ "order": {
3467
+ "type": "string",
3468
+ "enum": [
3469
+ "forward",
3470
+ "backward"
3471
+ ],
3472
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
3473
+ }
3474
+ },
3475
+ "required": [
3476
+ "type",
3477
+ "nodeLeft",
3478
+ "nodeRight",
3479
+ "order"
3480
+ ],
3481
+ "additionalProperties": false,
3482
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node), using case-insensitive comparison. nodeLeft must be VecString (ValueType=11) or Value (ValueType=19) type, nodeRight must be String (ValueType=2) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
3483
+ },
3484
+ {
3485
+ "type": "object",
3486
+ "properties": {
3487
+ "type": {
3488
+ "type": "string",
3489
+ "const": "vec_indexof_number"
3490
+ },
3491
+ "nodeLeft": {
3492
+ "$ref": "#/definitions/__schema0"
3493
+ },
3494
+ "nodeRight": {
3495
+ "$ref": "#/definitions/__schema0"
3496
+ },
3497
+ "order": {
3498
+ "type": "string",
3499
+ "enum": [
3500
+ "forward",
3501
+ "backward"
3502
+ ],
3503
+ "description": "'forward' searches from index 0, 'backward' searches from last index."
3504
+ }
3505
+ },
3506
+ "required": [
3507
+ "type",
3508
+ "nodeLeft",
3509
+ "nodeRight",
3510
+ "order"
3511
+ ],
3512
+ "additionalProperties": false,
3513
+ "description": "Returns U64. Computed by searching for the second node value in the vector (first node). nodeLeft must be VecU8 (12), VecU16 (13), VecU32 (14), VecU64 (15), VecU128 (16), VecU256 (17) or Value (ValueType=19) type, nodeRight must be U8 (3), U16 (4), U32 (5), U64 (6), U128 (7), U256 (8) or Value (ValueType=19) type. Returns index of first occurrence in the specified direction. If not found, returns u64::MAX (18446744073709551615)."
3514
+ },
3515
+ {
3516
+ "type": "object",
3517
+ "properties": {
3518
+ "type": {
3519
+ "type": "string",
3520
+ "const": "context"
3521
+ },
3522
+ "context": {
3523
+ "type": "string",
3524
+ "enum": [
3525
+ "Signer",
3526
+ "Clock",
3527
+ "Guard"
3528
+ ],
3529
+ "description": "System context type: Signer returns transaction sender address (Address), Clock returns current on-chain timestamp (U64), Guard returns current Guard object ID (Address)."
3530
+ }
3531
+ },
3532
+ "required": [
3533
+ "type",
3534
+ "context"
3535
+ ],
3536
+ "additionalProperties": false,
3537
+ "description": "Signer returns transaction sender address (Address), Clock returns current on-chain timestamp (U64), Guard returns current Guard object ID (Address)."
3538
+ },
3539
+ {
3540
+ "type": "object",
3541
+ "properties": {
3542
+ "type": {
3543
+ "type": "string",
3544
+ "const": "query_reward_record_find"
3545
+ },
3546
+ "object": {
3547
+ "type": "object",
3548
+ "properties": {
3549
+ "identifier": {
3550
+ "type": "integer",
3551
+ "minimum": 0,
3552
+ "maximum": 255,
3553
+ "description": "Identifier (0-255) for data lookup in Guard table."
3554
+ }
3555
+ },
3556
+ "required": [
3557
+ "identifier"
3558
+ ],
3559
+ "additionalProperties": false,
3560
+ "description": "Reference to the Reward object in the Guard table (must be Address type)."
3561
+ },
3562
+ "find": {
3563
+ "type": "string",
3564
+ "enum": [
3565
+ "first",
3566
+ "last"
3567
+ ],
3568
+ "description": "'first' finds the earliest matching record, 'last' finds the most recent matching record."
3569
+ },
3570
+ "recipient": {
3571
+ "description": "Optional: Identifier reference to the recipient address in the Guard table (must be Address type). If not specified, uses the transaction signer address.",
3572
+ "type": "object",
3573
+ "properties": {
3574
+ "identifier": {
3575
+ "type": "integer",
3576
+ "minimum": 0,
3577
+ "maximum": 255,
3578
+ "description": "Identifier (0-255) for data lookup in Guard table."
3579
+ }
3580
+ },
3581
+ "required": [
3582
+ "identifier"
3583
+ ],
3584
+ "additionalProperties": false
3585
+ },
3586
+ "where": {
3587
+ "type": "object",
3588
+ "properties": {
3589
+ "guard": {
3590
+ "description": "Optional filter: Guard object address constant to match.",
3591
+ "type": "string"
3592
+ },
3593
+ "timeMin": {
3594
+ "description": "Optional filter: minimum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
3595
+ "type": "string"
3596
+ },
3597
+ "timeMax": {
3598
+ "description": "Optional filter: maximum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
3599
+ "type": "string"
3600
+ },
3601
+ "amountMin": {
3602
+ "description": "Optional filter: minimum reward amount (inclusive). Use string to represent U64 value.",
3603
+ "type": "string"
3604
+ },
3605
+ "amountMax": {
3606
+ "description": "Optional filter: maximum reward amount (inclusive). Use string to represent U64 value.",
3607
+ "type": "string"
3608
+ },
3609
+ "storeFromId": {
3610
+ "description": "Optional filter: identifier reference to the store_from_id address in the Guard table (must be Address type). If not specified, the store_from_id field is ignored during matching. The server resolves this identifier to the actual address from the Guard table constants.",
3611
+ "type": "object",
3612
+ "properties": {
3613
+ "identifier": {
3614
+ "type": "integer",
3615
+ "minimum": 0,
3616
+ "maximum": 255,
3617
+ "description": "Identifier (0-255) for data lookup in Guard table."
3618
+ }
3619
+ },
3620
+ "required": [
3621
+ "identifier"
3622
+ ],
3623
+ "additionalProperties": false
3624
+ }
3625
+ },
3626
+ "additionalProperties": false,
3627
+ "description": "Filter conditions for the reward record query."
3628
+ }
3629
+ },
3630
+ "required": [
3631
+ "type",
3632
+ "object",
3633
+ "find",
3634
+ "where"
3635
+ ],
3636
+ "additionalProperties": false,
3637
+ "description": "Returns U64. Finds the index of the first or last reward record matching the specified recipient and filter conditions. Returns the record index (U64) if found. Throws error if no matching record is found (Guard validation fails). If recipient is not specified, uses the transaction signer address."
3638
+ },
3639
+ {
3640
+ "type": "object",
3641
+ "properties": {
3642
+ "type": {
3643
+ "type": "string",
3644
+ "const": "query_reward_record_count"
3645
+ },
3646
+ "object": {
3647
+ "type": "object",
3648
+ "properties": {
3649
+ "identifier": {
3650
+ "type": "integer",
3651
+ "minimum": 0,
3652
+ "maximum": 255,
3653
+ "description": "Identifier (0-255) for data lookup in Guard table."
3654
+ }
3655
+ },
3656
+ "required": [
3657
+ "identifier"
3658
+ ],
3659
+ "additionalProperties": false,
3660
+ "description": "Reference to the Reward object in the Guard table (must be Address type)."
3661
+ },
3662
+ "recipient": {
3663
+ "description": "Optional: Identifier reference to the recipient address in the Guard table (must be Address type). If not specified, uses the transaction signer address.",
3664
+ "type": "object",
3665
+ "properties": {
3666
+ "identifier": {
3667
+ "type": "integer",
3668
+ "minimum": 0,
3669
+ "maximum": 255,
3670
+ "description": "Identifier (0-255) for data lookup in Guard table."
3671
+ }
3672
+ },
3673
+ "required": [
3674
+ "identifier"
3675
+ ],
3676
+ "additionalProperties": false
3677
+ },
3678
+ "where": {
3679
+ "type": "object",
3680
+ "properties": {
3681
+ "guard": {
3682
+ "description": "Optional filter: Guard object address constant to match.",
3683
+ "type": "string"
3684
+ },
3685
+ "timeMin": {
3686
+ "description": "Optional filter: minimum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
3687
+ "type": "string"
3688
+ },
3689
+ "timeMax": {
3690
+ "description": "Optional filter: maximum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
3691
+ "type": "string"
3692
+ },
3693
+ "amountMin": {
3694
+ "description": "Optional filter: minimum reward amount (inclusive). Use string to represent U64 value.",
3695
+ "type": "string"
3696
+ },
3697
+ "amountMax": {
3698
+ "description": "Optional filter: maximum reward amount (inclusive). Use string to represent U64 value.",
3699
+ "type": "string"
3700
+ },
3701
+ "storeFromId": {
3702
+ "description": "Optional filter: identifier reference to the store_from_id address in the Guard table (must be Address type). If not specified, the store_from_id field is ignored during matching. The server resolves this identifier to the actual address from the Guard table constants.",
3703
+ "type": "object",
3704
+ "properties": {
3705
+ "identifier": {
3706
+ "type": "integer",
3707
+ "minimum": 0,
3708
+ "maximum": 255,
3709
+ "description": "Identifier (0-255) for data lookup in Guard table."
3710
+ }
3711
+ },
3712
+ "required": [
3713
+ "identifier"
3714
+ ],
3715
+ "additionalProperties": false
3716
+ }
3717
+ },
3718
+ "additionalProperties": false,
3719
+ "description": "Filter conditions for the reward record count query."
3720
+ }
3721
+ },
3722
+ "required": [
3723
+ "type",
3724
+ "object",
3725
+ "where"
3726
+ ],
3727
+ "additionalProperties": false,
3728
+ "description": "Returns U64. Counts the number of reward records matching the specified recipient and filter conditions. If recipient is not specified, uses the transaction signer address."
3729
+ },
3730
+ {
3731
+ "type": "object",
3732
+ "properties": {
3733
+ "type": {
3734
+ "type": "string",
3735
+ "const": "query_reward_record_exists"
3736
+ },
3737
+ "object": {
3738
+ "type": "object",
3739
+ "properties": {
3740
+ "identifier": {
3741
+ "type": "integer",
3742
+ "minimum": 0,
3743
+ "maximum": 255,
3744
+ "description": "Identifier (0-255) for data lookup in Guard table."
3745
+ }
3746
+ },
3747
+ "required": [
3748
+ "identifier"
3749
+ ],
3750
+ "additionalProperties": false,
3751
+ "description": "Reference to the Reward object in the Guard table (must be Address type)."
3752
+ },
3753
+ "recipient": {
3754
+ "description": "Optional: Identifier reference to the recipient address in the Guard table (must be Address type). If not specified, uses the transaction signer address.",
3755
+ "type": "object",
3756
+ "properties": {
3757
+ "identifier": {
3758
+ "type": "integer",
3759
+ "minimum": 0,
3760
+ "maximum": 255,
3761
+ "description": "Identifier (0-255) for data lookup in Guard table."
3762
+ }
3763
+ },
3764
+ "required": [
3765
+ "identifier"
3766
+ ],
3767
+ "additionalProperties": false
3768
+ },
3769
+ "where": {
3770
+ "type": "object",
3771
+ "properties": {
3772
+ "guard": {
3773
+ "description": "Optional filter: Guard object address constant to match.",
3774
+ "type": "string"
3775
+ },
3776
+ "timeMin": {
3777
+ "description": "Optional filter: minimum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
3778
+ "type": "string"
3779
+ },
3780
+ "timeMax": {
3781
+ "description": "Optional filter: maximum timestamp (inclusive) for record creation time. Use string to represent U64 value.",
3782
+ "type": "string"
3783
+ },
3784
+ "amountMin": {
3785
+ "description": "Optional filter: minimum reward amount (inclusive). Use string to represent U64 value.",
3786
+ "type": "string"
3787
+ },
3788
+ "amountMax": {
3789
+ "description": "Optional filter: maximum reward amount (inclusive). Use string to represent U64 value.",
3790
+ "type": "string"
3791
+ },
3792
+ "storeFromId": {
3793
+ "description": "Optional filter: identifier reference to the store_from_id address in the Guard table (must be Address type). If not specified, the store_from_id field is ignored during matching. The server resolves this identifier to the actual address from the Guard table constants.",
3794
+ "type": "object",
3795
+ "properties": {
3796
+ "identifier": {
3797
+ "type": "integer",
3798
+ "minimum": 0,
3799
+ "maximum": 255,
3800
+ "description": "Identifier (0-255) for data lookup in Guard table."
3801
+ }
3802
+ },
3803
+ "required": [
3804
+ "identifier"
3805
+ ],
3806
+ "additionalProperties": false
3807
+ }
3808
+ },
3809
+ "additionalProperties": false,
3810
+ "description": "Filter conditions for the reward record existence query."
3811
+ }
3812
+ },
3813
+ "required": [
3814
+ "type",
3815
+ "object",
3816
+ "where"
3817
+ ],
3818
+ "additionalProperties": false,
3819
+ "description": "Returns Bool. Returns true if at least one reward record exists matching the specified recipient and filter conditions, otherwise false. If recipient is not specified, uses the transaction signer address."
3820
+ },
3821
+ {
3822
+ "type": "object",
3823
+ "properties": {
3824
+ "type": {
3825
+ "type": "string",
3826
+ "const": "query_progress_history_find"
3827
+ },
3828
+ "object": {
3829
+ "type": "object",
3830
+ "properties": {
3831
+ "identifier": {
3832
+ "type": "integer",
3833
+ "minimum": 0,
3834
+ "maximum": 255,
3835
+ "description": "Identifier (0-255) for data lookup in Guard table."
3836
+ }
3837
+ },
3838
+ "required": [
3839
+ "identifier"
3840
+ ],
3841
+ "additionalProperties": false,
3842
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
3843
+ },
3844
+ "where": {
3845
+ "type": "object",
3846
+ "properties": {
3847
+ "node": {
3848
+ "description": "Optional filter: node name string to match.",
3849
+ "type": "string"
3850
+ },
3851
+ "nextNode": {
3852
+ "description": "Optional filter: next node name string to match.",
3853
+ "type": "string"
3854
+ },
3855
+ "timeMin": {
3856
+ "description": "Optional filter: minimum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
3857
+ "type": "string"
3858
+ },
3859
+ "timeMax": {
3860
+ "description": "Optional filter: maximum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
3861
+ "type": "string"
3862
+ },
3863
+ "indexMin": {
3864
+ "description": "Optional filter: minimum history index (inclusive) to search within. Use string to represent U64 value.",
3865
+ "type": "string"
3866
+ },
3867
+ "indexMax": {
3868
+ "description": "Optional filter: maximum history index (inclusive) to search within. Use string to represent U64 value.",
3869
+ "type": "string"
3870
+ }
3871
+ },
3872
+ "additionalProperties": false,
3873
+ "description": "Filter conditions for the progress history query."
3874
+ },
3875
+ "find": {
3876
+ "type": "string",
3877
+ "enum": [
3878
+ "first",
3879
+ "last"
3880
+ ],
3881
+ "description": "'first' finds the earliest matching history entry, 'last' finds the most recent matching history entry."
3882
+ }
3883
+ },
3884
+ "required": [
3885
+ "type",
3886
+ "object",
3887
+ "where",
3888
+ "find"
3889
+ ],
3890
+ "additionalProperties": false,
3891
+ "description": "Returns U64. Finds the index of the first or last history entry matching the filter conditions. Returns the history index (U64) if found. Throws error if no matching entry is found (Guard validation fails)."
3892
+ },
3893
+ {
3894
+ "type": "object",
3895
+ "properties": {
3896
+ "type": {
3897
+ "type": "string",
3898
+ "const": "query_progress_history_session_find"
3899
+ },
3900
+ "object": {
3901
+ "type": "object",
3902
+ "properties": {
3903
+ "identifier": {
3904
+ "type": "integer",
3905
+ "minimum": 0,
3906
+ "maximum": 255,
3907
+ "description": "Identifier (0-255) for data lookup in Guard table."
3908
+ }
3909
+ },
3910
+ "required": [
3911
+ "identifier"
3912
+ ],
3913
+ "additionalProperties": false,
3914
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
3915
+ },
3916
+ "historyIdx": {
3917
+ "description": "GuardNode that returns the history index (U64 type) to search within. Typically an 'identifier' node referencing a U64 value from the Guard table.",
3918
+ "allOf": [
3919
+ {
3920
+ "$ref": "#/definitions/__schema1"
3921
+ }
3922
+ ],
3923
+ "$ref": "#/definitions/__schema0"
3924
+ },
3925
+ "where": {
3926
+ "type": "object",
3927
+ "properties": {
3928
+ "nextNode": {
3929
+ "description": "Optional filter: next node name string to match.",
3930
+ "type": "string"
3931
+ }
3932
+ },
3933
+ "additionalProperties": false,
3934
+ "description": "Filter conditions for the progress history session query."
3935
+ },
3936
+ "find": {
3937
+ "type": "string",
3938
+ "enum": [
3939
+ "first",
3940
+ "last"
3941
+ ],
3942
+ "description": "'first' finds the earliest matching session, 'last' finds the most recent matching session."
3943
+ }
3944
+ },
3945
+ "required": [
3946
+ "type",
3947
+ "object",
3948
+ "historyIdx",
3949
+ "where",
3950
+ "find"
3951
+ ],
3952
+ "additionalProperties": false,
3953
+ "description": "Returns U64. Finds the index of the first or last session within the specified history entry matching the filter conditions. Returns the session index (U64) if found. Throws error if no matching session is found (Guard validation fails)."
3954
+ },
3955
+ {
3956
+ "type": "object",
3957
+ "properties": {
3958
+ "type": {
3959
+ "type": "string",
3960
+ "const": "query_progress_history_session_forward_find"
3961
+ },
3962
+ "object": {
3963
+ "type": "object",
3964
+ "properties": {
3965
+ "identifier": {
3966
+ "type": "integer",
3967
+ "minimum": 0,
3968
+ "maximum": 255,
3969
+ "description": "Identifier (0-255) for data lookup in Guard table."
3970
+ }
3971
+ },
3972
+ "required": [
3973
+ "identifier"
3974
+ ],
3975
+ "additionalProperties": false,
3976
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
3977
+ },
3978
+ "historyIdx": {
3979
+ "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
3980
+ "allOf": [
3981
+ {
3982
+ "$ref": "#/definitions/__schema1"
3983
+ }
3984
+ ],
3985
+ "$ref": "#/definitions/__schema0"
3986
+ },
3987
+ "sessionIdx": {
3988
+ "description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
3989
+ "allOf": [
3990
+ {
3991
+ "$ref": "#/definitions/__schema1"
3992
+ }
3993
+ ],
3994
+ "$ref": "#/definitions/__schema0"
3995
+ },
3996
+ "where": {
3997
+ "type": "object",
3998
+ "properties": {
3999
+ "who": {
4000
+ "description": "Optional filter: operator address string to match.",
4001
+ "type": "string"
4002
+ },
4003
+ "operation": {
4004
+ "description": "Optional filter: operation name string to match.",
4005
+ "type": "string"
4006
+ },
4007
+ "accomplished": {
4008
+ "description": "Optional filter: whether the forward operation was accomplished.",
4009
+ "type": "boolean"
4010
+ },
4011
+ "timeMin": {
4012
+ "description": "Optional filter: minimum timestamp (inclusive) for forward operation time. Use string to represent U64 value.",
4013
+ "type": "string"
4014
+ },
4015
+ "timeMax": {
4016
+ "description": "Optional filter: maximum timestamp (inclusive) for forward operation time. Use string to represent U64 value.",
4017
+ "type": "string"
4018
+ }
4019
+ },
4020
+ "additionalProperties": false,
4021
+ "description": "Filter conditions for the progress history session forward query."
4022
+ },
4023
+ "find": {
4024
+ "type": "string",
4025
+ "enum": [
4026
+ "first",
4027
+ "last"
4028
+ ],
4029
+ "description": "'first' finds the earliest matching forward operation, 'last' finds the most recent matching forward operation."
4030
+ }
4031
+ },
4032
+ "required": [
4033
+ "type",
4034
+ "object",
4035
+ "historyIdx",
4036
+ "sessionIdx",
4037
+ "where",
4038
+ "find"
4039
+ ],
4040
+ "additionalProperties": false,
4041
+ "description": "Returns U64. Finds the index of the first or last forward operation within the specified history session matching the filter conditions. Returns the forward index (U64) if found. Throws error if no matching forward operation is found (Guard validation fails)."
4042
+ },
4043
+ {
4044
+ "type": "object",
4045
+ "properties": {
4046
+ "type": {
4047
+ "type": "string",
4048
+ "const": "query_progress_history_session_count"
4049
+ },
4050
+ "object": {
4051
+ "type": "object",
4052
+ "properties": {
4053
+ "identifier": {
4054
+ "type": "integer",
4055
+ "minimum": 0,
4056
+ "maximum": 255,
4057
+ "description": "Identifier (0-255) for data lookup in Guard table."
4058
+ }
4059
+ },
4060
+ "required": [
4061
+ "identifier"
4062
+ ],
4063
+ "additionalProperties": false,
4064
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
4065
+ },
4066
+ "historyIdx": {
4067
+ "description": "GuardNode that returns the history index (U64 type) to count sessions for. Typically an 'identifier' node referencing a U64 value from the Guard table.",
4068
+ "allOf": [
4069
+ {
4070
+ "$ref": "#/definitions/__schema1"
4071
+ }
4072
+ ],
4073
+ "$ref": "#/definitions/__schema0"
4074
+ }
4075
+ },
4076
+ "required": [
4077
+ "type",
4078
+ "object",
4079
+ "historyIdx"
4080
+ ],
4081
+ "additionalProperties": false,
4082
+ "description": "Returns U64. Counts the number of sessions within the specified history entry."
4083
+ },
4084
+ {
4085
+ "type": "object",
4086
+ "properties": {
4087
+ "type": {
4088
+ "type": "string",
4089
+ "const": "query_progress_history_session_forward_count"
4090
+ },
4091
+ "object": {
4092
+ "type": "object",
4093
+ "properties": {
4094
+ "identifier": {
4095
+ "type": "integer",
4096
+ "minimum": 0,
4097
+ "maximum": 255,
4098
+ "description": "Identifier (0-255) for data lookup in Guard table."
4099
+ }
4100
+ },
4101
+ "required": [
4102
+ "identifier"
4103
+ ],
4104
+ "additionalProperties": false,
4105
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
4106
+ },
4107
+ "historyIdx": {
4108
+ "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
4109
+ "allOf": [
4110
+ {
4111
+ "$ref": "#/definitions/__schema1"
4112
+ }
4113
+ ],
4114
+ "$ref": "#/definitions/__schema0"
4115
+ },
4116
+ "sessionIdx": {
4117
+ "description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
4118
+ "allOf": [
4119
+ {
4120
+ "$ref": "#/definitions/__schema1"
4121
+ }
4122
+ ],
4123
+ "$ref": "#/definitions/__schema0"
4124
+ }
4125
+ },
4126
+ "required": [
4127
+ "type",
4128
+ "object",
4129
+ "historyIdx",
4130
+ "sessionIdx"
4131
+ ],
4132
+ "additionalProperties": false,
4133
+ "description": "Returns U64. Counts the number of forward operations within the specified history session."
4134
+ },
4135
+ {
4136
+ "type": "object",
4137
+ "properties": {
4138
+ "type": {
4139
+ "type": "string",
4140
+ "const": "query_progress_history_session_forward_retained_submission_count"
4141
+ },
4142
+ "object": {
4143
+ "type": "object",
4144
+ "properties": {
4145
+ "identifier": {
4146
+ "type": "integer",
4147
+ "minimum": 0,
4148
+ "maximum": 255,
4149
+ "description": "Identifier (0-255) for data lookup in Guard table."
4150
+ }
4151
+ },
4152
+ "required": [
4153
+ "identifier"
4154
+ ],
4155
+ "additionalProperties": false,
4156
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
4157
+ },
4158
+ "historyIdx": {
4159
+ "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
4160
+ "allOf": [
4161
+ {
4162
+ "$ref": "#/definitions/__schema1"
4163
+ }
4164
+ ],
4165
+ "$ref": "#/definitions/__schema0"
4166
+ },
4167
+ "sessionIdx": {
4168
+ "description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
4169
+ "allOf": [
4170
+ {
4171
+ "$ref": "#/definitions/__schema1"
4172
+ }
4173
+ ],
4174
+ "$ref": "#/definitions/__schema0"
4175
+ },
4176
+ "forwardIdx": {
4177
+ "description": "GuardNode that returns the forward operation index (U64 type) within the session. Typically an 'identifier' node referencing a U64 value from the Guard table.",
4178
+ "allOf": [
4179
+ {
4180
+ "$ref": "#/definitions/__schema1"
4181
+ }
4182
+ ],
4183
+ "$ref": "#/definitions/__schema0"
4184
+ }
4185
+ },
4186
+ "required": [
4187
+ "type",
4188
+ "object",
4189
+ "historyIdx",
4190
+ "sessionIdx",
4191
+ "forwardIdx"
4192
+ ],
4193
+ "additionalProperties": false,
4194
+ "description": "Returns U64. Counts the number of retained submissions within the specified forward operation."
4195
+ }
4196
+ ]
726
4197
  }
727
4198
  }
728
4199
  }