@wowok/agent-mcp 3.2.7 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +2 -2
  2. package/dist/chain-semantics/field-capability.js +1 -1
  3. package/dist/chain-semantics/freeze-map.js +1 -1
  4. package/dist/chain-semantics/fund-flow.js +1 -1
  5. package/dist/chain-semantics/guard-verbs.js +1 -1
  6. package/dist/chain-semantics/object-graph.js +1 -1
  7. package/dist/composition/audit.js +1 -1
  8. package/dist/composition/compile.d.ts +10 -1
  9. package/dist/composition/compile.js +1 -1
  10. package/dist/composition/inflight.d.ts +10 -0
  11. package/dist/composition/inflight.js +1 -1
  12. package/dist/extensions/business-modules.d.ts +1 -1
  13. package/dist/extensions/business-modules.js +1 -1
  14. package/dist/extensions/capability-manifest.js +1 -1
  15. package/dist/extensions/industry-audit.spec.js +1 -1
  16. package/dist/extensions/industry-pack.js +1 -1
  17. package/dist/graph/onchain/edge-schema.js +1 -1
  18. package/dist/graph/onchain/facts.spec.js +1 -1
  19. package/dist/graph/onchain/field-manifest.js +1 -1
  20. package/dist/harness/index.d.ts +1 -0
  21. package/dist/harness/index.js +1 -1
  22. package/dist/harness/operation-id.d.ts +1 -0
  23. package/dist/harness/operation-id.js +1 -0
  24. package/dist/harness/recover.js +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/intent/types.d.ts +1 -1
  27. package/dist/intent/types.js +1 -1
  28. package/dist/keeper/KeeperScan.d.ts +2 -1
  29. package/dist/keeper/KeeperScan.js +1 -1
  30. package/dist/keeper/keeper.spec.js +1 -1
  31. package/dist/keeper/types.d.ts +3 -0
  32. package/dist/keeper/types.js +1 -1
  33. package/dist/knowledge/allocator-rail-verifier.d.ts +34 -0
  34. package/dist/knowledge/allocator-rail-verifier.js +1 -0
  35. package/dist/knowledge/arbitration-ledger.js +1 -1
  36. package/dist/knowledge/arbitration-templates.js +1 -1
  37. package/dist/knowledge/arbitration-venue-order.js +1 -1
  38. package/dist/knowledge/audit-rules.d.ts +19 -1
  39. package/dist/knowledge/audit-rules.js +1 -1
  40. package/dist/knowledge/baselines/rules/alloc_audit.json +1 -1
  41. package/dist/knowledge/baselines/rules/arb.json +1 -1
  42. package/dist/knowledge/baselines/rules/guard.json +106 -1
  43. package/dist/knowledge/baselines/rules/machine.json +9 -6
  44. package/dist/knowledge/baselines/rules/plan.json +40 -17
  45. package/dist/knowledge/baselines/semantic-facts.js +1 -1
  46. package/dist/knowledge/builtin-templates.d.ts +1 -1
  47. package/dist/knowledge/builtin-templates.js +1 -1
  48. package/dist/knowledge/contract-invariants.js +1 -1
  49. package/dist/knowledge/discount-threshold.d.ts +11 -0
  50. package/dist/knowledge/discount-threshold.js +1 -1
  51. package/dist/knowledge/event-semantics.js +1 -1
  52. package/dist/knowledge/fund-layer.js +1 -1
  53. package/dist/knowledge/getting-started.js +1 -1
  54. package/dist/knowledge/guard-anchor-reach.d.ts +1 -1
  55. package/dist/knowledge/guard-anchor-reach.js +1 -1
  56. package/dist/knowledge/guard-bindings.js +1 -1
  57. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  58. package/dist/knowledge/guard-design-patterns.js +1 -1
  59. package/dist/knowledge/guard-field-cognition.js +1 -1
  60. package/dist/knowledge/guard-ledger.js +1 -1
  61. package/dist/knowledge/guard-lint.js +1 -1
  62. package/dist/knowledge/guard-render.js +1 -1
  63. package/dist/knowledge/guard-risk.d.ts +1 -0
  64. package/dist/knowledge/guard-risk.js +1 -1
  65. package/dist/knowledge/guard-submission-brief.d.ts +6 -0
  66. package/dist/knowledge/guard-submission-brief.js +1 -1
  67. package/dist/knowledge/guard-templates.d.ts +2 -2
  68. package/dist/knowledge/guard-templates.js +1 -1
  69. package/dist/knowledge/index.js +1 -1
  70. package/dist/knowledge/industry-registry.js +1 -1
  71. package/dist/knowledge/industry-strategy.js +1 -1
  72. package/dist/knowledge/jsonrpc-enum.js +1 -1
  73. package/dist/knowledge/machine-ledger.js +1 -1
  74. package/dist/knowledge/machine-puzzle.d.ts +1 -1
  75. package/dist/knowledge/machine-puzzle.js +1 -1
  76. package/dist/knowledge/machine-risk.js +1 -1
  77. package/dist/knowledge/machine-templates.js +1 -1
  78. package/dist/knowledge/machine-topology.d.ts +8 -0
  79. package/dist/knowledge/machine-topology.js +1 -1
  80. package/dist/knowledge/machine-translation.js +1 -1
  81. package/dist/knowledge/order-ledger.js +1 -1
  82. package/dist/knowledge/permission-ledger.js +1 -1
  83. package/dist/knowledge/protocol-facts.d.ts +16 -0
  84. package/dist/knowledge/protocol-facts.js +1 -0
  85. package/dist/knowledge/recipient-constraint.js +1 -1
  86. package/dist/knowledge/reward-ledger.d.ts +2 -1
  87. package/dist/knowledge/reward-ledger.js +1 -1
  88. package/dist/knowledge/reward-templates.js +1 -1
  89. package/dist/knowledge/safety-rules.d.ts +0 -2
  90. package/dist/knowledge/safety-rules.js +1 -1
  91. package/dist/knowledge/scenario-modes.d.ts +7 -0
  92. package/dist/knowledge/scenario-modes.js +1 -1
  93. package/dist/knowledge/strategy-manuals.js +1 -1
  94. package/dist/knowledge/template-loader.d.ts +13 -1
  95. package/dist/knowledge/template-loader.js +1 -1
  96. package/dist/knowledge/template-registry.js +1 -1
  97. package/dist/knowledge/template-scanner.d.ts +2 -0
  98. package/dist/knowledge/template-scanner.js +1 -1
  99. package/dist/knowledge/tool-constraints.js +1 -1
  100. package/dist/knowledge/tools-reference.js +1 -1
  101. package/dist/knowledge/workflow-guidance.d.ts +7 -3
  102. package/dist/knowledge/workflow-guidance.js +1 -1
  103. package/dist/monitor/MonitorLoop.js +1 -1
  104. package/dist/monitor/normalize.d.ts +1 -1
  105. package/dist/monitor/normalize.js +1 -1
  106. package/dist/monitor/types.d.ts +1 -1
  107. package/dist/monitor/types.js +1 -1
  108. package/dist/participation/radar-core.d.ts +1 -1
  109. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  110. package/dist/playbooks/service-build/game-theory.d.ts +1 -0
  111. package/dist/playbooks/service-build/game-theory.js +1 -1
  112. package/dist/playbooks/service-build/intent-analyzer.js +1 -1
  113. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  114. package/dist/playbooks/service-build/merchant-guide.d.ts +8 -0
  115. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  116. package/dist/playbooks/service-build/object-panorama.d.ts +28 -1
  117. package/dist/playbooks/service-build/object-panorama.js +1 -1
  118. package/dist/playbooks/service-build/participation-radar.d.ts +2 -0
  119. package/dist/playbooks/service-build/participation-radar.js +1 -1
  120. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  121. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.js +1 -1
  122. package/dist/playbooks/service-build/reverse-mapping.js +1 -1
  123. package/dist/playbooks/service-build/service-panorama.js +1 -1
  124. package/dist/playbooks/service-build/service-quote.js +1 -1
  125. package/dist/playbooks/service-build/service-quote.spec.js +1 -1
  126. package/dist/relationship/registry.js +1 -1
  127. package/dist/review/index.js +1 -1
  128. package/dist/role/profiles.js +1 -1
  129. package/dist/safety/confirm-gate.js +1 -1
  130. package/dist/safety/preview.d.ts +1 -0
  131. package/dist/safety/preview.js +1 -1
  132. package/dist/schema/benchmark-migration/index.d.ts +19 -1
  133. package/dist/schema/benchmark-migration/index.js +1 -1
  134. package/dist/schema/call/allocation.d.ts +1 -1
  135. package/dist/schema/call/arbitration.d.ts +8 -8
  136. package/dist/schema/call/arbitration.js +1 -1
  137. package/dist/schema/call/base.d.ts +52 -5
  138. package/dist/schema/call/base.js +1 -1
  139. package/dist/schema/call/bridge.d.ts +3 -0
  140. package/dist/schema/call/contact.d.ts +5 -5
  141. package/dist/schema/call/demand.d.ts +5 -5
  142. package/dist/schema/call/error-codes.d.ts +1 -1
  143. package/dist/schema/call/error-codes.js +1 -1
  144. package/dist/schema/call/guard.d.ts +3 -3
  145. package/dist/schema/call/guard.js +1 -1
  146. package/dist/schema/call/handler.js +1 -1
  147. package/dist/schema/call/machine.d.ts +13 -5
  148. package/dist/schema/call/machine.js +1 -1
  149. package/dist/schema/call/order.d.ts +5 -5
  150. package/dist/schema/call/order.js +1 -1
  151. package/dist/schema/call/permission.d.ts +5 -5
  152. package/dist/schema/call/personal.d.ts +4 -4
  153. package/dist/schema/call/progress.d.ts +5 -5
  154. package/dist/schema/call/progress.js +1 -1
  155. package/dist/schema/call/proof.js +1 -1
  156. package/dist/schema/call/receipt.d.ts +8 -0
  157. package/dist/schema/call/receipt.js +1 -1
  158. package/dist/schema/call/repository.d.ts +9 -9
  159. package/dist/schema/call/repository.js +1 -1
  160. package/dist/schema/call/reward.d.ts +25 -5
  161. package/dist/schema/call/reward.js +1 -1
  162. package/dist/schema/call/semantic.js +1 -1
  163. package/dist/schema/call/service.d.ts +10 -5
  164. package/dist/schema/call/service.js +1 -1
  165. package/dist/schema/call/treasury.d.ts +5 -5
  166. package/dist/schema/common/index.d.ts +6 -6
  167. package/dist/schema/common/index.js +1 -1
  168. package/dist/schema/goal/index.d.ts +17 -1
  169. package/dist/schema/goal/planning.d.ts +28 -2
  170. package/dist/schema/goal/planning.js +1 -1
  171. package/dist/schema/industry-pack/index.d.ts +3 -0
  172. package/dist/schema/industry-pack/index.js +1 -1
  173. package/dist/schema/intent-radar/index.d.ts +9 -0
  174. package/dist/schema/intent-radar/index.js +1 -1
  175. package/dist/schema/local/index.d.ts +31 -0
  176. package/dist/schema/local/index.js +1 -1
  177. package/dist/schema/messenger/index.js +1 -1
  178. package/dist/schema/operations.d.ts +57 -43
  179. package/dist/schema/operations.js +1 -1
  180. package/dist/schema/query/bi.d.ts +22 -6
  181. package/dist/schema/query/bi.js +1 -1
  182. package/dist/schema/query/index.d.ts +164 -102
  183. package/dist/schema/query/index.js +1 -1
  184. package/dist/schema/schema-query/index.d.ts +2 -0
  185. package/dist/schema/schema-query/index.js +1 -1
  186. package/dist/schema/schema-version.js +1 -1
  187. package/dist/schema/utils/permission-machine-check.d.ts +2 -0
  188. package/dist/schema/utils/permission-machine-check.js +1 -1
  189. package/dist/schema/workflow/index.d.ts +1 -1
  190. package/dist/schema-query-impl/index.d.ts +1 -1
  191. package/dist/schema-query-impl/index.js +1 -1
  192. package/dist/schemas/account_operation.output.json +3 -0
  193. package/dist/schemas/account_operation.schema.json +4 -4
  194. package/dist/schemas/benchmark_migration_operation.output.json +42 -0
  195. package/dist/schemas/benchmark_migration_operation.schema.json +40 -3
  196. package/dist/schemas/bridge_operation.output.json +3 -0
  197. package/dist/schemas/goal_operation.schema.json +52 -2
  198. package/dist/schemas/index.json +1 -1
  199. package/dist/schemas/industry_pack_operation.output.json +8 -0
  200. package/dist/schemas/industry_pack_operation.schema.json +9 -0
  201. package/dist/schemas/intent_radar.output.json +8 -2
  202. package/dist/schemas/intent_radar.schema.json +4 -1
  203. package/dist/schemas/local_cache_operation.output.json +3 -0
  204. package/dist/schemas/local_history_operation.output.json +3 -0
  205. package/dist/schemas/local_info_operation.output.json +3 -0
  206. package/dist/schemas/local_mark_operation.output.json +3 -0
  207. package/dist/schemas/messenger_operation.schema.json +4 -4
  208. package/dist/schemas/monitor_events.schema.json +3 -1
  209. package/dist/schemas/onchain_events.output.json +275 -11
  210. package/dist/schemas/onchain_events.schema.json +25 -1
  211. package/dist/schemas/onchain_operations.output.json +47 -5
  212. package/dist/schemas/onchain_operations.schema.json +664 -179
  213. package/dist/schemas/onchain_operations_allocation.schema.json +7 -7
  214. package/dist/schemas/onchain_operations_arbitration.schema.json +21 -15
  215. package/dist/schemas/onchain_operations_contact.schema.json +15 -10
  216. package/dist/schemas/onchain_operations_demand.schema.json +15 -10
  217. package/dist/schemas/onchain_operations_gen_passport.schema.json +5 -5
  218. package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -1
  219. package/dist/schemas/onchain_operations_guard.schema.json +346 -8
  220. package/dist/schemas/onchain_operations_machine.schema.json +24 -11
  221. package/dist/schemas/onchain_operations_order.schema.json +17 -12
  222. package/dist/schemas/onchain_operations_permission.schema.json +10 -5
  223. package/dist/schemas/onchain_operations_personal.schema.json +2 -2
  224. package/dist/schemas/onchain_operations_progress.schema.json +17 -12
  225. package/dist/schemas/onchain_operations_proof.schema.json +6 -6
  226. package/dist/schemas/onchain_operations_repository.schema.json +19 -14
  227. package/dist/schemas/onchain_operations_reward.schema.json +96 -15
  228. package/dist/schemas/onchain_operations_service.schema.json +33 -21
  229. package/dist/schemas/onchain_operations_treasury.schema.json +15 -10
  230. package/dist/schemas/onchain_table_data.output.json +7 -7
  231. package/dist/schemas/query_toolkit.output.json +268 -44
  232. package/dist/schemas/query_toolkit.schema.json +1 -1
  233. package/dist/schemas/schema_query.schema.json +7 -2
  234. package/dist/schemas/workflow_operation.schema.json +5 -5
  235. package/dist/schemas/wowok_buildin_info.output.json +140 -3
  236. package/dist/schemas/wowok_buildin_info.schema.json +2 -2
  237. package/dist/tools/handlers/benchmark-migration.d.ts +66 -1
  238. package/dist/tools/handlers/benchmark-migration.js +1 -1
  239. package/dist/tools/handlers/config.js +1 -1
  240. package/dist/tools/handlers/dispatch-expectations.d.ts +0 -1
  241. package/dist/tools/handlers/dispatch-expectations.js +1 -1
  242. package/dist/tools/handlers/industry-pack.js +1 -1
  243. package/dist/tools/handlers/intent-radar.js +1 -1
  244. package/dist/tools/handlers/keeper.d.ts +1 -1
  245. package/dist/tools/handlers/local.js +1 -1
  246. package/dist/tools/handlers/onchain.d.ts +12 -0
  247. package/dist/tools/handlers/onchain.js +1 -1
  248. package/dist/tools/handlers/query.d.ts +1 -0
  249. package/dist/tools/handlers/query.js +1 -1
  250. package/dist/tools/handlers/review-chain.js +1 -1
  251. package/dist/tools/handlers/schema-query.js +1 -1
  252. package/dist/tools/handlers/workflow.js +1 -1
  253. package/dist/tools/index.js +1 -1
  254. package/dist/tools/move-fn-index.gen.js +1 -1
  255. package/dist/tools/registry/agent.js +1 -1
  256. package/dist/tools/registry/business.js +1 -1
  257. package/dist/tools/registry/files.js +1 -1
  258. package/dist/tools/registry/query.js +1 -1
  259. package/dist/tools/rules-hook.js +1 -1
  260. package/dist/tools/upgrade-check.d.ts +23 -0
  261. package/dist/tools/upgrade-check.js +1 -1
  262. package/dist/tools/wip-deploy-assist.d.ts +6 -0
  263. package/dist/tools/wip-deploy-assist.js +1 -1
  264. package/dist/tools/wrap.js +1 -1
  265. package/package.json +2 -2
