@wowok/agent-mcp 3.0.4 → 3.0.6

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 (305) hide show
  1. package/README.md +25 -20
  2. package/dist/customer/account-events.js +1 -1
  3. package/dist/evaluation/path-reasoning.d.ts +4 -2
  4. package/dist/evaluation/path-reasoning.js +1 -1
  5. package/dist/extensions/constraint-registry.d.ts +2 -2
  6. package/dist/extensions/constraint-registry.js +1 -1
  7. package/dist/extensions/custom-registry-file.d.ts +22 -0
  8. package/dist/extensions/custom-registry-file.js +1 -0
  9. package/dist/extensions/index.d.ts +2 -1
  10. package/dist/extensions/index.js +1 -1
  11. package/dist/extensions/industry-pack.d.ts +7 -0
  12. package/dist/extensions/industry-pack.js +1 -1
  13. package/dist/extensions/metric-registry.d.ts +2 -2
  14. package/dist/extensions/metric-registry.js +1 -1
  15. package/dist/extensions/modes.js +1 -1
  16. package/dist/extensions/registry.d.ts +2 -2
  17. package/dist/extensions/registry.js +1 -1
  18. package/dist/extensions/types.d.ts +4 -0
  19. package/dist/goal/GoalEngine.d.ts +13 -1
  20. package/dist/goal/GoalEngine.js +1 -1
  21. package/dist/goal/next-steps.d.ts +12 -0
  22. package/dist/goal/next-steps.js +1 -0
  23. package/dist/goal/pursue.d.ts +18 -0
  24. package/dist/goal/pursue.js +1 -0
  25. package/dist/goal/types.d.ts +72 -0
  26. package/dist/goal/types.js +1 -1
  27. package/dist/graph/onchain/analyze.d.ts +44 -0
  28. package/dist/graph/onchain/analyze.js +1 -0
  29. package/dist/graph/onchain/analyze.spec.d.ts +1 -0
  30. package/dist/graph/onchain/analyze.spec.js +1 -0
  31. package/dist/graph/onchain/anti-cheat.d.ts +39 -0
  32. package/dist/graph/onchain/anti-cheat.js +1 -0
  33. package/dist/graph/onchain/anti-cheat.spec.d.ts +1 -0
  34. package/dist/graph/onchain/anti-cheat.spec.js +1 -0
  35. package/dist/graph/onchain/dataplane.d.ts +44 -0
  36. package/dist/graph/onchain/dataplane.js +1 -0
  37. package/dist/graph/onchain/edge-schema.d.ts +60 -0
  38. package/dist/graph/onchain/edge-schema.js +1 -0
  39. package/dist/graph/onchain/expand.d.ts +4 -0
  40. package/dist/graph/onchain/expand.js +1 -0
  41. package/dist/graph/onchain/extract.d.ts +21 -0
  42. package/dist/graph/onchain/extract.js +1 -0
  43. package/dist/graph/onchain/index.d.ts +17 -0
  44. package/dist/graph/onchain/index.js +1 -0
  45. package/dist/graph/onchain/interest.d.ts +10 -0
  46. package/dist/graph/onchain/interest.js +1 -0
  47. package/dist/graph/onchain/interest.spec.d.ts +1 -0
  48. package/dist/graph/onchain/interest.spec.js +1 -0
  49. package/dist/graph/onchain/onchain.spec.d.ts +1 -0
  50. package/dist/graph/onchain/onchain.spec.js +1 -0
  51. package/dist/graph/onchain/order-status.d.ts +53 -0
  52. package/dist/graph/onchain/order-status.js +1 -0
  53. package/dist/graph/onchain/project-relationship.d.ts +3 -0
  54. package/dist/graph/onchain/project-relationship.js +1 -0
  55. package/dist/graph/onchain/sdk-batch.d.ts +123 -0
  56. package/dist/graph/onchain/sdk-batch.js +1 -0
  57. package/dist/graph/onchain/sdk-dataplane.d.ts +43 -0
  58. package/dist/graph/onchain/sdk-dataplane.js +1 -0
  59. package/dist/graph/onchain/strategy.d.ts +54 -0
  60. package/dist/graph/onchain/strategy.js +1 -0
  61. package/dist/graph/onchain/strategy.spec.d.ts +1 -0
  62. package/dist/graph/onchain/strategy.spec.js +1 -0
  63. package/dist/graph/onchain/types.d.ts +238 -0
  64. package/dist/graph/onchain/types.js +1 -0
  65. package/dist/graph/onchain/viewport.d.ts +5 -0
  66. package/dist/graph/onchain/viewport.js +1 -0
  67. package/dist/harness/recover.js +1 -1
  68. package/dist/index.js +1 -1
  69. package/dist/intent/enrich.js +1 -1
  70. package/dist/keeper/detectors.d.ts +1 -1
  71. package/dist/keeper/detectors.js +1 -1
  72. package/dist/knowledge/account-marks.js +1 -1
  73. package/dist/knowledge/allocation-risk.js +1 -1
  74. package/dist/knowledge/allocation-templates.js +1 -1
  75. package/dist/knowledge/anti-cheat.d.ts +2 -37
  76. package/dist/knowledge/anti-cheat.js +1 -1
  77. package/dist/knowledge/contract-invariants.js +1 -1
  78. package/dist/knowledge/getting-started.d.ts +37 -0
  79. package/dist/knowledge/getting-started.js +1 -0
  80. package/dist/knowledge/goal-completion.d.ts +12 -0
  81. package/dist/knowledge/goal-completion.js +1 -1
  82. package/dist/knowledge/guard-render.d.ts +1 -0
  83. package/dist/knowledge/guard-render.js +1 -1
  84. package/dist/knowledge/guard-risk.js +1 -1
  85. package/dist/knowledge/guard-submission-brief.d.ts +83 -0
  86. package/dist/knowledge/guard-submission-brief.js +1 -0
  87. package/dist/knowledge/guard-submission-prompt.d.ts +13 -0
  88. package/dist/knowledge/guard-submission-prompt.js +1 -1
  89. package/dist/knowledge/index.d.ts +10 -4
  90. package/dist/knowledge/index.js +1 -1
  91. package/dist/knowledge/industry-registry.js +1 -1
  92. package/dist/knowledge/industry-strategy.d.ts +91 -0
  93. package/dist/knowledge/industry-strategy.js +1 -0
  94. package/dist/knowledge/jsonrpc-enum.js +1 -1
  95. package/dist/knowledge/market-metrics.d.ts +14 -3
  96. package/dist/knowledge/market-metrics.js +1 -1
  97. package/dist/knowledge/migration-preflight.js +1 -1
  98. package/dist/knowledge/operation-dictionary.d.ts +1 -1
  99. package/dist/knowledge/payment-tracker.d.ts +63 -0
  100. package/dist/knowledge/payment-tracker.js +1 -0
  101. package/dist/knowledge/recipient-constraint.d.ts +160 -0
  102. package/dist/knowledge/recipient-constraint.js +1 -0
  103. package/dist/knowledge/safety-rules.d.ts +1 -1
  104. package/dist/knowledge/safety-rules.js +1 -1
  105. package/dist/knowledge/scenario-topology.d.ts +6 -1
  106. package/dist/knowledge/scenario-topology.js +1 -1
  107. package/dist/knowledge/service-risk-node.d.ts +3 -0
  108. package/dist/knowledge/service-risk-node.js +1 -0
  109. package/dist/knowledge/service-risk.d.ts +2 -0
  110. package/dist/knowledge/service-risk.js +1 -1
  111. package/dist/knowledge/service-templates.d.ts +2 -0
  112. package/dist/knowledge/service-templates.js +1 -1
  113. package/dist/knowledge/strategy-manuals.d.ts +17 -0
  114. package/dist/knowledge/strategy-manuals.js +1 -0
  115. package/dist/knowledge/supply-chain.d.ts +3 -1
  116. package/dist/knowledge/supply-chain.js +1 -1
  117. package/dist/knowledge/template-registry.js +1 -1
  118. package/dist/knowledge/tools-reference.js +1 -1
  119. package/dist/knowledge/workflow-guidance.d.ts +3 -118
  120. package/dist/knowledge/workflow-guidance.js +1 -1
  121. package/dist/knowledge/workspace-lists.d.ts +4 -0
  122. package/dist/knowledge/workspace-lists.js +1 -1
  123. package/dist/monitor/MonitorLoop.js +1 -1
  124. package/dist/monitor/ScopeResolver.js +1 -1
  125. package/dist/participation/arbitrator-interest.d.ts +2 -0
  126. package/dist/participation/arbitrator-interest.js +1 -1
  127. package/dist/participation/collaborator-interest.d.ts +2 -0
  128. package/dist/participation/collaborator-interest.js +1 -1
  129. package/dist/participation/customer-interest.d.ts +2 -0
  130. package/dist/participation/customer-interest.js +1 -1
  131. package/dist/participation/merchant-interest.d.ts +2 -0
  132. package/dist/participation/merchant-interest.js +1 -1
  133. package/dist/participation/radar-core.d.ts +15 -15
  134. package/dist/participation/radar-core.js +1 -1
  135. package/dist/participation/supplier-interest.d.ts +2 -0
  136. package/dist/participation/supplier-interest.js +1 -1
  137. package/dist/persona/analyzer.d.ts +2 -1
  138. package/dist/persona/bridge.d.ts +5 -1
  139. package/dist/persona/bridge.js +1 -1
  140. package/dist/persona/defaults.js +1 -1
  141. package/dist/persona/distill-goal.d.ts +7 -1
  142. package/dist/persona/distill-goal.js +1 -1
  143. package/dist/persona/index.d.ts +13 -3
  144. package/dist/persona/index.js +1 -1
  145. package/dist/persona/model.d.ts +12 -2
  146. package/dist/persona/model.js +1 -1
  147. package/dist/persona/overrides.d.ts +1 -0
  148. package/dist/persona/overrides.js +1 -1
  149. package/dist/persona/topology-focus.d.ts +29 -0
  150. package/dist/persona/topology-focus.js +1 -0
  151. package/dist/persona/types.d.ts +81 -0
  152. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  153. package/dist/playbooks/service-build/context-assembly.js +1 -1
  154. package/dist/playbooks/service-build/machine-nodes.js +1 -1
  155. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  156. package/dist/playbooks/service-build/merchant-guide.d.ts +7 -0
  157. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  158. package/dist/playbooks/service-build/object-panorama.js +1 -1
  159. package/dist/playbooks/service-build/participation-radar.js +1 -1
  160. package/dist/playbooks/service-build/pipeline-actions.d.ts +2 -2
  161. package/dist/playbooks/service-build/pipeline-actions.js +1 -1
  162. package/dist/playbooks/service-build/relationship-profile.d.ts +1 -0
  163. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  164. package/dist/playbooks/service-build/risk-aggregator.js +1 -1
  165. package/dist/playbooks/service-build/service-panorama.d.ts +4 -0
  166. package/dist/playbooks/service-build/service-panorama.js +1 -1
  167. package/dist/playbooks/service-build/topology-query.d.ts +14 -0
  168. package/dist/playbooks/service-build/topology-query.js +1 -0
  169. package/dist/relationship/derivation.js +1 -1
  170. package/dist/role/index.d.ts +1 -0
  171. package/dist/role/index.js +1 -1
  172. package/dist/role/profiles.d.ts +26 -0
  173. package/dist/role/profiles.js +1 -0
  174. package/dist/safety/confirm-gate.d.ts +4 -1
  175. package/dist/safety/confirm-gate.js +1 -1
  176. package/dist/schema/call/allocation.d.ts +6 -6
  177. package/dist/schema/call/allocation.js +1 -1
  178. package/dist/schema/call/base.js +1 -1
  179. package/dist/schema/call/bridge.d.ts +1 -1
  180. package/dist/schema/call/guard.d.ts +20 -20
  181. package/dist/schema/call/repository.js +1 -1
  182. package/dist/schema/call/semantic.js +1 -1
  183. package/dist/schema/call/service.d.ts +4 -4
  184. package/dist/schema/call/service.js +1 -1
  185. package/dist/schema/common/index.js +1 -1
  186. package/dist/schema/employee/index.d.ts +7 -7
  187. package/dist/schema/evaluation/index.d.ts +26 -13
  188. package/dist/schema/evaluation/index.js +1 -1
  189. package/dist/schema/goal/index.d.ts +53 -17
  190. package/dist/schema/goal/index.js +1 -1
  191. package/dist/schema/goal/planning.d.ts +7 -7
  192. package/dist/schema/index.d.ts +1 -0
  193. package/dist/schema/index.js +1 -1
  194. package/dist/schema/industry-pack/index.d.ts +13 -6
  195. package/dist/schema/industry-pack/index.js +1 -1
  196. package/dist/schema/industry-pack/modes.d.ts +6 -6
  197. package/dist/schema/intent-radar/index.d.ts +16 -16
  198. package/dist/schema/local/index.d.ts +8 -4
  199. package/dist/schema/local/index.js +1 -1
  200. package/dist/schema/messenger/index.d.ts +428 -72
  201. package/dist/schema/messenger/index.js +1 -1
  202. package/dist/schema/operations.d.ts +177 -34
  203. package/dist/schema/operations.js +1 -1
  204. package/dist/schema/persona/index.d.ts +15744 -1
  205. package/dist/schema/persona/index.js +1 -1
  206. package/dist/schema/query/bi.d.ts +891 -24
  207. package/dist/schema/query/bi.js +1 -1
  208. package/dist/schema/query/index.d.ts +168 -43
  209. package/dist/schema/query/index.js +1 -1
  210. package/dist/schema/schema-query/index.d.ts +16 -0
  211. package/dist/schema/schema-query/index.js +1 -1
  212. package/dist/schema/schema-version.js +1 -1
  213. package/dist/schema/strategy-review/index.d.ts +137 -0
  214. package/dist/schema/strategy-review/index.js +1 -0
  215. package/dist/schema/trust/index.d.ts +6 -6
  216. package/dist/schema/workflow/index.d.ts +2 -2
  217. package/dist/schema-query-impl/index.js +1 -1
  218. package/dist/schemas/account_operation.output.json +8 -4
  219. package/dist/schemas/account_operation.schema.json +6 -2
  220. package/dist/schemas/bridge_operation.schema.json +10 -10
  221. package/dist/schemas/evaluation_operation.output.json +24 -0
  222. package/dist/schemas/evaluation_operation.schema.json +7 -7
  223. package/dist/schemas/goal_operation.schema.json +124 -0
  224. package/dist/schemas/guard2file.schema.json +2 -2
  225. package/dist/schemas/index.json +7 -1
  226. package/dist/schemas/industry_pack_operation.output.json +39 -0
  227. package/dist/schemas/local_mark_operation.schema.json +2 -2
  228. package/dist/schemas/machineNode2file.schema.json +2 -2
  229. package/dist/schemas/messenger_operation.output.json +934 -236
  230. package/dist/schemas/messenger_operation.schema.json +93 -242
  231. package/dist/schemas/onchain_events.schema.json +1 -1
  232. package/dist/schemas/onchain_operations.schema.json +54 -54
  233. package/dist/schemas/onchain_operations_allocation.schema.json +5 -5
  234. package/dist/schemas/onchain_operations_arbitration.schema.json +2 -2
  235. package/dist/schemas/onchain_operations_contact.schema.json +2 -2
  236. package/dist/schemas/onchain_operations_demand.schema.json +2 -2
  237. package/dist/schemas/onchain_operations_gen_passport.schema.json +2 -2
  238. package/dist/schemas/onchain_operations_gen_proof.schema.json +2 -2
  239. package/dist/schemas/onchain_operations_guard.schema.json +2 -2
  240. package/dist/schemas/onchain_operations_machine.schema.json +8 -8
  241. package/dist/schemas/onchain_operations_order.schema.json +2 -2
  242. package/dist/schemas/onchain_operations_payment.schema.json +3 -3
  243. package/dist/schemas/onchain_operations_permission.schema.json +2 -2
  244. package/dist/schemas/onchain_operations_personal.schema.json +2 -2
  245. package/dist/schemas/onchain_operations_progress.schema.json +2 -2
  246. package/dist/schemas/onchain_operations_proof.schema.json +2 -2
  247. package/dist/schemas/onchain_operations_repository.schema.json +5 -5
  248. package/dist/schemas/onchain_operations_reward.schema.json +2 -2
  249. package/dist/schemas/onchain_operations_service.schema.json +5 -5
  250. package/dist/schemas/onchain_operations_treasury.schema.json +4 -4
  251. package/dist/schemas/onchain_table_data.output.json +197 -13
  252. package/dist/schemas/onchain_table_data.schema.json +43 -43
  253. package/dist/schemas/persona_operation.output.json +37778 -262
  254. package/dist/schemas/persona_operation.schema.json +5960 -1
  255. package/dist/schemas/query_toolkit.output.json +1615 -10
  256. package/dist/schemas/query_toolkit.schema.json +232 -42
  257. package/dist/schemas/schema_query.schema.json +25 -1
  258. package/dist/schemas/strategy_review_operation.output.json +532 -0
  259. package/dist/schemas/strategy_review_operation.schema.json +66 -0
  260. package/dist/schemas/wowok_buildin_info.output.json +188 -6
  261. package/dist/schemas/wowok_buildin_info.schema.json +14 -0
  262. package/dist/strategy/collectors.d.ts +66 -0
  263. package/dist/strategy/collectors.js +1 -0
  264. package/dist/strategy/collectors.spec.d.ts +1 -0
  265. package/dist/strategy/collectors.spec.js +1 -0
  266. package/dist/strategy/index.d.ts +5 -0
  267. package/dist/strategy/index.js +1 -0
  268. package/dist/strategy/metrics.d.ts +20 -0
  269. package/dist/strategy/metrics.js +1 -0
  270. package/dist/strategy/review.d.ts +48 -0
  271. package/dist/strategy/review.js +1 -0
  272. package/dist/strategy/scorecard.d.ts +32 -0
  273. package/dist/strategy/scorecard.js +1 -0
  274. package/dist/strategy/store.d.ts +26 -0
  275. package/dist/strategy/store.js +1 -0
  276. package/dist/tools/handlers/config.js +1 -1
  277. package/dist/tools/handlers/evaluation.js +1 -1
  278. package/dist/tools/handlers/goal.js +1 -1
  279. package/dist/tools/handlers/industry-pack.js +1 -1
  280. package/dist/tools/handlers/local.js +1 -1
  281. package/dist/tools/handlers/messenger.js +1 -1
  282. package/dist/tools/handlers/onchain.js +1 -1
  283. package/dist/tools/handlers/permission.js +1 -1
  284. package/dist/tools/handlers/persona.js +1 -1
  285. package/dist/tools/handlers/query.d.ts +6 -0
  286. package/dist/tools/handlers/query.js +1 -1
  287. package/dist/tools/handlers/schema-query.js +1 -1
  288. package/dist/tools/handlers/strategy-review.d.ts +2 -0
  289. package/dist/tools/handlers/strategy-review.js +1 -0
  290. package/dist/tools/handlers/watch.js +1 -1
  291. package/dist/tools/handlers/workflow.js +1 -1
  292. package/dist/tools/index.d.ts +3 -0
  293. package/dist/tools/index.js +1 -1
  294. package/dist/tools/registry/agent.js +1 -1
  295. package/dist/tools/registry/business.js +1 -1
  296. package/dist/tools/registry/local.js +1 -1
  297. package/dist/tools/registry/messenger.js +1 -1
  298. package/dist/tools/registry/onchain.js +1 -1
  299. package/dist/tools/registry/query.js +1 -1
  300. package/dist/tools/rules-hook.d.ts +2 -0
  301. package/dist/tools/rules-hook.js +1 -1
  302. package/dist/tools/shared.d.ts +2 -1
  303. package/dist/tools/shared.js +1 -1
  304. package/dist/tools/wrap.js +1 -1
  305. package/package.json +2 -2
