@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,30 +2,13 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://wowok.net/schemas/onchain_operations_machine.json",
4
4
  "title": "Machine Operation",
5
- "description": "On-chain machine operation schema",
5
+ "description": "⚙️ Machine Object: Design and deploy automated workflow templates (Machines) that define how services are delivered, etc..",
6
6
  "type": "object",
7
7
  "properties": {
8
8
  "operation_type": {
9
+ "type": "string",
9
10
  "const": "machine"
10
11
  },
11
- "data": {
12
- "$ref": "#/definitions/data",
13
- "$schema": "http://json-schema.org/draft-07/schema#"
14
- },
15
- "env": {
16
- "$ref": "#/definitions/env",
17
- "$schema": "http://json-schema.org/draft-07/schema#"
18
- },
19
- "submission": {
20
- "$ref": "#/definitions/submission",
21
- "$schema": "http://json-schema.org/draft-07/schema#"
22
- }
23
- },
24
- "required": [
25
- "operation_type",
26
- "data"
27
- ],
28
- "definitions": {
29
12
  "data": {
30
13
  "type": "object",
31
14
  "properties": {
@@ -39,48 +22,55 @@
39
22
  "type": "object",
40
23
  "properties": {
41
24
  "name": {
42
- "type": "string",
43
- "description": "The name of the object"
25
+ "description": "The name of the object",
26
+ "type": "string"
44
27
  },
45
28
  "tags": {
29
+ "description": "The tags of the object",
46
30
  "type": "array",
47
31
  "items": {
48
32
  "type": "string"
49
- },
50
- "description": "The tags of the object"
33
+ }
51
34
  },
52
35
  "onChain": {
53
- "type": "boolean",
54
- "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."
36
+ "description": "CRITICAL: Whether to sync the name to the blockchain. DEFAULT (undefined/false): The name is stored LOCALLY ONLY on your device (PRIVATE). If set to true: The name is published ON-CHAIN and becomes PUBLICLY VISIBLE to everyone. Only set to true for displaying the relationships you are willing to make public on the chain.",
37
+ "type": "boolean"
55
38
  },
56
39
  "replaceExistName": {
57
- "type": "boolean",
58
- "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)."
40
+ "description": "FORCE CLAIM: Set to true ONLY when the user explicitly expresses a STRONG INTENTION to forcefully take over an existing name (e.g., 'I must use this name', 'force rename', 'replace the existing one'). WARNING: This will UNBIND the name from its original object and rebind it to the new one, potentially breaking existing references. If not specified or false: the operation will FAIL with an error when the name is already in use (safe default behavior).",
41
+ "type": "boolean"
59
42
  },
60
43
  "permission": {
61
44
  "anyOf": [
62
45
  {
63
- "$ref": "#/definitions/data/properties/object/anyOf/0",
46
+ "type": "string",
64
47
  "description": "String format: Reference an EXISTING object by its name (local mark) or on-chain object ID. Example: 'my-object' or '0x1234...'"
65
48
  },
66
49
  {
67
50
  "type": "object",
68
51
  "properties": {
69
52
  "name": {
70
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name"
53
+ "description": "The name of the object",
54
+ "type": "string"
71
55
  },
72
56
  "tags": {
73
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/tags"
57
+ "description": "The tags of the object",
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string"
61
+ }
74
62
  },
75
63
  "onChain": {
76
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/onChain"
64
+ "description": "CRITICAL: Whether to sync the name to the blockchain. DEFAULT (undefined/false): The name is stored LOCALLY ONLY on your device (PRIVATE). If set to true: The name is published ON-CHAIN and becomes PUBLICLY VISIBLE to everyone. Only set to true for displaying the relationships you are willing to make public on the chain.",
65
+ "type": "boolean"
77
66
  },
78
67
  "replaceExistName": {
79
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/replaceExistName"
68
+ "description": "FORCE CLAIM: Set to true ONLY when the user explicitly expresses a STRONG INTENTION to forcefully take over an existing name (e.g., 'I must use this name', 'force rename', 'replace the existing one'). WARNING: This will UNBIND the name from its original object and rebind it to the new one, potentially breaking existing references. If not specified or false: the operation will FAIL with an error when the name is already in use (safe default behavior).",
69
+ "type": "boolean"
80
70
  },
81
71
  "description": {
82
- "type": "string",
83
- "description": "The description of the object"
72
+ "description": "The description of the object",
73
+ "type": "string"
84
74
  }
85
75
  },
86
76
  "additionalProperties": false,
@@ -97,36 +87,44 @@
97
87
  "description": "Two ways to specify a Permission-managed object: (1) STRING - Reference an EXISTING Permission object by name or ID; (2) OBJECT - CREATE a NEW object with Permission access control, where the Permission can also be either referenced (string) or newly created (object). This is used when you need permission management but don't need to specify a token type."
98
88
  },
99
89
  "progress_new": {
90
+ "description": "Generate new Progress object.",
100
91
  "type": "object",
101
92
  "properties": {
102
93
  "task": {
94
+ "description": "Task bound to the Progress object. It is an object ID or name",
103
95
  "anyOf": [
104
96
  {
105
- "$ref": "#/definitions/data/properties/object/anyOf/0",
97
+ "type": "string",
106
98
  "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)."
107
99
  },
108
100
  {
109
101
  "type": "null"
110
102
  }
111
- ],
112
- "description": "Task bound to the Progress object. It is an object ID or name"
103
+ ]
113
104
  },
114
105
  "repository": {
106
+ "description": "Set repository list for the Progress object. Used for consensus data management.",
115
107
  "anyOf": [
116
108
  {
117
109
  "type": "object",
118
110
  "properties": {
119
111
  "op": {
120
- "type": "string",
121
- "enum": [
122
- "add",
123
- "set"
112
+ "anyOf": [
113
+ {
114
+ "type": "string",
115
+ "const": "add"
116
+ },
117
+ {
118
+ "type": "string",
119
+ "const": "set"
120
+ }
124
121
  ]
125
122
  },
126
123
  "objects": {
127
124
  "type": "array",
128
125
  "items": {
129
- "$ref": "#/definitions/data/properties/progress_new/properties/task/anyOf/0"
126
+ "type": "string",
127
+ "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)."
130
128
  },
131
129
  "description": "List of object IDs or names to add or set"
132
130
  }
@@ -147,7 +145,8 @@
147
145
  "objects": {
148
146
  "type": "array",
149
147
  "items": {
150
- "$ref": "#/definitions/data/properties/progress_new/properties/task/anyOf/0"
148
+ "type": "string",
149
+ "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)."
151
150
  },
152
151
  "description": "List of object IDs or names to remove"
153
152
  }
@@ -171,18 +170,26 @@
171
170
  ],
172
171
  "additionalProperties": false
173
172
  }
174
- ],
175
- "description": "Set repository list for the Progress object. Used for consensus data management."
173
+ ]
176
174
  },
177
175
  "progress_namedOperator": {
176
+ "description": "Add, set, and remove operators for the permission namespace of the Progress object.",
178
177
  "type": "object",
179
178
  "properties": {
180
179
  "op": {
181
- "type": "string",
182
- "enum": [
183
- "add",
184
- "set",
185
- "remove"
180
+ "anyOf": [
181
+ {
182
+ "type": "string",
183
+ "const": "add"
184
+ },
185
+ {
186
+ "type": "string",
187
+ "const": "set"
188
+ },
189
+ {
190
+ "type": "string",
191
+ "const": "remove"
192
+ }
186
193
  ]
187
194
  },
188
195
  "name": {
@@ -198,12 +205,12 @@
198
205
  "type": "object",
199
206
  "properties": {
200
207
  "name_or_address": {
201
- "$ref": "#/definitions/data/properties/progress_new/properties/task/anyOf/0",
208
+ "type": "string",
202
209
  "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)."
203
210
  },
204
211
  "local_mark_first": {
205
- "type": "boolean",
206
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks"
212
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
213
+ "type": "boolean"
207
214
  }
208
215
  },
209
216
  "additionalProperties": false,
@@ -211,8 +218,8 @@
211
218
  }
212
219
  },
213
220
  "check_all_founded": {
214
- "type": "boolean",
215
- "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"
221
+ "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",
222
+ "type": "boolean"
216
223
  }
217
224
  },
218
225
  "required": [
@@ -227,44 +234,116 @@
227
234
  "name",
228
235
  "operators"
229
236
  ],
230
- "additionalProperties": false,
231
- "description": "Add, set, and remove operators for the permission namespace of the Progress object."
237
+ "additionalProperties": false
232
238
  },
233
239
  "namedNew": {
234
240
  "type": "object",
235
241
  "properties": {
236
242
  "name": {
237
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name"
243
+ "description": "The name of the object",
244
+ "type": "string"
238
245
  },
239
246
  "tags": {
240
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/tags"
247
+ "description": "The tags of the object",
248
+ "type": "array",
249
+ "items": {
250
+ "type": "string"
251
+ }
241
252
  },
242
253
  "onChain": {
243
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/onChain"
254
+ "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.",
255
+ "type": "boolean"
244
256
  },
245
257
  "replaceExistName": {
246
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/replaceExistName"
258
+ "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).",
259
+ "type": "boolean"
247
260
  }
248
261
  },
249
262
  "additionalProperties": false,
250
263
  "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."
251
264
  }
252
265
  },
253
- "additionalProperties": false,
254
- "description": "Generate new Progress object."
266
+ "additionalProperties": false
255
267
  },
256
268
  "description": {
257
- "type": "string",
258
- "description": "Description of the object."
269
+ "description": "Description of the object.",
270
+ "type": "string"
259
271
  },
260
272
  "repository": {
261
- "$ref": "#/definitions/data/properties/progress_new/properties/repository",
262
- "description": "Set repository list for the object. Used for consensus data management."
273
+ "description": "Set repository list for the object. Used for consensus data management.",
274
+ "anyOf": [
275
+ {
276
+ "type": "object",
277
+ "properties": {
278
+ "op": {
279
+ "anyOf": [
280
+ {
281
+ "type": "string",
282
+ "const": "add"
283
+ },
284
+ {
285
+ "type": "string",
286
+ "const": "set"
287
+ }
288
+ ]
289
+ },
290
+ "objects": {
291
+ "type": "array",
292
+ "items": {
293
+ "type": "string",
294
+ "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)."
295
+ },
296
+ "description": "List of object IDs or names to add or set"
297
+ }
298
+ },
299
+ "required": [
300
+ "op",
301
+ "objects"
302
+ ],
303
+ "additionalProperties": false
304
+ },
305
+ {
306
+ "type": "object",
307
+ "properties": {
308
+ "op": {
309
+ "type": "string",
310
+ "const": "remove"
311
+ },
312
+ "objects": {
313
+ "type": "array",
314
+ "items": {
315
+ "type": "string",
316
+ "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)."
317
+ },
318
+ "description": "List of object IDs or names to remove"
319
+ }
320
+ },
321
+ "required": [
322
+ "op",
323
+ "objects"
324
+ ],
325
+ "additionalProperties": false
326
+ },
327
+ {
328
+ "type": "object",
329
+ "properties": {
330
+ "op": {
331
+ "type": "string",
332
+ "const": "clear"
333
+ }
334
+ },
335
+ "required": [
336
+ "op"
337
+ ],
338
+ "additionalProperties": false
339
+ }
340
+ ]
263
341
  },
264
342
  "node": {
343
+ "description": "CRITICAL: Choose ONE of two mutually exclusive modes:\n\n**Mode 1: NodeSchema (incremental operations)**\nUse for partial modifications: add, set, remove, clear, exchange, rename, remove prior node, add forward, remove forward.\nFormat: { \"op\": \"add\", \"nodes\": [...], \"bReplace\": false }\nThis mode modifies existing nodes incrementally.\n\n**Mode 2: NodeJsonOrMarkdownFileSchema (complete replacement)**\nUse for complete node redefinition from file.\nFormat: { \"json_or_markdown_file\": \"/path/to/nodes.json\" }\nIMPORTANT: This COMPLETELY REPLACES all existing nodes. File must contain node array [{...}, {...}], NOT an operation object with \"op\" field.\nSupported formats: JSON array or Markdown with code blocks.\nIf parsing fails, error includes line number and column information.",
265
344
  "anyOf": [
266
345
  {
267
- "anyOf": [
346
+ "oneOf": [
268
347
  {
269
348
  "type": "object",
270
349
  "properties": {
@@ -279,7 +358,7 @@
279
358
  "properties": {
280
359
  "name": {
281
360
  "type": "string",
282
- "description": "Node name"
361
+ "description": "Node name. ⚠️ T1 LOSSY POINT (B-1): do NOT name a node 'refund'/'refunded'/'disputed'/'cancelled' to model fund return or dispute — funds MUST move through the Allocation waterfall (order_allocators), NOT through Machine terminal nodes (R-M1-11). A node named 'refund' is a semantic lie: reaching it does not move funds by itself. Model refund as a refund-to-Order Allocator slot (a { Signer } or Order-owner recipient), and model dispute as the bound Arbitration, not a Machine node."
283
362
  },
284
363
  "pairs": {
285
364
  "type": "array",
@@ -291,12 +370,16 @@
291
370
  "description": "Previous node name. Empty string '' means initial entry node (the first node in the workflow)."
292
371
  },
293
372
  "threshold": {
294
- "type": [
295
- "number",
296
- "string"
297
- ],
298
373
  "default": 0,
299
- "description": "Threshold to trigger node advancement. If total Forward weight is greater than or equal to threshold, node advancement is triggered."
374
+ "description": "Threshold to trigger node advancement. If total Forward weight is greater than or equal to threshold, node advancement is triggered.",
375
+ "anyOf": [
376
+ {
377
+ "type": "number"
378
+ },
379
+ {
380
+ "type": "string"
381
+ }
382
+ ]
300
383
  },
301
384
  "forwards": {
302
385
  "type": "array",
@@ -308,20 +391,18 @@
308
391
  "description": "Forward name"
309
392
  },
310
393
  "namedOperator": {
394
+ "description": "Forward operation permission 1: Namespace (one of the two must be specified); recommended if Progress object operators are different (e.g., different delivery personnel for different orders).",
311
395
  "anyOf": [
312
396
  {
313
397
  "type": "string"
314
398
  },
315
399
  {
316
400
  "type": "null"
317
- },
318
- {
319
- "not": {}
320
401
  }
321
- ],
322
- "description": "Forward operation permission 1: Namespace (one of the two must be specified); recommended if Progress object operators are different (e.g., different delivery personnel for different orders)."
402
+ ]
323
403
  },
324
404
  "permissionIndex": {
405
+ "description": "Forward operation permission 2: Permission index (one of the two must be specified); recommended if all Progress object operators are the same (e.g., same reward reviewers for all orders).",
325
406
  "anyOf": [
326
407
  {
327
408
  "type": "number"
@@ -331,21 +412,22 @@
331
412
  },
332
413
  {
333
414
  "type": "null"
334
- },
335
- {
336
- "not": {}
337
415
  }
338
- ],
339
- "description": "Forward operation permission 2: Permission index (one of the two must be specified); recommended if all Progress object operators are the same (e.g., same reward reviewers for all orders)."
416
+ ]
340
417
  },
341
418
  "weight": {
342
- "type": [
343
- "number",
344
- "string"
419
+ "anyOf": [
420
+ {
421
+ "type": "number"
422
+ },
423
+ {
424
+ "type": "string"
425
+ }
345
426
  ],
346
427
  "description": "Forward weight"
347
428
  },
348
429
  "guard": {
430
+ "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.",
349
431
  "anyOf": [
350
432
  {
351
433
  "anyOf": [
@@ -357,18 +439,25 @@
357
439
  "description": "Guard object name or address (string). Example: 'my_attendance_guard' or '0x1234...'"
358
440
  },
359
441
  "retained_submission": {
442
+ "description": "Data submitted by user during Guard object verification",
360
443
  "anyOf": [
361
444
  {
362
445
  "type": "array",
363
446
  "items": {
364
- "$ref": "#/definitions/data/properties/node/anyOf/0/anyOf/0/properties/nodes/items/properties/pairs/items/properties/threshold"
447
+ "anyOf": [
448
+ {
449
+ "type": "number"
450
+ },
451
+ {
452
+ "type": "string"
453
+ }
454
+ ]
365
455
  }
366
456
  },
367
457
  {
368
458
  "type": "null"
369
459
  }
370
- ],
371
- "description": "Data submitted by user during Guard object verification"
460
+ ]
372
461
  }
373
462
  },
374
463
  "required": [
@@ -386,8 +475,7 @@
386
475
  {
387
476
  "type": "null"
388
477
  }
389
- ],
390
- "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes)."
478
+ ]
391
479
  }
392
480
  },
393
481
  "required": [
@@ -402,6 +490,7 @@
402
490
  },
403
491
  "required": [
404
492
  "prev_node",
493
+ "threshold",
405
494
  "forwards"
406
495
  ],
407
496
  "additionalProperties": false,
@@ -420,8 +509,8 @@
420
509
  "description": "List of nodes to add or set."
421
510
  },
422
511
  "bReplace": {
423
- "type": "boolean",
424
- "description": "Whether to replace existing nodes. If true, existing nodes will be replaced; if false, nodes will be added by merging."
512
+ "description": "Whether to replace existing nodes. If true, existing nodes will be replaced; if false, nodes will be added by merging.",
513
+ "type": "boolean"
425
514
  }
426
515
  },
427
516
  "required": [
@@ -441,13 +530,163 @@
441
530
  "nodes": {
442
531
  "type": "array",
443
532
  "items": {
444
- "$ref": "#/definitions/data/properties/node/anyOf/0/anyOf/0/properties/nodes/items"
533
+ "type": "object",
534
+ "properties": {
535
+ "name": {
536
+ "type": "string",
537
+ "description": "Node name. ⚠️ T1 LOSSY POINT (B-1): do NOT name a node 'refund'/'refunded'/'disputed'/'cancelled' to model fund return or dispute — funds MUST move through the Allocation waterfall (order_allocators), NOT through Machine terminal nodes (R-M1-11). A node named 'refund' is a semantic lie: reaching it does not move funds by itself. Model refund as a refund-to-Order Allocator slot (a { Signer } or Order-owner recipient), and model dispute as the bound Arbitration, not a Machine node."
538
+ },
539
+ "pairs": {
540
+ "type": "array",
541
+ "items": {
542
+ "type": "object",
543
+ "properties": {
544
+ "prev_node": {
545
+ "type": "string",
546
+ "description": "Previous node name. Empty string '' means initial entry node (the first node in the workflow)."
547
+ },
548
+ "threshold": {
549
+ "default": 0,
550
+ "description": "Threshold to trigger node advancement. If total Forward weight is greater than or equal to threshold, node advancement is triggered.",
551
+ "anyOf": [
552
+ {
553
+ "type": "number"
554
+ },
555
+ {
556
+ "type": "string"
557
+ }
558
+ ]
559
+ },
560
+ "forwards": {
561
+ "type": "array",
562
+ "items": {
563
+ "type": "object",
564
+ "properties": {
565
+ "name": {
566
+ "type": "string",
567
+ "description": "Forward name"
568
+ },
569
+ "namedOperator": {
570
+ "description": "Forward operation permission 1: Namespace (one of the two must be specified); recommended if Progress object operators are different (e.g., different delivery personnel for different orders).",
571
+ "anyOf": [
572
+ {
573
+ "type": "string"
574
+ },
575
+ {
576
+ "type": "null"
577
+ }
578
+ ]
579
+ },
580
+ "permissionIndex": {
581
+ "description": "Forward operation permission 2: Permission index (one of the two must be specified); recommended if all Progress object operators are the same (e.g., same reward reviewers for all orders).",
582
+ "anyOf": [
583
+ {
584
+ "type": "number"
585
+ },
586
+ {
587
+ "type": "string"
588
+ },
589
+ {
590
+ "type": "null"
591
+ }
592
+ ]
593
+ },
594
+ "weight": {
595
+ "anyOf": [
596
+ {
597
+ "type": "number"
598
+ },
599
+ {
600
+ "type": "string"
601
+ }
602
+ ],
603
+ "description": "Forward weight"
604
+ },
605
+ "guard": {
606
+ "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.",
607
+ "anyOf": [
608
+ {
609
+ "anyOf": [
610
+ {
611
+ "type": "object",
612
+ "properties": {
613
+ "guard": {
614
+ "type": "string",
615
+ "description": "Guard object name or address (string). Example: 'my_attendance_guard' or '0x1234...'"
616
+ },
617
+ "retained_submission": {
618
+ "description": "Data submitted by user during Guard object verification",
619
+ "anyOf": [
620
+ {
621
+ "type": "array",
622
+ "items": {
623
+ "anyOf": [
624
+ {
625
+ "type": "number"
626
+ },
627
+ {
628
+ "type": "string"
629
+ }
630
+ ]
631
+ }
632
+ },
633
+ {
634
+ "type": "null"
635
+ }
636
+ ]
637
+ }
638
+ },
639
+ "required": [
640
+ "guard"
641
+ ],
642
+ "additionalProperties": false,
643
+ "description": "OBJECT form: {guard: '<guard_name_or_address>', retained_submission?: number[]}. Use this form when you need to pass retained_submission data alongside the Guard reference."
644
+ },
645
+ {
646
+ "type": "string",
647
+ "description": "STRING form (shorthand): the Guard object's name or address as a plain string. Auto-wrapped to {guard: <string>} at runtime. Use this when you only need to reference a Guard without retained_submission."
648
+ }
649
+ ]
650
+ },
651
+ {
652
+ "type": "null"
653
+ }
654
+ ]
655
+ }
656
+ },
657
+ "required": [
658
+ "name",
659
+ "weight"
660
+ ],
661
+ "additionalProperties": false,
662
+ "description": "Forward in Machine object"
663
+ },
664
+ "description": "Forward list — operations to ENTER THIS NODE from prev_node. SEMANTIC CLARIFICATION: forwards describe INCOMING transitions (how to ARRIVE at this node), NOT outgoing transitions. Think of each forward as an 'entry door' to this node. Example: pair {prev_node:'A', forwards:[{name:'Go'}]} means 'use Go to advance FROM A TO THIS NODE'. For initial node (prev_node=''), forwards are operations to enter this node from the start state. DIAGRAM: A --[Go]--> B means the pair belongs to node B (destination), with prev_node='A'. WARNING: forwards belong to the DESTINATION node's pair, NOT the source node. Placing a forward on the wrong pair will cause Progress to get stuck."
665
+ }
666
+ },
667
+ "required": [
668
+ "prev_node",
669
+ "threshold",
670
+ "forwards"
671
+ ],
672
+ "additionalProperties": false,
673
+ "description": "Node pair in Machine object"
674
+ },
675
+ "description": "Node pair list"
676
+ }
677
+ },
678
+ "required": [
679
+ "name",
680
+ "pairs"
681
+ ],
682
+ "additionalProperties": false,
683
+ "description": "Node in Machine object"
445
684
  },
446
685
  "description": "List of nodes to add or set."
447
686
  },
448
687
  "bReplace": {
449
- "type": "boolean",
450
- "description": "Whether to replace existing nodes. If true, existing nodes will be replaced; if false, nodes will be added by merging."
688
+ "description": "Whether to replace existing nodes. If true, existing nodes will be replaced; if false, nodes will be added by merging.",
689
+ "type": "boolean"
451
690
  }
452
691
  },
453
692
  "required": [
@@ -467,7 +706,7 @@
467
706
  "nodes": {
468
707
  "type": "array",
469
708
  "items": {
470
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name"
709
+ "type": "string"
471
710
  },
472
711
  "description": "List of node names to delete."
473
712
  }
@@ -501,11 +740,11 @@
501
740
  "const": "exchange"
502
741
  },
503
742
  "node_one": {
504
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
743
+ "type": "string",
505
744
  "description": "Name of the first node."
506
745
  },
507
746
  "node_other": {
508
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
747
+ "type": "string",
509
748
  "description": "Name of the second node."
510
749
  }
511
750
  },
@@ -525,11 +764,11 @@
525
764
  "const": "rename"
526
765
  },
527
766
  "node_name_old": {
528
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
767
+ "type": "string",
529
768
  "description": "Name of thenode."
530
769
  },
531
770
  "node_name_new": {
532
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
771
+ "type": "string",
533
772
  "description": "New name of the node."
534
773
  }
535
774
  },
@@ -556,12 +795,12 @@
556
795
  "prior_node_name": {
557
796
  "type": "array",
558
797
  "items": {
559
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name"
798
+ "type": "string"
560
799
  },
561
800
  "description": "List of previous node names to delete."
562
801
  },
563
802
  "node_name": {
564
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
803
+ "type": "string",
565
804
  "description": "Name of the next node."
566
805
  }
567
806
  },
@@ -594,31 +833,131 @@
594
833
  "type": "object",
595
834
  "properties": {
596
835
  "prior_node_name": {
597
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
836
+ "type": "string",
598
837
  "description": "Name of the previous node."
599
838
  },
600
839
  "node_name": {
601
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
840
+ "type": "string",
602
841
  "description": "Name of the next node."
603
842
  },
604
843
  "forward": {
605
844
  "type": "array",
606
845
  "items": {
607
- "$ref": "#/definitions/data/properties/node/anyOf/0/anyOf/0/properties/nodes/items/properties/pairs/items/properties/forwards/items"
846
+ "type": "object",
847
+ "properties": {
848
+ "name": {
849
+ "type": "string",
850
+ "description": "Forward name"
851
+ },
852
+ "namedOperator": {
853
+ "description": "Forward operation permission 1: Namespace (one of the two must be specified); recommended if Progress object operators are different (e.g., different delivery personnel for different orders).",
854
+ "anyOf": [
855
+ {
856
+ "type": "string"
857
+ },
858
+ {
859
+ "type": "null"
860
+ }
861
+ ]
862
+ },
863
+ "permissionIndex": {
864
+ "description": "Forward operation permission 2: Permission index (one of the two must be specified); recommended if all Progress object operators are the same (e.g., same reward reviewers for all orders).",
865
+ "anyOf": [
866
+ {
867
+ "type": "number"
868
+ },
869
+ {
870
+ "type": "string"
871
+ },
872
+ {
873
+ "type": "null"
874
+ }
875
+ ]
876
+ },
877
+ "weight": {
878
+ "anyOf": [
879
+ {
880
+ "type": "number"
881
+ },
882
+ {
883
+ "type": "string"
884
+ }
885
+ ],
886
+ "description": "Forward weight"
887
+ },
888
+ "guard": {
889
+ "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.",
890
+ "anyOf": [
891
+ {
892
+ "anyOf": [
893
+ {
894
+ "type": "object",
895
+ "properties": {
896
+ "guard": {
897
+ "type": "string",
898
+ "description": "Guard object name or address (string). Example: 'my_attendance_guard' or '0x1234...'"
899
+ },
900
+ "retained_submission": {
901
+ "description": "Data submitted by user during Guard object verification",
902
+ "anyOf": [
903
+ {
904
+ "type": "array",
905
+ "items": {
906
+ "anyOf": [
907
+ {
908
+ "type": "number"
909
+ },
910
+ {
911
+ "type": "string"
912
+ }
913
+ ]
914
+ }
915
+ },
916
+ {
917
+ "type": "null"
918
+ }
919
+ ]
920
+ }
921
+ },
922
+ "required": [
923
+ "guard"
924
+ ],
925
+ "additionalProperties": false,
926
+ "description": "OBJECT form: {guard: '<guard_name_or_address>', retained_submission?: number[]}. Use this form when you need to pass retained_submission data alongside the Guard reference."
927
+ },
928
+ {
929
+ "type": "string",
930
+ "description": "STRING form (shorthand): the Guard object's name or address as a plain string. Auto-wrapped to {guard: <string>} at runtime. Use this when you only need to reference a Guard without retained_submission."
931
+ }
932
+ ]
933
+ },
934
+ {
935
+ "type": "null"
936
+ }
937
+ ]
938
+ }
939
+ },
940
+ "required": [
941
+ "name",
942
+ "weight"
943
+ ],
944
+ "additionalProperties": false,
945
+ "description": "Forward in Machine object"
608
946
  },
609
947
  "description": "List of operations between the previous and next nodes."
610
948
  },
611
949
  "threshold": {
950
+ "description": "Threshold of operations that need to be completed to migrate from the previous node to the next node.",
612
951
  "anyOf": [
613
952
  {
614
953
  "type": "integer",
615
- "minimum": 0
954
+ "minimum": 0,
955
+ "maximum": 9007199254740991
616
956
  },
617
957
  {
618
958
  "type": "null"
619
959
  }
620
- ],
621
- "description": "Threshold of operations that need to be completed to migrate from the previous node to the next node."
960
+ ]
622
961
  }
623
962
  },
624
963
  "required": [
@@ -651,17 +990,17 @@
651
990
  "type": "object",
652
991
  "properties": {
653
992
  "prior_node_name": {
654
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
993
+ "type": "string",
655
994
  "description": "Name of the previous node."
656
995
  },
657
996
  "node_name": {
658
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name",
997
+ "type": "string",
659
998
  "description": "Name of the next node."
660
999
  },
661
1000
  "forward_name": {
662
1001
  "type": "array",
663
1002
  "items": {
664
- "$ref": "#/definitions/data/properties/object/anyOf/1/properties/name"
1003
+ "type": "string"
665
1004
  },
666
1005
  "description": "List of operation names to delete."
667
1006
  }
@@ -698,18 +1037,18 @@
698
1037
  ],
699
1038
  "additionalProperties": false
700
1039
  }
701
- ],
702
- "description": "CRITICAL: Choose ONE of two mutually exclusive modes:\n\n**Mode 1: NodeSchema (incremental operations)**\nUse for partial modifications: add, set, remove, clear, exchange, rename, remove prior node, add forward, remove forward.\nFormat: { \"op\": \"add\", \"nodes\": [...], \"bReplace\": false }\nThis mode modifies existing nodes incrementally.\n\n**Mode 2: NodeJsonOrMarkdownFileSchema (complete replacement)**\nUse for complete node redefinition from file.\nFormat: { \"json_or_markdown_file\": \"/path/to/nodes.json\" }\nIMPORTANT: This COMPLETELY REPLACES all existing nodes. File must contain node array [{...}, {...}], NOT an operation object with \"op\" field.\nSupported formats: JSON array or Markdown with code blocks.\nIf parsing fails, error includes line number and column information."
1040
+ ]
703
1041
  },