@@ -389,6 +389,10 @@
389
389
  "hasNextPage"
390
390
  ],
391
391
  "additionalProperties": false
392
+ },
393
+ "_balance_scope_note": {
394
+ "description": "Semantic scope note for the balance figure: the total is aggregation-only; independently owned Coin objects may exist outside it. Follow the note (transaction digest or coin-objects query) before concluding funds arrived.",
395
+ "type": "string"
392
396
  }
393
397
  },
394
398
  "additionalProperties": false,
@@ -942,7 +946,7 @@
942
946
  "description": "vecvecu8"
943
947
  }
944
948
  ],
945
- "description": "User available value type (number or string, e.g., 6 or 'U64' or 'u64')"
949
+ "description": "User available value type (number, numeric string, or name — e.g., 6, '6', 'U64', 'u64')"
946
950
  },
947
951
  {
948
952
  "type": "number",
@@ -2542,7 +2546,7 @@
2542
2546
  "GuardIdentifier"
2543
2547
  ],
2544
2548
  "additionalProperties": false,
2545
- "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type."
2549
+ "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type. ALLOCATION rails only — the REWARD claim rail requires recipient == the transaction sender (abort 14), so a GuardIdentifier recipient on reward.guard_add resolves to the submitted Order and is structurally unpayable; the tool gate rejects it (crs-mn-261015 F-12)."
2546
2550
  },
