@wowok/agent-mcp 3.4.2 → 3.4.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 (308) hide show
  1. package/dist/.build-stamp.json +5 -0
  2. package/dist/chain-semantics/composition-truth.js +1 -1
  3. package/dist/chain-semantics/eval-order.js +1 -1
  4. package/dist/chain-semantics/field-capability.js +1 -1
  5. package/dist/chain-semantics/freeze-map.js +1 -1
  6. package/dist/chain-semantics/fund-flow.js +1 -1
  7. package/dist/chain-semantics/guard-verbs.js +1 -1
  8. package/dist/chain-semantics/object-graph.js +1 -1
  9. package/dist/composition/audit.js +1 -1
  10. package/dist/composition/compile.d.ts +10 -3
  11. package/dist/composition/compile.js +1 -1
  12. package/dist/composition/emit-phases.d.ts +30 -2
  13. package/dist/composition/emit-phases.js +1 -1
  14. package/dist/composition/guard-fill.d.ts +8 -0
  15. package/dist/composition/guard-fill.js +1 -1
  16. package/dist/composition/inflight.js +1 -1
  17. package/dist/composition/input-normalize.js +1 -1
  18. package/dist/composition/materialize.d.ts +2 -0
  19. package/dist/composition/materialize.js +1 -1
  20. package/dist/composition/mode-gates.js +1 -1
  21. package/dist/composition/param-disclosure.js +1 -1
  22. package/dist/composition/plan-retry-ledger.d.ts +16 -0
  23. package/dist/composition/plan-retry-ledger.js +1 -1
  24. package/dist/composition/plan.d.ts +15 -1
  25. package/dist/composition/plan.js +1 -1
  26. package/dist/config/config-audit.spec.js +1 -1
  27. package/dist/config/judgment.d.ts +5 -0
  28. package/dist/config/judgment.js +1 -1
  29. package/dist/evaluation/builtins/arbitration-score.d.ts +1 -0
  30. package/dist/evaluation/builtins/arbitration-score.js +1 -1
  31. package/dist/evaluation/builtins/demand-match.js +1 -1
  32. package/dist/evaluation/builtins/graph-service.d.ts +8 -0
  33. package/dist/evaluation/builtins/graph-service.js +1 -1
  34. package/dist/evaluation/capability.d.ts +9 -0
  35. package/dist/evaluation/engine.js +1 -1
  36. package/dist/evaluation/extract.d.ts +9 -1
  37. package/dist/evaluation/extract.js +1 -1
  38. package/dist/evaluation/match-operation.js +1 -1
  39. package/dist/evaluation/match-policy.d.ts +5 -3
  40. package/dist/evaluation/match-policy.js +1 -1
  41. package/dist/evaluation/standards.d.ts +1 -0
  42. package/dist/evaluation/standards.js +1 -1
  43. package/dist/evaluation/structured-lines.js +1 -1
  44. package/dist/evaluation/types.d.ts +1 -0
  45. package/dist/extensions/capability.js +1 -1
  46. package/dist/harness/recover.js +1 -1
  47. package/dist/index.js +1 -1
  48. package/dist/intent/types.d.ts +1 -1
  49. package/dist/intent/types.js +1 -1
  50. package/dist/knowledge/allocation-ledger.js +1 -1
  51. package/dist/knowledge/allocator-rail-verifier.d.ts +17 -1
  52. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  53. package/dist/knowledge/arb-fund-facts.d.ts +7 -0
  54. package/dist/knowledge/arb-fund-facts.js +1 -1
  55. package/dist/knowledge/arbitration-rail-verifier.d.ts +35 -0
  56. package/dist/knowledge/arbitration-rail-verifier.js +1 -0
  57. package/dist/knowledge/audit-rules.d.ts +11 -0
  58. package/dist/knowledge/audit-rules.js +1 -1
  59. package/dist/knowledge/baselines/judgment-baselines.json +1 -0
  60. package/dist/knowledge/baselines/rules/guard.json +7 -6
  61. package/dist/knowledge/baselines/rules/progress.json +4 -4
  62. package/dist/knowledge/baselines/rules/reward.json +118 -3
  63. package/dist/knowledge/builtin-templates.d.ts +3 -2
  64. package/dist/knowledge/builtin-templates.js +1 -1
  65. package/dist/knowledge/chain-query-registry.d.ts +14 -0
  66. package/dist/knowledge/chain-query-registry.js +1 -0
  67. package/dist/knowledge/event-semantics.js +1 -1
  68. package/dist/knowledge/fee-param-bindings.d.ts +2 -0
  69. package/dist/knowledge/fee-param-bindings.js +1 -1
  70. package/dist/knowledge/getting-started.js +1 -1
  71. package/dist/knowledge/guard-binding-table.js +1 -1
  72. package/dist/knowledge/guard-binding-verifier.d.ts +7 -0
  73. package/dist/knowledge/guard-binding-verifier.js +1 -1
  74. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  75. package/dist/knowledge/guard-design-patterns.js +1 -1
  76. package/dist/knowledge/guard-host-context.js +1 -1
  77. package/dist/knowledge/guard-lint.js +1 -1
  78. package/dist/knowledge/guard-node-gates.d.ts +3 -1
  79. package/dist/knowledge/guard-node-gates.js +1 -1
  80. package/dist/knowledge/guard-puzzle.js +1 -1
  81. package/dist/knowledge/guard-render.js +1 -1
  82. package/dist/knowledge/guard-risk.js +1 -1
  83. package/dist/knowledge/guard-templates.d.ts +2 -1
  84. package/dist/knowledge/guard-templates.js +1 -1
  85. package/dist/knowledge/guard-translation.js +1 -1
  86. package/dist/knowledge/index.d.ts +2 -0
  87. package/dist/knowledge/index.js +1 -1
  88. package/dist/knowledge/industry-registry.js +1 -1
  89. package/dist/knowledge/jsonrpc-enum.js +1 -1
  90. package/dist/knowledge/knob-docs.js +1 -1
  91. package/dist/knowledge/param-schema.d.ts +1 -1
  92. package/dist/knowledge/param-schema.js +1 -1
  93. package/dist/knowledge/param-tiers.d.ts +2 -0
  94. package/dist/knowledge/param-tiers.js +1 -1
  95. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -1
  96. package/dist/knowledge/pattern-resolutions.d.ts +2 -0
  97. package/dist/knowledge/pattern-resolutions.js +1 -1
  98. package/dist/knowledge/product-detail-source.d.ts +37 -0
  99. package/dist/knowledge/product-detail-source.js +1 -0
  100. package/dist/knowledge/product-doc-b5.d.ts +16 -0
  101. package/dist/knowledge/product-doc-b5.js +1 -0
  102. package/dist/knowledge/progress-ledger.js +1 -1
  103. package/dist/knowledge/projection.spec.js +1 -1
  104. package/dist/knowledge/publish-gate.d.ts +20 -0
  105. package/dist/knowledge/publish-gate.js +1 -0
  106. package/dist/knowledge/publish-readiness.d.ts +25 -0
  107. package/dist/knowledge/publish-readiness.js +1 -0
  108. package/dist/knowledge/publish-surface-contract.d.ts +16 -0
  109. package/dist/knowledge/publish-surface-contract.js +1 -0
  110. package/dist/knowledge/rail-exit-satisfiability.d.ts +25 -0
  111. package/dist/knowledge/rail-exit-satisfiability.js +1 -0
  112. package/dist/knowledge/reward-ledger.d.ts +1 -1
  113. package/dist/knowledge/reward-ledger.js +1 -1
  114. package/dist/knowledge/reward-risk.d.ts +1 -1
  115. package/dist/knowledge/reward-risk.js +1 -1
  116. package/dist/knowledge/service-ledger.d.ts +3 -1
  117. package/dist/knowledge/service-ledger.js +1 -1
  118. package/dist/knowledge/template-loader.d.ts +41 -2
  119. package/dist/knowledge/template-loader.js +1 -1
  120. package/dist/knowledge/template-registry.js +1 -1
  121. package/dist/knowledge/template-scanner.d.ts +17 -0
  122. package/dist/knowledge/template-scanner.js +1 -1
  123. package/dist/knowledge/workflow-guidance.d.ts +4 -0
  124. package/dist/knowledge/workflow-guidance.js +1 -1
  125. package/dist/monitor/MonitorLoop.js +1 -1
  126. package/dist/monitor/normalize.d.ts +1 -1
  127. package/dist/monitor/normalize.js +1 -1
  128. package/dist/monitor/types.js +1 -1
  129. package/dist/participation/game-context.js +1 -1
  130. package/dist/participation/radar-core.js +1 -1
  131. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  132. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  133. package/dist/playbooks/service-build/merchant-guide.d.ts +28 -3
  134. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  135. package/dist/playbooks/service-build/object-panorama.d.ts +4 -0
  136. package/dist/playbooks/service-build/object-panorama.js +1 -1
  137. package/dist/playbooks/service-build/participation-radar.js +1 -1
  138. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  139. package/dist/playbooks/service-build/service-panorama.js +1 -1
  140. package/dist/playbooks/service-build/service-quote.js +1 -1
  141. package/dist/review/index.js +1 -1
  142. package/dist/review/order.js +1 -1
  143. package/dist/safety/confirm-gate.js +1 -1
  144. package/dist/schema/benchmark-migration/index.d.ts +24 -0
  145. package/dist/schema/benchmark-migration/index.js +1 -1
  146. package/dist/schema/call/allocation.d.ts +11 -7
  147. package/dist/schema/call/allocation.js +1 -1
  148. package/dist/schema/call/arbitration.d.ts +4 -0
  149. package/dist/schema/call/arbitration.js +1 -1
  150. package/dist/schema/call/base.d.ts +28 -0
  151. package/dist/schema/call/base.js +1 -1
  152. package/dist/schema/call/bridge.d.ts +21 -0
  153. package/dist/schema/call/contact.d.ts +4 -0
  154. package/dist/schema/call/demand.d.ts +4 -0
  155. package/dist/schema/call/guard.d.ts +12 -0
  156. package/dist/schema/call/handler.d.ts +1 -0
  157. package/dist/schema/call/handler.js +1 -1
  158. package/dist/schema/call/machine.d.ts +16 -8
  159. package/dist/schema/call/normalize-error.d.ts +1 -0
  160. package/dist/schema/call/normalize-error.js +1 -0
  161. package/dist/schema/call/order.d.ts +7 -3
  162. package/dist/schema/call/order.js +1 -1
  163. package/dist/schema/call/payment.d.ts +7 -3
  164. package/dist/schema/call/permission.d.ts +4 -0
  165. package/dist/schema/call/personal.d.ts +4 -0
  166. package/dist/schema/call/progress.d.ts +4 -0
  167. package/dist/schema/call/progress.js +1 -1
  168. package/dist/schema/call/proof.d.ts +8 -0
  169. package/dist/schema/call/receipt.js +1 -1
  170. package/dist/schema/call/repository.d.ts +4 -0
  171. package/dist/schema/call/reward.d.ts +6 -2
  172. package/dist/schema/call/reward.js +1 -1
  173. package/dist/schema/call/semantic.d.ts +2 -2
  174. package/dist/schema/call/semantic.js +1 -1
  175. package/dist/schema/call/service.d.ts +6 -2
  176. package/dist/schema/call/treasury.d.ts +10 -6
  177. package/dist/schema/common/index.js +1 -1
  178. package/dist/schema/envelope-unify.d.ts +1 -0
  179. package/dist/schema/envelope-unify.js +1 -1
  180. package/dist/schema/evaluation/index.d.ts +43 -0
  181. package/dist/schema/evaluation/index.js +1 -1
  182. package/dist/schema/goal/index.d.ts +14 -2
  183. package/dist/schema/goal/planning.d.ts +18 -0
  184. package/dist/schema/goal/planning.js +1 -1
  185. package/dist/schema/intent-radar/index.d.ts +12 -0
  186. package/dist/schema/intent-radar/index.js +1 -1
  187. package/dist/schema/keeper/index.d.ts +1 -0
  188. package/dist/schema/local/index.d.ts +10 -0
  189. package/dist/schema/local/index.js +1 -1
  190. package/dist/schema/local/wip.js +1 -1
  191. package/dist/schema/messenger/index.d.ts +1 -0
  192. package/dist/schema/messenger/index.js +1 -1
  193. package/dist/schema/operations.d.ts +95 -12
  194. package/dist/schema/operations.js +1 -1
  195. package/dist/schema/persona/index.d.ts +22 -0
  196. package/dist/schema/query/bi.d.ts +28 -2
  197. package/dist/schema/query/bi.js +1 -1
  198. package/dist/schema/query/index.d.ts +67 -61
  199. package/dist/schema/query/index.js +1 -1
  200. package/dist/schema/schema-version.js +1 -1
  201. package/dist/schema/workflow/index.js +1 -1
  202. package/dist/schema-query-impl/index.d.ts +1 -0
  203. package/dist/schema-query-impl/index.js +1 -1
  204. package/dist/schemas/account_operation.output.json +2 -1
  205. package/dist/schemas/benchmark_migration_operation.output.json +74 -0
  206. package/dist/schemas/benchmark_migration_operation.schema.json +32 -0
  207. package/dist/schemas/bridge_operation.output.json +2 -1
  208. package/dist/schemas/bridge_operation.schema.json +40 -0
  209. package/dist/schemas/evaluation_operation.output.json +96 -0
  210. package/dist/schemas/evaluation_operation.schema.json +39 -0
  211. package/dist/schemas/goal_operation.schema.json +32 -0
  212. package/dist/schemas/guard2file.schema.json +8 -0
  213. package/dist/schemas/index.json +1 -1
  214. package/dist/schemas/intent_radar.output.json +10 -2
  215. package/dist/schemas/intent_radar.schema.json +5 -1
  216. package/dist/schemas/keeper_operation.output.json +2 -1
  217. package/dist/schemas/local_cache_operation.output.json +2 -1
  218. package/dist/schemas/local_history_operation.output.json +2 -1
  219. package/dist/schemas/local_info_operation.output.json +2 -1
  220. package/dist/schemas/local_mark_operation.output.json +2 -1
  221. package/dist/schemas/local_mark_operation.schema.json +10 -1
  222. package/dist/schemas/machineNode2file.schema.json +8 -0
  223. package/dist/schemas/messenger_operation.output.json +2 -1
  224. package/dist/schemas/messenger_operation.schema.json +2 -1
  225. package/dist/schemas/monitor_events.output.json +2 -1
  226. package/dist/schemas/monitor_subscription.output.json +2 -1
  227. package/dist/schemas/onchain_events.output.json +206 -13
  228. package/dist/schemas/onchain_events.schema.json +16 -0
  229. package/dist/schemas/onchain_operations.output.json +22 -3
  230. package/dist/schemas/onchain_operations.schema.json +971 -326
  231. package/dist/schemas/onchain_operations_allocation.schema.json +19 -12
  232. package/dist/schemas/onchain_operations_arbitration.schema.json +9 -1
  233. package/dist/schemas/onchain_operations_contact.schema.json +8 -0
  234. package/dist/schemas/onchain_operations_demand.schema.json +8 -0
  235. package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -0
  236. package/dist/schemas/onchain_operations_gen_proof.schema.json +8 -0
  237. package/dist/schemas/onchain_operations_guard.schema.json +654 -114
  238. package/dist/schemas/onchain_operations_machine.schema.json +11 -3
  239. package/dist/schemas/onchain_operations_order.schema.json +14 -11
  240. package/dist/schemas/onchain_operations_payment.schema.json +12 -9
  241. package/dist/schemas/onchain_operations_permission.schema.json +8 -0
  242. package/dist/schemas/onchain_operations_personal.schema.json +8 -0
  243. package/dist/schemas/onchain_operations_progress.schema.json +9 -1
  244. package/dist/schemas/onchain_operations_proof.schema.json +8 -0
  245. package/dist/schemas/onchain_operations_repository.schema.json +8 -0
  246. package/dist/schemas/onchain_operations_reward.schema.json +14 -11
  247. package/dist/schemas/onchain_operations_service.schema.json +13 -10
  248. package/dist/schemas/onchain_operations_treasury.schema.json +17 -19
  249. package/dist/schemas/onchain_table_data.output.json +52 -10
  250. package/dist/schemas/persona_operation.output.json +57 -0
  251. package/dist/schemas/persona_operation.schema.json +9 -0
  252. package/dist/schemas/query_toolkit.output.json +325 -22
  253. package/dist/schemas/query_toolkit.schema.json +18 -5
  254. package/dist/schemas/wip_file.output.json +2 -2
  255. package/dist/schemas/wip_file.schema.json +2 -2
  256. package/dist/schemas/workflow_operation.schema.json +1 -1
  257. package/dist/tools/error-catalog.d.ts +17 -0
  258. package/dist/tools/error-catalog.js +1 -0
  259. package/dist/tools/handlers/benchmark-migration.d.ts +20 -8
  260. package/dist/tools/handlers/benchmark-migration.js +1 -1
  261. package/dist/tools/handlers/config.js +1 -1
  262. package/dist/tools/handlers/entry-edge-recipe.d.ts +101 -0
  263. package/dist/tools/handlers/entry-edge-recipe.js +1 -0
  264. package/dist/tools/handlers/escrow-deficit.d.ts +10 -0
  265. package/dist/tools/handlers/escrow-deficit.js +1 -0
  266. package/dist/tools/handlers/evaluation.js +1 -1
  267. package/dist/tools/handlers/fund-rail-recipe.d.ts +10 -0
  268. package/dist/tools/handlers/fund-rail-recipe.js +1 -0
  269. package/dist/tools/handlers/intent-radar.js +1 -1
  270. package/dist/tools/handlers/local.js +1 -1
  271. package/dist/tools/handlers/mark-namespace.d.ts +30 -0
  272. package/dist/tools/handlers/mark-namespace.js +1 -0
  273. package/dist/tools/handlers/messenger.js +1 -1
  274. package/dist/tools/handlers/onchain-name-registration.d.ts +1 -0
  275. package/dist/tools/handlers/onchain-name-registration.js +1 -1
  276. package/dist/tools/handlers/onchain-name-registration.spec.js +1 -1
  277. package/dist/tools/handlers/onchain.d.ts +30 -1
  278. package/dist/tools/handlers/onchain.js +1 -1
  279. package/dist/tools/handlers/publish-binding-echo.d.ts +22 -0
  280. package/dist/tools/handlers/publish-binding-echo.js +1 -0
  281. package/dist/tools/handlers/query.d.ts +1 -1
  282. package/dist/tools/handlers/query.js +1 -1
  283. package/dist/tools/handlers/review-chain.d.ts +1 -0
  284. package/dist/tools/handlers/review-chain.js +1 -1
  285. package/dist/tools/handlers/schema-query.js +1 -1
  286. package/dist/tools/handlers/stale-build-check.d.ts +9 -0
  287. package/dist/tools/handlers/stale-build-check.js +1 -0
  288. package/dist/tools/handlers/submission-assembly.d.ts +55 -0
  289. package/dist/tools/handlers/submission-assembly.js +1 -0
  290. package/dist/tools/handlers/wip.js +1 -1
  291. package/dist/tools/index.d.ts +1 -0
  292. package/dist/tools/index.js +1 -1
  293. package/dist/tools/move-fn-index.gen.js +1 -1
  294. package/dist/tools/publish-gate-state.d.ts +5 -0
  295. package/dist/tools/publish-gate-state.js +1 -0
  296. package/dist/tools/registry/business.js +1 -1
  297. package/dist/tools/registry/onchain.js +1 -1
  298. package/dist/tools/registry/query.js +1 -1
  299. package/dist/tools/retry.js +1 -1
  300. package/dist/tools/runtime-health.js +1 -1
  301. package/dist/tools/shared.js +1 -1
  302. package/dist/tools/upgrade-check.d.ts +1 -0
  303. package/dist/tools/upgrade-check.js +1 -1
  304. package/dist/tools/wip-verify-ledger.d.ts +2 -0
  305. package/dist/tools/wip-verify-ledger.js +1 -1
  306. package/dist/tools/wrap.d.ts +15 -1
  307. package/dist/tools/wrap.js +1 -1
  308. package/package.json +5 -3
