@wowok/agent-mcp 3.0.5 → 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 (125) hide show
  1. package/README.md +25 -20
  2. package/dist/customer/account-events.js +1 -1
  3. package/dist/graph/onchain/dataplane.d.ts +2 -2
  4. package/dist/graph/onchain/edge-schema.js +1 -1
  5. package/dist/graph/onchain/expand.js +1 -1
  6. package/dist/graph/onchain/onchain.spec.js +1 -1
  7. package/dist/graph/onchain/sdk-batch.d.ts +7 -1
  8. package/dist/graph/onchain/sdk-batch.js +1 -1
  9. package/dist/graph/onchain/sdk-dataplane.d.ts +6 -3
  10. package/dist/graph/onchain/sdk-dataplane.js +1 -1
  11. package/dist/graph/onchain/types.d.ts +2 -2
  12. package/dist/knowledge/account-marks.js +1 -1
  13. package/dist/knowledge/allocation-risk.js +1 -1
  14. package/dist/knowledge/allocation-templates.js +1 -1
  15. package/dist/knowledge/goal-completion.d.ts +12 -0
  16. package/dist/knowledge/goal-completion.js +1 -1
  17. package/dist/knowledge/guard-risk.js +1 -1
  18. package/dist/knowledge/index.d.ts +4 -0
  19. package/dist/knowledge/index.js +1 -1
  20. package/dist/knowledge/migration-preflight.js +1 -1
  21. package/dist/knowledge/payment-tracker.d.ts +63 -0
  22. package/dist/knowledge/payment-tracker.js +1 -0
  23. package/dist/knowledge/recipient-constraint.d.ts +160 -0
  24. package/dist/knowledge/recipient-constraint.js +1 -0
  25. package/dist/knowledge/safety-rules.d.ts +1 -1
  26. package/dist/knowledge/safety-rules.js +1 -1
  27. package/dist/knowledge/template-registry.js +1 -1
  28. package/dist/knowledge/tools-reference.js +1 -1
  29. package/dist/knowledge/workflow-guidance.js +1 -1
  30. package/dist/knowledge/workspace-lists.d.ts +4 -0
  31. package/dist/knowledge/workspace-lists.js +1 -1
  32. package/dist/monitor/MonitorLoop.js +1 -1
  33. package/dist/participation/arbitrator-interest.d.ts +2 -0
  34. package/dist/participation/arbitrator-interest.js +1 -1
  35. package/dist/participation/collaborator-interest.d.ts +2 -0
  36. package/dist/participation/collaborator-interest.js +1 -1
  37. package/dist/participation/customer-interest.d.ts +2 -0
  38. package/dist/participation/customer-interest.js +1 -1
  39. package/dist/participation/merchant-interest.d.ts +2 -0
  40. package/dist/participation/merchant-interest.js +1 -1
  41. package/dist/participation/supplier-interest.d.ts +2 -0
  42. package/dist/participation/supplier-interest.js +1 -1
  43. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  44. package/dist/playbooks/service-build/context-assembly.js +1 -1
  45. package/dist/playbooks/service-build/merchant-guide.d.ts +7 -0
  46. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  47. package/dist/playbooks/service-build/participation-radar.js +1 -1
  48. package/dist/playbooks/service-build/pipeline-actions.d.ts +2 -2
  49. package/dist/playbooks/service-build/pipeline-actions.js +1 -1
  50. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  51. package/dist/playbooks/service-build/risk-aggregator.js +1 -1
  52. package/dist/playbooks/service-build/topology-query.js +1 -1
  53. package/dist/relationship/derivation.js +1 -1
  54. package/dist/safety/confirm-gate.js +1 -1
  55. package/dist/schema/call/allocation.js +1 -1
  56. package/dist/schema/call/base.js +1 -1
  57. package/dist/schema/call/semantic.js +1 -1
  58. package/dist/schema/call/service.js +1 -1
  59. package/dist/schema/common/index.js +1 -1
  60. package/dist/schema/evaluation/index.d.ts +4 -4
  61. package/dist/schema/evaluation/index.js +1 -1
  62. package/dist/schema/goal/index.d.ts +21 -21
  63. package/dist/schema/goal/planning.d.ts +6 -6
  64. package/dist/schema/industry-pack/index.d.ts +6 -6
  65. package/dist/schema/industry-pack/modes.d.ts +6 -6
  66. package/dist/schema/intent-radar/index.d.ts +16 -16
  67. package/dist/schema/local/index.js +1 -1
  68. package/dist/schema/messenger/index.d.ts +110 -8
  69. package/dist/schema/messenger/index.js +1 -1
  70. package/dist/schema/operations.d.ts +35 -27
  71. package/dist/schema/operations.js +1 -1
  72. package/dist/schema/persona/index.d.ts +155 -155
  73. package/dist/schema/query/bi.d.ts +26 -26
  74. package/dist/schema/query/bi.js +1 -1
  75. package/dist/schema/query/index.d.ts +5 -2
  76. package/dist/schema/query/index.js +1 -1
  77. package/dist/schema/schema-query/index.d.ts +1 -1
  78. package/dist/schema/schema-version.js +1 -1
  79. package/dist/schema/strategy-review/index.d.ts +1 -1
  80. package/dist/schema-query-impl/index.js +1 -1
  81. package/dist/schemas/bridge_operation.schema.json +10 -10
  82. package/dist/schemas/evaluation_operation.schema.json +7 -7
  83. package/dist/schemas/guard2file.schema.json +2 -2
  84. package/dist/schemas/index.json +1 -1
  85. package/dist/schemas/machineNode2file.schema.json +2 -2
  86. package/dist/schemas/messenger_operation.output.json +266 -38
  87. package/dist/schemas/messenger_operation.schema.json +27 -3
  88. package/dist/schemas/onchain_events.schema.json +1 -1
  89. package/dist/schemas/onchain_operations.schema.json +51 -51
  90. package/dist/schemas/onchain_operations_allocation.schema.json +5 -5
  91. package/dist/schemas/onchain_operations_arbitration.schema.json +2 -2
  92. package/dist/schemas/onchain_operations_contact.schema.json +2 -2
  93. package/dist/schemas/onchain_operations_demand.schema.json +2 -2
  94. package/dist/schemas/onchain_operations_gen_passport.schema.json +2 -2
  95. package/dist/schemas/onchain_operations_gen_proof.schema.json +2 -2
  96. package/dist/schemas/onchain_operations_guard.schema.json +2 -2
  97. package/dist/schemas/onchain_operations_machine.schema.json +8 -8
  98. package/dist/schemas/onchain_operations_order.schema.json +2 -2
  99. package/dist/schemas/onchain_operations_payment.schema.json +3 -3
  100. package/dist/schemas/onchain_operations_permission.schema.json +2 -2
  101. package/dist/schemas/onchain_operations_personal.schema.json +2 -2
  102. package/dist/schemas/onchain_operations_progress.schema.json +2 -2
  103. package/dist/schemas/onchain_operations_proof.schema.json +2 -2
  104. package/dist/schemas/onchain_operations_repository.schema.json +2 -2
  105. package/dist/schemas/onchain_operations_reward.schema.json +2 -2
  106. package/dist/schemas/onchain_operations_service.schema.json +5 -5
  107. package/dist/schemas/onchain_operations_treasury.schema.json +4 -4
  108. package/dist/schemas/onchain_table_data.output.json +14 -14
  109. package/dist/schemas/query_toolkit.output.json +35 -8
  110. package/dist/schemas/query_toolkit.schema.json +39 -11
  111. package/dist/strategy/collectors.js +1 -1
  112. package/dist/tools/handlers/config.js +1 -1
  113. package/dist/tools/handlers/evaluation.js +1 -1
  114. package/dist/tools/handlers/messenger.js +1 -1
  115. package/dist/tools/handlers/onchain.js +1 -1
  116. package/dist/tools/handlers/permission.js +1 -1
  117. package/dist/tools/handlers/query.js +1 -1
  118. package/dist/tools/handlers/strategy-review.js +1 -1
  119. package/dist/tools/handlers/workflow.js +1 -1
  120. package/dist/tools/registry/onchain.js +1 -1
  121. package/dist/tools/registry/query.js +1 -1
  122. package/dist/tools/rules-hook.d.ts +2 -0
  123. package/dist/tools/rules-hook.js +1 -1
  124. package/dist/tools/shared.js +1 -1
  125. package/package.json +2 -2