2547
2551
  {
2548
2552
  "type": "object",
@@ -2581,7 +2585,7 @@
2581
2585
  "Signer"
2582
2586
  ],
2583
2587
  "additionalProperties": false,
2584
- "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds."
2588
+ "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds. On the REWARD claim rail this is the CANONICAL recipient (the claim entry requires recipient == the tx sender)."
2585
2589
  }
2586
2590
  ],
2587
2591
  "description": "Recipient of this allocation. Three forms — each resolves the address at a DIFFERENT time:\n• { GuardIdentifier: u8 } — DYNAMIC address resolved from Passport at alloc() time (from the passport's submission record). Use 0 for Order owner in Service-integrated mode (Customer who created the Order). The identifier must match a Guard table entry with b_submission=true. If Passport has no matching submission, contract aborts with E_VERIFY_FAILED. Use when the recipient address is not known at config time and must be supplied via Guard submission data.\n• { Entity: { name_or_address: '...' } } — FIXED address resolved via LocalMark at SDK build time (passed to contract as a literal address). Use for known recipients (e.g., 'turo_host', or a Treasury object address). Use when the recipient is a stable, known address (e.g., operator receives rent, platform fee to treasury).\n• 'Signer' — the transaction sender at the time of the alloc() call (tx_context::sender). RESOLVED AT EXECUTION TIME, not at config time. For refunds: the customer (Order owner) must call alloc_by_guard THEMSELVES so that tx_context::sender resolves to THEIR address — if the operator calls alloc_by_guard, the operator becomes the recipient (Signer = operator), NOT the customer. Use when the recipient is whoever submits the allocation transaction (e.g., customer receives refund)."