704
1042
  "pause": {
705
- "type": "boolean",
706
- "description": "Whether to pause generating new Progress objects."
1043
+ "description": "Whether to pause generating new Progress objects.",
1044
+ "type": "boolean"
707
1045
  },
708
1046
  "publish": {
709
- "type": "boolean",
710
- "description": "Whether to publish the object. After the object is published, new Progress objects can be generated; and node settings will no longer be changeable."
1047
+ "description": "Whether to publish the object. After the object is published, new Progress objects can be generated; and node settings will no longer be changeable.",
1048
+ "type": "boolean"
711
1049
  },
712
1050
  "owner_receive": {
1051
+ "description": "Unwrap CoinWrapper objects and other objects received by this Machine object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
713
1052
  "anyOf": [
714
1053
  {
715
1054
  "type": "array",
@@ -742,9 +1081,13 @@
742
1081
  "type": "object",
743
1082
  "properties": {
744
1083
  "balance": {
745
- "type": [
746
- "number",
747
- "string"
1084
+ "anyOf": [
1085
+ {
1086
+ "type": "number"
1087
+ },
1088
+ {
1089
+ "type": "string"
1090
+ }
748
1091
  ],
749
1092
  "description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
750
1093
  },
@@ -762,7 +1105,15 @@
762
1105
  "description": "Received CoinWrapper object ID"
763
1106
  },
764
1107
  "balance": {
765
- "$ref": "#/definitions/data/properties/owner_receive/anyOf/1/properties/balance"
1108
+ "anyOf": [
1109
+ {
1110
+ "type": "number"
1111
+ },
1112
+ {
1113
+ "type": "string"
1114
+ }
1115
+ ],
1116
+ "description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
766
1117
  },
767
1118
  "payment": {
768
1119
  "type": "string",
@@ -792,19 +1143,19 @@
792
1143
  "type": "string",
793
1144
  "const": "recently"
794
1145
  }
795
- ],
796
- "description": "Unwrap CoinWrapper objects and other objects received by this Machine object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
1146
+ ]
797
1147
  },
798
1148
  "um": {
1149
+ "description": "Contact object ID or name.",
799
1150
  "anyOf": [
800
1151
  {
801
- "$ref": "#/definitions/data/properties/progress_new/properties/task/anyOf/0"
1152
+ "type": "string",
1153
+ "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)."
802
1154
  },
803
1155
  {
804
1156
  "type": "null"
805
1157
  }
806
- ],
807
- "description": "Contact object ID or name."
1158
+ ]
808
1159
  }