@@ -86,13 +86,13 @@
86
86
  "type": "boolean"
87
87
  },
88
88
  "network": {
89
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
89
90
  "type": "string",
90
91
  "enum": [
91
92
  "localnet",
92
93
  "testnet",
93
94
  "mainnet"
94
- ],
95
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
95
+ ]
96
96
  },
97
97
  "referrer": {
98
98
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -2389,13 +2389,13 @@
2389
2389
  "type": "boolean"
2390
2390
  },
2391
2391
  "network": {
2392
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
2392
2393
  "type": "string",
2393
2394
  "enum": [
2394
2395
  "localnet",
2395
2396
  "testnet",
2396
2397
  "mainnet"
2397
- ],
2398
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
2398
+ ]
2399
2399
  },
2400
2400
  "referrer": {
2401
2401
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -427,7 +427,7 @@
427
427
  "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."
428
428
  },
429
429
  "guard": {
430
- "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.",
430
+ "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.\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).",
431
431
  "anyOf": [
432
432
  {
433
433
  "anyOf": [
@@ -439,7 +439,7 @@
439
439
  "description": "Guard object name or address (string). Example: 'my_attendance_guard' or '0x1234...'"
440
440
  },
441
441
  "retained_submission": {
442
- "description": "Data submitted by user during Guard object verification",
442
+ "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.",
443
443
  "anyOf": [
444
444
  {
445
445
  "type": "array",
@@ -603,7 +603,7 @@
603
603
  "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."
604
604
  },
605
605
  "guard": {
606
- "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.",
606
+ "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.\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).",
607
607
  "anyOf": [
608
608
  {
609
609
  "anyOf": [
@@ -615,7 +615,7 @@
615
615
  "description": "Guard object name or address (string). Example: 'my_attendance_guard' or '0x1234...'"
616
616
  },
617
617
  "retained_submission": {
618
- "description": "Data submitted by user during Guard object verification",
618
+ "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.",
619
619
  "anyOf": [
620
620
  {
621
621
  "type": "array",
@@ -886,7 +886,7 @@
886
886
  "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."
887
887
  },
888
888
  "guard": {
889
- "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.",
889
+ "description": "Guard reference for this forward. Accepts TWO formats:\n• STRING (preferred): \"my_guard_name\" — the Guard's name or address as a plain string.\n• OBJECT (only when retained_submission is needed): {guard: \"my_guard_name\", retained_submission: [1,2,3]}.\nFOLLOW THE SCHEMA FIELD STRUCTURE: A Guard reference is fundamentally a STRING (the Guard object's name or address). Provide a string when you only need to reference a Guard — do NOT wrap a bare string in an object structure. The OBJECT form {guard: \"...\", retained_submission: [...]} exists ONLY to carry additional `retained_submission` data alongside the string reference; inside the object, the `guard` field is STILL a string. In short: string-in for a string reference, object-in only when you need to pass extra data.\nCOGNITIVE PRINCIPLE: Guard validation ALWAYS occurs BEFORE the forward operation. A Guard that queries state of the SAME Progress object this forward operates on (e.g. progress.current) will see the PRE-transition value (source node), NOT the target node. If the Guard checks progress.current == target_node, it will ALWAYS FAIL. Querying a DIFFERENT Progress object (cross-machine) is safe and reasonable — that progress is not modified by this forward. For target-node verification after transition, bind the Guard to the Allocator instead (allocation.alloc runs AFTER the state transition completes).\n⚠️ T1 LOSSY POINT (B-3): WoWok has NO on-chain cron. A business phrase like 'after N days, auto-X' is NOT an automatic trigger — it decomposes into (1) a time_guard that checks elapsed time, and (2) an OFF-CHAIN keeper that must submit the forward when the guard passes. Configuring a time_guard WITHOUT a keeper means nothing ever fires.\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).",
890
890
  "anyOf": [
891
891
  {
892
892
  "anyOf": [
@@ -898,7 +898,7 @@
898
898
  "description": "Guard object name or address (string). Example: 'my_attendance_guard' or '0x1234...'"
899
899
  },
900
900
  "retained_submission": {
901
- "description": "Data submitted by user during Guard object verification",
901
+ "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.",
902
902
  "anyOf": [
903
903
  {
904
904
  "type": "array",
@@ -1204,13 +1204,13 @@
1204
1204
  "type": "boolean"
1205
1205
  },
1206
1206
  "network": {
1207
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
1207
1208
  "type": "string",
1208
1209
  "enum": [
1209
1210
  "localnet",
1210
1211
  "testnet",
1211
1212
  "mainnet"
1212
- ],
1213
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
1213
+ ]
1214
1214
  },
1215
1215
  "referrer": {
1216
1216
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -328,13 +328,13 @@
328
328
  "type": "boolean"
329
329
  },
330
330
  "network": {
331
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
331
332
  "type": "string",
332
333
  "enum": [
333
334
  "localnet",
334
335
  "testnet",
335
336
  "mainnet"
336
- ],
337
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
337
+ ]
338
338
  },
339
339
  "referrer": {
340
340
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -121,7 +121,7 @@
121
121
  "type": "object",
122
122
  "properties": {
123
123
  "for_object": {
124
- "description": "Payment for a specific object ID",
124
+ "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.",
125
125
  "anyOf": [
126
126
  {
127
127
  "type": "string"
@@ -220,13 +220,13 @@
220
220
  "type": "boolean"
221
221
  },
222
222
  "network": {
223
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
223
224
  "type": "string",
224
225
  "enum": [
225
226
  "localnet",
226
227
  "testnet",
227
228
  "mainnet"
228
- ],
229
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
229
+ ]
230
230
  },
231
231
  "referrer": {
232
232
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -806,13 +806,13 @@
806
806
  "type": "boolean"
807
807
  },
808
808
  "network": {
809
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
809
810
  "type": "string",
810
811
  "enum": [
811
812
  "localnet",
812
813
  "testnet",
813
814
  "mainnet"
814
- ],
815
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
815
+ ]
816
816
  },
817
817
  "referrer": {
818
818
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -921,13 +921,13 @@
921
921
  "type": "boolean"
922
922
  },
923
923
  "network": {
924
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
924
925
  "type": "string",
925
926
  "enum": [
926
927
  "localnet",
927
928
  "testnet",
928
929
  "mainnet"
929
- ],
930
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
930
+ ]
931
931
  },
932
932
  "referrer": {
933
933
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -344,13 +344,13 @@
344
344
  "type": "boolean"
345
345
  },
346
346
  "network": {
347
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
347
348
  "type": "string",
348
349
  "enum": [
349
350
  "localnet",
350
351
  "testnet",
351
352
  "mainnet"
352
- ],
353
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
353
+ ]
354
354
  },
355
355
  "referrer": {
356
356
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -130,13 +130,13 @@
130
130
  "type": "boolean"
131
131
  },
132
132
  "network": {
133
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
133
134
  "type": "string",
134
135
  "enum": [
135
136
  "localnet",
136
137
  "testnet",
137
138
  "mainnet"
138
- ],
139
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
139
+ ]
140
140
  },
141
141
  "referrer": {
142
142
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -971,13 +971,13 @@
971
971
  "type": "boolean"
972
972
  },
973
973
  "network": {
974
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
974
975
  "type": "string",
975
976
  "enum": [
976
977
  "localnet",
977
978
  "testnet",
978
979
  "mainnet"
979
- ],
980
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
980
+ ]
981
981
  },
982
982
  "referrer": {
983
983
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -548,13 +548,13 @@
548
548
  "type": "boolean"
549
549
  },
550
550
  "network": {
551
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
551
552
  "type": "string",
552
553
  "enum": [
553
554
  "localnet",
554
555
  "testnet",
555
556
  "mainnet"
556
- ],
557
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
557
+ ]
558
558
  },
559
559
  "referrer": {
560
560
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -861,7 +861,7 @@
861
861
  }
862
862
  },
863
863
  "order_allocators": {
864
- "description": "Order fund allocator. Max 100 allocators (MAX_ALLOCATOR_COUNT). Each allocator has a guard (first matching guard wins) and a sharing list. Set to null to clear. ⚠️ PERMANENTLY IMMUTABLE after publish: order_allocators can ONLY be set BEFORE publish=true (Move service.move:503: assert!(!self.bPublished, E_ALREADY_PUBLISHED)). After publish, the ONLY way to change allocation rules is to create a NEW Service object. There is NO pause+lock exception for order_allocators (unlike arbitrations/rewards which have time-lock removal). PRE-PUBLISH CHECKLIST: verify all guard names resolve, all sharing amounts are correct, threshold is set, and recipient types (Entity/Signer/GuardIdentifier) are intended before calling publish=true. GuardIdentifier sharing mode: {who: {GuardIdentifier: <u8>}, sharing: <rate>, mode: 'Rate'} — resolves recipient from Guard table submission at allocation time (e.g., refund to customer). MULTI-CALL ALLOCATION: Allocation.alloc() can be called MULTIPLE times (no consumed flag in contract). Use Amount mode (not Surplus) for recurring allocations — Surplus calls balance::withdraw_all which drains the balance. For monthly payment scenarios, create multiple Allocators with time-based Guards + Amount mode sharing items.",
864
+ "description": "Order fund allocator. Max 100 allocators (MAX_ALLOCATOR_COUNT). Each allocator has a guard (first matching guard wins) and a sharing list. Set to null to clear. ⚠️ PERMANENTLY IMMUTABLE after publish: order_allocators can ONLY be set BEFORE publish=true (Move service.move:503: assert!(!self.bPublished, E_ALREADY_PUBLISHED)). After publish, the ONLY way to change allocation rules is to create a NEW Service object. There is NO pause+lock exception for order_allocators (unlike arbitrations/rewards which have time-lock removal). PRE-PUBLISH CHECKLIST: verify all guard names resolve, all sharing amounts are correct, threshold is set, and recipient types (Entity/Signer/GuardIdentifier) are intended before calling publish=true. GuardIdentifier sharing mode: {who: {GuardIdentifier: <u8>}, sharing: <rate>, mode: 'Rate'} — resolves recipient from the Guard table submission at allocation time. Canonical order pattern: the recipient slot is the single submitted Order (constrained by the Guard — service binding, qualifying node, signer==order.owner); funds land at that order object and are receivable only by its owner (object receipt = owner receipt). Safety is determined by constraint sufficiency — run the recipient constraint audit before publish. Fixed recipients should use {who:{Entity:...}}; unbound Signer recipients are a CRITICAL theft risk. MULTI-CALL ALLOCATION: Allocation.alloc() can be called MULTIPLE times (no consumed flag in contract). Use Amount mode (not Surplus) for recurring allocations — Surplus calls balance::withdraw_all which drains the balance. For monthly payment scenarios, create multiple Allocators with time-based Guards + Amount mode sharing items.",
865
865
  "anyOf": [
866
866
  {
867
867
  "type": "object",
@@ -990,7 +990,7 @@
990
990
  "additionalProperties": false,
991
991
  "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."
992
992
  },
993
- "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)."
993
+ "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)."
994
994
  },
995
995
  "fix": {
996
996
  "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.",
@@ -1120,7 +1120,7 @@
1120
1120
  "type": "object",
1121
1121
  "properties": {
1122
1122
  "for_object": {
1123
- "description": "Payment for a specific object ID",
1123
+ "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.",
1124
1124
  "anyOf": [
1125
1125
  {
1126
1126
  "type": "string"
@@ -1423,13 +1423,13 @@
1423
1423
  "type": "boolean"
1424
1424
  },
1425
1425
  "network": {
1426
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
1426
1427
  "type": "string",
1427
1428
  "enum": [
1428
1429
  "localnet",
1429
1430
  "testnet",
1430
1431
  "mainnet"
1431
- ],
1432
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
1432
+ ]
1433
1433
  },
1434
1434
  "referrer": {
1435
1435
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -232,7 +232,7 @@
232
232
  "type": "object",
233
233
  "properties": {
234
234
  "for_object": {
235
- "description": "Payment for a specific object ID",
235
+ "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.",
236
236
  "anyOf": [
237
237
  {
238
238
  "type": "string"
@@ -371,7 +371,7 @@
371
371
  "type": "object",
372
372
  "properties": {
373
373
  "for_object": {
374
- "description": "Payment for a specific object ID",
374
+ "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.",
375
375
  "anyOf": [
376
376
  {
377
377
  "type": "string"
@@ -904,13 +904,13 @@
904
904
  "type": "boolean"
905
905
  },
906
906
  "network": {
907
+ "description": "Omit in client/chat contexts — the runtime stamps the user's CURRENT network (the client's UI selection). Standalone MCP/CLI: omit to use the current network; set ONLY when the user explicitly names a different network (a mismatch pauses for user confirmation). Never guess or hardcode a network.",
907
908
  "type": "string",
908
909
  "enum": [
909
910
  "localnet",
910
911
  "testnet",
911
912
  "mainnet"
912
- ],
913
- "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Recreate all objects on the target network via onchain_operations with env.network=target_network, then re-register the LocalMark names."
913
+ ]
914
914
  },
915
915
  "referrer": {
916
916
  "description": "Referrer ID. If the user is using the network for the first time, the referrer ID will be recorded (also applied when the SDK auto-registers the sender in the global Entity table).",
@@ -7698,7 +7698,7 @@
7698
7698
  "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."
7699
7699
  },
7700
7700
  "guard": {
7701
- "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.",
7701
+ "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).",
7702
7702
  "anyOf": [
7703
7703
  {
7704
7704
  "anyOf": [
@@ -7710,7 +7710,7 @@
7710
7710
  "description": "Guard object name or address (string). Example: 'my_attendance_guard' or '0x1234...'"
7711
7711
  },
7712
7712
  "retained_submission": {
7713
- "description": "Data submitted by user during Guard object verification",
7713
+ "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.",
7714
7714
  "anyOf": [
7715
7715
  {
7716
7716
  "type": "array",
@@ -8498,7 +8498,7 @@
8498
8498
  "additionalProperties": false,
8499
8499
  "description": "Guard submission"
8500
8500
  },
8501
- "description": "Used to define submitted data after Guard verification"
8501
+ "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)."
8502
8502
  },
8503
8503
  "msg": {
8504
8504
  "type": "string",
@@ -9113,7 +9113,7 @@
9113
9113
  "mainnet",
9114
9114
  "localnet"
9115
9115
  ],
9116
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9116
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9117
9117
  }
9118
9118
  },
9119
9119
  "required": [
@@ -9140,7 +9140,7 @@
9140
9140
  "mainnet",
9141
9141
  "localnet"
9142
9142
  ],
9143
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9143
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9144
9144
  }
9145
9145
  },
9146
9146
  "required": [
@@ -9167,7 +9167,7 @@
9167
9167
  "mainnet",
9168
9168
  "localnet"
9169
9169
  ],
9170
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9170
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9171
9171
  }
9172
9172
  },
9173
9173
  "required": [
@@ -9194,7 +9194,7 @@
9194
9194
  "mainnet",
9195
9195
  "localnet"
9196
9196
  ],
9197
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9197
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9198
9198
  }
9199
9199
  },
9200
9200
  "required": [
@@ -9228,7 +9228,7 @@
9228
9228
  "mainnet",
9229
9229
  "localnet"
9230
9230
  ],
9231
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9231
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9232
9232
  },
9233
9233
  "context_depth": {
9234
9234
  "description": "BFS recursion depth for dependency expansion in assemble_context (default 0 = no expansion). When >0, the assembly recursively queries objects referenced by the center objects (permission, guard, machine, service, repositories, etc.) up to the given depth, using the same address-field extraction rules as extractAddressFields. Each level issues one batched query_objects call (≤50 IDs per batch). Cycles are detected and skipped via a visited set. Discovered dependencies are returned in `dependencies` (edge metadata) and `dependency_objects` (full object states). Recommended: 1–2 for most use cases; 3+ may pull large subgraphs (use context_include to constrain).",
@@ -9271,7 +9271,7 @@
9271
9271
  "mainnet",
9272
9272
  "localnet"
9273
9273
  ],
9274
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9274
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9275
9275
  },
9276
9276
  "reverse_order_amount": {
9277
9277
  "description": "Escrowed order amount (smallest-unit string) for reverse_map — included in the report summary as the concrete escrow mention.",
@@ -9368,7 +9368,7 @@
9368
9368
  "mainnet",
9369
9369
  "localnet"
9370
9370
  ],
9371
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9371
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9372
9372
  }
9373
9373
  },
9374
9374
  "required": [
@@ -9413,7 +9413,7 @@
9413
9413
  "mainnet",
9414
9414
  "localnet"
9415
9415
  ],
9416
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9416
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9417
9417
  }
9418
9418
  },
9419
9419
  "required": [
@@ -9458,7 +9458,7 @@
9458
9458
  "mainnet",
9459
9459
  "localnet"
9460
9460
  ],
9461
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9461
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9462
9462
  },
9463
9463
  "account": {
9464
9464
  "description": "Scope the aggregation to ONE account address (the client's current account). Omit to aggregate across ALL local accounts.",
@@ -9493,7 +9493,7 @@
9493
9493
  "mainnet",
9494
9494
  "localnet"
9495
9495
  ],
9496
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9496
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9497
9497
  },
9498
9498
  "account": {
9499
9499
  "description": "Scope to ONE account address (the client's current account). Omit to merge across ALL local accounts.",
@@ -9569,7 +9569,7 @@
9569
9569
  "mainnet",
9570
9570
  "localnet"
9571
9571
  ],
9572
- "description": "Network for the query. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode."
9572
+ "description": "Network for the query. Defaults to the user's CURRENT network (client UI selection / authority config) when omitted. 'localnet' is for internal test use against a local fullnode."
9573
9573
  },
9574
9574
  "intent": {
9575
9575
  "description": "SEMANTIC exploration strategy (G3) — what this topology call is trying to establish. Deterministically shapes the edge whitelist, per-family depth caps and budget: full_map=complete structural map; order_health=order lifecycle+completion+disputes; fund_flow=payments+allocation waterfall+guard-gated splits; workflow=Machine node graphs+transitions+progress; counterparty=who is on the other side (buyer/seller/agents/operators); reputation=votes+arbitration record+contacts; permission=permission groups+bindings+entity tables; supply_chain=multi-leg allocation/sub-order settlement; arbitration=dispute cases+voters; demand_match=demand presenters+guards+rewards. When omitted, defaults come from the persona system (role default intents < account persona preference), then industry templates; every applied layer is reported in result.strategy.trace.",