@@ -3078,7 +3082,7 @@
3078
3082
  "type": "null"
3079
3083
  }
3080
3084
  ],
3081
- "description": "Buyer-recorded credential that the required information was delivered via Wowok Messenger: the merchant's IM user address (resolved from the Service's Contact) or a WTS Proof object id (on-chain delivery proof embedding that IM address and timestamp)."
3085
+ "description": "Buyer-recorded credential that the required information was delivered via Wowok Messenger: the merchant's IM user address (resolved from the Service's Contact) or a WTS Proof object id (on-chain delivery proof embedding that IM address and timestamp). ATTESTATION-ONLY: the value is self-attested by the buyer, has no on-chain readback, and MUST NOT be used as a gate condition."
3082
3086
  },
3083
3087
  "time": {
3084
3088
  "anyOf": [
@@ -3705,7 +3709,7 @@
3705
3709
  "description": "vecvecu8"
3706
3710
  }
3707
3711
  ],
3708
- "description": "User available value type (number or string, e.g., 6 or 'U64' or 'u64')"
3712
+ "description": "User available value type (number, numeric string, or name — e.g., 6, '6', 'U64', 'u64')"
3709
3713
  },
3710
3714
  {
3711
3715
  "type": "number",
@@ -4817,7 +4821,7 @@
4817
4821
  "GuardIdentifier"
4818
4822
  ],
4819
4823
  "additionalProperties": false,
4820
- "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type."
4824
+ "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type. ALLOCATION rails only — the REWARD claim rail requires recipient == the transaction sender (abort 14), so a GuardIdentifier recipient on reward.guard_add resolves to the submitted Order and is structurally unpayable; the tool gate rejects it (crs-mn-261015 F-12)."
4821
4825
  },
4822
4826
  {
4823
4827
  "type": "object",
@@ -4856,7 +4860,7 @@
4856
4860
  "Signer"
4857
4861
  ],
4858
4862
  "additionalProperties": false,
4859
- "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds."
4863
+ "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds. On the REWARD claim rail this is the CANONICAL recipient (the claim entry requires recipient == the tx sender)."
4860
4864
  }
4861
4865
  ],
4862
4866
  "description": "Recipient of this allocation. Three forms — each resolves the address at a DIFFERENT time:\n• { GuardIdentifier: u8 } — DYNAMIC address resolved from Passport at alloc() time (from the passport's submission record). Use 0 for Order owner in Service-integrated mode (Customer who created the Order). The identifier must match a Guard table entry with b_submission=true. If Passport has no matching submission, contract aborts with E_VERIFY_FAILED. Use when the recipient address is not known at config time and must be supplied via Guard submission data.\n• { Entity: { name_or_address: '...' } } — FIXED address resolved via LocalMark at SDK build time (passed to contract as a literal address). Use for known recipients (e.g., 'turo_host', or a Treasury object address). Use when the recipient is a stable, known address (e.g., operator receives rent, platform fee to treasury).\n• 'Signer' — the transaction sender at the time of the alloc() call (tx_context::sender). RESOLVED AT EXECUTION TIME, not at config time. For refunds: the customer (Order owner) must call alloc_by_guard THEMSELVES so that tx_context::sender resolves to THEIR address — if the operator calls alloc_by_guard, the operator becomes the recipient (Signer = operator), NOT the customer. Use when the recipient is whoever submits the allocation transaction (e.g., customer receives refund)."
@@ -5255,7 +5259,7 @@
5255
5259
  "GuardIdentifier"
5256
5260
  ],
5257
5261
  "additionalProperties": false,
5258
- "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type."
5262
+ "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type. ALLOCATION rails only — the REWARD claim rail requires recipient == the transaction sender (abort 14), so a GuardIdentifier recipient on reward.guard_add resolves to the submitted Order and is structurally unpayable; the tool gate rejects it (crs-mn-261015 F-12)."
5259
5263
  },
5260
5264
  {
5261
5265
  "type": "object",
@@ -5294,10 +5298,10 @@
5294
5298
  "Signer"
5295
5299
  ],
5296
5300
  "additionalProperties": false,
5297
- "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds."
5301
+ "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds. On the REWARD claim rail this is the CANONICAL recipient (the claim entry requires recipient == the tx sender)."
5298
5302
  }
5299
5303
  ],