@@ -1670,15 +1670,10 @@
1670
1670
  "description": "Payment record remark"
1671
1671
  },
1672
1672
  "index": {
1673
- "anyOf": [
1674
- {
1675
- "type": "number"
1676
- },
1677
- {
1678
- "type": "string"
1679
- }
1680
- ],
1681
- "description": "Payment record index"
1673
+ "type": "integer",
1674
+ "minimum": 0,
1675
+ "maximum": 9007199254740991,
1676
+ "description": "Payment record index (non-negative integer)"
1682
1677
  }
1683
1678
  },
1684
1679
  "required": [
@@ -1700,7 +1695,7 @@
1700
1695
  "type": "number"
1701
1696
  },
1702
1697
  "compensation_fund_receive": {
1703
- "description": "Receive order compensation funds from this Service object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
1698
+ "description": "Receive order compensation funds from this Service object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n REWARD-OBJECT TRAP (F55 gf32-mn-261103): on a REWARD object, 'recently' resolves through\n the Payment-derived ReceivedBalance primitive — a Reward that holds plain CoinWrapper\n sweeps (query_received answers ReceivedNormal[]) aborts with 'received is ReceivedNormal[]\n (expected ReceivedBalance)'. For a plain coin sweep on a Reward use owner_receive:'recently'\n (same call — it unwraps received objects to the Permission owner) instead of receive.\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
1704
1699
  "anyOf": [
1705
1700
  {
1706
1701
  "type": "object",
@@ -2040,6 +2035,14 @@
2040
2035
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
2041
2036
  "type": "boolean"
2042
2037
  },
2038
+ "window_profile": {
2039
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
2040
+ "type": "string",
2041
+ "enum": [
2042
+ "production",
2043
+ "test"
2044
+ ]
2045
+ },
2043
2046
  "response_level": {
2044
2047
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
2045
2048
  "type": "string",
@@ -3022,7 +3025,7 @@
3022
3025
  ]
3023
3026
  },
3024
3027
  "permissionIndex": {
3025
- "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). RANGE: use a USER_DEFINED index ≥1000 (0–999 are builtin/reserved) — a USER_DEFINED index works for the Permission's admin immediately without any grant; a builtin index (<1000) aborts with MoveAbort 7 unless it was explicitly granted to the operators first.",
3028
+ "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). RANGE: use a USER_DEFINED index ≥1000 (0–999 are builtin/reserved) — a USER_DEFINED index works for the Permission's admin immediately without any grant; a builtin index (<1000) is ALSO admin-usable immediately (the Permission's owner/admin short-circuits every builtin index check — the chain's admin-passthrough rule) and only NON-ADMIN operators must be granted it first (cour I4: pre-grant the state is 'admin-only', never 'unusable' — a non-admin caller without the grant aborts MoveAbort 7).",
3026
3029
  "anyOf": [
3027
3030
  {
3028
3031
  "type": "number"
@@ -3213,7 +3216,7 @@
3213
3216
  ]
3214
3217
  },
3215
3218
  "permissionIndex": {
3216
- "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). RANGE: use a USER_DEFINED index ≥1000 (0–999 are builtin/reserved) — a USER_DEFINED index works for the Permission's admin immediately without any grant; a builtin index (<1000) aborts with MoveAbort 7 unless it was explicitly granted to the operators first.",
3219
+ "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). RANGE: use a USER_DEFINED index ≥1000 (0–999 are builtin/reserved) — a USER_DEFINED index works for the Permission's admin immediately without any grant; a builtin index (<1000) is ALSO admin-usable immediately (the Permission's owner/admin short-circuits every builtin index check — the chain's admin-passthrough rule) and only NON-ADMIN operators must be granted it first (cour I4: pre-grant the state is 'admin-only', never 'unusable' — a non-admin caller without the grant aborts MoveAbort 7).",
3217
3220
  "anyOf": [
3218
3221
  {
3219
3222
  "type": "number"
@@ -3500,7 +3503,7 @@
3500
3503
  ]
3501
3504
  },
3502
3505
  "permissionIndex": {
3503
- "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). RANGE: use a USER_DEFINED index ≥1000 (0–999 are builtin/reserved) — a USER_DEFINED index works for the Permission's admin immediately without any grant; a builtin index (<1000) aborts with MoveAbort 7 unless it was explicitly granted to the operators first.",
3506
+ "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). RANGE: use a USER_DEFINED index ≥1000 (0–999 are builtin/reserved) — a USER_DEFINED index works for the Permission's admin immediately without any grant; a builtin index (<1000) is ALSO admin-usable immediately (the Permission's owner/admin short-circuits every builtin index check — the chain's admin-passthrough rule) and only NON-ADMIN operators must be granted it first (cour I4: pre-grant the state is 'admin-only', never 'unusable' — a non-admin caller without the grant aborts MoveAbort 7).",
3504
3507
  "anyOf": [
3505
3508
  {
3506
3509
  "type": "number"
@@ -3908,6 +3911,14 @@
3908
3911
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
3909
3912
  "type": "boolean"
3910
3913
  },
3914
+ "window_profile": {
3915
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
3916
+ "type": "string",
3917
+ "enum": [
3918
+ "production",
3919
+ "test"
3920
+ ]
3921
+ },
3911
3922
  "response_level": {
3912
3923
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
3913
3924
  "type": "string",
@@ -4817,7 +4828,7 @@
4817
4828
  "like",
4818
4829
  "dislike"
4819
4830
  ],
4820
- "description": "Buyer rating. Ratings NEVER affect settlement (the settlement anchor is the delivered moment, not this review) — this is reputation only."
4831
+ "description": "Buyer rating. Ratings NEVER affect settlement (the settlement anchor is the delivered moment, not this review) — this is reputation only. F30 (gf32-mn-261103): when the target repository also declares a U64 star policy (the compile-emitted 'rating' policy read by reward-claim guards), the composite AUTO-writes the derived numeric star row too (like→5, dislike→1) in the same pre-forward phase — the documented flow alone satisfies review-incentive guards; no hand-built second data_add is needed."
4821
4832
  },
4822
4833
  "tags": {
4823
4834
  "description": "Optional structured tags for statistics and market exposure (e.g. ['fast_delivery','good_quality']).",
@@ -4938,6 +4949,14 @@
4938
4949
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
4939
4950
  "type": "boolean"
4940
4951
  },
4952
+ "window_profile": {
4953
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
4954
+ "type": "string",
4955
+ "enum": [
4956
+ "production",
4957
+ "test"
4958
+ ]
4959
+ },
4941
4960
  "response_level": {
4942
4961
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
4943
4962
  "type": "string",
@@ -6527,6 +6546,14 @@
6527
6546
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
6528
6547
  "type": "boolean"
6529
6548
  },
6549
+ "window_profile": {
6550
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
6551
+ "type": "string",
6552
+ "enum": [
6553
+ "production",
6554
+ "test"
6555
+ ]
6556
+ },
6530
6557
  "response_level": {
6531
6558
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
6532
6559
  "type": "string",
@@ -7413,7 +7440,7 @@
7413
7440
  "type": "integer",
7414
7441
  "minimum": 0,
7415
7442
  "maximum": 9007199254740991,
7416
- "description": "Awarded compensation in integer smallest units (0 = a denial ruling that pays nothing). Hard-capped at 3x the disputed order amount on chain. Funded from the Service's merchant-prepaid compensation fund — an award larger than the fund balance aborts the later payout until the merchant tops up. A non-zero award consumes the order's one-shot compensation latch: refund rails gated on 'no award paid' can never fire afterwards, so pair them with a merchant-recovery rail at build time."
7443
+ "description": "Awarded compensation in integer smallest units (0 = a denial ruling that pays nothing). Hard-capped at 3x the disputed order amount on chain. Funded from the Service's merchant-prepaid compensation fund — an award larger than the fund balance aborts the later payout until the merchant tops up. TWO-RAIL INDEPENDENCE (decision 11): the award rides the arbitration track and does NOT gate, pair, or entitle any order fund rail — never build a 'merchant-recovery rail' on top of an award (that pairing was the historical double-payout root cause). Fund rails are NODE-GATED and must not read order.claimed_by; a node-gated fund rail and the award are independent commercial payouts, and double collection is LEGAL, disclosed at the MCP dual-payout confirmation gate. RULING DIRECTION (F-P6-04): a zero-award dismissal is STORED as indemnity = Some(0), NOT None — a guard leg that reads 'absence' to detect a dismissal is rejected on-chain; express the direction as amount == 0 (dismissal) vs amount > 0 (buyer-favored award), combined with the case being concluded (a live pre-ruling case also has no indemnity yet)."
7417
7444
  }
7418
7445
  },
7419
7446
  "required": [
@@ -7871,6 +7898,14 @@
7871
7898
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
7872
7899
  "type": "boolean"
7873
7900
  },
7901
+ "window_profile": {
7902
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
7903
+ "type": "string",
7904
+ "enum": [
7905
+ "production",
7906
+ "test"
7907
+ ]
7908
+ },
7874
7909
  "response_level": {
7875
7910
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
7876
7911
  "type": "string",
@@ -8848,6 +8883,14 @@
8848
8883
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
8849
8884
  "type": "boolean"
8850
8885
  },
8886
+ "window_profile": {
8887
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
8888
+ "type": "string",
8889
+ "enum": [
8890
+ "production",
8891
+ "test"
8892
+ ]
8893
+ },
8851
8894
  "response_level": {
8852
8895
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
8853
8896
  "type": "string",
@@ -9505,7 +9548,7 @@
9505
9548
  "description": "Description string (max 4000 bcs characters)"
9506
9549
  },
9507
9550
  "receive": {
9508
- "description": "Receive CoinWrapper objects received by this Treasury object and deposit them into its balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
9551
+ "description": "Receive CoinWrapper objects received by this Treasury object and deposit them into its balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n REWARD-OBJECT TRAP (F55 gf32-mn-261103): on a REWARD object, 'recently' resolves through\n the Payment-derived ReceivedBalance primitive — a Reward that holds plain CoinWrapper\n sweeps (query_received answers ReceivedNormal[]) aborts with 'received is ReceivedNormal[]\n (expected ReceivedBalance)'. For a plain coin sweep on a Reward use owner_receive:'recently'\n (same call — it unwraps received objects to the Permission owner) instead of receive.\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
9509
9552
  "anyOf": [
9510
9553
  {
9511
9554
  "type": "object",
@@ -9664,15 +9707,10 @@
9664
9707
  "description": "Payment record remark"
9665
9708
  },
9666
9709
  "index": {
9667
- "anyOf": [
9668
- {
9669
- "type": "number"
9670
- },
9671
- {
9672
- "type": "string"
9673
- }
9674
- ],
9675
- "description": "Payment record index"
9710
+ "type": "integer",
9711
+ "minimum": 0,
9712
+ "maximum": 9007199254740991,
9713
+ "description": "Payment record index (non-negative integer)"
9676
9714
  }
9677
9715
  },
9678
9716
  "required": [
@@ -9811,15 +9849,10 @@
9811
9849
  "description": "Payment record remark"
9812
9850
  },
9813
9851
  "index": {
9814
- "anyOf": [
9815
- {
9816
- "type": "number"
9817
- },
9818
- {
9819
- "type": "string"
9820
- }
9821
- ],
9822
- "description": "Payment record index"
9852
+ "type": "integer",
9853
+ "minimum": 0,
9854
+ "maximum": 9007199254740991,
9855
+ "description": "Payment record index (non-negative integer)"
9823
9856
  }
9824
9857
  },
9825
9858
  "required": [
@@ -10374,6 +10407,14 @@
10374
10407
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
10375
10408
  "type": "boolean"
10376
10409
  },
10410
+ "window_profile": {
10411
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
10412
+ "type": "string",
10413
+ "enum": [
10414
+ "production",
10415
+ "test"
10416
+ ]
10417
+ },
10377
10418
  "response_level": {
10378
10419
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
10379
10420
  "type": "string",
@@ -11074,7 +11115,7 @@
11074
11115
  ]
11075
11116
  },
11076
11117
  "receive": {
11077
- "description": "Unwrap CoinWrapper objects received by Reward object and store them in pending balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
11118
+ "description": "Unwrap CoinWrapper objects received by Reward object and store them in pending balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n REWARD-OBJECT TRAP (F55 gf32-mn-261103): on a REWARD object, 'recently' resolves through\n the Payment-derived ReceivedBalance primitive — a Reward that holds plain CoinWrapper\n sweeps (query_received answers ReceivedNormal[]) aborts with 'received is ReceivedNormal[]\n (expected ReceivedBalance)'. For a plain coin sweep on a Reward use owner_receive:'recently'\n (same call — it unwraps received objects to the Permission owner) instead of receive.\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly. F55 (gf32-mn-261103): on a REWARD object holding a plain coin sweep, 'recently' aborts ('received is ReceivedNormal[] (expected ReceivedBalance)') — use owner_receive:'recently' for that shape; receive targets Payment-derived ReceivedBalance entries only.",
11078
11119
  "anyOf": [
11079
11120
  {
11080
11121
  "type": "object",
@@ -11305,7 +11346,7 @@
11305
11346
  ]
11306
11347
  },
11307
11348
  "evidence": {
11308
- "description": "ksk9d2-tn-261026 F-01 claim-time attestation pin (reward::evidence_bind). REQUIRES store_from_id on the SAME guard — the binding reads THE pinned store_from row, so the chain aborts 16 (E_EVIDENCE_NEEDS_STORE_FROM) at build time without it. At claim the chain counts repository rows under (repo, key) matching the predicate for the claim's OWN store_from value (the submitted order) via the native evidence_count and aborts 15 (E_EVIDENCE_NOT_OWNED) when none — a borrowed foreign row can never pay.",
11349
+ "description": "ksk9d2-tn-261026 F-01 claim-time attestation pin. REQUIRES store_from_id on the SAME guard — the binding reads THE pinned store_from row, so the chain aborts 16 (E_EVIDENCE_NEEDS_STORE_FROM) at build time without it. At claim the chain counts repository rows under (repo, key) matching the predicate for the claim's OWN store_from value (the submitted order) via the native row-match count and aborts 15 (E_EVIDENCE_NOT_OWNED) when none — a borrowed foreign row can never pay.",
11309
11350
  "type": "object",
11310
11351
  "properties": {
11311
11352
  "repo": {
@@ -11547,15 +11588,10 @@
11547
11588
  "description": "Payment record remark"
11548
11589
  },
11549
11590
  "index": {
11550
- "anyOf": [
11551
- {
11552
- "type": "number"
11553
- },
11554
- {
11555
- "type": "string"
11556
- }
11557
- ],
11558
- "description": "Payment record index"
11591
+ "type": "integer",
11592
+ "minimum": 0,
11593
+ "maximum": 9007199254740991,
11594
+ "description": "Payment record index (non-negative integer)"
11559
11595
  }
11560
11596
  },
11561
11597
  "required": [
@@ -11654,6 +11690,14 @@
11654
11690
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
11655
11691
  "type": "boolean"
11656
11692
  },
11693
+ "window_profile": {
11694
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
11695
+ "type": "string",
11696
+ "enum": [
11697
+ "production",
11698
+ "test"
11699
+ ]
11700
+ },
11657
11701
  "response_level": {
11658
11702
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
11659
11703
  "type": "string",
@@ -12517,15 +12561,10 @@
12517
12561
  "description": "Payment record remark"
12518
12562
  },
12519
12563
  "index": {
12520
- "anyOf": [
12521
- {
12522
- "type": "number"
12523
- },
12524
- {
12525
- "type": "string"
12526
- }
12527
- ],
12528
- "description": "Payment record index"
12564
+ "type": "integer",
12565
+ "minimum": 0,
12566
+ "maximum": 9007199254740991,
12567
+ "description": "Payment record index (non-negative integer)"
12529
12568
  }
12530
12569
  },
12531
12570
  "required": [
@@ -12557,7 +12596,7 @@
12557
12596
  "description": "REQUIRED for operating existing object. Provide the Allocation object ID or existing name to reference the target object."
12558
12597
  },
12559
12598
  "received_coins": {
12560
- "description": "Unwrap the CoinWrapper objects received by the Allocation object and deposit them into the pending allocation balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
12599
+ "description": "Unwrap the CoinWrapper objects received by the Allocation object and deposit them into the pending allocation balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n REWARD-OBJECT TRAP (F55 gf32-mn-261103): on a REWARD object, 'recently' resolves through\n the Payment-derived ReceivedBalance primitive — a Reward that holds plain CoinWrapper\n sweeps (query_received answers ReceivedNormal[]) aborts with 'received is ReceivedNormal[]\n (expected ReceivedBalance)'. For a plain coin sweep on a Reward use owner_receive:'recently'\n (same call — it unwraps received objects to the Permission owner) instead of receive.\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::wow::WOW', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly.",
12561
12600
  "anyOf": [
12562
12601
  {
12563
12602
  "type": "object",
@@ -12644,7 +12683,7 @@
12644
12683
  "type": "string"
12645
12684
  },
12646
12685
  "alloc_batch": {
12647
- "description": "Q8-F01 AGGREGATE RELEASE — sweep SEVERAL pools in ONE transaction (allocation::alloc_batch). Provide the COMPLETE pool list INCLUDING 'object': the anchor Allocation addressed by this operation must appear in the list, and the SDK refuses a list that omits it. REQUIRES alloc_by_guard — that one Guard defines the release and is applied to every pool. WHY THIS EXISTS: a crowdfunding settlement holds each backer's escrow in its own Allocation under the SAME release/refund Guard; with single-pool calls a keeper needs N ordered transactions, and any keeper that stops at the first failure strands the remaining pools while the release reports done. ALL-OR-NOTHING: one pool aborting reverts the whole batch. PRE-FILTER drained pools before building the call — a zero-balance pool aborts the ENTIRE batch with EZERO_DISTRIBUTION (14) and nothing is released; an empty candidate set means there is genuinely nothing to release (an empty list is refused with EEMPTY_POOL_BATCH 26 instead of a fake success). EVERY pool must carry an allocator BOUND to alloc_by_guard: an unbound pool completes the sweep having distributed NOTHING, so the SDK verifies membership pool-by-pool and REFUSES the call before any gas is spent. Each recipient still receives a CoinWrapper and claims it through the normal POST-DISTRIBUTION CLAIM step — batching changes the release atomicity, not the claim path.",
12686
+ "description": "Q8-F01 AGGREGATE RELEASE — sweep SEVERAL pools in ONE transaction (a single on-chain batch release). Provide the COMPLETE pool list INCLUDING 'object': the anchor Allocation addressed by this operation must appear in the list, and the SDK refuses a list that omits it. REQUIRES alloc_by_guard — that one Guard defines the release and is applied to every pool. WHY THIS EXISTS: a crowdfunding settlement holds each backer's escrow in its own Allocation under the SAME release/refund Guard; with single-pool calls a keeper needs N ordered transactions, and any keeper that stops at the first failure strands the remaining pools while the release reports done. ALL-OR-NOTHING: one pool aborting reverts the whole batch. PRE-FILTER drained pools before building the call — a zero-balance pool aborts the ENTIRE batch with EZERO_DISTRIBUTION (14) and nothing is released; an empty candidate set means there is genuinely nothing to release (an empty list is refused with EEMPTY_POOL_BATCH 26 instead of a fake success). EVERY pool must carry an allocator BOUND to alloc_by_guard: an unbound pool completes the sweep having distributed NOTHING, so the SDK verifies membership pool-by-pool and REFUSES the call before any gas is spent. Each recipient still receives a CoinWrapper and claims it through the normal POST-DISTRIBUTION CLAIM step — batching changes the release atomicity, not the claim path.",
12648
12687
  "minItems": 1,
12649
12688
  "type": "array",
12650
12689
  "items": {
@@ -12692,9 +12731,13 @@
12692
12731
  {
12693
12732
  "type": "number",
12694
12733
  "const": 1
12734
+ },
12735
+ {
12736
+ "type": "number",
12737
+ "const": 2
12695
12738
  }
12696
12739
  ],
12697
- "description": "Which aggregate produces the scalar: 0 = RECORD COUNT (u64 — how many candidate rows match the predicate), 1 = VALUE SUM (u256 — sum of the matching rows' numeric payloads, overflow-safe). Any other value is refused on-chain (EFORMULA_SPEC_INVALID=24)."
12740
+ "description": "Which aggregate produces the scalar: 0 = RECORD COUNT (u64 — how many candidate rows match the predicate), 1 = VALUE SUM (u256 — sum of the matching rows' numeric payloads, overflow-safe), 2 = ESCROW-BOUND VALUE SUM (u256 — like 1, but every row is first clamped to the escrow it points to: min(row_value, Order.amount of the Order that row's id names); a row whose id is not a real framework Order contributes 0, fail-closed). PREFER 2 whenever anyone other than the payer can write the candidate rows: an unbound SUM (1) lets a writer inflate the scalar simply by writing a large row, while 2 caps each row at the real order amount behind it (ksc-tn-261024 F-01 root cure). Any other value is refused on-chain (EFORMULA_SPEC_INVALID=24)."
12698
12741
  },
12699
12742
  "predicate": {
12700
12743
  "oneOf": [
@@ -13020,6 +13063,14 @@
13020
13063
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
13021
13064
  "type": "boolean"
13022
13065
  },
13066
+ "window_profile": {
13067
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
13068
+ "type": "string",
13069
+ "enum": [
13070
+ "production",
13071
+ "test"
13072
+ ]
13073
+ },
13023
13074
  "response_level": {
13024
13075
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
13025
13076
  "type": "string",
@@ -14572,6 +14623,14 @@
14572
14623
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
14573
14624
  "type": "boolean"
14574
14625
  },
14626
+ "window_profile": {
14627
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
14628
+ "type": "string",
14629
+ "enum": [
14630
+ "production",
14631
+ "test"
14632
+ ]
14633
+ },
14575
14634
  "response_level": {
14576
14635
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
14577
14636
  "type": "string",
@@ -17973,7 +18032,7 @@
17973
18032
  "properties": {
17974
18033
  "type": {
17975
18034
  "type": "string",
17976
- "const": "query_repository_data_find_where"
18035
+ "const": "query_repository_data_sum_where_bound_all"
17977
18036
  },
17978
18037
  "object": {
17979
18038
  "type": "object",
@@ -18007,22 +18066,6 @@
18007
18066
  "additionalProperties": false,
18008
18067
  "description": "Reference to the policy key (String type table entry) whose data table is scanned."
18009
18068
  },
18010
- "ids": {
18011
- "type": "object",
18012
- "properties": {
18013
- "identifier": {
18014
- "type": "integer",
18015
- "minimum": 0,
18016
- "maximum": 255,
18017
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18018
- }
18019
- },
18020
- "required": [
18021
- "identifier"
18022
- ],
18023
- "additionalProperties": false,
18024
- "description": "Reference to the candidate ID list (VecAddress type table entry). Duplicates are deduped; max 100 candidates."
18025
- },
18026
18069
  "where": {
18027
18070
  "oneOf": [
18028
18071
  {
@@ -18238,25 +18281,24 @@
18238
18281
  "additionalProperties": false
18239
18282
  }
18240
18283
  ],
18241
- "description": "Predicate filter applied to each candidate's data value."
18284
+ "description": "Predicate filter applied to each row's data value."
18242
18285
  }
18243
18286
  },
18244
18287
  "required": [
18245
18288
  "type",
18246
18289
  "object",
18247
18290
  "key",
18248
- "ids",
18249
18291
  "where"
18250
18292
  ],
18251
18293
  "additionalProperties": false,
18252
- "description": "Returns VecAddress. Lists the IDs of ALL matching candidates in candidate order. Compose: vec_length + logic_as_u256_greater_than_or_equal (existence/threshold), vec_indexof_address (first/last position), vec_contains_address (membership)."
18294
+ "description": "Returns U256. ALL-MODE escrow-bound sum (query 1181, flag enable_repository_data_sum_bound_all, protocol v141 — the query ABORTS while the flag is off): the 1179 per-row clamp min(row_value, order.amount, LIVE allocation.balance) over a DERIVED candidate set — the per-key RowRosterKey dynamic-field roster the framework maintains on every data write — instead of a caller-supplied ids list, so the aggregate no longer depends on the caller submitting an honest, complete candidate list (the ks13/HKS-04 ROSTER-01 face). No ids parameter. The roster is bounded by REPOSITORY_QUERY_MAX_CANDIDATES: a key with more rows aborts the query (fail-closed, never a silent truncation). Pre-flag rows (written before the roster was maintained, or under a disabled flag on an older binary) are NOT in the roster and contribute 0 — rebuild or re-touch rows after enabling. Use logic_as_u256_* to compare the sum."
18253
18295
  },
18254
18296
  {
18255
18297
  "type": "object",
18256
18298
  "properties": {
18257
18299
  "type": {
18258
18300
  "type": "string",
18259
- "const": "query_repository_data_keys_where"
18301
+ "const": "query_repository_data_find_where"
18260
18302
  },
18261
18303
  "object": {
18262
18304
  "type": "object",
@@ -18274,7 +18316,7 @@
18274
18316
  "additionalProperties": false,
18275
18317
  "description": "Reference to the Repository object in the Guard table (must be Address type)."
18276
18318
  },
18277
- "id": {
18319
+ "key": {
18278
18320
  "type": "object",
18279
18321
  "properties": {
18280
18322
  "identifier": {
@@ -18288,7 +18330,23 @@
18288
18330
  "identifier"
18289
18331
  ],
18290
18332
  "additionalProperties": false,
18291
- "description": "Reference to the single candidate ID (Address type table entry) to probe across policies."
18333
+ "description": "Reference to the policy key (String type table entry) whose data table is scanned."
18334
+ },
18335
+ "ids": {
18336
+ "type": "object",
18337
+ "properties": {
18338
+ "identifier": {
18339
+ "type": "integer",
18340
+ "minimum": 0,
18341
+ "maximum": 255,
18342
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18343
+ }
18344
+ },
18345
+ "required": [
18346
+ "identifier"
18347
+ ],
18348
+ "additionalProperties": false,
18349
+ "description": "Reference to the candidate ID list (VecAddress type table entry). Duplicates are deduped; max 100 candidates."
18292
18350
  },
18293
18351
  "where": {
18294
18352
  "oneOf": [
@@ -18505,86 +18563,25 @@
18505
18563
  "additionalProperties": false
18506
18564
  }
18507
18565
  ],
18508
- "description": "Predicate filter applied to the value stored under each policy key for this ID."
18566
+ "description": "Predicate filter applied to each candidate's data value."
18509
18567
  }
18510
18568
  },
18511
18569
  "required": [
18512
18570
  "type",
18513
18571
  "object",
18514
- "id",
18572
+ "key",
18573
+ "ids",
18515
18574
  "where"
18516
18575
  ],
18517
18576
  "additionalProperties": false,
18518
- "description": "Returns VecString. Reverse lookup: all policy keys whose stored value for the given ID matches the predicate (scans the policy schema and probes each key). Compose: vec_length (how many keys match), vec_indexof_string + logic_as_u256_equal (does a specific key match), vec_contains_string (specific key membership)."
18519
- },
18520
- {
18521
- "type": "object",
18522
- "properties": {
18523
- "type": {
18524
- "type": "string",
18525
- "const": "query_repository_policies_keys"
18526
- },
18527
- "object": {
18528
- "type": "object",
18529
- "properties": {
18530
- "identifier": {
18531
- "type": "integer",
18532
- "minimum": 0,
18533
- "maximum": 255,
18534
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18535
- }
18536
- },
18537
- "required": [
18538
- "identifier"
18539
- ],
18540
- "additionalProperties": false,
18541
- "description": "Reference to the Repository object in the Guard table (must be Address type)."
18542
- }
18543
- },
18544
- "required": [
18545
- "type",
18546
- "object"
18547
- ],
18548
- "additionalProperties": false,
18549
- "description": "Returns VecString. Lists ALL policy key names of the Repository (max 50). Use vec_length to bound per-key composite queries or vec_contains_string to assert a key exists."
18550
- },
18551
- {
18552
- "type": "object",
18553
- "properties": {
18554
- "type": {
18555
- "type": "string",
18556
- "const": "query_order_named_operator_member"
18557
- },
18558
- "object": {
18559
- "type": "object",
18560
- "properties": {
18561
- "identifier": {
18562
- "type": "integer",
18563
- "minimum": 0,
18564
- "maximum": 255,
18565
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18566
- }
18567
- },
18568
- "required": [
18569
- "identifier"
18570
- ],
18571
- "additionalProperties": false,
18572
- "description": "Reference to the Order object in the Guard table (must be Address type)."
18573
- }
18574
- },
18575
- "required": [
18576
- "type",
18577
- "object"
18578
- ],
18579
- "additionalProperties": false,
18580
- "description": "Returns Bool. Whether the transaction signer is on the order's named-operator roster (DM-P1 rider-roster exclusive admission): reads the namedOperator roster of the order's Progress and checks tx-signer membership. Parameterless — the signer comes from the transaction context. Gated by protocol v138 (feature flag enable_order_named_operator_member); on a chain without the flag the guard evaluation aborts. Typical use: AND it into the forward-edge guard on courier handover edges (e.g. PickupOrder/DeliverOrder) so only roster members can advance — the on-chain namedOperator rail alone only AUTHORIZES, it never DENIES (R-19)."
18577
+ "description": "Returns VecAddress. Lists the IDs of ALL matching candidates in candidate order. Compose: vec_length + logic_as_u256_greater_than_or_equal (existence/threshold), vec_indexof_address (first/last position), vec_contains_address (membership)."
18581
18578
  },
18582
18579
  {
18583
18580
  "type": "object",
18584
18581
  "properties": {
18585
18582
  "type": {
18586
18583
  "type": "string",
18587
- "const": "query_repository_data_has"
18584
+ "const": "query_repository_data_keys_where"
18588
18585
  },
18589
18586
  "object": {
18590
18587
  "type": "object",
@@ -18616,51 +18613,379 @@
18616
18613
  "identifier"
18617
18614
  ],
18618
18615
  "additionalProperties": false,
18619
- "description": "Reference to the row's principal address (Address type table entry) — the row id the data was written under."
18620
- },
18621
- "key": {
18622
- "type": "string",
18623
- "minLength": 1,
18624
- "description": "Row name — the policy key string of the data row to probe."
18625
- }
18626
- },
18627
- "required": [
18628
- "type",
18629
- "object",
18630
- "id",
18631
- "key"
18632
- ],
18633
- "additionalProperties": false,
18634
- "description": "Returns Bool. Whether the Repository holds a data row for (key, id) — single-row exact read by (key, id), the primitive for per-value mutual-consent attestation (e.g. a settlement keeper asserting the buyer acceptance row exists before executing a refund allocator). NOT protocol-gated (legacy query, works on every chain version)."
18635
- },
18636
- {
18637
- "type": "object",
18638
- "properties": {
18639
- "type": {
18640
- "type": "string",
18641
- "const": "query_repository_data"
18642
- },
18643
- "object": {
18644
- "type": "object",
18645
- "properties": {
18646
- "identifier": {
18647
- "type": "integer",
18648
- "minimum": 0,
18649
- "maximum": 255,
18650
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18651
- }
18652
- },
18653
- "required": [
18654
- "identifier"
18655
- ],
18656
- "additionalProperties": false,
18657
- "description": "Reference to the Repository object in the Guard table (must be Address type)."
18616
+ "description": "Reference to the single candidate ID (Address type table entry) to probe across policies."
18658
18617
  },
18659
- "id": {
18660
- "type": "object",
18661
- "properties": {
18662
- "identifier": {
18663
- "type": "integer",
18618
+ "where": {
18619
+ "oneOf": [
18620
+ {
18621
+ "type": "object",
18622
+ "properties": {
18623
+ "kind": {
18624
+ "type": "string",
18625
+ "const": "range"
18626
+ },
18627
+ "valueMin": {
18628
+ "description": "Optional lower bound (inclusive unless minInclusive=false). Plain number string (U256 semantics).",
18629
+ "type": "string"
18630
+ },
18631
+ "valueMax": {
18632
+ "description": "Optional upper bound (inclusive unless maxInclusive=false). Plain number string (U256 semantics).",
18633
+ "type": "string"
18634
+ },
18635
+ "minInclusive": {
18636
+ "description": "Default true. false makes the lower bound exclusive.",
18637
+ "type": "boolean"
18638
+ },
18639
+ "maxInclusive": {
18640
+ "description": "Default true. false makes the upper bound exclusive.",
18641
+ "type": "boolean"
18642
+ }
18643
+ },
18644
+ "required": [
18645
+ "kind"
18646
+ ],
18647
+ "additionalProperties": false,
18648
+ "description": "Numeric closed/open range. min=max inclusive is an equality match. At least one bound required."
18649
+ },
18650
+ {
18651
+ "type": "object",
18652
+ "properties": {
18653
+ "kind": {
18654
+ "type": "string",
18655
+ "const": "numEq"
18656
+ },
18657
+ "value": {
18658
+ "type": "string",
18659
+ "description": "Exact numeric match. Plain number string (U256 semantics)."
18660
+ }
18661
+ },
18662
+ "required": [
18663
+ "kind",
18664
+ "value"
18665
+ ],
18666
+ "additionalProperties": false
18667
+ },
18668
+ {
18669
+ "type": "object",
18670
+ "properties": {
18671
+ "kind": {
18672
+ "type": "string",
18673
+ "const": "gt"
18674
+ },
18675
+ "value": {
18676
+ "type": "string",
18677
+ "description": "Greater than. Plain number string (U256 semantics)."
18678
+ }
18679
+ },
18680
+ "required": [
18681
+ "kind",
18682
+ "value"
18683
+ ],
18684
+ "additionalProperties": false
18685
+ },
18686
+ {
18687
+ "type": "object",
18688
+ "properties": {
18689
+ "kind": {
18690
+ "type": "string",
18691
+ "const": "gte"
18692
+ },
18693
+ "value": {
18694
+ "type": "string",
18695
+ "description": "Greater than or equal. Plain number string (U256 semantics)."
18696
+ }
18697
+ },
18698
+ "required": [
18699
+ "kind",
18700
+ "value"
18701
+ ],
18702
+ "additionalProperties": false
18703
+ },
18704
+ {
18705
+ "type": "object",
18706
+ "properties": {
18707
+ "kind": {
18708
+ "type": "string",
18709
+ "const": "lt"
18710
+ },
18711
+ "value": {
18712
+ "type": "string",
18713
+ "description": "Less than. Plain number string (U256 semantics)."
18714
+ }
18715
+ },
18716
+ "required": [
18717
+ "kind",
18718
+ "value"
18719
+ ],
18720
+ "additionalProperties": false
18721
+ },
18722
+ {
18723
+ "type": "object",
18724
+ "properties": {
18725
+ "kind": {
18726
+ "type": "string",
18727
+ "const": "lte"
18728
+ },
18729
+ "value": {
18730
+ "type": "string",
18731
+ "description": "Less than or equal. Plain number string (U256 semantics)."
18732
+ }
18733
+ },
18734
+ "required": [
18735
+ "kind",
18736
+ "value"
18737
+ ],
18738
+ "additionalProperties": false
18739
+ },
18740
+ {
18741
+ "type": "object",
18742
+ "properties": {
18743
+ "kind": {
18744
+ "type": "string",
18745
+ "const": "addressEq"
18746
+ },
18747
+ "identifier": {
18748
+ "type": "integer",
18749
+ "minimum": 0,
18750
+ "maximum": 255,
18751
+ "description": "Identifier of the Address-type table entry to compare against."
18752
+ }
18753
+ },
18754
+ "required": [
18755
+ "kind",
18756
+ "identifier"
18757
+ ],
18758
+ "additionalProperties": false
18759
+ },
18760
+ {
18761
+ "type": "object",
18762
+ "properties": {
18763
+ "kind": {
18764
+ "type": "string",
18765
+ "const": "stringEq"
18766
+ },
18767
+ "value": {
18768
+ "type": "string",
18769
+ "description": "Exact string match (byte equality, UTF-8)."
18770
+ }
18771
+ },
18772
+ "required": [
18773
+ "kind",
18774
+ "value"
18775
+ ],
18776
+ "additionalProperties": false
18777
+ },
18778
+ {
18779
+ "type": "object",
18780
+ "properties": {
18781
+ "kind": {
18782
+ "type": "string",
18783
+ "const": "stringContains"
18784
+ },
18785
+ "value": {
18786
+ "type": "string",
18787
+ "description": "Substring match, case-sensitive."
18788
+ }
18789
+ },
18790
+ "required": [
18791
+ "kind",
18792
+ "value"
18793
+ ],
18794
+ "additionalProperties": false
18795
+ },
18796
+ {
18797
+ "type": "object",
18798
+ "properties": {
18799
+ "kind": {
18800
+ "type": "string",
18801
+ "const": "stringNoCaseContains"
18802
+ },
18803
+ "value": {
18804
+ "type": "string",
18805
+ "description": "Substring match, case-insensitive."
18806
+ }
18807
+ },
18808
+ "required": [
18809
+ "kind",
18810
+ "value"
18811
+ ],
18812
+ "additionalProperties": false
18813
+ },
18814
+ {
18815
+ "type": "object",
18816
+ "properties": {
18817
+ "kind": {
18818
+ "type": "string",
18819
+ "const": "boolEq"
18820
+ },
18821
+ "value": {
18822
+ "type": "boolean",
18823
+ "description": "Boolean equality."
18824
+ }
18825
+ },
18826
+ "required": [
18827
+ "kind",
18828
+ "value"
18829
+ ],
18830
+ "additionalProperties": false
18831
+ }
18832
+ ],
18833
+ "description": "Predicate filter applied to the value stored under each policy key for this ID."
18834
+ }
18835
+ },
18836
+ "required": [
18837
+ "type",
18838
+ "object",
18839
+ "id",
18840
+ "where"
18841
+ ],
18842
+ "additionalProperties": false,
18843
+ "description": "Returns VecString. Reverse lookup: all policy keys whose stored value for the given ID matches the predicate (scans the policy schema and probes each key). Compose: vec_length (how many keys match), vec_indexof_string + logic_as_u256_equal (does a specific key match), vec_contains_string (specific key membership)."
18844
+ },
18845
+ {
18846
+ "type": "object",
18847
+ "properties": {
18848
+ "type": {
18849
+ "type": "string",
18850
+ "const": "query_repository_policies_keys"
18851
+ },
18852
+ "object": {
18853
+ "type": "object",
18854
+ "properties": {
18855
+ "identifier": {
18856
+ "type": "integer",
18857
+ "minimum": 0,
18858
+ "maximum": 255,
18859
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18860
+ }
18861
+ },
18862
+ "required": [
18863
+ "identifier"
18864
+ ],
18865
+ "additionalProperties": false,
18866
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
18867
+ }
18868
+ },
18869
+ "required": [
18870
+ "type",
18871
+ "object"
18872
+ ],
18873
+ "additionalProperties": false,
18874
+ "description": "Returns VecString. Lists ALL policy key names of the Repository (max 50). Use vec_length to bound per-key composite queries or vec_contains_string to assert a key exists."
18875
+ },
18876
+ {
18877
+ "type": "object",
18878
+ "properties": {
18879
+ "type": {
18880
+ "type": "string",
18881
+ "const": "query_order_named_operator_member"
18882
+ },
18883
+ "object": {
18884
+ "type": "object",
18885
+ "properties": {
18886
+ "identifier": {
18887
+ "type": "integer",
18888
+ "minimum": 0,
18889
+ "maximum": 255,
18890
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18891
+ }
18892
+ },
18893
+ "required": [
18894
+ "identifier"
18895
+ ],
18896
+ "additionalProperties": false,
18897
+ "description": "Reference to the Order object in the Guard table (must be Address type)."
18898
+ }
18899
+ },
18900
+ "required": [
18901
+ "type",
18902
+ "object"
18903
+ ],
18904
+ "additionalProperties": false,
18905
+ "description": "Returns Bool. Whether the transaction signer is on the order's named-operator roster (DM-P1 rider-roster exclusive admission): reads the namedOperator roster of the order's Progress and checks tx-signer membership. Parameterless — the signer comes from the transaction context. Gated by protocol v138 (feature flag enable_order_named_operator_member); on a chain without the flag the guard evaluation aborts. Typical use: AND it into the forward-edge guard on courier handover edges (e.g. PickupOrder/DeliverOrder) so only roster members can advance — the on-chain namedOperator rail alone only AUTHORIZES, it never DENIES (R-19)."
18906
+ },
18907
+ {
18908
+ "type": "object",
18909
+ "properties": {
18910
+ "type": {
18911
+ "type": "string",
18912
+ "const": "query_repository_data_has"
18913
+ },
18914
+ "object": {
18915
+ "type": "object",
18916
+ "properties": {
18917
+ "identifier": {
18918
+ "type": "integer",
18919
+ "minimum": 0,
18920
+ "maximum": 255,
18921
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18922
+ }
18923
+ },
18924
+ "required": [
18925
+ "identifier"
18926
+ ],
18927
+ "additionalProperties": false,
18928
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
18929
+ },
18930
+ "id": {
18931
+ "type": "object",
18932
+ "properties": {
18933
+ "identifier": {
18934
+ "type": "integer",
18935
+ "minimum": 0,
18936
+ "maximum": 255,
18937
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18938
+ }
18939
+ },
18940
+ "required": [
18941
+ "identifier"
18942
+ ],
18943
+ "additionalProperties": false,
18944
+ "description": "Reference to the row's principal address (Address type table entry) — the row id the data was written under."
18945
+ },
18946
+ "key": {
18947
+ "type": "string",
18948
+ "minLength": 1,
18949
+ "description": "Row name — the policy key string of the data row to probe."
18950
+ }
18951
+ },
18952
+ "required": [
18953
+ "type",
18954
+ "object",
18955
+ "id",
18956
+ "key"
18957
+ ],
18958
+ "additionalProperties": false,
18959
+ "description": "Returns Bool. Whether the Repository holds a data row for (key, id) — single-row exact read by (key, id), the primitive for per-value mutual-consent attestation (e.g. a settlement keeper asserting the buyer acceptance row exists before executing a refund allocator). NOT protocol-gated (legacy query, works on every chain version)."
18960
+ },
18961
+ {
18962
+ "type": "object",
18963
+ "properties": {
18964
+ "type": {
18965
+ "type": "string",
18966
+ "const": "query_repository_data"
18967
+ },
18968
+ "object": {
18969
+ "type": "object",
18970
+ "properties": {
18971
+ "identifier": {
18972
+ "type": "integer",
18973
+ "minimum": 0,
18974
+ "maximum": 255,
18975
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
18976
+ }
18977
+ },
18978
+ "required": [
18979
+ "identifier"
18980
+ ],
18981
+ "additionalProperties": false,
18982
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
18983
+ },
18984
+ "id": {
18985
+ "type": "object",
18986
+ "properties": {
18987
+ "identifier": {
18988
+ "type": "integer",
18664
18989
  "minimum": 0,
18665
18990
  "maximum": 255,
18666
18991
  "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
@@ -18914,6 +19239,14 @@
18914
19239
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
18915
19240
  "type": "boolean"
18916
19241
  },
19242
+ "window_profile": {
19243
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
19244
+ "type": "string",
19245
+ "enum": [
19246
+ "production",
19247
+ "test"
19248
+ ]
19249
+ },
18917
19250
  "response_level": {
18918
19251
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
18919
19252
  "type": "string",
@@ -19820,6 +20153,14 @@
19820
20153
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
19821
20154
  "type": "boolean"
19822
20155
  },
20156
+ "window_profile": {
20157
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
20158
+ "type": "string",
20159
+ "enum": [
20160
+ "production",
20161
+ "test"
20162
+ ]
20163
+ },
19823
20164
  "response_level": {
19824
20165
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
19825
20166
  "type": "string",
@@ -20006,15 +20347,10 @@
20006
20347
  "description": "Payment record remark"
20007
20348
  },
20008
20349
  "index": {
20009
- "anyOf": [
20010
- {
20011
- "type": "number"
20012
- },
20013
- {
20014
- "type": "string"
20015
- }
20016
- ],
20017
- "description": "Payment record index"
20350
+ "type": "integer",
20351
+ "minimum": 0,
20352
+ "maximum": 9007199254740991,
20353
+ "description": "Payment record index (non-negative integer)"
20018
20354
  }
20019
20355
  },
20020
20356
  "required": [
@@ -20130,6 +20466,14 @@
20130
20466
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
20131
20467
  "type": "boolean"
20132
20468
  },
20469
+ "window_profile": {
20470
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
20471
+ "type": "string",
20472
+ "enum": [
20473
+ "production",
20474
+ "test"
20475
+ ]
20476
+ },
20133
20477
  "response_level": {
20134
20478
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
20135
20479
  "type": "string",
@@ -20738,6 +21082,14 @@
20738
21082
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
20739
21083
  "type": "boolean"
20740
21084
  },
21085
+ "window_profile": {
21086
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
21087
+ "type": "string",
21088
+ "enum": [
21089
+ "production",
21090
+ "test"
21091
+ ]
21092
+ },
20741
21093
  "response_level": {
20742
21094
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
20743
21095
  "type": "string",
@@ -21466,7 +21818,7 @@
21466
21818
  "additionalProperties": false
21467
21819
  },
21468
21820
  "arb_claim_compensation": {
21469
- "description": "Specify the adjudicated Arb object to obtain order compensation. ZERO-INDEMNITY GATE (BF-14, chain abort 11): when the ruling's indemnity is 0 (a dismissal) the claim is REFUSED on-chain — the case stays open, the dispute fee stays escrowed (withdrawable by the arbitrator only after the 30-day window closes with no objection, or blocked while an objection is pending), and `order.claimed_by` is NOT written. A claim that DOES pay (indemnity > 0) closes the case (state 5), pays the claimant, writes `order.claimed_by`, and releases the fee path. DIRECTION CAUTION: because only paying claims write `claimed_by`, a dismissal leaves it `none` — refund-style rails gated on `claimed_by == none` stay LIVE after a dismissal, while merchant-recovery rails gated on `claimed_by != none` can never fire (F-BS-54). Read ruling DIRECTION from `arb.indemnity.amount` (query 1641), never from `claimed_by`. F05 REVERSE GATE (yfd-ln-261024): when this order's escrow is ALREADY fully released (allocation balance 0 of a positive order amount), the claim is REFUSED unless acknowledge_dual_payout is true — pairing a paid compensation with a completed escrow track is a netting decision the operator must state (see acknowledge_dual_payout).",
21821
+ "description": "Specify the adjudicated Arb object to obtain order compensation. ZERO-INDEMNITY GATE (BF-14, chain abort 11): when the ruling's indemnity is 0 (a dismissal) the claim is REFUSED on-chain — the case stays open, the dispute fee stays escrowed (withdrawable by the arbitrator only after the 30-day window closes with no objection, or blocked while an objection is pending), and `order.claimed_by` is NOT written. A claim that DOES pay (indemnity > 0) closes the case (state 5), pays the claimant, writes `order.claimed_by`, and releases the fee path. DIRECTION (decision 11, TWO-RAIL INDEPENDENCE): `claimed_by` records only that a claim PAID or a dismissal was stamped — never WHO won. Order fund rails are NODE-GATED and NEVER read `claimed_by`; read ruling DIRECTION from `arb.indemnity.amount` (query 1641), never from `claimed_by`. F05 REVERSE GATE (yfd-ln-261024): when this order's escrow is ALREADY fully released (allocation balance 0 of a positive order amount), the claim is REFUSED unless acknowledge_dual_payout is true — pairing a paid compensation with a completed escrow track is a netting decision the operator must state (see acknowledge_dual_payout).",
21470
21822
  "type": "object",
21471
21823
  "properties": {
21472
21824
  "arb": {
@@ -21484,7 +21836,7 @@
21484
21836
  "type": "boolean"
21485
21837
  },
21486
21838
  "arb_case_conclude": {
21487
- "description": "DISMISSAL CONVERGER (F-BS-54/56, F-OF2-01): stamp a CONCLUDED, DEFENDANT-FAVORED ruling onto this order through the service's case-conclusion entry so the `claimed_by == none` refund rails close AT RULING TIME instead of staying live forever. PERMISSIONLESS: any keeper (merchant agent, watchdog, even the buyer) may drive it; it writes the claimed_by=case flag and MOVES NO FUNDS. The chain refuses anything but a concluded (Arbitrated/Withdrawn) case leaving NO indemnity (E_CASE_NOT_DISMISSAL_CONCLUSION, abort 48). TYPICAL KEEPER LOOP after a 0-indemnity ruling: arb_claim_compensation aborts 11 (BF-14 zero-indemnity gate) → call THIS to close the refund rails → the escrow can then only exit through the merchant-recovery rails.",
21839
+ "description": "DISMISSAL CONVERGER (F-BS-54/56, F-OF2-01): stamp a CONCLUDED ruling in the DISMISSAL direction onto this order through the service's case-conclusion entry so the case stops reading as open (dispute frozen, no later compensation claim can consume the zero award). PERMISSIONLESS: any keeper (merchant agent, watchdog, even the buyer) may drive it; it writes the claimed_by=case flag and MOVES NO FUNDS. DIRECTION FORK — the chain expresses a ruling direction ONLY as the indemnity it left behind. A case reads as DISMISSAL when its indemnity is none OR amount == 0 (defendant-favored): THIS is the only direction this call accepts — the chain refuses anything else (E_CASE_NOT_DISMISSAL_CONCLUSION, abort 48). A case whose ruling left indemnity > 0 = buyer-favored COMPENSATION: NEVER this call — that direction converges through the compensation claim (arb_claim_compensation) instead. Prerequisite: the arb case must already be CONCLUDED (status Arbitrated/Withdrawn — check arb_case_view first). On a LIVE case the dismissal reading deliberately reports true merely because no indemnity exists yet; that is NOT a ruling direction, so the concluded check always comes first. TYPICAL KEEPER LOOP after a 0-indemnity ruling: arb_claim_compensation aborts 11 (BF-14 zero-indemnity gate) → call THIS to stamp the dismissal → the escrow principal exits only through its node-gated fund rails (decision 11, TWO-RAIL INDEPENDENCE: fund rails read node state, never `claimed_by`).",
21488
21840
  "type": "object",
21489
21841
  "properties": {
21490
21842
  "arb": {
@@ -21722,17 +22074,12 @@
21722
22074
  "remark": {
21723
22075
  "type": "string",
21724
22076
  "description": "Payment record remark"
21725
- },
21726
- "index": {
21727
- "anyOf": [
21728
- {
21729
- "type": "number"
21730
- },
21731
- {
21732
- "type": "string"
21733
- }
21734
- ],
21735
- "description": "Payment record index"
22077
+ },
22078
+ "index": {
22079
+ "type": "integer",
22080
+ "minimum": 0,
22081
+ "maximum": 9007199254740991,
22082
+ "description": "Payment record index (non-negative integer)"
21736
22083
  }
21737
22084
  },
21738
22085
  "required": [
@@ -21853,6 +22200,14 @@
21853
22200
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
21854
22201
  "type": "boolean"
21855
22202
  },
22203
+ "window_profile": {
22204
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
22205
+ "type": "string",
22206
+ "enum": [
22207
+ "production",
22208
+ "test"
22209
+ ]
22210
+ },
21856
22211
  "response_level": {
21857
22212
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
21858
22213
  "type": "string",
@@ -23032,6 +23387,14 @@
23032
23387
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
23033
23388
  "type": "boolean"
23034
23389
  },
23390
+ "window_profile": {
23391
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
23392
+ "type": "string",
23393
+ "enum": [
23394
+ "production",
23395
+ "test"
23396
+ ]
23397
+ },
23035
23398
  "response_level": {
23036
23399
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
23037
23400
  "type": "string",
@@ -23244,6 +23607,14 @@
23244
23607
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
23245
23608
  "type": "boolean"
23246
23609
  },
23610
+ "window_profile": {
23611
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
23612
+ "type": "string",
23613
+ "enum": [
23614
+ "production",
23615
+ "test"
23616
+ ]
23617
+ },
23247
23618
  "response_level": {
23248
23619
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
23249
23620
  "type": "string",
@@ -23932,6 +24303,14 @@
23932
24303
  "description": "Phase 1 dry_run: when true, SIMULATE the transaction without signing or submitting. Returns effects + events showing what WOULD happen — no on-chain state is modified, no gas is charged. Use this to verify that an operation will succeed before committing. The returned digest will be 'dry_run:<timestamp>' and objectChanges will be empty (simulation only).",
23933
24304
  "type": "boolean"
23934
24305
  },
24306
+ "window_profile": {
24307
+ "description": "Time-window profile for trial runs (N8 ktt6 F-14 re-carving of the 'business windows are never test-compressed' ruling, 2026-11-04). 'production' (default): compressed time-window violations BLOCK publish exactly as before. 'test': compressed windows are ADMITTED so a disposable trial store can run its full lifecycle fast — R-TIME-PROFILE violations degrade to loud named disclosures, and the publish itself is BLOCKED on a real network (testnet/mainnet); point the trial at a local/dev chain (env.network='localnet'). Trial discipline: test-profile stores are throwaway — a production store must re-issue WITHOUT this flag (guards freeze at publish, so compressed windows are unrepairable except by rebuilding the store).",
24308
+ "type": "string",
24309
+ "enum": [
24310
+ "production",
24311
+ "test"
24312
+ ]
24313
+ },
23935
24314
  "response_level": {
23936
24315
  "description": "Write-success response size. 'compact' (default) trims the structured result to key fields (digest + created object references); 'full' includes the complete raw result. Default: compact.",
23937
24316
  "type": "string",
@@ -26355,117 +26734,400 @@
26355
26734
  "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
26356
26735
  "allOf": [
26357
26736
  {
26358
- "$ref": "#/definitions/__schema3"
26359
- }
26360
- ],
26361
- "$ref": "#/definitions/__schema2"
26362
- },
26363
- "sessionIdx": {
26364
- "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.",
26365
- "allOf": [
26737
+ "$ref": "#/definitions/__schema3"
26738
+ }
26739
+ ],
26740
+ "$ref": "#/definitions/__schema2"
26741
+ },
26742
+ "sessionIdx": {
26743
+ "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.",
26744
+ "allOf": [
26745
+ {
26746
+ "$ref": "#/definitions/__schema3"
26747
+ }
26748
+ ],
26749
+ "$ref": "#/definitions/__schema2"
26750
+ },
26751
+ "forwardIdx": {
26752
+ "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.",
26753
+ "allOf": [
26754
+ {
26755
+ "$ref": "#/definitions/__schema3"
26756
+ }
26757
+ ],
26758
+ "$ref": "#/definitions/__schema2"
26759
+ }
26760
+ },
26761
+ "required": [
26762
+ "type",
26763
+ "object",
26764
+ "historyIdx",
26765
+ "sessionIdx",
26766
+ "forwardIdx"
26767
+ ],
26768
+ "additionalProperties": false,
26769
+ "description": "Returns U64. Counts the number of retained submissions within the specified forward operation."
26770
+ },
26771
+ {
26772
+ "type": "object",
26773
+ "properties": {
26774
+ "type": {
26775
+ "type": "string",
26776
+ "const": "query_progress_history_session_forward_retained_submission_value"
26777
+ },
26778
+ "object": {
26779
+ "type": "object",
26780
+ "properties": {
26781
+ "identifier": {
26782
+ "type": "integer",
26783
+ "minimum": 0,
26784
+ "maximum": 255,
26785
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26786
+ }
26787
+ },
26788
+ "required": [
26789
+ "identifier"
26790
+ ],
26791
+ "additionalProperties": false,
26792
+ "description": "Reference to the Progress object in the Guard table (must be Address type)."
26793
+ },
26794
+ "historyIdx": {
26795
+ "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
26796
+ "allOf": [
26797
+ {
26798
+ "$ref": "#/definitions/__schema3"
26799
+ }
26800
+ ],
26801
+ "$ref": "#/definitions/__schema2"
26802
+ },
26803
+ "sessionIdx": {
26804
+ "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.",
26805
+ "allOf": [
26806
+ {
26807
+ "$ref": "#/definitions/__schema3"
26808
+ }
26809
+ ],
26810
+ "$ref": "#/definitions/__schema2"
26811
+ },
26812
+ "forwardIdx": {
26813
+ "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.",
26814
+ "allOf": [
26815
+ {
26816
+ "$ref": "#/definitions/__schema3"
26817
+ }
26818
+ ],
26819
+ "$ref": "#/definitions/__schema2"
26820
+ },
26821
+ "identifier": {
26822
+ "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.",
26823
+ "allOf": [
26824
+ {
26825
+ "$ref": "#/definitions/__schema3"
26826
+ }
26827
+ ],
26828
+ "$ref": "#/definitions/__schema2"
26829
+ }
26830
+ },
26831
+ "required": [
26832
+ "type",
26833
+ "object",
26834
+ "historyIdx",
26835
+ "sessionIdx",
26836
+ "forwardIdx",
26837
+ "identifier"
26838
+ ],
26839
+ "additionalProperties": false,
26840
+ "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)."
26841
+ },
26842
+ {
26843
+ "type": "object",
26844
+ "properties": {
26845
+ "type": {
26846
+ "type": "string",
26847
+ "const": "query_repository_data_count_where"
26848
+ },
26849
+ "object": {
26850
+ "type": "object",
26851
+ "properties": {
26852
+ "identifier": {
26853
+ "type": "integer",
26854
+ "minimum": 0,
26855
+ "maximum": 255,
26856
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26857
+ }
26858
+ },
26859
+ "required": [
26860
+ "identifier"
26861
+ ],
26862
+ "additionalProperties": false,
26863
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
26864
+ },
26865
+ "key": {
26866
+ "type": "object",
26867
+ "properties": {
26868
+ "identifier": {
26869
+ "type": "integer",
26870
+ "minimum": 0,
26871
+ "maximum": 255,
26872
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26873
+ }
26874
+ },
26875
+ "required": [
26876
+ "identifier"
26877
+ ],
26878
+ "additionalProperties": false,
26879
+ "description": "Reference to the policy key (String type table entry) whose data table is scanned."
26880
+ },
26881
+ "ids": {
26882
+ "type": "object",
26883
+ "properties": {
26884
+ "identifier": {
26885
+ "type": "integer",
26886
+ "minimum": 0,
26887
+ "maximum": 255,
26888
+ "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26889
+ }
26890
+ },
26891
+ "required": [
26892
+ "identifier"
26893
+ ],
26894
+ "additionalProperties": false,
26895
+ "description": "Reference to the candidate ID list (VecAddress type table entry). Duplicates are deduped; max 100 candidates."
26896
+ },
26897
+ "where": {
26898
+ "oneOf": [
26899
+ {
26900
+ "type": "object",
26901
+ "properties": {
26902
+ "kind": {
26903
+ "type": "string",
26904
+ "const": "range"
26905
+ },
26906
+ "valueMin": {
26907
+ "description": "Optional lower bound (inclusive unless minInclusive=false). Plain number string (U256 semantics).",
26908
+ "type": "string"
26909
+ },
26910
+ "valueMax": {
26911
+ "description": "Optional upper bound (inclusive unless maxInclusive=false). Plain number string (U256 semantics).",
26912
+ "type": "string"
26913
+ },
26914
+ "minInclusive": {
26915
+ "description": "Default true. false makes the lower bound exclusive.",
26916
+ "type": "boolean"
26917
+ },
26918
+ "maxInclusive": {
26919
+ "description": "Default true. false makes the upper bound exclusive.",
26920
+ "type": "boolean"
26921
+ }
26922
+ },
26923
+ "required": [
26924
+ "kind"
26925
+ ],
26926
+ "additionalProperties": false,
26927
+ "description": "Numeric closed/open range. min=max inclusive is an equality match. At least one bound required."
26928
+ },
26929
+ {
26930
+ "type": "object",
26931
+ "properties": {
26932
+ "kind": {
26933
+ "type": "string",
26934
+ "const": "numEq"
26935
+ },
26936
+ "value": {
26937
+ "type": "string",
26938
+ "description": "Exact numeric match. Plain number string (U256 semantics)."
26939
+ }
26940
+ },
26941
+ "required": [
26942
+ "kind",
26943
+ "value"
26944
+ ],
26945
+ "additionalProperties": false
26946
+ },
26947
+ {
26948
+ "type": "object",
26949
+ "properties": {
26950
+ "kind": {
26951
+ "type": "string",
26952
+ "const": "gt"
26953
+ },
26954
+ "value": {
26955
+ "type": "string",
26956
+ "description": "Greater than. Plain number string (U256 semantics)."
26957
+ }
26958
+ },
26959
+ "required": [
26960
+ "kind",
26961
+ "value"
26962
+ ],
26963
+ "additionalProperties": false
26964
+ },
26965
+ {
26966
+ "type": "object",
26967
+ "properties": {
26968
+ "kind": {
26969
+ "type": "string",
26970
+ "const": "gte"
26971
+ },
26972
+ "value": {
26973
+ "type": "string",
26974
+ "description": "Greater than or equal. Plain number string (U256 semantics)."
26975
+ }
26976
+ },
26977
+ "required": [
26978
+ "kind",
26979
+ "value"
26980
+ ],
26981
+ "additionalProperties": false
26982
+ },
26983
+ {
26984
+ "type": "object",
26985
+ "properties": {
26986
+ "kind": {
26987
+ "type": "string",
26988
+ "const": "lt"
26989
+ },
26990
+ "value": {
26991
+ "type": "string",
26992
+ "description": "Less than. Plain number string (U256 semantics)."
26993
+ }
26994
+ },
26995
+ "required": [
26996
+ "kind",
26997
+ "value"
26998
+ ],
26999
+ "additionalProperties": false
27000
+ },
26366
27001
  {
26367
- "$ref": "#/definitions/__schema3"
26368
- }
26369
- ],
26370
- "$ref": "#/definitions/__schema2"
26371
- },
26372
- "forwardIdx": {
26373
- "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.",
26374
- "allOf": [
27002
+ "type": "object",
27003
+ "properties": {
27004
+ "kind": {
27005
+ "type": "string",
27006
+ "const": "lte"
27007
+ },
27008
+ "value": {
27009
+ "type": "string",
27010
+ "description": "Less than or equal. Plain number string (U256 semantics)."
27011
+ }
27012
+ },
27013
+ "required": [
27014
+ "kind",
27015
+ "value"
27016
+ ],
27017
+ "additionalProperties": false
27018
+ },
26375
27019
  {
26376
- "$ref": "#/definitions/__schema3"
26377
- }
26378
- ],
26379
- "$ref": "#/definitions/__schema2"
26380
- }
26381
- },
26382
- "required": [
26383
- "type",
26384
- "object",
26385
- "historyIdx",
26386
- "sessionIdx",
26387
- "forwardIdx"
26388
- ],
26389
- "additionalProperties": false,
26390
- "description": "Returns U64. Counts the number of retained submissions within the specified forward operation."
26391
- },
26392
- {
26393
- "type": "object",
26394
- "properties": {
26395
- "type": {
26396
- "type": "string",
26397
- "const": "query_progress_history_session_forward_retained_submission_value"
26398
- },
26399
- "object": {
26400
- "type": "object",
26401
- "properties": {
26402
- "identifier": {
26403
- "type": "integer",
26404
- "minimum": 0,
26405
- "maximum": 255,
26406
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
26407
- }
26408
- },
26409
- "required": [
26410
- "identifier"
26411
- ],
26412
- "additionalProperties": false,
26413
- "description": "Reference to the Progress object in the Guard table (must be Address type)."
26414
- },
26415
- "historyIdx": {
26416
- "description": "GuardNode that returns the history index (U64 type). Typically an 'identifier' node referencing a U64 value from the Guard table.",
26417
- "allOf": [
27020
+ "type": "object",
27021
+ "properties": {
27022
+ "kind": {
27023
+ "type": "string",
27024
+ "const": "addressEq"
27025
+ },
27026
+ "identifier": {
27027
+ "type": "integer",
27028
+ "minimum": 0,
27029
+ "maximum": 255,
27030
+ "description": "Identifier of the Address-type table entry to compare against."
27031
+ }
27032
+ },
27033
+ "required": [
27034
+ "kind",
27035
+ "identifier"
27036
+ ],
27037
+ "additionalProperties": false
27038
+ },
26418
27039
  {
26419
- "$ref": "#/definitions/__schema3"
26420
- }
26421
- ],
26422
- "$ref": "#/definitions/__schema2"
26423
- },
26424
- "sessionIdx": {
26425
- "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.",
26426
- "allOf": [
27040
+ "type": "object",
27041
+ "properties": {
27042
+ "kind": {
27043
+ "type": "string",
27044
+ "const": "stringEq"
27045
+ },
27046
+ "value": {
27047
+ "type": "string",
27048
+ "description": "Exact string match (byte equality, UTF-8)."
27049
+ }
27050
+ },
27051
+ "required": [
27052
+ "kind",
27053
+ "value"
27054
+ ],
27055
+ "additionalProperties": false
27056
+ },
26427
27057
  {
26428
- "$ref": "#/definitions/__schema3"
26429
- }
26430
- ],
26431
- "$ref": "#/definitions/__schema2"
26432
- },
26433
- "forwardIdx": {
26434
- "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.",
26435
- "allOf": [
27058
+ "type": "object",
27059
+ "properties": {
27060
+ "kind": {
27061
+ "type": "string",
27062
+ "const": "stringContains"
27063
+ },
27064
+ "value": {
27065
+ "type": "string",
27066
+ "description": "Substring match, case-sensitive."
27067
+ }
27068
+ },
27069
+ "required": [
27070
+ "kind",
27071
+ "value"
27072
+ ],
27073
+ "additionalProperties": false
27074
+ },
26436
27075
  {
26437
- "$ref": "#/definitions/__schema3"
26438
- }
26439
- ],
26440
- "$ref": "#/definitions/__schema2"
26441
- },
26442
- "identifier": {
26443
- "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.",
26444
- "allOf": [
27076
+ "type": "object",
27077
+ "properties": {
27078
+ "kind": {
27079
+ "type": "string",
27080
+ "const": "stringNoCaseContains"
27081
+ },
27082
+ "value": {
27083
+ "type": "string",
27084
+ "description": "Substring match, case-insensitive."
27085
+ }
27086
+ },
27087
+ "required": [
27088
+ "kind",
27089
+ "value"
27090
+ ],
27091
+ "additionalProperties": false
27092
+ },
26445
27093
  {
26446
- "$ref": "#/definitions/__schema3"
27094
+ "type": "object",
27095
+ "properties": {
27096
+ "kind": {
27097
+ "type": "string",
27098
+ "const": "boolEq"
27099
+ },
27100
+ "value": {
27101
+ "type": "boolean",
27102
+ "description": "Boolean equality."
27103
+ }
27104
+ },
27105
+ "required": [
27106
+ "kind",
27107
+ "value"
27108
+ ],
27109
+ "additionalProperties": false
26447
27110
  }
26448
27111
  ],
26449
- "$ref": "#/definitions/__schema2"
27112
+ "description": "Predicate filter applied to each candidate's data value."
26450
27113
  }
26451
27114
  },
26452
27115
  "required": [
26453
27116
  "type",
26454
27117
  "object",
26455
- "historyIdx",
26456
- "sessionIdx",
26457
- "forwardIdx",
26458
- "identifier"
27118
+ "key",
27119
+ "ids",
27120
+ "where"
26459
27121
  ],
26460
27122
  "additionalProperties": false,
26461
- "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)."
27123
+ "description": "Returns U64. Counts candidates whose stored value matches the predicate. Numeric predicates: U256 semantics (pass plain number strings). Range is closed interval per side (minInclusive/maxInclusive default true); a missing side is unbounded. numEq/gt/gte/lt/lte are sugar over range. Entries whose value type does not match the predicate kind are skipped (never error), so the count only reflects matching entries."
26462
27124
  },
26463
27125
  {
26464
27126
  "type": "object",
26465
27127
  "properties": {
26466
27128
  "type": {
26467
27129
  "type": "string",
26468
- "const": "query_repository_data_count_where"
27130
+ "const": "query_repository_data_sum_where"
26469
27131
  },
26470
27132
  "object": {
26471
27133
  "type": "object",
@@ -26741,14 +27403,14 @@
26741
27403
  "where"
26742
27404
  ],
26743
27405
  "additionalProperties": false,
26744
- "description": "Returns U64. Counts candidates whose stored value matches the predicate. Numeric predicates: U256 semantics (pass plain number strings). Range is closed interval per side (minInclusive/maxInclusive default true); a missing side is unbounded. numEq/gt/gte/lt/lte are sugar over range. Entries whose value type does not match the predicate kind are skipped (never error), so the count only reflects matching entries."
27406
+ "description": "Returns U256. Sums the numeric payloads of candidates whose stored value matches the predicate (on-chain checked add, overflow aborts). Non-numeric or mismatching entries contribute 0. Use logic_as_u256_* to compare the sum."
26745
27407
  },
26746
27408
  {
26747
27409
  "type": "object",
26748
27410
  "properties": {
26749
27411
  "type": {
26750
27412
  "type": "string",
26751
- "const": "query_repository_data_sum_where"
27413
+ "const": "query_repository_data_sum_where_bound"
26752
27414
  },
26753
27415
  "object": {
26754
27416
  "type": "object",
@@ -26796,7 +27458,7 @@
26796
27458
  "identifier"
26797
27459
  ],
26798
27460
  "additionalProperties": false,
26799
- "description": "Reference to the candidate ID list (VecAddress type table entry). Duplicates are deduped; max 100 candidates."
27461
+ "description": "Reference to the candidate ID list (VecAddress type table entry). Each id should be an ORDER address (e.g. order-keyed contribution rows). Duplicates are deduped; max 100 candidates."
26800
27462
  },
26801
27463
  "where": {
26802
27464
  "oneOf": [
@@ -27024,14 +27686,14 @@
27024
27686
  "where"
27025
27687
  ],
27026
27688
  "additionalProperties": false,
27027
- "description": "Returns U256. Sums the numeric payloads of candidates whose stored value matches the predicate (on-chain checked add, overflow aborts). Non-numeric or mismatching entries contribute 0. Use logic_as_u256_* to compare the sum."
27689
+ "description": "Returns U256. ESCROW-BOUND sum (query 1179, live cap v140): per-row min(row_value, order.amount, LIVE allocation.balance of the Order the row id names) — only funds still in escrow right now count, so a refunded or already-disbursed order contributes 0 naturally; a row whose Order has no allocation link also contributes 0, while an unreadable allocation object aborts the query (corruption is never a silent 0). A row keyed by anything that is not an Order contributes 0 (fail-closed). Unlike query_repository_data_sum_where (self-reported row values), a record cannot claim more than the escrow actually bound to it — the forgery-proof aggregate for threshold gates and Formula pricing. Use logic_as_u256_* to compare the sum."
27028
27690
  },
27029
27691
  {
27030
27692
  "type": "object",
27031
27693
  "properties": {
27032
27694
  "type": {
27033
27695
  "type": "string",
27034
- "const": "query_repository_data_sum_where_bound"
27696
+ "const": "query_repository_data_sum_where_bound_all"
27035
27697
  },
27036
27698
  "object": {
27037
27699
  "type": "object",
@@ -27065,22 +27727,6 @@
27065
27727
  "additionalProperties": false,
27066
27728
  "description": "Reference to the policy key (String type table entry) whose data table is scanned."
27067
27729
  },
27068
- "ids": {
27069
- "type": "object",
27070
- "properties": {
27071
- "identifier": {
27072
- "type": "integer",
27073
- "minimum": 0,
27074
- "maximum": 255,
27075
- "description": "Identifier (0-255) for data lookup in Guard table. Slot consensus (enforced on-chain at guard table construction): 0-220 = user slots (free for business guards); 221-253 = PROTOCOL-RESERVED (rejected on-chain — reserved so future protocol features get fixed slots without colliding with published guards); 255 = ONCE replay-protection slot on Allocation (byte-keyed, the submitted bytes are the once-key — use for per-period keys like period-<N>); 254 = ONCE-FOR-OBJECT slot on Allocation (chain-derived key = bcs(the Allocation's payment_info.for_object); the submitted bytes are ignored and the submission only arms the slot — use for one-shot per-order rails whose payee is NOT the order itself, such as settlement releases and incentive/bounty claims). NEVER arm 254 on a refund rail: a refund pays the submitted Order through user slot 0, and a refund leg re-entered in a later renewal period would abort E_ONCE_TRIGGERED (16) forever — refund once-ness comes from the terminal-node topology, never from a once slot. SLOT 0 SEMANTICS: slot 0 carries the transacted Order address by convention. As a submission slot it is legal on order/allocation/machine rails (the order exists when those verify), but FORBIDDEN on a Service buy_guard — the order does not exist when the buy-time passport is verified, so the mount is refused (service abort 43)."
27076
- }
27077
- },
27078
- "required": [
27079
- "identifier"
27080
- ],
27081
- "additionalProperties": false,
27082
- "description": "Reference to the candidate ID list (VecAddress type table entry). Each id should be an ORDER address (e.g. order-keyed contribution rows). Duplicates are deduped; max 100 candidates."
27083
- },
27084
27730
  "where": {
27085
27731
  "oneOf": [
27086
27732
  {
@@ -27296,18 +27942,17 @@
27296
27942
  "additionalProperties": false
27297
27943
  }
27298
27944
  ],
27299
- "description": "Predicate filter applied to each candidate's data value."
27945
+ "description": "Predicate filter applied to each row's data value."
27300
27946
  }
27301
27947
  },
27302
27948
  "required": [
27303
27949
  "type",
27304
27950
  "object",
27305
27951
  "key",
27306
- "ids",
27307
27952
  "where"
27308
27953
  ],
27309
27954
  "additionalProperties": false,
27310
- "description": "Returns U256. ESCROW-BOUND sum (query 1179, live cap v140): per-row min(row_value, order.amount, LIVE allocation.balance of the Order the row id names) — only funds still in escrow right now count, so a refunded or already-disbursed order contributes 0 naturally; a row whose Order has no allocation link also contributes 0, while an unreadable allocation object aborts the query (corruption is never a silent 0). A row keyed by anything that is not an Order contributes 0 (fail-closed). Unlike query_repository_data_sum_where (self-reported row values), a record cannot claim more than the escrow actually bound to it — the forgery-proof aggregate for threshold gates and Formula pricing. Use logic_as_u256_* to compare the sum."
27955
+ "description": "Returns U256. ALL-MODE escrow-bound sum (query 1181, flag enable_repository_data_sum_bound_all, protocol v141 — the query ABORTS while the flag is off): the 1179 per-row clamp min(row_value, order.amount, LIVE allocation.balance) over a DERIVED candidate set — the per-key RowRosterKey dynamic-field roster the framework maintains on every data write — instead of a caller-supplied ids list, so the aggregate no longer depends on the caller submitting an honest, complete candidate list (the ks13/HKS-04 ROSTER-01 face). No ids parameter. The roster is bounded by REPOSITORY_QUERY_MAX_CANDIDATES: a key with more rows aborts the query (fail-closed, never a silent truncation). Pre-flag rows (written before the roster was maintained, or under a disabled flag on an older binary) are NOT in the roster and contribute 0 — rebuild or re-touch rows after enabling. Use logic_as_u256_* to compare the sum."
27311
27956
  },
27312
27957
  {
27313
27958
  "type": "object",