809
1160
  },
810
1161
  "required": [
@@ -817,20 +1168,20 @@
817
1168
  "type": "object",
818
1169
  "properties": {
819
1170
  "account": {
1171
+ "default": "",
820
1172
  "type": "string",
821
- "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).",
822
- "default": ""
1173
+ "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)."
823
1174
  },
824
1175
  "permission_guard": {
1176
+ "description": "List of permission guard IDs. Used to extend additional operation permissions (requires verification and configuration in the Permission object).",
825
1177
  "type": "array",
826
1178
  "items": {
827
1179
  "type": "string"
828
- },
829
- "description": "List of permission guard IDs. Used to extend additional operation permissions (requires verification and configuration in the Permission object)."
1180
+ }
830
1181
  },
831
1182
  "no_cache": {
832
- "type": "boolean",
833
- "description": "Whether to disable caching."
1183
+ "description": "Whether to disable caching.",
1184
+ "type": "boolean"
834
1185
  },
835
1186
  "network": {
836
1187
  "type": "string",
@@ -842,38 +1193,42 @@
842
1193
  "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."
843
1194
  },
844
1195
  "referrer": {
845
- "$ref": "#/definitions/env/properties/account",
846
- "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded."
1196
+ "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded.",
1197
+ "type": "string"
847
1198
  },
848
1199
  "confirmed": {
849
- "type": "boolean",
850
- "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."
1200
+ "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.",
1201
+ "type": "boolean"
851
1202
  },
852
1203
  "user_intent_phrases": {
1204
+ "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.",
853
1205
  "type": "array",
854
1206
  "items": {
855
1207
  "type": "string"
856
- },
857
- "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."
1208
+ }
858
1209
  },