5300
- "description": "Recipient ID. Three forms:\n - {GuardIdentifier: u8} — DYNAMIC address resolved from Passport at alloc() time\n - {Entity: {name_or_address: 'mark_name'}} — FIXED static address via LocalMark (recommended)\n - {Signer: 'signer'} — transaction sender at alloc() time (e.g. self-refund; customer must call alloc_by_guard themselves)"
5304
+ "description": "Recipient ID. Three forms:\n - {GuardIdentifier: u8} — DYNAMIC address resolved from Passport at alloc() time (Allocation rails only; structurally unpayable on reward.guard_add — abort 14)\n - {Entity: {name_or_address: 'mark_name'}} — FIXED static address via LocalMark (recommended)\n - {Signer: 'signer'} — transaction sender at alloc() time (e.g. self-refund; customer must call alloc_by_guard themselves; canonical on reward claim rails)"
5301
5305
  },
5302
5306
  "amount": {
5303
5307
  "oneOf": [
@@ -5403,7 +5407,7 @@
5403
5407
  "type": "null"
5404
5408
  }
5405
5409
  ],
5406
- "description": "Used to lock whether new Reward Guards can be added. If not specified, new Reward Guards can be added at any time; if expiration time is specified, new Reward Guards cannot be added before expiration."
5410
+ "description": "Used to lock whether new Reward Guards can be added AND whether the balance can be withdrawn. If not specified, new Reward Guards can be added at any time and the balance can be withdrawn; if expiration time is specified, neither new Reward Guards nor balance withdrawal is possible before expiration."
5407
5411
  },
5408
5412
  "record_count": {
5409
5413
  "type": "number",
@@ -5758,6 +5762,7 @@
5758
5762
  "description": "Source of data ID when writing data. If None, user must specify the ID separately; if Clock, data ID is current timestamp; if Signer, data ID is user ID."
5759
5763
  },
5760
5764
  "value_type": {
5765
+ "description": "Type of data value when writing data. Note: 19 (Value) is an internal dynamic type for guard expressions and is NOT accepted here.",
5761
5766
  "anyOf": [
5762
5767
  {
5763
5768
  "type": "number",
@@ -6044,8 +6049,7 @@
6044
6049
  "const": "vecvecu8",
6045
6050
  "description": "vecvecu8"
6046
6051
  }
6047
- ],
6048
- "description": "Type of data value when writing data. Note: 19 (Value) is an internal dynamic type for guard expressions and is NOT accepted here."
6052
+ ]
6049
6053
  }
6050
6054
  },
6051
6055
  "required": [
@@ -6329,6 +6333,7 @@
6329
6333
  "description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
6330
6334
  },
6331
6335
  "value_type": {
6336
+ "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.",
6332
6337
  "anyOf": [
6333
6338
  {
6334
6339
  "type": "number",
@@ -6615,11 +6620,10 @@
6615
6620
  "const": "vecvecu8",
6616
6621
  "description": "vecvecu8"
6617
6622
  }
6618
- ],
6619
- "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."
6623
+ ]
6620
6624
  },
6621
6625
  "value": {
6622
- "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).",
6626
+ "description": "The actual value data. Format depends on `value_type`:\nTYPE-CLASS SPLIT (F03): scalar value_types (Bool/Address/String/U8..U256) take ONE scalar value (boolean/address string/name/string/number); Vec* value_types (VecBool/VecAddress/VecString/VecU8..VecU256) take a REAL JSON ARRAY of elements — a string (even a Python-repr-looking \"[a, b]\") fails serialization with 'value_type=10 (array) requires a array value'. The historical 'static values must be strings' rule applied to SCALARS only.\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nPROTOCOL SLOT 254 (once, b_submission Address): the submitted value MUST be the ORDER address bound to the operation (payment_info.for_object) — NEVER the Progress/Machine/Arb object the call is advancing. The chain asserts submission(254) == the order address; a Progress address fails the task binding and the forward aborts.\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission).",
6623
6627
  "anyOf": [
6624
6628
  {
6625
6629
  "type": "boolean"
@@ -7072,7 +7076,7 @@
7072
7076
  "GuardIdentifier"
7073
7077
  ],
7074
7078
  "additionalProperties": false,
7075
- "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type."
7079
+ "description": "Guard verified recipient ID. Get recipient ID from specified data index in Guard table. The ID must be of address type. ALLOCATION rails only — the REWARD claim rail requires recipient == the transaction sender (abort 14), so a GuardIdentifier recipient on reward.guard_add resolves to the submitted Order and is structurally unpayable; the tool gate rejects it (crs-mn-261015 F-12)."
7076
7080
  },
7077
7081
  {
7078
7082
  "type": "object",
@@ -7111,10 +7115,10 @@
7111
7115
  "Signer"
7112
7116
  ],
7113
7117
  "additionalProperties": false,
7114
- "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds."
7118
+ "description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds. On the REWARD claim rail this is the CANONICAL recipient (the claim entry requires recipient == the tx sender)."
7115
7119
  }
7116
7120
  ],
7117
- "description": "Recipient ID. Three forms:\n - {GuardIdentifier: u8} — DYNAMIC address resolved from Passport at alloc() time\n - {Entity: {name_or_address: 'mark_name'}} — FIXED static address via LocalMark (recommended)\n - {Signer: 'signer'} — transaction sender at alloc() time (e.g. self-refund; customer must call alloc_by_guard themselves)"
7121
+ "description": "Recipient ID. Three forms:\n - {GuardIdentifier: u8} — DYNAMIC address resolved from Passport at alloc() time (Allocation rails only; structurally unpayable on reward.guard_add — abort 14)\n - {Entity: {name_or_address: 'mark_name'}} — FIXED static address via LocalMark (recommended)\n - {Signer: 'signer'} — transaction sender at alloc() time (e.g. self-refund; customer must call alloc_by_guard themselves; canonical on reward claim rails)"
7118
7122
  },
7119
7123
  "amount": {
7120
7124
  "anyOf": [
@@ -7773,7 +7777,7 @@
7773
7777
  "description": "vecvecu8"
7774
7778
  }
7775
7779
  ],
7776
- "description": "User available value type (number or string, e.g., 6 or 'U64' or 'u64')"
7780
+ "description": "User available value type (number, numeric string, or name — e.g., 6, '6', 'U64', 'u64')"
7777
7781
  },
7778
7782
  {
7779
7783
  "type": "number",
@@ -10128,7 +10132,7 @@
10128
10132
  "description": "vecvecu8"
10129
10133
  }
10130
10134
  ],