@@ -2618,7 +2618,7 @@
2618
2618
  "additionalProperties": false,
2619
2619
  "description": "Fund allocation item — one recipient's share of the Allocation balance. The `sharing` value's meaning depends on `mode` (see AllocationModeSchema). Multiple items in the same Allocator are evaluated together: Amount items first, Rate items second, Surplus last."
2620
2620
  },
2621
- "description": "Fund allocation item list. Each item specifies a recipient (who), a value (sharing), and a mode. Items can mix modes (Amount + Rate + Surplus) within the same Allocator. ALLOCATION ORDER: Amount items first (cached as fix) → Rate items (proportional to balance - fix) → Surplus item (remaining). CONSTRAINTS: max ONE Surplus item per Allocator; Rate sum must == 10000 (no Surplus) or <= 10000 (with Surplus); Amount sum must >= threshold (no Rate and no Surplus) and <= max (if max set)."
2621
+ "description": "Fund allocation item list. Each item specifies a recipient (who), a value (sharing), and a mode. Items can mix modes (Amount + Rate + Surplus) within the same Allocator. RECIPIENT SEMANTICS: the Guard constrains what each submission slot may be; a recipient's safety follows from the sufficiency of those constraints (run the recipient constraint audit). Canonical order pattern: recipient = the single submitted Order — funds land at that object and are receivable only by its owner. ALLOCATION ORDER: Amount items first (cached as fix) → Rate items (proportional to balance - fix) → Surplus item (remaining). CONSTRAINTS: max ONE Surplus item per Allocator; Rate sum must == 10000 (no Surplus) or <= 10000 (with Surplus); Amount sum must >= threshold (no Rate and no Surplus) and <= max (if max set)."
2622
2622
  },