859
1210
  "project": {
860
- "type": "string",
861
- "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."
1211
+ "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.",
1212
+ "type": "string"
862
1213
  },
863
1214
  "client_schema_version": {
864
- "type": "string",
865
- "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
1215
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched.",
1216
+ "type": "string"
866
1217
  },
867
1218
  "schema_strict_mode": {
868
- "type": "boolean",
869
1219
  "default": false,
870
- "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
1220
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode).",
1221
+ "type": "boolean"
871
1222
  },
872
1223
  "dry_run": {
873
- "type": "boolean",
874
- "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)."
1224
+ "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).",
1225
+ "type": "boolean"
875
1226
  }
876
1227
  },
1228
+ "required": [
1229
+ "account",
1230
+ "schema_strict_mode"
1231
+ ],
877
1232
  "additionalProperties": false,
878
1233
  "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."
879
1234
  },
@@ -886,6 +1241,7 @@
886
1241
  "description": "Discriminator for this result variant. Constraint: always 'submission'. Example: 'submission'"
887
1242
  },
888
1243
  "guard": {
1244
+ "maxItems": 20,
889
1245
  "type": "array",
890
1246
  "items": {
891
1247
  "type": "object",
@@ -905,7 +1261,6 @@
905
1261
  ],
906
1262
  "additionalProperties": false
907
1263
  },