10131
- "description": "User available value type (number or string, e.g., 6 or 'U64' or 'u64')"
10135
+ "description": "User available value type (number, numeric string, or name — e.g., 6, '6', 'U64', 'u64')"
10132
10136
  },
10133
10137
  {
10134
10138
  "type": "number",
@@ -10863,7 +10867,7 @@
10863
10867
  "type": "null"
10864
10868
  }
10865
10869
  ],
10866
- "description": "About address. e.g., address of the entity being proved"
10870
+ "description": "About binding (K3 contract): the counterparty ACCOUNT address (address first byte = account type) or a Proof object address (first byte = Proof type) — a messenger contact record, NOT a business-object reference and never a guard decision condition"
10867
10871
  },
10868
10872
  "signer": {
10869
10873
  "type": "string",
@@ -11550,7 +11554,7 @@
11550
11554
  "description": "vecvecu8"
11551
11555
  }
11552
11556
  ],
11553
- "description": "User available value type (number or string, e.g., 6 or 'U64' or 'u64')"
11557
+ "description": "User available value type (number, numeric string, or name — e.g., 6, '6', 'U64', 'u64')"
11554
11558
  },
11555
11559
  {
11556
11560
  "type": "number",
@@ -12539,7 +12543,7 @@
12539
12543
  "description": "vecvecu8"
12540
12544
  }
12541
12545
  ],
12542
- "description": "User available value type (number or string, e.g., 6 or 'U64' or 'u64')"
12546
+ "description": "User available value type (number, numeric string, or name — e.g., 6, '6', 'U64', 'u64')"
12543
12547
  },
12544
12548
  {
12545
12549
  "type": "number",
@@ -14896,7 +14900,7 @@
14896
14900
  "description": "vecvecu8"
14897
14901
  }
14898
14902
  ],
14899
- "description": "User available value type (number or string, e.g., 6 or 'U64' or 'u64')"
14903
+ "description": "User available value type (number, numeric string, or name — e.g., 6, '6', 'U64', 'u64')"
14900
14904
  },
14901
14905
  {
14902
14906
  "type": "number",
@@ -15566,7 +15570,7 @@
15566
15570
  "type": "string"
15567
15571
  },
15568
15572
  "gas_used": {
15569
- "description": "Total gas used (string, BigInt)",
15573
+ "description": "Total gas used (string, BigInt). F52: the node can report this NEGATIVE for some batch txs (e.g. batch-destroy) — a signed value is a direction marker, not a refund; take the absolute value when summing per-tx fees for reconciliation",
15570
15574
  "type": "string"
15571
15575
  },
15572
15576
  "gas_budget": {
@@ -15811,7 +15815,7 @@
15811
15815
  "type": "string"
15812
15816
  },
15813
15817
  "gas_used": {
15814
- "description": "Gas used (string)",
15818
+ "description": "Gas used (string). F52: may be reported NEGATIVE for some batch txs — take the absolute value when reconciling fees",
15815
15819
  "type": "string"
15816
15820
  },
15817
15821
  "objects_touched": {
@@ -15929,7 +15933,7 @@
15929
15933
  "type": "string"
15930
15934
  },
15931
15935
  "gas_used": {
15932
- "description": "Gas used (string)",
15936
+ "description": "Gas used (string). F52: may be reported NEGATIVE for some batch txs — take the absolute value when reconciling fees",
15933
15937
  "type": "string"
15934
15938
  },
15935
15939
  "objects_touched": {
@@ -16467,6 +16471,63 @@
16467
16471
  ],
16468
16472
  "description": "FIRST allocator's sharing rows — the normal payout path. null when no allocators are configured."
16469
16473
  },
16474
+ "compensation_fund_coverage": {
16475
+ "anyOf": [
16476
+ {
16477
+ "type": "object",
16478
+ "properties": {
16479
+ "fund_balance": {
16480
+ "type": "string",
16481
+ "description": "Raw smallest units currently in the Service's compensation fund."
16482
+ },
16483
+ "fund_balance_display": {
16484
+ "anyOf": [
16485
+ {
16486
+ "type": "string"
16487
+ },
16488
+ {
16489
+ "type": "null"
16490
+ }
16491
+ ]
16492
+ },
16493
+ "required_for_this_basket": {
16494
+ "type": "string",
16495
+ "description": "Raw smallest units: 3 x total_pay — the per-order payout requirement this basket must meet at order creation."
16496
+ },
16497
+ "required_display": {
16498
+ "anyOf": [
16499
+ {
16500
+ "type": "string"
16501
+ },
16502
+ {
16503
+ "type": "null"
16504
+ }
16505
+ ]
16506
+ },
16507
+ "covered": {
16508
+ "type": "boolean",
16509
+ "description": "True when the fund covers the per-order requirement; false means no fund (a disclosed merchant choice) or an under-funded Service."
16510
+ },
16511
+ "note": {
16512
+ "type": "string"
16513
+ }
16514
+ },
16515
+ "required": [
16516
+ "fund_balance",
16517
+ "fund_balance_display",
16518
+ "required_for_this_basket",
16519
+ "required_display",
16520
+ "covered",
16521
+ "note"
16522
+ ],
16523
+ "additionalProperties": false
16524
+ },
16525
+ {
16526
+ "type": "null"
16527
+ }
16528
+ ],
16529
+ "description": "Per-order compensation-fund coverage for THIS basket (b6-11): the enforcement moved off the publish gate to the buy path — a fund-carrying Service below 3x the ORDER amount blocks order creation (compensation_fund_below_order_ceiling, no money moves), so the quote surfaces the same arithmetic BEFORE ordering. fund = 0 is a disclosed no-protection choice, never blocked. The chain-side claim-time abort (code 27, claim NOT consumed) remains the backstop."
16530
+ },
16470
16531
  "reward_terms": {
16471
16532
  "anyOf": [
16472
16533
  {
@@ -16638,10 +16699,11 @@
16638
16699
  "total_pay",
16639
16700
  "discount",
16640
16701
  "allocation_preview",
16702
+ "compensation_fund_coverage",
16641
16703
  "reward_terms"
16642
16704
  ],
16643
16705
  "additionalProperties": false,
16644
- "description": "ServiceQuote (basket prices, total_pay, the allocator fee-split preview and reward terms)."
16706
+ "description": "ServiceQuote (basket prices, total_pay, the allocator fee-split preview, per-order compensation-fund coverage and reward terms)."
16645
16707
  }
16646
16708
  },