2623
2623
  "fix": {
2624
2624
  "description": "OUTPUT-ONLY (query result). Cached sum of all Amount-mode `sharing` values in this Allocator. Computed by the contract during `allocator_add` — DO NOT set this field at creation. Used internally to compute `total_rates = balance - fix` for Rate allocation.",
@@ -3841,7 +3841,7 @@
3841
3841
  "additionalProperties": false,
3842
3842
  "description": "Guard submission"
3843
3843
  },
3844
- "description": "Used to define submitted data after Guard verification"
3844
+ "description": "Values persisted into the Progress history when this forward was accomplished. PROVENANCE: when the Machine forward lists retained_submission identifiers, the Guard is STILL fully verified first — the forward cannot complete without a passing Guard result. After verification, exactly the caller's submissions for the listed identifiers are copied here as Guard-verified facts (see MachineForwardGuardSchema)."
3845
3845
  },
3846
3846
  "msg": {
3847
3847
  "type": "string",
@@ -4890,7 +4890,7 @@
4890
4890
  "additionalProperties": false,
4891
4891
  "description": "Fund allocation item — one recipient's share of the Allocation balance. The `sharing` value's meaning depends on `mode` (see AllocationModeSchema). Multiple items in the same Allocator are evaluated together: Amount items first, Rate items second, Surplus last."
4892
4892
  },
4893
- "description": "Fund allocation item list. Each item specifies a recipient (who), a value (sharing), and a mode. Items can mix modes (Amount + Rate + Surplus) within the same Allocator. ALLOCATION ORDER: Amount items first (cached as fix) → Rate items (proportional to balance - fix) → Surplus item (remaining). CONSTRAINTS: max ONE Surplus item per Allocator; Rate sum must == 10000 (no Surplus) or <= 10000 (with Surplus); Amount sum must >= threshold (no Rate and no Surplus) and <= max (if max set)."
4893
+ "description": "Fund allocation item list. Each item specifies a recipient (who), a value (sharing), and a mode. Items can mix modes (Amount + Rate + Surplus) within the same Allocator. RECIPIENT SEMANTICS: the Guard constrains what each submission slot may be; a recipient's safety follows from the sufficiency of those constraints (run the recipient constraint audit). Canonical order pattern: recipient = the single submitted Order — funds land at that object and are receivable only by its owner. ALLOCATION ORDER: Amount items first (cached as fix) → Rate items (proportional to balance - fix) → Surplus item (remaining). CONSTRAINTS: max ONE Surplus item per Allocator; Rate sum must == 10000 (no Surplus) or <= 10000 (with Surplus); Amount sum must >= threshold (no Rate and no Surplus) and <= max (if max set)."
4894
4894
  },