908
- "maxItems": 20,
909
1264
  "description": "Array of Guard objects to verify. Constraint: at most 20 entries (MAX_GUARD_COUNT_PASSPORT). Relation: each entry corresponds to a Guard bound to the operation."
910
1265
  },
911
1266
  "submission": {
@@ -914,7 +1269,7 @@
914
1269
  "type": "object",
915
1270
  "properties": {
916
1271
  "guard": {
917
- "$ref": "#/definitions/submission/properties/guard/items/properties/object",
1272
+ "type": "string",
918
1273
  "description": "Guard object name or ID that requires submission data. Example: 'my-delivery-guard'"
919
1274
  },
920
1275
  "submission": {
@@ -1223,6 +1578,7 @@
1223
1578
  "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."
1224
1579
  },
1225
1580
  "value": {
1581
+ "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).",
1226
1582
  "anyOf": [
1227
1583
  {
1228
1584
  "type": "boolean"
@@ -1233,12 +1589,12 @@
1233
1589
  "type": "object",
1234
1590
  "properties": {
1235
1591
  "name_or_address": {
1236
- "$ref": "#/definitions/submission/properties/guard/items/properties/object",
1592
+ "type": "string",
1237
1593
  "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)."
1238
1594
  },
1239
1595
  "local_mark_first": {
1240
- "type": "boolean",
1241
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks"
1596
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1597
+ "type": "boolean"
1242
1598
  }
1243
1599
  },
1244
1600
  "additionalProperties": false,
@@ -1269,12 +1625,24 @@
1269
1625
  "entities": {
1270
1626
  "type": "array",
1271
1627
  "items": {
1272
- "$ref": "#/definitions/submission/properties/submission/items/properties/submission/items/properties/value/anyOf/1/anyOf/0"
1628
+ "type": "object",
1629
+ "properties": {
1630
+ "name_or_address": {
1631
+ "type": "string",
1632
+ "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)."
1633
+ },
1634
+ "local_mark_first": {
1635
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1636
+ "type": "boolean"
1637
+ }
1638
+ },
1639
+ "additionalProperties": false,
1640
+ "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."
1273
1641
  }
1274
1642
  },
1275
1643
  "check_all_founded": {
1276
- "type": "boolean",
1277
- "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"
1644
+ "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",
1645
+ "type": "boolean"
1278
1646
  }
1279
1647
  },
1280
1648
  "required": [
@@ -1312,15 +1680,15 @@
1312
1680
  }
1313
1681
  }
1314
1682
  }
1315
- ],
1316
- "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)."
1683
+ ]
1317
1684
  },