16647
16709
  "required": [
@@ -17123,14 +17185,13 @@
17123
17185
  "description": "Input path inside the tool data payload."
17124
17186
  },
17125
17187
  "reason": {
17126
- "type": "string",
17127
- "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer)."
17188
+ "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
17189
+ "type": "string"
17128
17190
  }
17129
17191
  },
17130
17192
  "required": [
17131
17193
  "tool",
17132
- "path",
17133
- "reason"
17194
+ "path"
17134
17195
  ],
17135
17196
  "additionalProperties": false
17136
17197
  }
@@ -17570,14 +17631,13 @@
17570
17631
  "description": "Input path inside the tool data payload."
17571
17632
  },
17572
17633
  "reason": {
17573
- "type": "string",
17574
- "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer)."
17634
+ "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
17635
+ "type": "string"
17575
17636
  }
17576
17637
  },
17577
17638
  "required": [
17578
17639
  "tool",
17579
- "path",
17580
- "reason"
17640
+ "path"
17581
17641
  ],
17582
17642
  "additionalProperties": false
17583
17643
  }
@@ -19110,14 +19170,13 @@
19110
19170
  "description": "Input path inside the tool data payload."
19111
19171
  },
19112
19172
  "reason": {
19113
- "type": "string",
19114
- "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer)."
19173
+ "description": "Chain-authoritative routing reason, including the Guard passport requirement when the forward binds one, and the standalone-Progress limitation for namedOperator='' forwards (abort 8 — no order payer). May be absent when the caller requested response_level 'compact', which trims templated routing prose from NON-recommended options (F44/docs#49).",
19174
+ "type": "string"
19115
19175
  }
19116
19176
  },
19117
19177
  "required": [
19118
19178
  "tool",
19119
- "path",
19120
- "reason"
19179
+ "path"
19121
19180
  ],
19122
19181
  "additionalProperties": false
19123
19182
  },
@@ -22895,7 +22954,7 @@
22895
22954
  "description": "vecvecu8"
22896
22955
  }
22897
22956
  ],
22898
- "description": "User available value type (number or string, e.g., 6 or 'U64' or 'u64')"
22957
+ "description": "User available value type (number, numeric string, or name — e.g., 6, '6', 'U64', 'u64')"
22899
22958
  },
22900
22959
  {
22901
22960
  "type": "number",
@@ -23076,7 +23135,7 @@
23076
23135
  "type": "string"
23077
23136
  }
23078
23137
  ],
23079
- "description": "ID or name of the wowok object data query instruction. Can be a numeric ID (e.g., 1001) or a name string (e.g., 'permission.description'). Name matching is case-insensitive."
23138
+ "description": "ID or name of the wowok object data query instruction. Can be a numeric ID (e.g., 1001) or a name string (e.g., 'permission.description'). Name matching is case-insensitive. STRONGLY PREFER the NAME form: a numeric ID is resolved VERBATIM at runtime, so a wrong-but-existing ID silently checks a DIFFERENT field and only fails at Guard trigger time (abort 7, no leg named) — a wrong name fails loudly at validation here instead (rndb58d8d 04-ROOTCAUSE-A A2). If you only know the field, list the catalog first via schema_query action='get_guard_queries'."
23080
23139
  },
23081
23140
  "object": {
23082
23141
  "type": "object",
@@ -24701,13 +24760,26 @@
24701
24760
  "minimum": 0,
24702
24761
  "maximum": 255,
24703
24762
  "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
24763
+ },
24764
+ "convert_witness": {
24765
+ "description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
24766
+ "anyOf": [
24767
+ {
24768
+ "type": "integer",
24769
+ "minimum": -9007199254740991,
24770
+ "maximum": 9007199254740991
24771
+ },
24772
+ {
24773
+ "type": "string"
24774
+ }
24775
+ ]
24704
24776
  }
24705
24777
  },
24706
24778
  "required": [
24707
24779
  "identifier"
24708
24780
  ],
24709
24781
  "additionalProperties": false,
24710
- "description": "Reference to the Progress object in the Guard table (must be Address type)."
24782
+ "description": "Reference to the queried object in the Guard table: a Progress address, or an Order address when convert_witness is set."
24711
24783
  },
24712
24784
  "where": {
24713
24785
  "type": "object",
@@ -24758,6 +24830,91 @@
24758
24830
  "additionalProperties": false,
24759
24831
  "description": "Returns U64. Finds the index of the first or last history entry matching the filter conditions. Returns the history index (U64) if found. Throws error if no matching entry is found (Guard validation fails)."
24760
24832
  },