4895
4895
  "fix": {
4896
4896
  "description": "OUTPUT-ONLY (query result). Cached sum of all Amount-mode `sharing` values in this Allocator. Computed by the contract during `allocator_add` — DO NOT set this field at creation. Used internally to compute `total_rates = balance - fix` for Rate allocation.",
@@ -4948,7 +4948,7 @@
4948
4948
  "type": "object",
4949
4949
  "properties": {
4950
4950
  "for_object": {
4951
- "description": "Payment for a specific object ID",
4951
+ "description": "Object this distribution belongs to (e.g. the order for a per-order allocation, recorded at creation). Auditors can query it to see the distribution's business context.",
4952
4952
  "anyOf": [
4953
4953
  {
4954
4954
  "type": "string"
@@ -5688,7 +5688,7 @@
5688
5688
  "additionalProperties": false,
5689
5689
  "description": "Guard object that needs verification when writing policy"
5690
5690
  },
5691
- "description": "Guard object list that can be verified when writing data"
5691
+ "description": "Guard object list that can be verified when writing data. REQUIRED (non-empty) when id_from is 0/None (chain abort 22); optional when id_from is Clock/Signer."
5692
5692
  },
5693
5693
  "quote_guard": {
5694
5694
  "description": "Guard object ID that needs verification when referencing this policy data on-chain (e.g., verifying if user has paid subscription). If null, no verification is needed for on-chain references. The Guard must have empty 'relies' field and 'rep' field true.",
@@ -7169,7 +7169,7 @@
7169
7169
  "type": "object",
7170
7170
  "properties": {
7171
7171
  "for_object": {
7172
- "description": "Payment for a specific object ID",
7172
+ "description": "Object this distribution belongs to (e.g. the order for a per-order allocation, recorded at creation). Auditors can query it to see the distribution's business context.",
7173
7173
  "anyOf": [
7174
7174
  {
7175
7175
  "type": "string"
@@ -14221,7 +14221,7 @@
14221
14221
  "description": "Forward weight — the contribution this forward makes toward its Pair's threshold. ⚠️ SINGLE-OPERATOR LOCK: a forward contributes its weight AT MOST ONCE. It is locked by the first operator that accomplishes it (progress.move session_accomplish_imp); a second operator re-executing the same accomplished forward aborts E_NOT_THE_HOLDER. Therefore multi-operator cooperation (threshold > 1) needs one DISTINCT forward per contributing operator (e.g. threshold 2 → begin_a + begin_b, each weight 1) — never reuse one forward."
14222
14222
  },
14223
14223
  "guard": {
14224
- "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.",
14224
+ "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.\nRETAINED_SUBMISSION: a non-empty retained_submission does NOT relax Guard verification — the forward's Guard is always validated first. The list only selects which of the caller's already-verified submissions are persisted into the Progress history (see the guard field above).",
14225
14225
  "anyOf": [
14226
14226
  {
14227
14227
  "anyOf": [
@@ -14233,7 +14233,7 @@
14233
14233
  "description": "Guard object name or address (string). Example: 'my_attendance_guard' or '0x1234...'"
14234
14234
  },
14235
14235
  "retained_submission": {
14236
- "description": "Data submitted by user during Guard object verification",
14236
+ "description": "Guard table identifiers whose verified values are persisted into the Progress history when the forward is accomplished. The Guard is ALWAYS fully verified first (regardless of this list): the forward cannot complete unless the Passport carries a passing result for it. After verification, exactly the caller's submissions for the listed identifiers are copied into history (passport::submissions_get) as Guard-verified facts; empty array (default) records nothing. Use it for audit and downstream queries, never as a way to relax Guard conditions.",
14237
14237
  "anyOf": [
14238
14238
  {
14239
14239
  "type": "array",
@@ -15021,7 +15021,7 @@
15021
15021
  "additionalProperties": false,
15022
15022
  "description": "Guard submission"
15023
15023
  },
15024
- "description": "Used to define submitted data after Guard verification"
15024
+ "description": "Values persisted into the Progress history when this forward was accomplished. PROVENANCE: when the Machine forward lists retained_submission identifiers, the Guard is STILL fully verified first — the forward cannot complete without a passing Guard result. After verification, exactly the caller's submissions for the listed identifiers are copied here as Guard-verified facts (see MachineForwardGuardSchema)."
15025
15025
  },
15026
15026
  "msg": {
15027
15027
  "type": "string",
@@ -15722,6 +15722,33 @@
15722
15722
  ],
15723
15723
  "additionalProperties": false
15724
15724
  },
15725
+ {
15726
+ "type": "object",
15727
+ "properties": {
15728
+ "query_type": {
15729
+ "type": "string",
15730
+ "const": "onchain_block"
15731
+ },
15732
+ "result": {
15733
+ "anyOf": [
15734
+ {
15735
+ "type": "object",
15736
+ "propertyNames": {
15737
+ "type": "string"
15738
+ },
15739
+ "additionalProperties": {},
15740
+ "description": "RAW fullnode checkpoint summary, verbatim (no semantic shaping)"
15741
+ },
15742
+ {}
15743
+ ]
15744
+ }
15745
+ },
15746
+ "required": [
15747
+ "query_type",
15748
+ "result"
15749
+ ],
15750
+ "additionalProperties": false
15751
+ },
15725
15752
  {
15726
15753
  "type": "object",
15727
15754
  "properties": {
@@ -15755,6 +15782,10 @@
15755
15782
  "description": "Unix timestamp in milliseconds",
15756
15783
  "type": "string"
15757
15784
  },
15785
+ "checkpoint": {
15786
+ "description": "Checkpoint sequence containing this transaction — the global total order. Use it to order/compare across pages instead of timestamp_ms (which is the fullnode's ms clock).",
15787
+ "type": "string"
15788
+ },
15758
15789
  "sender": {
15759
15790
  "description": "Transaction sender address",
15760
15791
  "type": "string"
@@ -15869,6 +15900,10 @@
15869
15900
  "description": "Unix timestamp in milliseconds",
15870
15901
  "type": "string"
15871
15902
  },
15903
+ "checkpoint": {
15904
+ "description": "Checkpoint sequence containing this transaction — the global total order. Use it to order/compare across pages instead of timestamp_ms (which is the fullnode's ms clock).",
15905
+ "type": "string"
15906
+ },
15872
15907
  "sender": {
15873
15908
  "description": "Transaction sender address",
15874
15909
  "type": "string"
@@ -16592,6 +16627,34 @@
16592
16627
  "weight": {
16593
16628
  "description": "Forward weight (accumulates toward the pair's threshold).",
16594
16629
  "type": "number"
16630
+ },
16631
+ "recommended_call": {
16632
+ "description": "Concrete tool route for THIS account to execute the forward (absent when execution_path=not_available).",
16633
+ "type": "object",
16634
+ "properties": {
16635
+ "tool": {
16636
+ "type": "string",
16637
+ "enum": [
16638
+ "onchain_operations",
16639
+ "workflow_operation"
16640
+ ],
16641
+ "description": "Tool that executes the forward: onchain_operations order.data.progress (OrderHolder short-circuit) or workflow_operation data.operate (permission index / named operator)."
16642
+ },
16643
+ "path": {
16644
+ "type": "string",
16645
+ "description": "Input path inside the tool data payload."
16646
+ },
16647
+ "reason": {
16648
+ "type": "string",
16649
+ "description": "Chain-authoritative routing reason, including the wrong-route abort code (direct progress::next on a namedOperator='' forward aborts permission#5 'Permission denied') and the Guard passport requirement when the forward binds one."
16650
+ }
16651
+ },
16652
+ "required": [
16653
+ "tool",
16654
+ "path",
16655
+ "reason"
16656
+ ],
16657
+ "additionalProperties": false
16595
16658
  }
16596
16659
  },
16597
16660
  "required": [
@@ -16970,6 +17033,34 @@
16970
17033
  "weight": {
16971
17034
  "description": "Forward weight (accumulates toward the pair's threshold).",
16972
17035
  "type": "number"
17036
+ },
17037
+ "recommended_call": {
17038
+ "description": "Concrete tool route for THIS account to execute the forward (absent when execution_path=not_available).",
17039
+ "type": "object",
17040
+ "properties": {
17041
+ "tool": {
17042
+ "type": "string",
17043
+ "enum": [
17044
+ "onchain_operations",
17045
+ "workflow_operation"
17046
+ ],
17047
+ "description": "Tool that executes the forward: onchain_operations order.data.progress (OrderHolder short-circuit) or workflow_operation data.operate (permission index / named operator)."
17048
+ },
17049
+ "path": {
17050
+ "type": "string",
17051
+ "description": "Input path inside the tool data payload."
17052
+ },
17053
+ "reason": {
17054
+ "type": "string",
17055
+ "description": "Chain-authoritative routing reason, including the wrong-route abort code (direct progress::next on a namedOperator='' forward aborts permission#5 'Permission denied') and the Guard passport requirement when the forward binds one."
17056
+ }
17057
+ },
17058
+ "required": [
17059
+ "tool",
17060
+ "path",
17061
+ "reason"
17062
+ ],
17063
+ "additionalProperties": false
16973
17064
  }
16974
17065
  },
16975
17066
  "required": [
@@ -17672,6 +17763,17 @@
17672
17763
  "type": "string",
17673
17764
  "description": "Stable bridge id (e.g. bridge.supply_match)."
17674
17765
  },
17766
+ "code": {
17767
+ "type": "string",
17768
+ "description": "Short cross-link code used by EdgeSchema.bridgeIds (b01..b12)."
17769
+ },
17770
+ "edge_refs": {
17771
+ "type": "array",
17772
+ "items": {
17773
+ "type": "string"
17774
+ },
17775
+ "description": "Machine-readable grounding: EdgeSchema ids whose presence indicates this bridge."
17776
+ },
17675
17777
  "name": {
17676
17778
  "type": "string"
17677
17779
  },
@@ -17765,6 +17867,8 @@
17765
17867
  },
17766
17868
  "required": [
17767
17869
  "id",
17870
+ "code",
17871
+ "edge_refs",
17768
17872
  "name",
17769
17873
  "participants",
17770
17874
  "bridge_fields",
@@ -18009,7 +18113,1508 @@
18009
18113
  "result"
18010
18114
  ],
18011
18115
  "additionalProperties": false
18012
- }
18116
+ },
18117
+ {
18118
+ "type": "object",
18119
+ "properties": {
18120
+ "query_type": {
18121
+ "type": "string",
18122
+ "const": "onchain_topology"
18123
+ },
18124
+ "result": {
18125
+ "type": "object",
18126
+ "properties": {
18127
+ "action": {
18128
+ "type": "string",
18129
+ "const": "onchain_topology"
18130
+ },
18131
+ "seed": {
18132
+ "type": "string",
18133
+ "description": "Resolved seed address (lowercased canonical form)."
18134
+ },
18135
+ "network": {
18136
+ "type": "string",
18137
+ "description": "Network the topology was read from."
18138
+ },
18139
+ "strategy": {
18140
+ "type": "object",
18141
+ "properties": {
18142
+ "intents": {
18143
+ "type": "array",
18144
+ "items": {
18145
+ "type": "string"
18146
+ },
18147
+ "description": "Semantic intents that drove the expansion."
18148
+ },
18149
+ "families": {
18150
+ "description": "Family whitelist applied (undefined = all families).",
18151
+ "type": "array",
18152
+ "items": {
18153
+ "type": "string"
18154
+ }
18155
+ },
18156
+ "schemas": {
18157
+ "description": "Schema-id whitelist applied (undefined = family-driven).",
18158
+ "type": "array",
18159
+ "items": {
18160
+ "type": "string"
18161
+ }
18162
+ },
18163
+ "table_edges": {
18164
+ "type": "array",
18165
+ "items": {
18166
+ "type": "string"
18167
+ },
18168
+ "description": "Dynamic-table edges expanded."
18169
+ },
18170
+ "family_depths": {
18171
+ "description": "Per-family BFS depth caps.",
18172
+ "type": "object",
18173
+ "propertyNames": {
18174
+ "type": "string"
18175
+ },
18176
+ "additionalProperties": {
18177
+ "type": "number"
18178
+ }
18179
+ },
18180
+ "budget": {
18181
+ "type": "object",
18182
+ "properties": {
18183
+ "max_depth": {
18184
+ "type": "number"
18185
+ },
18186
+ "max_nodes": {
18187
+ "type": "number"
18188
+ },
18189
+ "max_fanout": {
18190
+ "type": "number"
18191
+ },
18192
+ "max_rpcs": {
18193
+ "type": "number"
18194
+ }
18195
+ },
18196
+ "additionalProperties": false,
18197
+ "description": "Effective budget overrides after the strategy merge."
18198
+ },
18199
+ "trace": {
18200
+ "type": "array",
18201
+ "items": {
18202
+ "type": "string"
18203
+ },
18204
+ "description": "Ordered provenance — every strategy layer applied and why."
18205
+ }
18206
+ },
18207
+ "required": [
18208
+ "intents",
18209
+ "table_edges",
18210
+ "budget",
18211
+ "trace"
18212
+ ],
18213
+ "additionalProperties": false,
18214
+ "description": "The resolved semantic exploration strategy (G3): intents, whitelist, budget and WHY (layer trace)."
18215
+ },
18216
+ "analyzers": {
18217
+ "type": "array",
18218
+ "items": {
18219
+ "type": "string"
18220
+ },
18221
+ "description": "All registered graph-analyzer ids (discovery list for only_analyzers)."
18222
+ },
18223
+ "stats": {
18224
+ "type": "object",
18225
+ "properties": {
18226
+ "nodes_total": {
18227
+ "type": "number"
18228
+ },
18229
+ "nodes_by_kind": {
18230
+ "type": "object",
18231
+ "propertyNames": {
18232
+ "type": "string"
18233
+ },
18234
+ "additionalProperties": {
18235
+ "type": "number"
18236
+ }
18237
+ },
18238
+ "nodes_by_object_type": {
18239
+ "type": "object",
18240
+ "propertyNames": {
18241
+ "type": "string"
18242
+ },
18243
+ "additionalProperties": {
18244
+ "type": "number"
18245
+ }
18246
+ },
18247
+ "edges_total": {
18248
+ "type": "number"
18249
+ },
18250
+ "edges_by_family": {
18251
+ "type": "object",
18252
+ "propertyNames": {
18253
+ "type": "string"
18254
+ },
18255
+ "additionalProperties": {
18256
+ "type": "number"
18257
+ }
18258
+ },
18259
+ "edges_by_schema": {
18260
+ "type": "object",
18261
+ "propertyNames": {
18262
+ "type": "string"
18263
+ },
18264
+ "additionalProperties": {
18265
+ "type": "number"
18266
+ }
18267
+ },
18268
+ "rpc": {
18269
+ "type": "object",
18270
+ "properties": {
18271
+ "batches": {
18272
+ "type": "number",
18273
+ "description": "Logical RPC batches (one <=50-id chunk = 1 batch)."
18274
+ },
18275
+ "by_channel": {
18276
+ "type": "object",
18277
+ "properties": {
18278
+ "objects": {
18279
+ "type": "number"
18280
+ },
18281
+ "keyed_fields": {
18282
+ "type": "number"
18283
+ },
18284
+ "tables": {
18285
+ "type": "number"
18286
+ },
18287
+ "events": {
18288
+ "type": "number"
18289
+ }
18290
+ },
18291
+ "required": [
18292
+ "objects",
18293
+ "keyed_fields",
18294
+ "tables",
18295
+ "events"
18296
+ ],
18297
+ "additionalProperties": false
18298
+ },
18299
+ "dedup_hits": {
18300
+ "type": "number",
18301
+ "description": "Fetches avoided via in-call dedup/session cache."
18302
+ }
18303
+ },
18304
+ "required": [
18305
+ "batches",
18306
+ "by_channel",
18307
+ "dedup_hits"
18308
+ ],
18309
+ "additionalProperties": false
18310
+ }
18311
+ },
18312
+ "required": [
18313
+ "nodes_total",
18314
+ "nodes_by_kind",
18315
+ "nodes_by_object_type",
18316
+ "edges_total",
18317
+ "edges_by_family",
18318
+ "edges_by_schema",
18319
+ "rpc"
18320
+ ],
18321
+ "additionalProperties": false
18322
+ },
18323
+ "nodes": {
18324
+ "type": "array",
18325
+ "items": {
18326
+ "type": "object",
18327
+ "properties": {
18328
+ "id": {
18329
+ "type": "string",
18330
+ "description": "Lowercased canonical node id (EOA/object address, or ${machine}::node::${name} for wfnode)."
18331
+ },
18332
+ "kind": {
18333
+ "type": "string",
18334
+ "enum": [
18335
+ "eoa",
18336
+ "object",
18337
+ "wfnode"
18338
+ ],
18339
+ "description": "eoa=user account (first byte 0x00); object=chain object; wfnode=synthetic Machine workflow node."
18340
+ },
18341
+ "object_type": {
18342
+ "description": "SDK object type label for object nodes (Service/Machine/Order/Progress/Allocation/...).",
18343
+ "type": "string"
18344
+ },
18345
+ "coin_type": {
18346
+ "description": "Generic coin type T parsed from type_raw (amounts of different T are never mixed).",
18347
+ "type": "string"
18348
+ },
18349
+ "state": {
18350
+ "type": "string",
18351
+ "enum": [
18352
+ "seed",
18353
+ "fetched",
18354
+ "error",
18355
+ "stub"
18356
+ ],
18357
+ "description": "Fetch state: seed/fetched carry data; stub=discovered but not yet loaded; error=read failed (see data_gaps)."
18358
+ },
18359
+ "depth": {
18360
+ "type": "integer",
18361
+ "minimum": 0,
18362
+ "maximum": 9007199254740991,
18363
+ "description": "Shallowest BFS depth at which the node was reached (seed=0)."
18364
+ },
18365
+ "error": {
18366
+ "description": "Fetch error marker when state='error'.",
18367
+ "type": "string"
18368
+ },
18369
+ "raw": {
18370
+ "description": "Full raw on-chain object — present ONLY when include_raw=true."
18371
+ }
18372
+ },
18373
+ "required": [
18374
+ "id",
18375
+ "kind",
18376
+ "state",
18377
+ "depth"
18378
+ ],
18379
+ "additionalProperties": false
18380
+ },
18381
+ "description": "All reached nodes (raw objects only with include_raw=true)."
18382
+ },
18383
+ "edges": {
18384
+ "type": "array",
18385
+ "items": {
18386
+ "type": "object",
18387
+ "properties": {
18388
+ "id": {
18389
+ "type": "string",
18390
+ "description": "Deterministic edge id: ${schema}|${from}→${to}[|${key}]."
18391
+ },
18392
+ "schema": {
18393
+ "type": "string",
18394
+ "description": "Machine-readable EdgeSchema id (e.g. service.order, wf.transition, payment.recipient)."
18395
+ },
18396
+ "family": {
18397
+ "type": "string",
18398
+ "enum": [
18399
+ "F",
18400
+ "R",
18401
+ "M",
18402
+ "W",
18403
+ "S"
18404
+ ],
18405
+ "description": "F=forward field snapshot; R=global reverse index; W=workflow-derived; M=money-flow receipt; S=social/reputation."
18406
+ },
18407
+ "from": {
18408
+ "type": "string"
18409
+ },
18410
+ "to": {
18411
+ "type": "string"
18412
+ },
18413
+ "retention": {
18414
+ "type": "string",
18415
+ "enum": [
18416
+ "complete",
18417
+ "bounded_exact",
18418
+ "bounded_window",
18419
+ "membership",
18420
+ "derived"
18421
+ ],
18422
+ "description": "Data-bound semantics: complete=full snapshot; bounded_exact=lossless bounded index; bounded_window=FIFO/ring <=5200 (counts are LOWER BOUNDS, see truncations); membership=current members only; derived=structurally produced."
18423
+ },
18424
+ "evidence": {
18425
+ "type": "string",
18426
+ "description": "Contract evidence anchor (move file + line range)."
18427
+ },
18428
+ "key": {
18429
+ "description": "Disambiguator for multi-edges of one schema between the same nodes (e.g. forward name).",
18430
+ "type": "string"
18431
+ },
18432
+ "truncated": {
18433
+ "description": "Set when the producing index is a FIFO/ring window that may have dropped rows.",
18434
+ "type": "boolean"
18435
+ },
18436
+ "payload": {
18437
+ "description": "Family-specific data — M: amount/coinType/mode/guard; W: node/prevNode/forward/threshold/weight/guard/namedOperator/permissionIndex; R: roleBits; S: voteBits.",
18438
+ "type": "object",
18439
+ "propertyNames": {
18440
+ "type": "string"
18441
+ },
18442
+ "additionalProperties": {}
18443
+ }
18444
+ },
18445
+ "required": [
18446
+ "id",
18447
+ "schema",
18448
+ "family",
18449
+ "from",
18450
+ "to",
18451
+ "retention",
18452
+ "evidence"
18453
+ ],
18454
+ "additionalProperties": false
18455
+ },
18456
+ "description": "All deduped topology edges with retention + evidence."
18457
+ },
18458
+ "workflows": {
18459
+ "type": "array",
18460
+ "items": {
18461
+ "type": "object",
18462
+ "properties": {
18463
+ "machine": {
18464
+ "type": "string",
18465
+ "description": "Machine object address."
18466
+ },
18467
+ "transitions": {
18468
+ "type": "array",
18469
+ "items": {
18470
+ "type": "object",
18471
+ "properties": {
18472
+ "node": {
18473
+ "type": "string",
18474
+ "description": "Destination workflow node."
18475
+ },
18476
+ "prev_node": {
18477
+ "type": "string",
18478
+ "description": "Source node ('' = workflow entry sentinel)."
18479
+ },
18480
+ "forward": {
18481
+ "description": "Advance-operation name (absent = no explicit forward on the pair).",
18482
+ "type": "string"
18483
+ },
18484
+ "threshold": {
18485
+ "description": "Pair threshold (accumulated forward weights required to advance).",
18486
+ "type": "number"
18487
+ },
18488
+ "guard": {
18489
+ "description": "Guard gating this forward (null = none).",
18490
+ "anyOf": [
18491
+ {
18492
+ "type": "string"
18493
+ },
18494
+ {
18495
+ "type": "null"
18496
+ }
18497
+ ]
18498
+ },
18499
+ "weight": {
18500
+ "description": "Forward weight toward the pair threshold.",
18501
+ "anyOf": [
18502
+ {
18503
+ "type": "number"
18504
+ },
18505
+ {
18506
+ "type": "null"
18507
+ }
18508
+ ]
18509
+ },
18510
+ "named_operator": {
18511
+ "description": "Named-operator binding on this forward (null = none; '' = OrderHolder/customer).",
18512
+ "anyOf": [
18513
+ {
18514
+ "type": "string"
18515
+ },
18516
+ {
18517
+ "type": "null"
18518
+ }
18519
+ ]
18520
+ },
18521
+ "permission_index": {
18522
+ "description": "Permission-index binding on this forward (null = none).",
18523
+ "anyOf": [
18524
+ {
18525
+ "type": "number"
18526
+ },
18527
+ {
18528
+ "type": "null"
18529
+ }
18530
+ ]
18531
+ },
18532
+ "recommended_call": {
18533
+ "anyOf": [
18534
+ {
18535
+ "type": "object",
18536
+ "properties": {
18537
+ "tool": {
18538
+ "type": "string",
18539
+ "enum": [
18540
+ "onchain_operations",
18541
+ "workflow_operation"
18542
+ ],
18543
+ "description": "Tool that executes the forward: onchain_operations order.data.progress (OrderHolder short-circuit) or workflow_operation data.operate (permission index / named operator)."
18544
+ },
18545
+ "path": {
18546
+ "type": "string",
18547
+ "description": "Input path inside the tool data payload."
18548
+ },
18549
+ "reason": {
18550
+ "type": "string",
18551
+ "description": "Chain-authoritative routing reason, including the wrong-route abort code (direct progress::next on a namedOperator='' forward aborts permission#5 'Permission denied') and the Guard passport requirement when the forward binds one."
18552
+ }
18553
+ },
18554
+ "required": [
18555
+ "tool",
18556
+ "path",
18557
+ "reason"
18558
+ ],
18559
+ "additionalProperties": false
18560
+ },
18561
+ {
18562
+ "type": "null"
18563
+ }
18564
+ ],
18565
+ "description": "Structural execution route from the forward binding (caller-neutral): named_operator='' → onchain_operations order.data.progress; permission_index/non-empty named_operator → workflow_operation data.operate. null = unbound forward (no operator binding; see R/G findings)."
18566
+ }
18567
+ },
18568
+ "required": [
18569
+ "node",
18570
+ "prev_node",
18571
+ "recommended_call"
18572
+ ],
18573
+ "additionalProperties": false
18574
+ },
18575
+ "description": "Flattened forward-expanded transitions (one row per forward)."
18576
+ },
18577
+ "terminal_names": {
18578
+ "type": "array",
18579
+ "items": {
18580
+ "type": "string"
18581
+ },
18582
+ "description": "STRUCTURAL terminal set: node names never appearing as any pair.prev_node — the D2 completion authority."
18583
+ }
18584
+ },
18585
+ "required": [
18586
+ "machine",
18587
+ "transitions",
18588
+ "terminal_names"
18589
+ ],
18590
+ "additionalProperties": false
18591
+ },
18592
+ "description": "One structural workflow subgraph per Machine whose node table was expanded (table_edges)."
18593
+ },
18594
+ "orders_completion": {
18595
+ "type": "array",
18596
+ "items": {
18597
+ "type": "object",
18598
+ "properties": {
18599
+ "order": {
18600
+ "type": "string"
18601
+ },
18602
+ "status": {
18603
+ "type": "string",
18604
+ "enum": [
18605
+ "completed",
18606
+ "in_progress",
18607
+ "unknown"
18608
+ ],
18609
+ "description": "Structural completion: no machine=completed; machine bound without progress/current=in_progress; current node in the machine's structural terminal set=completed; unverifiable from this graph=unknown."
18610
+ },
18611
+ "terminal": {
18612
+ "description": "The structural terminal the order currently sits on (when status=completed).",
18613
+ "type": "string"
18614
+ }
18615
+ },
18616
+ "required": [
18617
+ "order",
18618
+ "status"
18619
+ ],
18620
+ "additionalProperties": false
18621
+ },
18622
+ "description": "Structural completion of every Order node reached in this graph."
18623
+ },
18624
+ "findings": {
18625
+ "type": "array",
18626
+ "items": {
18627
+ "type": "object",
18628
+ "properties": {
18629
+ "id": {
18630
+ "type": "string",
18631
+ "description": "Stable analyzer rule id (R1-R6 / A1-A3 / O1-O3 / G1-G3 / AC1-AC4; node bindings like SR1:<service>#<n>)."
18632
+ },
18633
+ "kind": {
18634
+ "type": "string",
18635
+ "enum": [
18636
+ "risk",
18637
+ "arbitrage",
18638
+ "opportunity",
18639
+ "game"
18640
+ ]
18641
+ },
18642
+ "severity": {
18643
+ "type": "string",
18644
+ "enum": [
18645
+ "info",
18646
+ "low",
18647
+ "medium",
18648
+ "high"
18649
+ ]
18650
+ },
18651
+ "titleZh": {
18652
+ "type": "string",
18653
+ "description": "Chinese one-line finding title."
18654
+ },
18655
+ "path": {
18656
+ "type": "array",
18657
+ "items": {
18658
+ "type": "string"
18659
+ },
18660
+ "description": "Evidence path — ordered edge schema ids / node ids the finding rests on."
18661
+ },
18662
+ "confidence": {
18663
+ "type": "string",
18664
+ "enum": [
18665
+ "exact",
18666
+ "bounded",
18667
+ "windowed",
18668
+ "derived"
18669
+ ],
18670
+ "description": "Synthesized from the WEAKEST retention on the evidence path (windowed => lower-bound wording)."
18671
+ },
18672
+ "window": {
18673
+ "description": "Present when evidence crosses a bounded FIFO/ring window (observed/limit).",
18674
+ "type": "object",
18675
+ "properties": {
18676
+ "observed": {
18677
+ "type": "number"
18678
+ },
18679
+ "limit": {
18680
+ "type": "number"
18681
+ }
18682
+ },
18683
+ "required": [
18684
+ "observed",
18685
+ "limit"
18686
+ ],
18687
+ "additionalProperties": false
18688
+ },
18689
+ "roles": {
18690
+ "type": "array",
18691
+ "items": {
18692
+ "type": "string"
18693
+ },
18694
+ "description": "Commercial roles this finding is relevant to."
18695
+ },
18696
+ "detailZh": {
18697
+ "type": "string",
18698
+ "description": "Chinese objective detail (facts only)."
18699
+ },
18700
+ "suggestionZh": {
18701
+ "type": "string",
18702
+ "description": "Chinese structural suggestion (never a score)."
18703
+ },
18704
+ "interest": {
18705
+ "description": "G2 role-interest view payload — present only on IR:<role> findings (利益评估/操作路径/对手分析/风险提醒).",
18706
+ "type": "object",
18707
+ "properties": {
18708
+ "role": {
18709
+ "type": "string",
18710
+ "description": "The CommercialRole whose interest view this is."
18711
+ },
18712
+ "observer": {
18713
+ "type": "string",
18714
+ "description": "The EOA the view is projected for."
18715
+ },
18716
+ "drive": {
18717
+ "description": "Persona driving signals that re-anchored scoring.",
18718
+ "type": "object",
18719
+ "properties": {
18720
+ "risk_appetite": {
18721
+ "type": "string",
18722
+ "enum": [
18723
+ "conservative",
18724
+ "balanced",
18725
+ "aggressive"
18726
+ ]
18727
+ },
18728
+ "requirements": {
18729
+ "type": "array",
18730
+ "items": {
18731
+ "type": "string"
18732
+ }
18733
+ }
18734
+ },
18735
+ "additionalProperties": false
18736
+ },
18737
+ "stakes": {
18738
+ "type": "array",
18739
+ "items": {
18740
+ "type": "object",
18741
+ "properties": {
18742
+ "object": {
18743
+ "type": "string"
18744
+ },
18745
+ "object_type": {
18746
+ "type": "string"
18747
+ },
18748
+ "positions": {
18749
+ "type": "array",
18750
+ "items": {
18751
+ "type": "string"
18752
+ }
18753
+ },
18754
+ "amount": {
18755
+ "type": "string"
18756
+ },
18757
+ "coin_type": {
18758
+ "type": "string"
18759
+ },
18760
+ "state": {
18761
+ "type": "string"
18762
+ },
18763
+ "evidence": {
18764
+ "type": "array",
18765
+ "items": {
18766
+ "type": "string"
18767
+ }
18768
+ }
18769
+ },
18770
+ "required": [
18771
+ "object",
18772
+ "object_type",
18773
+ "positions",
18774
+ "evidence"
18775
+ ],
18776
+ "additionalProperties": false
18777
+ },
18778
+ "description": "利益评估 — what the observer has at stake."
18779
+ },
18780
+ "actions": {
18781
+ "type": "array",
18782
+ "items": {
18783
+ "type": "object",
18784
+ "properties": {
18785
+ "order": {
18786
+ "type": "string"
18787
+ },
18788
+ "machine": {
18789
+ "type": "string"
18790
+ },
18791
+ "current_node": {
18792
+ "type": "string"
18793
+ },
18794
+ "advice": {
18795
+ "type": "object",
18796
+ "properties": {
18797
+ "current_node": {
18798
+ "type": "string"
18799
+ },
18800
+ "perspective": {
18801
+ "type": "string"
18802
+ },
18803
+ "actions": {
18804
+ "type": "array",
18805
+ "items": {
18806
+ "type": "object",
18807
+ "properties": {
18808
+ "forward": {
18809
+ "type": "string"
18810
+ },
18811
+ "to_node": {
18812
+ "type": "string"
18813
+ },
18814
+ "execution_path": {
18815
+ "type": "string"
18816
+ },
18817
+ "guard": {
18818
+ "type": "string"
18819
+ },
18820
+ "favorability": {
18821
+ "type": "number"
18822
+ },
18823
+ "gain_score": {
18824
+ "type": "number"
18825
+ },
18826
+ "risk_score": {
18827
+ "type": "number"
18828
+ },
18829
+ "is_optimal": {
18830
+ "type": "boolean"
18831
+ },
18832
+ "payoff_note": {
18833
+ "type": "string"
18834
+ },
18835
+ "risk": {
18836
+ "type": "string",
18837
+ "enum": [
18838
+ "low",
18839
+ "medium",
18840
+ "high"
18841
+ ]
18842
+ }
18843
+ },
18844
+ "required": [
18845
+ "forward",
18846
+ "to_node",
18847
+ "execution_path",
18848
+ "favorability",
18849
+ "gain_score",
18850
+ "risk_score",
18851
+ "is_optimal",
18852
+ "payoff_note",
18853
+ "risk"
18854
+ ],
18855
+ "additionalProperties": false
18856
+ }
18857
+ },
18858
+ "cooperation": {
18859
+ "type": "object",
18860
+ "properties": {
18861
+ "threshold": {
18862
+ "type": "number"
18863
+ },
18864
+ "my_weight": {
18865
+ "type": "number"
18866
+ },
18867
+ "needed_from_others": {
18868
+ "type": "number"
18869
+ },
18870
+ "collaborators": {
18871
+ "type": "array",
18872
+ "items": {
18873
+ "type": "string"
18874
+ }
18875
+ },
18876
+ "allocation_note": {
18877
+ "type": "string"
18878
+ }
18879
+ },
18880
+ "required": [
18881
+ "threshold",
18882
+ "my_weight",
18883
+ "needed_from_others",
18884
+ "collaborators"
18885
+ ],
18886
+ "additionalProperties": false
18887
+ },
18888
+ "value_at_stake": {
18889
+ "type": "string"
18890
+ },
18891
+ "risk_exposure": {
18892
+ "type": "string"
18893
+ },
18894
+ "summary": {
18895
+ "type": "string"
18896
+ }
18897
+ },
18898
+ "required": [
18899
+ "current_node",
18900
+ "perspective",
18901
+ "actions",
18902
+ "summary"
18903
+ ],
18904
+ "additionalProperties": false,
18905
+ "description": "node-game ranking — the single action authority."
18906
+ },
18907
+ "recommended_calls": {
18908
+ "type": "array",
18909
+ "items": {
18910
+ "type": "object",
18911
+ "properties": {
18912
+ "forward": {
18913
+ "type": "string"
18914
+ },
18915
+ "call": {}
18916
+ },
18917
+ "required": [
18918
+ "forward",
18919
+ "call"
18920
+ ],
18921
+ "additionalProperties": false
18922
+ }
18923
+ },
18924
+ "blocked_forwards": {
18925
+ "type": "array",
18926
+ "items": {
18927
+ "type": "object",
18928
+ "properties": {
18929
+ "forward": {
18930
+ "type": "string"
18931
+ },
18932
+ "reason": {
18933
+ "type": "string"
18934
+ }
18935
+ },
18936
+ "required": [
18937
+ "forward",
18938
+ "reason"
18939
+ ],
18940
+ "additionalProperties": false
18941
+ }
18942
+ }
18943
+ },
18944
+ "required": [
18945
+ "order",
18946
+ "machine",
18947
+ "current_node",
18948
+ "advice",
18949
+ "recommended_calls",
18950
+ "blocked_forwards"
18951
+ ],
18952
+ "additionalProperties": false
18953
+ },
18954
+ "description": "可行操作路径 — per in-flight order."
18955
+ },
18956
+ "arb_actions": {
18957
+ "type": "array",
18958
+ "items": {
18959
+ "type": "object",
18960
+ "properties": {
18961
+ "status": {
18962
+ "type": "string"
18963
+ },
18964
+ "perspective": {
18965
+ "type": "string"
18966
+ },
18967
+ "actions": {
18968
+ "type": "array",
18969
+ "items": {
18970
+ "type": "object",
18971
+ "properties": {
18972
+ "action": {
18973
+ "type": "string"
18974
+ },
18975
+ "favorability": {
18976
+ "type": "number"
18977
+ },
18978
+ "gain_score": {
18979
+ "type": "number"
18980
+ },
18981
+ "risk_score": {
18982
+ "type": "number"
18983
+ },
18984
+ "is_optimal": {
18985
+ "type": "boolean"
18986
+ },
18987
+ "payoff_note": {
18988
+ "type": "string"
18989
+ },
18990
+ "risk": {
18991
+ "type": "string",
18992
+ "enum": [
18993
+ "low",
18994
+ "medium",
18995
+ "high"
18996
+ ]
18997
+ }
18998
+ },
18999
+ "required": [
19000
+ "action",
19001
+ "favorability",
19002
+ "gain_score",
19003
+ "risk_score",
19004
+ "is_optimal",
19005
+ "payoff_note",
19006
+ "risk"
19007
+ ],
19008
+ "additionalProperties": false
19009
+ }
19010
+ },
19011
+ "summary": {
19012
+ "type": "string"
19013
+ }
19014
+ },
19015
+ "required": [
19016
+ "status",
19017
+ "perspective",
19018
+ "actions",
19019
+ "summary"
19020
+ ],
19021
+ "additionalProperties": false
19022
+ },
19023
+ "description": "arbitration-game moves when the observer is a case party."
19024
+ },
19025
+ "counterparties": {
19026
+ "type": "array",
19027
+ "items": {
19028
+ "type": "object",
19029
+ "properties": {
19030
+ "object": {
19031
+ "type": "string"
19032
+ },
19033
+ "counter_role": {
19034
+ "type": "string"
19035
+ },
19036
+ "who": {
19037
+ "type": "array",
19038
+ "items": {
19039
+ "type": "string"
19040
+ }
19041
+ },
19042
+ "their_prefer": {
19043
+ "type": "array",
19044
+ "items": {
19045
+ "type": "string"
19046
+ }
19047
+ },
19048
+ "their_avoid": {
19049
+ "type": "array",
19050
+ "items": {
19051
+ "type": "string"
19052
+ }
19053
+ },
19054
+ "alignment": {
19055
+ "type": "string",
19056
+ "enum": [
19057
+ "conflict",
19058
+ "aligned",
19059
+ "neutral"
19060
+ ]
19061
+ },
19062
+ "noteZh": {
19063
+ "type": "string"
19064
+ }
19065
+ },
19066
+ "required": [
19067
+ "object",
19068
+ "counter_role",
19069
+ "who",
19070
+ "their_prefer",
19071
+ "their_avoid",
19072
+ "alignment",
19073
+ "noteZh"
19074
+ ],
19075
+ "additionalProperties": false
19076
+ },
19077
+ "description": "博弈对手分析 — structural tension from the single ROLE_INTERESTS table."
19078
+ },
19079
+ "risk_finding_ids": {
19080
+ "type": "array",
19081
+ "items": {
19082
+ "type": "string"
19083
+ },
19084
+ "description": "风险提醒 — ids of role-relevant risk findings in the same result."
19085
+ },
19086
+ "summaryZh": {
19087
+ "type": "string"
19088
+ }
19089
+ },
19090
+ "required": [
19091
+ "role",
19092
+ "observer",
19093
+ "stakes",
19094
+ "actions",
19095
+ "arb_actions",
19096
+ "counterparties",
19097
+ "risk_finding_ids",
19098
+ "summaryZh"
19099
+ ],
19100
+ "additionalProperties": false
19101
+ }
19102
+ },
19103
+ "required": [
19104
+ "id",
19105
+ "kind",
19106
+ "severity",
19107
+ "titleZh",
19108
+ "path",
19109
+ "confidence",
19110
+ "roles",
19111
+ "detailZh",
19112
+ "suggestionZh"
19113
+ ],
19114
+ "additionalProperties": false
19115
+ },
19116
+ "description": "R/A/O/G analyzer findings (empty when analyze=false)."
19117
+ },
19118
+ "role_interest": {
19119
+ "description": "G2 role interest view (same payload as the IR:<role> finding): stakes / node-game actions / arbitration moves / counterparty tensions / risk reminders for interest_role's observer.",
19120
+ "type": "object",
19121
+ "properties": {
19122
+ "role": {
19123
+ "type": "string",
19124
+ "description": "The CommercialRole whose interest view this is."
19125
+ },
19126
+ "observer": {
19127
+ "type": "string",
19128
+ "description": "The EOA the view is projected for."
19129
+ },
19130
+ "drive": {
19131
+ "description": "Persona driving signals that re-anchored scoring.",
19132
+ "type": "object",
19133
+ "properties": {
19134
+ "risk_appetite": {
19135
+ "type": "string",
19136
+ "enum": [
19137
+ "conservative",
19138
+ "balanced",
19139
+ "aggressive"
19140
+ ]
19141
+ },
19142
+ "requirements": {
19143
+ "type": "array",
19144
+ "items": {
19145
+ "type": "string"
19146
+ }
19147
+ }
19148
+ },
19149
+ "additionalProperties": false
19150
+ },
19151
+ "stakes": {
19152
+ "type": "array",
19153
+ "items": {
19154
+ "type": "object",
19155
+ "properties": {
19156
+ "object": {
19157
+ "type": "string"
19158
+ },
19159
+ "object_type": {
19160
+ "type": "string"
19161
+ },
19162
+ "positions": {
19163
+ "type": "array",
19164
+ "items": {
19165
+ "type": "string"
19166
+ }
19167
+ },
19168
+ "amount": {
19169
+ "type": "string"
19170
+ },
19171
+ "coin_type": {
19172
+ "type": "string"
19173
+ },
19174
+ "state": {
19175
+ "type": "string"
19176
+ },
19177
+ "evidence": {
19178
+ "type": "array",
19179
+ "items": {
19180
+ "type": "string"
19181
+ }
19182
+ }
19183
+ },
19184
+ "required": [
19185
+ "object",
19186
+ "object_type",
19187
+ "positions",
19188
+ "evidence"
19189
+ ],
19190
+ "additionalProperties": false
19191
+ },
19192
+ "description": "利益评估 — what the observer has at stake."
19193
+ },
19194
+ "actions": {
19195
+ "type": "array",
19196
+ "items": {
19197
+ "type": "object",
19198
+ "properties": {
19199
+ "order": {
19200
+ "type": "string"
19201
+ },
19202
+ "machine": {
19203
+ "type": "string"
19204
+ },
19205
+ "current_node": {
19206
+ "type": "string"
19207
+ },
19208
+ "advice": {
19209
+ "type": "object",
19210
+ "properties": {
19211
+ "current_node": {
19212
+ "type": "string"
19213
+ },
19214
+ "perspective": {
19215
+ "type": "string"
19216
+ },
19217
+ "actions": {
19218
+ "type": "array",
19219
+ "items": {
19220
+ "type": "object",
19221
+ "properties": {
19222
+ "forward": {
19223
+ "type": "string"
19224
+ },
19225
+ "to_node": {
19226
+ "type": "string"
19227
+ },
19228
+ "execution_path": {
19229
+ "type": "string"
19230
+ },
19231
+ "guard": {
19232
+ "type": "string"
19233
+ },
19234
+ "favorability": {
19235
+ "type": "number"
19236
+ },
19237
+ "gain_score": {
19238
+ "type": "number"
19239
+ },
19240
+ "risk_score": {
19241
+ "type": "number"
19242
+ },
19243
+ "is_optimal": {
19244
+ "type": "boolean"
19245
+ },
19246
+ "payoff_note": {
19247
+ "type": "string"
19248
+ },
19249
+ "risk": {
19250
+ "type": "string",
19251
+ "enum": [
19252
+ "low",
19253
+ "medium",
19254
+ "high"
19255
+ ]
19256
+ }
19257
+ },
19258
+ "required": [
19259
+ "forward",
19260
+ "to_node",
19261
+ "execution_path",
19262
+ "favorability",
19263
+ "gain_score",
19264
+ "risk_score",
19265
+ "is_optimal",
19266
+ "payoff_note",
19267
+ "risk"
19268
+ ],
19269
+ "additionalProperties": false
19270
+ }
19271
+ },
19272
+ "cooperation": {
19273
+ "type": "object",
19274
+ "properties": {
19275
+ "threshold": {
19276
+ "type": "number"
19277
+ },
19278
+ "my_weight": {
19279
+ "type": "number"
19280
+ },
19281
+ "needed_from_others": {
19282
+ "type": "number"
19283
+ },
19284
+ "collaborators": {
19285
+ "type": "array",
19286
+ "items": {
19287
+ "type": "string"
19288
+ }
19289
+ },
19290
+ "allocation_note": {
19291
+ "type": "string"
19292
+ }
19293
+ },
19294
+ "required": [
19295
+ "threshold",
19296
+ "my_weight",
19297
+ "needed_from_others",
19298
+ "collaborators"
19299
+ ],
19300
+ "additionalProperties": false
19301
+ },
19302
+ "value_at_stake": {
19303
+ "type": "string"
19304
+ },
19305
+ "risk_exposure": {
19306
+ "type": "string"
19307
+ },
19308
+ "summary": {
19309
+ "type": "string"
19310
+ }
19311
+ },
19312
+ "required": [
19313
+ "current_node",
19314
+ "perspective",
19315
+ "actions",
19316
+ "summary"
19317
+ ],
19318
+ "additionalProperties": false,
19319
+ "description": "node-game ranking — the single action authority."
19320
+ },
19321
+ "recommended_calls": {
19322
+ "type": "array",
19323
+ "items": {
19324
+ "type": "object",
19325
+ "properties": {
19326
+ "forward": {
19327
+ "type": "string"
19328
+ },
19329
+ "call": {}
19330
+ },
19331
+ "required": [
19332
+ "forward",
19333
+ "call"
19334
+ ],
19335
+ "additionalProperties": false
19336
+ }
19337
+ },
19338
+ "blocked_forwards": {
19339
+ "type": "array",
19340
+ "items": {
19341
+ "type": "object",
19342
+ "properties": {
19343
+ "forward": {
19344
+ "type": "string"
19345
+ },
19346
+ "reason": {
19347
+ "type": "string"
19348
+ }
19349
+ },
19350
+ "required": [
19351
+ "forward",
19352
+ "reason"
19353
+ ],
19354
+ "additionalProperties": false
19355
+ }
19356
+ }
19357
+ },
19358
+ "required": [
19359
+ "order",
19360
+ "machine",
19361
+ "current_node",
19362
+ "advice",
19363
+ "recommended_calls",
19364
+ "blocked_forwards"
19365
+ ],
19366
+ "additionalProperties": false
19367
+ },
19368
+ "description": "可行操作路径 — per in-flight order."
19369
+ },
19370
+ "arb_actions": {
19371
+ "type": "array",
19372
+ "items": {
19373
+ "type": "object",
19374
+ "properties": {
19375
+ "status": {
19376
+ "type": "string"
19377
+ },
19378
+ "perspective": {
19379
+ "type": "string"
19380
+ },
19381
+ "actions": {
19382
+ "type": "array",
19383
+ "items": {
19384
+ "type": "object",
19385
+ "properties": {
19386
+ "action": {
19387
+ "type": "string"
19388
+ },
19389
+ "favorability": {
19390
+ "type": "number"
19391
+ },
19392
+ "gain_score": {
19393
+ "type": "number"
19394
+ },
19395
+ "risk_score": {
19396
+ "type": "number"
19397
+ },
19398
+ "is_optimal": {
19399
+ "type": "boolean"
19400
+ },
19401
+ "payoff_note": {
19402
+ "type": "string"
19403
+ },
19404
+ "risk": {
19405
+ "type": "string",
19406
+ "enum": [
19407
+ "low",
19408
+ "medium",
19409
+ "high"
19410
+ ]
19411
+ }
19412
+ },
19413
+ "required": [
19414
+ "action",
19415
+ "favorability",
19416
+ "gain_score",
19417
+ "risk_score",
19418
+ "is_optimal",
19419
+ "payoff_note",
19420
+ "risk"
19421
+ ],
19422
+ "additionalProperties": false
19423
+ }
19424
+ },
19425
+ "summary": {
19426
+ "type": "string"
19427
+ }
19428
+ },
19429
+ "required": [
19430
+ "status",
19431
+ "perspective",
19432
+ "actions",
19433
+ "summary"
19434
+ ],
19435
+ "additionalProperties": false
19436
+ },
19437
+ "description": "arbitration-game moves when the observer is a case party."
19438
+ },
19439
+ "counterparties": {
19440
+ "type": "array",
19441
+ "items": {
19442
+ "type": "object",
19443
+ "properties": {
19444
+ "object": {
19445
+ "type": "string"
19446
+ },
19447
+ "counter_role": {
19448
+ "type": "string"
19449
+ },
19450
+ "who": {
19451
+ "type": "array",
19452
+ "items": {
19453
+ "type": "string"
19454
+ }
19455
+ },
19456
+ "their_prefer": {
19457
+ "type": "array",
19458
+ "items": {
19459
+ "type": "string"
19460
+ }
19461
+ },
19462
+ "their_avoid": {
19463
+ "type": "array",
19464
+ "items": {
19465
+ "type": "string"
19466
+ }
19467
+ },
19468
+ "alignment": {
19469
+ "type": "string",
19470
+ "enum": [
19471
+ "conflict",
19472
+ "aligned",
19473
+ "neutral"
19474
+ ]
19475
+ },
19476
+ "noteZh": {
19477
+ "type": "string"
19478
+ }
19479
+ },
19480
+ "required": [
19481
+ "object",
19482
+ "counter_role",
19483
+ "who",
19484
+ "their_prefer",
19485
+ "their_avoid",
19486
+ "alignment",
19487
+ "noteZh"
19488
+ ],
19489
+ "additionalProperties": false
19490
+ },
19491
+ "description": "博弈对手分析 — structural tension from the single ROLE_INTERESTS table."
19492
+ },
19493
+ "risk_finding_ids": {
19494
+ "type": "array",
19495
+ "items": {
19496
+ "type": "string"
19497
+ },
19498
+ "description": "风险提醒 — ids of role-relevant risk findings in the same result."
19499
+ },
19500
+ "summaryZh": {
19501
+ "type": "string"
19502
+ }
19503
+ },
19504
+ "required": [
19505
+ "role",
19506
+ "observer",
19507
+ "stakes",
19508
+ "actions",
19509
+ "arb_actions",
19510
+ "counterparties",
19511
+ "risk_finding_ids",
19512
+ "summaryZh"
19513
+ ],
19514
+ "additionalProperties": false
19515
+ },
19516
+ "truncations": {
19517
+ "type": "array",
19518
+ "items": {
19519
+ "type": "object",
19520
+ "properties": {
19521
+ "node_id": {
19522
+ "type": "string"
19523
+ },
19524
+ "schema": {
19525
+ "type": "string"
19526
+ },
19527
+ "observed": {
19528
+ "type": "number"
19529
+ },
19530
+ "limit": {
19531
+ "type": "number"
19532
+ }
19533
+ },
19534
+ "required": [
19535
+ "node_id",
19536
+ "schema",
19537
+ "observed",
19538
+ "limit"
19539
+ ],
19540
+ "additionalProperties": false
19541
+ },
19542
+ "description": "Per-node FIFO/ring truncations — conclusions crossing these edges are confidence-degraded."
19543
+ },
19544
+ "budget_exhausted": {
19545
+ "type": "object",
19546
+ "properties": {
19547
+ "nodes": {
19548
+ "type": "boolean"
19549
+ },
19550
+ "depth": {
19551
+ "type": "boolean"
19552
+ },
19553
+ "rpcs": {
19554
+ "type": "boolean"
19555
+ },
19556
+ "event_pages": {
19557
+ "type": "boolean"
19558
+ }
19559
+ },
19560
+ "additionalProperties": false,
19561
+ "description": "Which expansion budgets were exhausted (the topology is partial when any flag is set)."
19562
+ },
19563
+ "data_gaps": {
19564
+ "type": "array",
19565
+ "items": {
19566
+ "type": "string"
19567
+ },
19568
+ "description": "Fail-soft degradation notes — unreadable objects/tables and partial-data markers."
19569
+ },
19570
+ "summary": {
19571
+ "type": "string",
19572
+ "description": "One-paragraph machine-readable topology summary."
19573
+ }
19574
+ },
19575
+ "required": [
19576
+ "action",
19577
+ "seed",
19578
+ "network",
19579
+ "strategy",
19580
+ "analyzers",
19581
+ "stats",
19582
+ "nodes",
19583
+ "edges",
19584
+ "workflows",
19585
+ "orders_completion",
19586
+ "findings",
19587
+ "truncations",
19588
+ "budget_exhausted",
19589
+ "data_gaps",
19590
+ "summary"
19591
+ ],
19592
+ "additionalProperties": false
19593
+ }
19594
+ },
19595
+ "required": [
19596
+ "query_type",
19597
+ "result"
19598
+ ],
19599
+ "additionalProperties": false
19600
+ }
19601
+ ]
19602
+ },
19603
+ "network": {
19604
+ "description": "Network the data was READ from for single-network on-chain query types (e.g. account_balance, onchain_objects, onchain_transaction, panoramas). Omitted for purely-local queries (local_*), static cross-chain data (scenario_topology), and two-network results (migration_preflight). When network_source='default' the input omitted the network and the SDK's current default network was used.",
19605
+ "type": "string",
19606
+ "enum": [
19607
+ "localnet",
19608
+ "testnet",
19609
+ "mainnet"
19610
+ ]
19611
+ },
19612
+ "network_source": {
19613
+ "description": "How the response network was chosen: 'explicit' = the call supplied the network parameter; 'default' = resolved through the SDK default network. Present only when 'network' is present.",
19614
+ "type": "string",
19615
+ "enum": [
19616
+ "explicit",
19617
+ "default"
18013
19618
  ]
18014
19619
  },
18015
19620
  "semantic": {