1318
1685
  "name": {
1319
- "type": "string",
1320
1686
  "default": "",
1321
- "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."
1687
+ "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.",
1688
+ "type": "string"
1322
1689
  },
1323
1690
  "object_type": {
1691
+ "description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation.",
1324
1692
  "type": "string",
1325
1693
  "enum": [
1326
1694
  "Permission",
@@ -1355,14 +1723,14 @@
1355
1723
  "TableItem_EntityLinker",
1356
1724
  "TableItem_AddressMark",
1357
1725
  "TableItem_EntityRegistrar"
1358
- ],
1359
- "description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
1726
+ ]
1360
1727
  }
1361
1728
  },
1362
1729
  "required": [
1363
1730
  "identifier",
1364
1731
  "b_submission",
1365
- "value_type"
1732
+ "value_type",
1733
+ "name"
1366
1734
  ],
1367
1735
  "additionalProperties": false,
1368
1736
  "description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
@@ -1388,5 +1756,10 @@
1388
1756
  "additionalProperties": false,
1389
1757
  "description": "Guard verification required. The operation was blocked because one or more Guards require user-submitted data. Fill the submission array and resubmit. Semantic status is 'pending_input'."
1390
1758
  }
1391
- }
1759
+ },
1760
+ "required": [
1761
+ "operation_type",
1762
+ "data"
1763
+ ],
1764
+ "additionalProperties": false
1392
1765
  }