24833
+ {
24834
+ "type": "object",
24835
+ "properties": {
24836
+ "type": {
24837
+ "type": "string",
24838
+ "const": "query_progress_history_time"
24839
+ },
24840
+ "object": {
24841
+ "type": "object",
24842
+ "properties": {
24843
+ "identifier": {
24844
+ "type": "integer",
24845
+ "minimum": 0,
24846
+ "maximum": 255,
24847
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
24848
+ },
24849
+ "convert_witness": {
24850
+ "description": "Optional witness to derive the Progress object from the submitted Order (e.g. 'OrderProgress'): the table object is the ORDER address and the chain resolves its per-order Progress — one Guard serves every order. Omit when the table object is a concrete Progress address.",
24851
+ "anyOf": [
24852
+ {
24853
+ "type": "integer",
24854
+ "minimum": -9007199254740991,
24855
+ "maximum": 9007199254740991
24856
+ },
24857
+ {
24858
+ "type": "string"
24859
+ }
24860
+ ]
24861
+ }
24862
+ },
24863
+ "required": [
24864
+ "identifier"
24865
+ ],
24866
+ "additionalProperties": false,
24867
+ "description": "Reference to the queried object in the Guard table: a Progress address, or an Order address when convert_witness is set."
24868
+ },
24869
+ "where": {
24870
+ "type": "object",
24871
+ "properties": {
24872
+ "node": {
24873
+ "description": "Optional filter: node name string to match.",
24874
+ "type": "string"
24875
+ },
24876
+ "nextNode": {
24877
+ "description": "Optional filter: next node name string to match — the canonical time anchor is where:{nextNode:'<node>'}, find:'last', which returns the IMMUTABLE moment that node was entered (1280 history.time is written once on entry and never rewritten, unlike the 1272 current-time read which refreshes on re-entry). An empty where {} with find:'last' returns the entry time of the CURRENT node — safe for node-SET gates.",
24878
+ "type": "string"
24879
+ },
24880
+ "timeMin": {
24881
+ "description": "Optional filter: minimum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
24882
+ "type": "string"
24883
+ },
24884
+ "timeMax": {
24885
+ "description": "Optional filter: maximum timestamp (inclusive) for history entry time. Use string to represent U64 value.",
24886
+ "type": "string"
24887
+ },
24888
+ "indexMin": {
24889
+ "description": "Optional filter: minimum history index (inclusive) to search within. Use string to represent U64 value.",
24890
+ "type": "string"
24891
+ },
24892
+ "indexMax": {
24893
+ "description": "Optional filter: maximum history index (inclusive) to search within. Use string to represent U64 value.",
24894
+ "type": "string"
24895
+ }
24896
+ },
24897
+ "additionalProperties": false,
24898
+ "description": "Filter conditions for the progress history time query."
24899
+ },
24900
+ "find": {
24901
+ "type": "string",
24902
+ "enum": [
24903
+ "first",
24904
+ "last"
24905
+ ],
24906
+ "description": "'first' finds the earliest matching history entry, 'last' finds the most recent matching history entry."
24907
+ }
24908
+ },
24909
+ "required": [
24910
+ "type",
24911
+ "object",
24912
+ "where",
24913
+ "find"
24914
+ ],
24915
+ "additionalProperties": false,
24916
+ "description": "Returns U64. Returns the TIMESTAMP (ms) of the first or last history entry matching the filter conditions — the immutable entry moment of a node (query 1280 progress.history.time). Preferred over query 1272 progress.current_time for time anchors: 1272 reads the node's CURRENT time and refreshes on re-entry (drift-prone), while 1280 is written once on entering next_node and never rewritten. Throws error if no matching entry is found (Guard validation fails)."
24917
+ },
24761
24918
  {
24762
24919
  "type": "object",
24763
24920
  "properties": {
@@ -25052,6 +25209,73 @@
25052
25209
  "additionalProperties": false,
25053
25210
  "description": "Returns U64. Counts the number of retained submissions within the specified forward operation."
25054
25211
  },
25212
+ {
25213
+ "type": "object",
25214
+ "properties": {
25215
+ "type": {
25216
+ "type": "string",
25217
+ "const": "query_progress_history_session_forward_retained_submission_value"
25218
+ },
25219
+ "object": {
25220
+ "type": "object",
25221
+ "properties": {
25222
+ "identifier": {
25223
+ "type": "integer",
25224
+ "minimum": 0,
25225
+ "maximum": 255,
25226
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails such as full refunds)."
25227
+ }
25228
+ },
25229
+ "required": [
25230
+ "identifier"
25231
+ ],
25232
+ "additionalProperties": false,
25233
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
25234
+ },
25235
+ "historyIdx": {
25236
+ "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
25237
+ "allOf": [
25238
+ {
25239
+ "$ref": "#/definitions/__schema1"
25240
+ }
25241
+ ]
25242
+ },
25243
+ "sessionIdx": {
25244
+ "description": "GuardNode that returns the session index (U64 type) within the history entry. Typically an 'identifier' node referencing a U64 value from the Guard table.",
25245
+ "allOf": [
25246
+ {
25247
+ "$ref": "#/definitions/__schema1"
25248
+ }
25249
+ ]
25250
+ },
25251
+ "forwardIdx": {
25252
+ "description": "GuardNode that returns the forward operation index (U64 type) within the session. Typically an 'identifier' node referencing a U64 value from the Guard table.",
25253
+ "allOf": [
25254
+ {
25255
+ "$ref": "#/definitions/__schema1"
25256
+ }
25257
+ ]
25258
+ },
25259
+ "identifier": {
25260
+ "description": "GuardNode that returns the submission identifier (U8 type) — which retained submission of the forward to read. Typically an 'identifier' node referencing a U8 value from the Guard table.",
25261
+ "allOf": [
25262
+ {
25263
+ "$ref": "#/definitions/__schema1"
25264
+ }
25265
+ ]
25266
+ }
25267
+ },
25268
+ "required": [
25269
+ "type",
25270
+ "object",
25271
+ "historyIdx",
25272
+ "sessionIdx",
25273
+ "forwardIdx",
25274
+ "identifier"
25275
+ ],
25276
+ "additionalProperties": false,
25277
+ "description": "Returns VecU8 (the ONLY history query that does not return U64). Value of the specified retained submission of a HISTORY record (query 1281) — the history-side counterpart of the ACTIVE-SESSION-ONLY 1268 read, which goes blind once the session migrates into history. Use 1274/1275 to discover the history/session/forward indexes first. Throws error when the record carries no submission for the identifier (Guard validation fails)."
25278
+ },
25055
25279
  {
25056
25280
  "type": "object",
25057
25281
  "properties": {
@@ -1098,7 +1098,7 @@
1098
1098
  "query_type"
1099
1099
  ],
1100
1100
  "additionalProperties": false,
1101
- "description": "ONE-CALL detail-page panorama for Progress / Demand / Order / Arb / Repository / Proof objects (client panorama family): discriminated `object_type` + head (name/tags/description) + the object's own typed fields + type-specific extras (Demand presenters from the GLOBAL tx table, Progress session/forwards, Arb votes & propositions, Repository policies, Proof anchored root + WTS cross-check). Read-only."
1101
+ "description": "ONE-CALL detail-page panorama for Progress / Demand / Order / Allocation / Arb / Repository / Proof objects (client panorama family): discriminated `object_type` + head (name/tags/description) + the object's own typed fields + type-specific extras (Demand presenters from the GLOBAL tx table, Progress session/forwards, Order fund state, Allocation pool balance + per-rail resolved recipients + Payment children, Arb votes & propositions, Repository policies, Proof anchored root + WTS cross-check). Read-only."
1102
1102
  },
1103
1103
  {
1104
1104
  "type": "object",